Fork desk r4: refused retraction target, counted_answer_id, body digest vectors #74
Loading…
Reference in a new issue
No description provided.
Delete branch "libby/desk-r4-wire"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Amends the fork-desk contract (#72) with Eureka's r4 rulings (follow-ups chat-s6034-6034, chat-s6036-6036).
retractsasn<seq>(schema:deskAnswerRefused.retractsis an answer id or nil). Refused retractions of every code, and the illegal plain answer carrying a target, keep it.answer_resultgainscounted_answer_id(required,n<seq>or nil), the counted answer after the call; a replay returns the current one.retractedis in the same-body relation: true vs false under one request_id isrequest_id_conflict. Six new scenarios: each illegal form's retry replays its storedbad_retraction; both conflict orders; a target-less retraction resent withretracted:falseisbody_invalidat step 2 (before the lookup).bodyDigestsin 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'ssha256sumvalues; 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
retracteddigest 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#
GovernanceVectorTests16/16, TSgovernance-vectors19/19. Probes: dropping the Refused retracts, or the replay's counted_answer_id, in the TS judge fails the scenarios.🤖 Generated with Claude Code