fix(gatorwalk-factory): publish takes the status it last wrote from its own ledger, so a lost cursor write cannot undo a manual move (swamp-club #2714) #420
Loading…
Reference in a new issue
No description provided.
Delete branch "cue/2714-gatorwalk-factory-publish"
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?
Fixes swamp-club #2714 (follow-up to #2685, from its verification review).
Problem
publishwrote the ticket status, then the cursor, and decided whether to move the ticket by comparing the stage's status key with the cursor's. If the cursor write failed after the status landed, the cursor was left behind:Fix
publishtakes the last status key it wrote from its owndelivery-publish-set_statusledger records, from the cursor's journal version on (where #2710's failed-move retry is keyed), falling back to the cursor. The ledger keeps a digest of the key, resolved against the pinned definition's status keys; a record no key matches is treated as unknown, so the stage's key is written again.statusFailedwhose move has landed, sostatusstops reporting it.No manifest bump: gatorwalk-factory is not published yet.
Tests
Five new tests in
tracker_methods_test.tsagainst the local fakes, with a context that loses cursor writes; all five fail on the old code: a person's move stands; a stage back at the stale key moves; an unreachable skip counts as written; an unnamed ledger key is written again; a #2710 failed move whose retry landed is not undone and the cursor is repaired. Full gatorwalk-factory suite: 731 passed.Verification: verify-build and verify-reviews passed on
8f05fbe21; attestation f611f132-fc1f-43ff-902c-afa9815a7b10 posted.🤖 Generated with Claude Code