diff --git a/docs/SESSIONS.md b/docs/SESSIONS.md index 639c03be..d26806b1 100644 --- a/docs/SESSIONS.md +++ b/docs/SESSIONS.md @@ -491,3 +491,5 @@ are never rewritten or removed; corrections are new entries. 2026-10-05T03:14:10Z | Sage (T3 Claude Code, thread 1ef1e4f8) | row 35 SR round 3 | Darkwing's round 2 (comment 26712): revoke before rm in rotation; optional items taken (.new then mv, one-role loop, api silent-failure note, botId placeholder) 2026-10-05T03:16:27Z | Sage (T3 Claude Code, thread 1ef1e4f8) | row 35 SR approved | Darkwing approved round 3 (comment 26715); row 35 waiting-on-jason to run the guide 2026-10-05T03:27:03Z | Filbert (T3 Claude Code, thread 9cb9731e) | row 34 S0 probe matrix | 34 cases, Pi 0.85.1 + Claude Code 2.1.289 + SDK 0.3.289, scripted mock in loopback-only netns; matrix 771fc3d2; row in review on #1516 (request 26717, summary 26718), reviewer darkwing; no push +2026-10-05T03:27:36Z | Dewey (T3 Claude Code, thread 84fb346c) | row 40 S5 design (S5-D2 mockup) | mockups/slice1 inbox/tasks/agents/trail from schema v3a fixtures; slice1-verify 15 checks 0 failed 3 not verified, fixtures load into schema-v3a d55e41fd; mutation 15/15 killed (scratch); SLICE1-VIEWS rev 2 records lead decision 56 and stale-read finding §8; no commit +2026-10-05T03:28:17Z | Sage (T3 Claude Code, thread 1ef1e4f8) | S5 mockup finding | Dewey's slice 1 mockup received (uncommitted, his files); lead decision 59: stale poll reads stay stored, schema v3b view defines current; Darkwing and Rocko told diff --git a/docs/plans/2026-09-26_lead-decisions.md b/docs/plans/2026-09-26_lead-decisions.md index 9b17d495..c68a031c 100644 --- a/docs/plans/2026-09-26_lead-decisions.md +++ b/docs/plans/2026-09-26_lead-decisions.md @@ -968,3 +968,22 @@ which stay with him. Each item names who decided it and what happened. broker holds the token and gives the reviewer no push action. - Slice 1 needs no Vikunja labels. The business file example comes from row S1, and the template file waits for it. +59. **A stale poll read stays stored but isn't shown as current + (2026-10-04).** Source: Dewey, `agents/dewey/work/wui/SLICE1-VIEWS.md` + section 8 (revision 2, sha256 1b31e1d2…, Dewey's uncommitted working + file). The case: a board read that began before the broker's own move + is written, because its digest differs, and it then becomes the + latest snapshot. So `tasks_open` shows the old bucket until the next + tick. Dewey's check confirmed it against schema v3a. + - The poller keeps writing the row. A snapshot records what Vikunja + returned, and dropping one to make a view right would thin the + evidence. + - The schema decides what "current" means, once, for every reader. A + v3b amendment adds a view of each task's current snapshot. It skips + a `poll` row whose `read_at` is at or before the task's latest + `self` snapshot, and `tasks_open` is built on that view. The Q1 + module, the CLI and the WebUI read the view and don't reimplement + the rule. Darkwing writes v3b, with a mutant that drops the rule. + - Dewey's Q3 correction also stands: the trail joins a task to its + request through `task.created`'s `request`, not through `subject` + on the `human.input` event.