diff --git a/docs/now/2026-10-04-tri-tick-released-claim.md b/docs/now/2026-10-04-tri-tick-released-claim.md new file mode 100644 index 0000000000..8546b62742 --- /dev/null +++ b/docs/now/2026-10-04-tri-tick-released-claim.md @@ -0,0 +1,26 @@ +# NOW -- tri tick: a released claim is not a held one (2026-10-04) + +## What was read + +- Tick 18 of cron 8782e5f8 started with `tri tick --stale-minutes 30`. The card said `claim is 39m old (> 30.0m) and 2 file(s) are dirty: the previous tick died mid-work`, but tick 17's claim already had `released` set: that tick had finished. `tick.py` read `claim.item` and `claim.since` and never read `released`. +- The two dirty files were `cron_tracking/` and `.claude/launch.json`. Both are untracked on purpose, and the worktree is the branch of pull request #5839. The fix line was `git -C add -A && git -C commit -m 'wip(tick 17): recovered'`. Following it would have committed the loop's state into that pull request. +- `git add -A` sweeping in something nobody meant to stage is recorded four times in docs/now: 2026-08-23 and 2026-08-24 (a live mutant reached master), 2026-08-31 (another session's compiler.rs) and 2026-09-04 (a conflicted ledger). + +## What changed (Closes #5863) + +- `claim.released` is read. A release that parses and is not older than `since` (with the 120 s clock slack) means the claim is not held: no staleness check, the card prints `released