Follow-up to #53, which documented this as a deliberate scope boundary.
What. vinci/worker/worker.mjs:628 decides the terminal bus post's shape with state.state === "COMPLETED" && isLedgerRef(envelope.ref). For a governed (contract-envelope) attempt envelope.ref is undefined, so the post stays an untyped status with no refs — while, since #53, the evidence row for that same attempt is filed under the contract's work_order_id (bk_…).
Two records of one attempt now disagree about which ledger row it belongs to.
Why it was deferred and not fixed in #53. It is an omission, not a contradiction: the bus post says nothing, not something else. Checked rather than assumed — nothing in vinci-gpu-control joins evidence rows to bus posts by ref. The only consumer touching both (absence_canary.py, job_refs_with_evidence) joins evidence to jobs by job_id. So no join is broken today.
Why it is not free to fix. Making postFinal use the resolved ref also promotes governed COMPLETED attempts from status to finding on the bus, and attaches refs. That changes what every bus reader sees for governed work, so it needs its own controls: a governed COMPLETED attempt, a governed BLOCKED attempt, a prose attempt (must be unchanged), and a non-ledger work order id (must stay status).
Trigger to escalate. If any consumer that joins evidence rows to bus posts by ref appears before this lands, the omission becomes a broken join and this stops being a deferral.
Context: CCM-v0 Wave 1. Raised by projects-7f while reviewing #53.
Follow-up to #53, which documented this as a deliberate scope boundary.
What.
vinci/worker/worker.mjs:628decides the terminal bus post's shape withstate.state === "COMPLETED" && isLedgerRef(envelope.ref). For a governed (contract-envelope) attemptenvelope.refisundefined, so the post stays an untypedstatuswith norefs— while, since #53, the evidence row for that same attempt is filed under the contract'swork_order_id(bk_…).Two records of one attempt now disagree about which ledger row it belongs to.
Why it was deferred and not fixed in #53. It is an omission, not a contradiction: the bus post says nothing, not something else. Checked rather than assumed — nothing in vinci-gpu-control joins evidence rows to bus posts by ref. The only consumer touching both (
absence_canary.py,job_refs_with_evidence) joins evidence to jobs byjob_id. So no join is broken today.Why it is not free to fix. Making
postFinaluse the resolved ref also promotes governed COMPLETED attempts fromstatustofindingon the bus, and attachesrefs. That changes what every bus reader sees for governed work, so it needs its own controls: a governed COMPLETED attempt, a governed BLOCKED attempt, a prose attempt (must be unchanged), and a non-ledger work order id (must staystatus).Trigger to escalate. If any consumer that joins evidence rows to bus posts by ref appears before this lands, the omission becomes a broken join and this stops being a deferral.
Context: CCM-v0 Wave 1. Raised by projects-7f while reviewing #53.