Skip to content

fix(context): reuse digest owner for capture recovery - #7300

Merged
huangruiteng merged 1 commit into
mainfrom
codex/capture-digest-owner-072439
Oct 25, 2026
Merged

huangruiteng merged 1 commit into
mainfrom
codex/capture-digest-owner-072439

Conversation

@loopx-agent

@loopx-agent loopx-agent commented Oct 25, 2026 •

Copy link
Copy Markdown
Collaborator

Goal And Delivered Outcome

Two digest architecture checks fail on main af68b0ff180ca8309b5d63d7ee326c77848521bb: capture recovery repeats the canonical bare SHA-256 grammar, and a schema test incorrectly assumes every digest field is bare. Capture IO now borrows the existing canonical pattern. The schema regression checks each field's actual contract: bare request IDs and enveloped revisions/references.

Author Declaration

Criterion Disposition Symbol / path Evidence
One canonical digest grammar implemented quota_capture.py imports the generated BARE_SHA256_PATTERN; consumer manifest pins it Complete digest ownership suite
Exact original-capture recovery; lowercase bare hash only implemented _read_capture, read_context_capture Real CLI pagination reconstructs original Unicode bytes without a Goal/runtime; malformed hashes, replacement, symlink, FIFO and UTF-8 boundaries remain rejected
Preserve each published schema field's envelope implemented Schema regression covers request_id, expected_source_revision, delivery_ref Existing positive/negative parity vectors per field
  • Self-check: reviewed the generated owner and both call sites, reproduced the failures before editing, checked the full focused suite, lint, vocabulary advisory and public/private diff. Python retains transport IO; the existing TypeScript owner still defines the digest grammar.

Scope And Continuation

Complete within this scope. The adjacent refactor replaces two repeated patterns with their existing owner; activation, capture hashing, error order and authority behavior are preserved. The packet optimization and host/outcome qualification in #7285 remain separate and open. No additional follow-up task is needed for this repair.

Validation

  • Tested revision: 0ec2d0e1f (same file contents as the focused validation).
  • Run state: finished.
  • Input classes: synthetic, public_fixture.
Check kind Result Evidence / limitation
regression_parity passed Two named architecture failures reproduced on main before the change; the full owner suite passes afterward
unit passed 374 passed across the digest architecture suite, context paging, delivery CLI, lifecycle and recovery suites; includes default-off and unsupported explicit-on cases
real_entrypoint passed Actual capture-read CLI pagination reconstructs original Unicode bytes without creating a Goal/runtime; format and physical-file recovery boundaries covered
static passed Ruff on all three changed files; git diff --check; staged RFC bilingual check (no RFC changed); diff-scoped vocabulary advisory
integration passed 8 selected real native Codex cases on this exact head: code-mode and benchmark-worker consumers, both quota packet and TurnEnvelope, warm delta, resume/compaction, missing or killed hooks, and held checkpoint recovery. Codex CLI 0.163.0-alpha.11.1; deterministic local loopback and isolated SQLite fixtures. All 8 pass without skips (181.86 s). The earlier 50 native skips remain historical; the other native cases were not rerun
integration failed Risk-based premerge: 6 direct checks and 17/18 selected checks pass. quota-scheduler-registry-route-smoke.py fails with canonical_authority_required on both the exact main baseline and this head; this remains a merge hold
  • Coverage: real capture-read CLI IO, negative recovery cases and the 8 selected native consumer compositions are exercised. These native fixtures do not establish normal Desktop adoption, autonomous solver benefit or billing savings. Full repository CI and independent review remain outside the passing local result. The paired baseline smoke failure is preserved; premerge is not passing or merge-ready. No PostgreSQL/store, scoring, prompt or UI behavior changes.
  • Current CI remains failed: run 40174656361 has 6 failed, 4 successful and 16 skipped checks. The kernel lint job reports five E701/E702 findings in test_codex_attached_conversation.py; its source bytes and all five findings match the exact main baseline. The build job fails the goal-activity browser assertion; no paired baseline browser reproduction is claimed. The stage2c wrapper rejects a skipped prerequisite. None of these observations waives the merge hold.

Frontend / Visual Evidence

  • UI impact: none.
  • Before / after / viewport / preview / states / source data / attention and craft review: N/A; this is capture validation delegation and test correction, with existing CLI behavior retained.

Type of Change

  • Bug fix
  • Refactoring (no functional changes)
  • Test update

LoopX Area

  • Control plane (quota/capture transport)
  • Build, packaging, installer, or CI (architecture regression)

Shared-authority RFC fixture impact

N/A: no store, promotion, runtime routing or compatibility-projection change.

Boundary Checklist

  • No private state, credentials, raw traces, verifier output, internal links or local machine paths in the diff or this body.
  • No maintainer-owned benchmark work duplicated or launched.
  • Scoped to the reproduced capture/digest maintenance defect.
  • No paired RFC changed; bilingual diff check passed.
  • UI impact none.
  • Every commit has a DCO sign-off.

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
@huangruiteng
huangruiteng merged commit 1648597 into main Oct 25, 2026
20 of 26 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants