Add resumable offline delivery replay - #232
Conversation
Deploying ystack with
|
| Latest commit: |
1fa6e09
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://f612c67f.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:
|
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. Review/publisher records are offline observations only; authority remains none.
The driver binds loaded code to source and captures actual native dependency executables, rejecting script launchers. Candidate commit/tree/parent and blob are revalidated before accepting observations. Cancellation preserves resumable materialization/verification state; identity types are checked before journaling. Caller candidates are not cleaned or overwritten during recovery.
Targeted proof on 1fa6e09: 28/28 checks, ShellCheck 0.11.0, Bash syntax, Python AST and diff check passed. Safe ablation removed unnecessary execution indirection, duplicate validation and a redundant assertion; final tests run on the reduced candidate. Exact required CI and independent review remain the publication gates.
Scope: replay, focused tests, restore manifest, README/RESTORE and same-PR construction plan. No candidate-code execution, model invocation, real targets, credentials, network, installation, activation, release, deployment or actual publication. The current-session operator ruling on ordinary revision rounds is recorded in comment 5551631795; no shipped operating policy is changed.