Repository navigation
fix: return settled batch and replay deadline results - #3858
Conversation
|
Validation evidence at Format, lint, typecheck, layering, Fallow, build, related tests, documentation links, and prose checks passed. Unit/provider selections were covered by related tests. Coverage, platform smoke, and remaining GitHub-owned checks are still CI obligations; parked replay lanes were skipped. Regression comparisons used disposable checkouts with frozen installs and builds, then removed them:
Live changed-route evidence at The same daemon (PID 12454) and session answered a subsequent snapshot; helper retirement was confirmed by a fresh helper session. The exact session was closed, claims were empty, and the isolated daemon was stopped. Device ownership was released. Independent Sol review found the Android cancellation P1 in the first round; it was fixed. Subsequent reviews found no issues, including final signal-identity equivalence with the live-tested version. The standalone longpress envelope ledger remains #3326. |
|
Size Report
Startup median (7 runs, lower is better):
|
|
Checks are green (19 of 19) and there are no conflicts, but I found one problem at 1522466 that should be fixed before merge. When the deadline fires, For example, with the batch The rule should be that the deadline may add Not blocking, and you can take or leave these: I did not run the regression tests on base or head. I checked their regression validity by reading the pre-change code paths. The live Android evidence is your report at 209c7e5, and the later commits change only lock wiring and tests. I did not check that every batchable or replayable step (install, type, scroll, iOS runner calls) honors the request signal within the 30 s margin. I also found no in-repo |
|
Follow-up to #3858 (comment) and the explicit resource decision #3325 (comment). At The original requested multi-step progress assertions, late-success identity, failed-response merging, and replay source tests are retained. Their negative comparisons keep the original base SHA attribution. The follow-up resource, IME, source-header, Apple lifecycle and late-throw comparisons are separately attributed in the evidence. The selected resource policy refuses unsupported operation shapes before runtime admission or native/resource effects. It uses existing domain plans and resource ownership. Existing resources and recovery manifests retain standalone cleanup authority. Observations are assessed separately. Close/reopen, pre-handler expired leases, and every owned stale manifest preflight before cleanup. Android test-IME assessment reads its existing owner map; standalone restoration remains unchanged. Audio status with an existing host probe is refused because it can dispose that probe. All nested test source manifests preflight attempt timeouts; admitted nested tests share the original cutoff and restoration allowance. Typed replay refusal details retain shape, standalone alternative, dispatched=no, and source diagnostics without post-failure native capture. Earlier completed batch results remain present. The optional review comments were assessed at their owners: declared budgets now carry the daemon cutoff, the router resolves it once, and request cancellation preserves typed reasons. Provider-native operations with an unproven deadline contract are refused or explicitly outside the guarantee. No pending-resource API, detached deadline race, global ADB cancellation, increased envelope, repeated restoration allocation, or forced durable cancellation was added. Full evidence: full exact-head receipt, fresh independent FULL R14 assessment, original brief and all R1–R13 dispositions, regression logs with SHA attribution, final native builds, changed-route live checks and cleanup. The independent reviewer found no concrete findings and no materially smaller design preserving the required behavior and coverage across 134 files / 6,871 gross lines. Injected facets, 52 named composite cases and simulated ADB do not prove every command or native backend. Physical Apple, Mac, Linux, web, Harmony, Vega, remote and arbitrary custom-provider native settlement remain unproven. #3325 remains open pending merge/acceptance; #3326 is separate. CI is pending at publication; the parent owns subsequent checks/events. |
|
Independent package-growth assessment at The exact-head Size run reports +19,748 unpacked bytes and +5,910 download bytes. Its pack manifests place the unpacked increase entirely in generated The fresh read-only Sol reviewer assessed the complete diff: 2,690 gross production lines (+1,416 net), 4,109 test/fixture lines, 63 documentation lines, and 9 metadata lines. Resource admission reuses existing runtime plans and ownership; deadline/restoration use existing request registration; native-stop confirmation remains with the runner owner. No dependencies were added. No concrete smaller alternative preserved the required cancellation, indirect-disposal refusal, all-source preflight, and cleanup authority. Chunk sizes locate growth but do not establish exact source attribution or savings from an unbuilt alternative. The checkout remained clean; no new builds, tests, or device runs were performed for this assessment. R14 and live evidence retain their original attribution. |
|
Current-head CI at The previously failing Android API36 Smoke lane now passes after restoring signaled Back to the ADB route. Coverage and Integration Tests also passed, along with Apple/Linux smoke and the remaining selected checks. The PR is clean and mergeable, with no unresolved review threads. No checks were manually rerun and no validation limits changed. The evidence retains the original failed-head attribution and the fixed-head regression, review, receipt, and live proof. #3325 remains open until merge and acceptance verification. |
|
The earlier findings from 1522466 are fixed at 755df85, but one new problem remains. The composite-deadline assertions now cover the 1522466 code path, and the Android Back route is restored. CI shows 22 checks with none failing, and the earlier Android API36 smoke failure now passes. There are no conflicts. On a physical iPhone or Apple TV, a daemon-deadline abort of a runner command leaves the device unusable until the daemon restarts. Not blocking, and you can take or leave these: the diff is 6,149 added and 864 removed lines across 134 files, over the 2,500-line cap in Could this be stacked as four independently mergeable layers? The first would be the deadline core: I did not run tests. I judged the regression coverage by reading the 1522466 code path against the new assertions. The physical iOS finding comes from reading the runner code at 755df85, not from a device run. The simulator and Android live evidence in the gist is attributed to dedab13, plus an Android Back check at 755df85, and I did not re-run it. I also did not audit every batchable or replayable step for signal coverage within the 30 s margin. Before merge, the Apple unconfirmed stop needs an exit, then the stacking question needs an answer. |
|
Confirmed the draining-state problem at I’m addressing recovery at the runner owner while preserving the lease and replacement fence until native stop is actually confirmed. Physical-device admission also needs an honest capability boundary if no supported stop confirmation exists. The regression will cover unconfirmed stop, a subsequent confirmation attempt, close, and a fresh runner; simulator evidence will remain distinct from physical-device evidence. I’m separately assessing the proposed four-layer split against the actual deadline dependencies and the repository’s gross-diff rule. I’ll answer with concrete layer ownership and prerequisites before restructuring the published branch. The typed retirement-mode suggestion and preservation of a step’s own typed failure details are included in the assessment. |
|
The independent split assessment recommends smaller review layers, with deadline activation last. The proposed core-first layer cannot yet close #3325: I’m preparing this dependency order locally:
The Android changes alone currently account for roughly 3,789 gross lines, so one Android layer would still exceed the review cap. Tests and fixtures will follow their owners. Each layer must build and remain safe when merged after its prerequisites; the #3325 completion claim belongs to the final activation layer. The admission trait will select the existing domain-plan owner rather than duplicate its operation parsing or resource state. I’ll report both parent-relative review size and cumulative |
|
Following the user's concern about scope and complexity, the unpublished six-layer reconstruction is on hold. Its branches and unfinished work are preserved; no stack branch has been pushed. I reread #3325's completion criteria: worst-case fold provider scenarios in batch and replay must return typed daemon results rather than client timeout/reset, with direct The blanket physical iOS/tvOS runner refusal has not been accepted and will not be published as a workaround. The new permanent physical draining fence is distinct from the preexisting limitations of proving physical native stop. The local safety candidates and the source finding that terminal journal status also needs an idle/busy check remain preserved for review; neither is physical-device proof. The published |
755df85 to
9c61f5a
Compare
|
Replaced the superseded 755df85 branch with the smaller, reviewed Claude’s scope consultation confirmed that #3193 already preserves sessions when the daemon answers its liveness probe. The remaining core gap is a typed settled timeout with progress/replay source and a client response margin. This patch uses ordinary typed request cancellation internally, so existing Apple journal drain and Android cleanup run. It does not add forced physical-stop confirmation, a permanent draining fence, or a blanket physical-device refusal. This addresses the new physical recovery regression raised in review 6313914386 by excluding that introduced retirement design, rather than clearing an uncertain old lease. The diff is now 37 files / 1,764 gross lines; production +288/-55. Fresh full R3 found no findings. Exact-head run-4ZYbSM passed 7,347 related tests with exactCommit=true and checkoutChanged=false. Both assigned source-daemon live batches (iPhone simulator and Android emulator) crossed the 60-second budget during longpress, retained completed wait progress, skipped step3, and then accepted native input and snapshots in the same session. Sessions, daemons, panels and claims were cleaned up. New exact-head receipt, independent review, negative proofs, builds and live logs. Physical devices were unavailable. Existing cancellation may exceed the margin; transport-timeout/liveness fallback remains. No native-stop/no-overlap guarantee is claimed. Accepted resource-operation-shape refusal remains a separate follow-up, so #3325 stays open. Actual new-head CI must complete; prior green 755 checks do not validate this replacement. |
|
The actual-head CI Size report at The CI artifact measures +4,569 B unpacked and +1,551 B downloaded. All unpacked growth is in 14 generated JavaScript chunks; package file counts and dependency bytes are unchanged. Command metadata/help (+1,633 B) and request deadline handling (+1,150 B) account for most growth. No accidentally packaged tests/assets or added dependency was found. Full assessment and raw CI JSON are now in the replacement evidence bundle. Startup sample ranges overlap, so the lower measured medians are not a claimed speed improvement. No source changes, builds, tests, or devices were needed for this assessment. Remaining CI is still running; prior-head results are not transferred. |
|
Coverage follow-up is published at The synchronized test fails on disposable old |
|
The code at 9c61f5a looks ready. The earlier evidence request is now met: the live runs on the iPhone 17e simulator and the Android emulator are in the author's gist at this commit. No physical iPhone or Apple TV run exists. I accepted that because this head changes no Apple runner production code, and the deadline uses the same canceled-journal drain as an explicit cancel. I did not observe a physical-device drain at this head. I read the code and the new tests but did not run them. Not blocking, and you can take or leave these: A newer head, 70b86fa, came in after this review. It changes only |
|
CI is complete at exact head The old Coverage failure at No further core source change is needed from these results. The separately accepted resource-operation refusal is still being prepared, so #3325 stays open. |
|
The PR is ready for human review at 70b86fa. The earlier review at 9c61f5a was clean, and this update changes only one test. CI is green. The live evidence from 9c61f5a still covers the behavior because the production code has not changed. I read the test change but did not run it. No conflicts. Not blocking, and you can take it or leave it: in |
Summary
Give
batchandreplaya 60-second daemon work budget inside the 90-second client envelope;replay --timeout Xuses X/X+30 seconds. Settled failures retain typed timeout, completed-step progress, and replay source. Existing cancellation handlers run; completed success, earlier explicit cancellation, and directtestretain their behavior. Refs #3325.This follow-up changes one Apple test file: the deadline fires after the fake runner admits
longPress, then the test requires two status polls for its exact command ID and a cleared charge. Production code is unchanged from9c61f5a9. Cumulative diff from the PR merge base: 37 files, +1,590/-203. No physical retirement or resource-operation follow-up is included.Validation
Published head
70b86fa: exact-headpnpm check:affected --run --headpassed (run-08GQma,exactCommit=true, 7,347 related tests). The focused test passed under coverage instrumentation. The same test on disposable old production70a57a7c9afailed at the intended missing journal polls. Fresh independent Sol review found no issues. Receipt, negative, review, and prior live evidence.Coverage at
9c61f5a9failed in job 119238930459; new-head CI completed: 17 successful checks, one skipped, one neutral. Earlier iPhone simulator and Android live results remain attributed to9c61f5a9, whose production code is unchanged here. Physical native stop and universal settlement remain unproven.