Add resumable offline delivery replay - #232
Conversation
Deploying ystack with
|
| Latest commit: |
cc2cb98
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://b50e58d8.fabrica-6yx.pages.dev |
| Branch Preview URL: | https://codex-delivery-replay-v1.fabrica-6yx.pages.dev |
Codex reviewer (cross-vendor, read-only)Reviewed-head: 6537715 Posted verbatim by The replay cannot recover from a real crash in a critical window after materialization, despite presenting itself as resumable. It also has an uncaught malformed-input path and a timing-dependent interruption regression test. Full review comments:
|
Codex reviewer (cross-vendor, read-only)Reviewed-head: 0462ad2 Posted verbatim by The new recovery path cannot reconcile any interrupted no-change materialization, and structurally malformed persisted state can escape the CLI's controlled error handling. Both affect the replay's advertised resumability. Full review comments:
|
Codex reviewer (cross-vendor, read-only)Reviewed-head: 4c29c1a Posted verbatim by The replay can resume under an incompletely bound materializer identity, accepts malformed actor identities, and does not safely validate candidate identity in recovered journals. Its documented focused test is also broken on supported hosts without a separate system jq. Full review comments:
|
Codex reviewer (cross-vendor, read-only)Reviewed-head: e02c634 Posted verbatim by The replay has malformed-input paths that escape its controlled error handling, and its recorded execution and verification identities can diverge from what was actually used. These issues undermine the fail-closed and exact-identity properties of the new replay journal. Full review comments:
|
|
Review cap reached. CI run 33934673501/check 101220163015 (app 15368) passed at head e02c634 / base a637451; final independent review 5548482129 remains not clean. No merge or further automatic revision. Proposed one final revision ONLY: (1) reject non-string source object IDs with controlled errors; (2) handle JSON integer-limit decoder ValueError; (3) bind execution digests to bytes actually consumed using immutable snapshots or complete revalidation; (4) require saved verification id/path/digest to equal the run verifier. Preserve all existing behavior, tests, scope and boundaries. Operator action requested: authorize this exact four-item final revision, followed by fresh CI and independent review. Existing candidate and history are preserved. |
|
The operator directly authorized one final revision in the current coordinator session on 2026-09-05. Scope is limited to the four findings in review 5548482129: source object ID type validation, JSON integer-limit decoding failures, consumed executable byte identity, and saved verification binding. Resume the preserved clean head e02c634 against base a637451 on this same branch. Add regression tests, perform scoped ablation, then require fresh exact CI and one full independent final review. No finding is waived and no additional revision loop is authorized. |
|
Authorized final revision is now a7de157 against a637451. Only replay.py and its focused test changed. The source-tree type guard already existed at e02c634; numeric/list/null regressions confirm controlled rejection, so that finding needed no code change. Other fixes cover JSON decoder ValueError, private execution snapshots with owner-only cleanup, and exact saved-verifier binding. Post-ablation focused matrix: 21/21; syntax, ShellCheck 0.11.0, Python AST, and diff checks pass. Removed a special execution branch and redundant suffix condition, then reran the matrix. Fresh CI and final independent review remain required; this comment is not review evidence. |
|
Final revision a7de157 passed required ci (run 33961833994, check 101294932870, app 15368) against base a637451. The independent Codex review invocation was rejected by the tool approval layer before execution because it transmits PR content to the Codex review service and posts the review comment. No review ran, no review verdict exists, and no merge was attempted. Preserving this exact clean candidate while requesting explicit approval for that review operation; no further code revision is requested. |
|
The operator explicitly approved sending PR #232 code and diff to the OpenAI Codex review service and publishing the original review result on this PR, after disclosure in the current coordinator conversation on 2026-09-05. The prior tool rejection happened before execution, so no final review was consumed. Exact head a7de157 and base a637451 remain unchanged; required ci check 101294932870 from app15368 is successful. Proceeding with the one authorized final independent review; no code revision or gate waiver. |
Codex reviewer (cross-vendor, read-only)Reviewed-head: a7de157 Posted verbatim by The replay can bypass its execution snapshot, can accept observations after the materialized candidate ref changes, and does not consistently honor cancellation. These break the identity and resumability guarantees central to the change. Full review comments:
|
|
The authorized final review completed and posted raw comment 5551563469 on exact head a7de157/base a637451. The coordinator read it in full and checked the affected code. It is NOT clean: execution-root selection can bypass snapshot creation; wait phases do not recheck the selected candidate ref against the recorded commit/tree/parent; wait phases can continue after cancellation. Required ci is green, but no merge was attempted. This authorized final revision/review is exhausted; preserving the clean branch and stopping further edits. Proposed next disposition, not yet authorized: fix only these three correctness gaps and their regressions in the existing replay implementation/test, perform safe ablation, then fresh exact CI and independent review. No new process infrastructure or product scope. The operator already explicitly approved Codex review data transmission and posting the result; that permission is not the present blocker. |
|
Direct operator ruling received in the current coordinator conversation on 2026-09-05: authorize the three findings from 5551563469 and continue the already-agreed inactive Roadmap construction work without stopping solely for ordinary revision-round limits. This is a current-session construction ruling, not an activation or reusable target policy change. It does not waive findings, exact required CI, independent review, bounded scope, publisher checks, or inactivity. Continue same PR/branch from clean a7de157 against a637451; retain round-3 as history, not reset the counter. Fix and independently review candidates until clean, then publish through the existing exact-head squash gate. No new process infrastructure; no real targets, credentials, installation, activation or deployment. Codex review payload/comment permission remains explicitly granted in 5551475271. |
Codex reviewer (cross-vendor, read-only)Reviewed-head: 6d53d29 Posted verbatim by The replay can execute dependency bytes not represented by its recorded identity, mishandles cancellation during materialization, and can persist a journal that its own validator rejects. These defects undermine the new replay's execution-integrity and resumability guarantees. Full review comments:
|
Codex reviewer (cross-vendor, read-only)Reviewed-head: 1fa6e09 Posted verbatim by The replay can record the wrong driver identity, emit completion after the candidate has moved, and leak execution snapshots across its supported crash-recovery path. These issues undermine the exact, resumable identity guarantees introduced by the patch. Full review comments:
|
Codex reviewer (cross-vendor, read-only)Reviewed-head: cc2cb98 Posted verbatim by The replay can permanently poison a fresh state directory when execution snapshot creation is interrupted or rejects a dependency. Its final ref guard also behaves inconsistently under inherited Git environment settings. Full review comments:
|
One inactive offline delivery-loop slice under the accepted Roadmap construction program.
Uses the existing local Git materializer, verifies one candidate blob, and journals restartable materialize/verify/review-wait/publish-wait phases. Supplied review/publisher observations never authenticate actors or grant authority.
The driver executes and hashes one captured source buffer. Each private state retains one verified execution bundle, bounded across crashes. A hook-disabled prepared Git transaction protects the named candidate ref through revalidation, durable completion and flushed receipt; symbolic refs are rejected. Native dependencies are captured, identity types checked before journaling, and cancellation/recovery preserve caller candidates without reaping unowned data.
Proof on cc2cb98: 31/31 focused checks, ShellCheck 0.11.0, Bash syntax, Python AST and diff check pass. Minor test-harness ablation removed redundant indirection only; all acceptance checks remain covered. Exact CI and a fresh full independent review gate publication.
Scope remains replay, focused tests, restore manifest, README/RESTORE and the same-PR plan. No candidate-code execution, model invocation, real targets, credentials, network, install, activation, release, deploy or actual publication. Current-session ordinary repair/review authority is recorded in comment 5551631795; shipped operating policy is unchanged.