From 24c81a61421fc8094076801ac6ecc65041ed1813 Mon Sep 17 00:00:00 2001 From: Jason Woltje Date: Sun, 4 Oct 2026 22:34:37 -0500 Subject: [PATCH] docs(plans): lead decision 60, schema v3b accepted Co-Authored-By: Claude Opus 5.5 --- docs/SESSIONS.md | 1 + docs/plans/2026-09-26_lead-decisions.md | 27 +++++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/docs/SESSIONS.md b/docs/SESSIONS.md index 3ec74476..9c8fa21a 100644 --- a/docs/SESSIONS.md +++ b/docs/SESSIONS.md @@ -494,3 +494,4 @@ are never rewritten or removed; corrections are new entries. 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 2026-10-05T03:31:20Z | Sage (T3 Claude Code, thread 1ef1e4f8) | S1 packet, Q1 shapes | pushed Darkwing's S1 packet (b851f83c, revs 99-100); Filbert asked to review row 36; Rocko's Q1 shapes sent to Dewey; DEFERRED: test-task.sh unguarded live call, Node 24 dir test form +2026-10-05T03:34:37Z | Sage (T3 Claude Code, thread 1ef1e4f8) | schema v3b | reran proto-v3b on Node 24 and 26 (byte match); lead decision 60 accepts v3b, the S3 poller compares against task_current, writers use one UTC stamp form; row 37 note; pushed Darkwing's 48d76de7 diff --git a/docs/plans/2026-09-26_lead-decisions.md b/docs/plans/2026-09-26_lead-decisions.md index c68a031c..e6332d86 100644 --- a/docs/plans/2026-09-26_lead-decisions.md +++ b/docs/plans/2026-09-26_lead-decisions.md @@ -987,3 +987,30 @@ which stay with him. Each item names who decided it and what happened. - 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. +60. **Schema v3b accepted, and the S3 poller compares against the + current snapshot (2026-10-04).** Source: Darkwing, + `agents/darkwing/work/slice1-proto/` at 48d76de7, `schema-v3b.sql` + sha256 179ffe35…, stored schema digest 52514a11…, notes in + `proto-v3b-notes.md`. Tables 8, triggers 36, views 5. + - The v3b change is one view, `task_current`, and `tasks_open` is + rebuilt on it. `diff schema-v3a.sql schema-v3b.sql` shows nothing + else. I reran `proto-v3b.mjs` on Node 26.8.1 on the host and on + Node 24 in the `node:24` image with no network. Both outputs match + Darkwing's recorded files byte for byte. + - S2 pins v3b instead of v3a. Rocko already has the change from + Darkwing. + - Darkwing's poller rule is accepted and amends addendum B section 5. + The poller decides whether to write a read by comparing its digest + against `task_current`, not against the task's raw latest row. + Compared against the raw row, a stale write followed by a person's + real move back hides that move from both views. The prototype + shows it on `vikunja:3/46`. S3 carries the rule and a test for it. + - One condition for the writers. Both views compare `read_at` and + `at` as text, and the schema doesn't check their format, which was + already true of v3a's external-change view. Every writer, S2's bus + and S3's poller, stamps both columns in one fixed-width UTC form + with the same precision. S2 and S3 each test that a mixed-format + write is refused or can't happen. + - Dewey moves `checks/slice1-verify.mjs` from v3a to v3b in Dewey's + own working files. Darkwing's fixture replay already shows v3b + agreeing with the mockup on all 72 rows.