Repository navigation
Conversation
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: true
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Reposting on this superseding PR (same reply as on the earlier draft). Thanks @mvschwarz — also from the same operator work (multi-agent / multi-harness orchestration on one theme). The correctness bug we keep hitting: after context compression on small-context harnesses (e.g. Codex-class ~250–256k windows), if compression lands at a bad moment the agent replays work it already did — sometimes twice or three times — and a lot of progress is lost. Harness memory is not a reliable source of truth here; historically some harnesses handle compaction poorly, and there’s no guarantee future ones will do better. So the goal of this draft is hard truth in code, not in the agent’s memory: bind accept to a concrete artifact, and bind the receipt to the specific operation that produced it (not “latest on the target”). Concrete case on one existing path: publish A, then publish B to the same target, then retry A — without per-operation receipts, retry/restart after compression easily confuses historical outcome A with target-latest B (and crash-between-artifact-and-receipt can fake success). Smallest change: receipt keyed by operation / submission, plus accept bound to the artifact digest for that op. Agreed this doesn’t need to wait on #1598 — we can keep the thin correctness extract independent of the lease PR. Also happy to keep proposal text out of the repo tree while it’s a draft. End-to-end, the boring pattern that let me ship quality at a steady pace under multi-agent load was: clear hard rules + durable truth in files/state — less spectacle, more control. |
|
Thanks, @pdurlej, and thanks for the retry-after-compression case on #1599. This stays a draft, as you ask. Binding an acceptance to its artifact and a receipt to its operation is a new product concept too, so it needs a product decision before we review the code, and we can't say yet when that will be. Your answer on #1599 is part of the input for it. |
…f leases) Unstacked Topic D: bind accept to a clean artifact digest and key receipts by operationId via SimplePublishTarget. No WriterAuthority / mig 119 / fenced lease path — reviewable without mvschwarz#1610.
62caaf8 to
9e625b8
Compare
Summary
Hard truth in code, not in harness memory (Codex-class compression / multi-agent orchestration): bind accept to a concrete artifact, and bind the receipt to the specific operation that produced it — not “latest on the target”.
Concrete case: publish A, then B to the same target, then retry A — without per-operation receipts, restart after compression confuses historical A with target-latest B.
Independence from C (#1610)
This tip is unstacked. It does not include WriterAuthority, lease migration, fenced lease publish, or
/api/writerlease routes. Review does not need to wait on #1610.Supersedes dirty #1599.
What lands
artifact-acceptance— accept binds a clean immutable artifact digestSimplePublishTarget— lease-free disposable target for contract proofsOperationPublishService—receiptsByOperationkeyed byoperationId(historical, not target-latest)Out of scope
Stays draft. Native not-run.
Fork:
pdurlej/openrig-1·piotr/upstream-accept-receipt-binding-v2