fix(worker): reconcile terminal ACK loss exactly - #74
Conversation
|
CANDIDATE_READY Exact head: Evidence:
Dependency truth: the CLI fixtures mock the exact VGC PR #420 contract. VGC exact head Please commission a fresh independent review against the exact head above. Do not review a moving branch. This comment is AI-generated by |
|
SUPERSEDED — do not use this classification. Current durable state:
See the corrected handoff: #74 (comment) The CLI candidate remains frozen at This comment is AI-generated by |
|
STATUS_CORRECTION — supersedes the preceding
Exact CLI candidate: The bounded Lane B implementation is complete and all exact-head natural CI is green. The absence of an independent review and the still-unmerged dependency are coordinator-owned waiting states, not a repair routing failure. Coordinator should commission a fresh read-only PR #74 review now, independently track VGC PR #420 at This B session may terminate after coordinator custody is durably acknowledged. If review blocks later, create a fresh repair worker from the PR head, counterexample, and durable checkpoint. No merge or deployment was performed. This comment is AI-generated by |
Lane B invariant
This head consumes the VGC atomic worker-publication contract and reconciles terminal effects only from well-typed, worker-authoritative rows using the exact canonical text VGC stores.
BusClientconfigured for bound worker mode sendsX-VGC-Expected-Worker-Principal: worker:<id>on every message POST.from_agent, clientposted_by, or a cached/prior identity GET.posted_by,posted_role, and workerfrom_agentremain server-derived.nulland normalized to empty text for comparison.subjectas string and rawbodyas string ornullbefore permissive message normalization.posted_by === expected_worker_principalandposted_role === "worker". Role is never inferred from principal syntax or defaulted.posted_bybut missing, null, malformed, admin, agent, collector, or any other non-worker rawposted_roleraises typedterminal_delivery_authority_conflict. Pending evidence remains, and there is no POST or reconciliation.The reconciliation cardinality contract remains:
Exact semantics still cover broadcast recipient, kind, canonical subject/body, typed outcome,
in_reply_to, and ordered refs. Complete pagination and malformed/partial/shifting/repeated-page refusal are unchanged. A rawposted_bythat contradicts the requested expected-principal filter is filter-inconsistent and cannot establish absence.Blocker history and exact heads
Base:
5d3cfb9c3336442e8d51b1a6e7fdd4d4859e5699.f2228ebf00f9e2824e4b4392429d8b88af061da6: TOCTOU BLOCK. A prior identity GET could differ from terminal POST authentication.b8d865fb36d9ebda423d60ec8fd623a2e73fd0a4: round-1 BLOCK,LANE_B_SERVER_CANONICAL_BODY_RECONCILIATION.fa822303bf8833e3ff6a6d9a676ea39b1059ae7d: round-2 BLOCK,LANE_B_MALFORMED_BODY_FALSE_EMPTY_RECONCILIATION; verdictsmsg_52b79150,msg_7a49a29f.ffed75f0025fed0ad73f99a2939932a750f21127: failed round-3 subject. It accepted exact semantic rows based on expectedposted_bywithout also requiring the raw server-stamped worker role, leaving authority ambiguous. Durable blocker/verdict:msg_01e3ed71.msg_d3903a6fauthorized exactly one exceptional fourth repair round, with no budget reset and no automatic fifth.8ab2b59f100cf6e155662134886372fee4e1e850, direct child offfed75f0025fed0ad73f99a2939932a750f21127.Server dependency remains frozen:
getsimpledirect/vinci-gpu-control#421exact head9dec47f5f55c43bff99d6522bc6ec68bbc10bf44. Its independent PASS messages remainmsg_af18881aandmsg_0bf18340; natural CI is separate. No server PASS or previous client PASS transfers to this new candidate.Discovery dependency remains
getsimpledirect/vinci-gpu-control#420exact head5fcdae514ff05a430e26a12f4d8c8101619a320e; GET/v1/worker-principalis discovery only.Evidence at
8ab2b59fposted_bywith worker role; no-row bound publication; canonical ACK loss; and installed fresh-process ACK-loss restart.worker:principal syntax, removing the role check, and clearing onposted_byalone.npm run check: all 9 stages passed, then passed again in the commit hook.VINCI_SKIP_SMOKE=1 bash vinci/test/run.sh: all enabled groups passed; smoke intentionally skipped.git diff --check: passed.The local fixture proves client classification behavior; it does not independently prove VGC source. The real integrations exercised the frozen PR421 application head. This exact successor requires fresh independent review. No PASS is claimed or transferred, and no automatic fifth repair round is authorized.
Boundaries
vinci/worker/bus.mjsandvinci/test/worker-terminal-reconcile-integration.mjswithin the existing Lane B footprint.