Fork desk r4: refused retraction target, counted_answer_id, body digest vectors #74

Merged
libby merged 2 commits from libby/desk-r4-wire into main 2026-11-10 18:14:43 +00:00
Member

Amends the fork-desk contract (#72) with Eureka's r4 rulings (follow-ups chat-s6034-6034, chat-s6036-6036).

  1. A refused answer projects its body's retracts as n<seq> (schema: deskAnswerRefused.retracts is an answer id or nil). Refused retractions of every code, and the illegal plain answer carrying a target, keep it.
  2. answer_result gains counted_answer_id (required, n<seq> or nil), the counted answer after the call; a replay returns the current one.
  3. retracted is in the same-body relation: true vs false under one request_id is request_id_conflict. Six new scenarios: each illegal form's retry replays its stored bad_retraction; both conflict orders; a target-less retraction resent with retracted:false is body_invalid at step 2 (before the lookup).
  4. bodyDigests in the vectors: Huginn's private digest from /opt/commons/handoff/desk-body-digest-order-20261110.md. Plain (8a4d5b2e) and legal retraction (9f807538) do not move. The generator asserts all seven digests against Eureka's sha256sum values; the C# and TS suites recompute each from the input fields. Not a wire document.

What changes bytes: every answer_result (new key), every refused retraction's projection (null to n), two renamed/replaced deskAnswer vectors. All other scenarios, entries and hash vectors are unchanged (diffed old vs new, ignoring those keys).

Pending Eureka's merge: the three retracted digest goldens (935cab1a, 82b24ccc, 34ef86ed) are the fix branch's form (cut-desk-digest-retracted.r2); Huginn main 7ea11b4 still collides (i) and (iii) (69074cc6). I have not run Huginn's code against them; they are cross-checked only against her sha256sum values.

Tests: C# GovernanceVectorTests 16/16, TS governance-vectors 19/19. Probes: dropping the Refused retracts, or the replay's counted_answer_id, in the TS judge fails the scenarios.

🤖 Generated with Claude Code

Amends the fork-desk contract (#72) with Eureka's r4 rulings (follow-ups chat-s6034-6034, chat-s6036-6036). 1. A refused answer projects its body's `retracts` as `n<seq>` (schema: `deskAnswerRefused.retracts` is an answer id or nil). Refused retractions of every code, and the illegal plain answer carrying a target, keep it. 2. `answer_result` gains `counted_answer_id` (required, `n<seq>` or nil), the counted answer after the call; a replay returns the current one. 3. `retracted` is in the same-body relation: true vs false under one request_id is `request_id_conflict`. Six new scenarios: each illegal form's retry replays its stored `bad_retraction`; both conflict orders; a target-less retraction resent with `retracted:false` is `body_invalid` at step 2 (before the lookup). 4. `bodyDigests` in the vectors: Huginn's private digest from `/opt/commons/handoff/desk-body-digest-order-20261110.md`. Plain (8a4d5b2e) and legal retraction (9f807538) do not move. The generator asserts all seven digests against Eureka's `sha256sum` values; the C# and TS suites recompute each from the input fields. Not a wire document. What changes bytes: every `answer_result` (new key), every refused retraction's projection (null to n<seq>), two renamed/replaced deskAnswer vectors. All other scenarios, entries and hash vectors are unchanged (diffed old vs new, ignoring those keys). **Pending Eureka's merge:** the three `retracted` digest goldens (935cab1a, 82b24ccc, 34ef86ed) are the fix branch's form (cut-desk-digest-retracted.r2); Huginn main 7ea11b4 still collides (i) and (iii) (69074cc6). I have not run Huginn's code against them; they are cross-checked only against her sha256sum values. Tests: C# `GovernanceVectorTests` 16/16, TS `governance-vectors` 19/19. Probes: dropping the Refused retracts, or the replay's counted_answer_id, in the TS judge fails the scenarios. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Fork desk r4: refused retractions keep their target, answer_result carries counted_answer_id, body digest vectors
Some checks failed
CultMesh QUIC native / Build win32-x64 (pull_request) Has been skipped
CultMesh QUIC native / Build linux-x64 (pull_request) Has been skipped
CultMesh QUIC native / Release native binaries (pull_request) Has been skipped
CultMesh portability and performance / ubuntu-latest reactive semantics and leases (pull_request) Has been cancelled
CultMesh QUIC native / Verify committed binaries match SHA256SUMS (pull_request) Has been cancelled
adc8bc7931
- A refused answer projects the body's retracts as n<seq> (nil only when the body named none).
- answer_result gains counted_answer_id, the counted answer after the call (a replay returns the current one).
- retracted is part of the same-body relation for the three illegal forms: retracted true vs false under one request_id is request_id_conflict. Six new scenarios (replay per form, both conflict orders, target-less flip is body_invalid at step 2).
- bodyDigests: Huginn's private digest pinned from Eureka's byte order; plain and legal-retraction goldens unmoved, the three retracted goldens pending her merge. Recomputed by the generator, C# and TS.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Fork desk r4: Soul low findings (replay after retraction, schema negative, digest (i) with null target, wording)
All checks were successful
CultMesh QUIC native / Build win32-x64 (pull_request) Has been skipped
CultMesh QUIC native / Build linux-x64 (pull_request) Has been skipped
CultMesh QUIC native / Release native binaries (pull_request) Has been skipped
CultMesh portability and performance / ubuntu-latest reactive semantics and leases (pull_request) Successful in 21m36s
CultMesh QUIC native / Verify committed binaries match SHA256SUMS (pull_request) Successful in 1m7s
0c73b1c670
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
libby merged commit 976f8c3bf2 into main 2026-11-10 18:14:43 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
GameCult/CultLib!74
No description provided.