docs(records): SetSpark approver fix deployed and surveyed, lead decision 28

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
2026-09-26 19:24:20 -05:00
co-authored by Claude Opus 5.5
parent 4d999e2f61
commit 9da0d0895f
3 changed files with 14 additions and 29 deletions
+1
View File
@@ -420,3 +420,4 @@ are never rewritten or removed; corrections are new entries.
2026-09-27T00:10:31Z | Sage (T3 Claude Code, thread 1ef1e4f8) | #1508 N13 commit | nested node --test fix in test-foundation/test-discord; pins 60f04822/2ad3be74 match; nine suites green on the index (foundation 44, discord 64); DEFERRED entry closed. 2026-09-27T00:10:31Z | Sage (T3 Claude Code, thread 1ef1e4f8) | #1508 N13 commit | nested node --test fix in test-foundation/test-discord; pins 60f04822/2ad3be74 match; nine suites green on the index (foundation 44, discord 64); DEFERRED entry closed.
2026-09-27T00:11:29Z | Filbert (T3 Claude Code, thread 9cb9731e) | CHAT-03 brief R2 review (#1507 row 5), BRIEF-r2 5c5b45a2 | changes requested: F1 extension turn can overlap Mosaic preflight (spurious agent_settled, order-based attribution unsound), F2 empty clear_queue omits extension custom messages; B2-B6 and N1-N12 closed; review agents/filbert/work/chat-03-brief-review-r2-2026-09-26.md d149e8cc 2026-09-27T00:11:29Z | Filbert (T3 Claude Code, thread 9cb9731e) | CHAT-03 brief R2 review (#1507 row 5), BRIEF-r2 5c5b45a2 | changes requested: F1 extension turn can overlap Mosaic preflight (spurious agent_settled, order-based attribution unsound), F2 empty clear_queue omits extension custom messages; B2-B6 and N1-N12 closed; review agents/filbert/work/chat-03-brief-review-r2-2026-09-26.md d149e8cc
2026-09-27T00:21:33Z | Sage (T3 Claude Code, thread 1ef1e4f8) | goals review, SetSpark deploy decision | Jason: decide. Deploy of shared-signals cc74d92 handed to the stack operator seat (12fe8cda). Goals review page written from ledger evidence (47.7, 33.0 human msgs per closed issue vs <10); CHAT-03 source held for rescope; two-round brief budget. Lead decision 27. North star to Jason for ratification. 2026-09-27T00:21:33Z | Sage (T3 Claude Code, thread 1ef1e4f8) | goals review, SetSpark deploy decision | Jason: decide. Deploy of shared-signals cc74d92 handed to the stack operator seat (12fe8cda). Goals review page written from ledger evidence (47.7, 33.0 human msgs per closed issue vs <10); CHAT-03 source held for rescope; two-round brief budget. Lead decision 27. North star to Jason for ratification.
2026-09-27T00:24:20Z | Sage (T3 Claude Code, thread 1ef1e4f8) | SetSpark deploy outcome | Operations seat deployed shared-signals cc74d92 to VM 1022 00:23Z, verified; survey: DEC-009 only bad row, 0 Accepted over 16. DEFERRED entry moved to Done; lead decision 28 (DEC-009 stays as stored). Caddy recreate side effect sent to operations.
+12
View File
@@ -331,3 +331,15 @@ which stay with him. Each item names who decided it and what happened.
- work for other repositories goes to their own seats; - work for other repositories goes to their own seats;
- the ledger runs every Monday. - the ledger runs every Monday.
Jason ratifies the north star sentence and the goal order. Jason ratifies the north star sentence and the goal order.
28. **SetSpark deploy result and DEC-009.** The operations seat deployed
cc74d92 to VM 1022 at 00:23Z on 2026-09-27 and verified it (hash,
health, tunnel). The survey found one bad row, DEC-009 (Proposed), and
no Accepted decision over 16 approvers, so Jason has no correction to
make. DEC-009 stays as stored. It was the live-check record from item
16. The fixed service refuses to approve it, and correcting it would
change production data for no gain. If someone wants it approved, a
`record_update` through the Discord Sage writes `discord:` approvers
and request 1 closes as stale. The deploy also recreated caddy through
`depends_on`, about 20 s of edge downtime. I suggested
`--no-deps setspark-api` to the operations seat. The procedure is theirs
to change.
+1 -29
View File
@@ -114,35 +114,6 @@ at every gate. Started 2026-09-12 during the control board MVP.
of the runtime files. Until then the rule is that unreviewed Discord source of the runtime files. Until then the rule is that unreviewed Discord source
stays uncommitted in the tree only as long as a review needs it. stays uncommitted in the tree only as long as a review needs it.
(2026-09-26, #1509) (2026-09-26, #1509)
- **SetSpark service accepts any string as a decision approver.** Create
checks only that `required_approvers` are distinct non-empty strings, and
approval checks `discord:<author id>` against them. So a decision stored
with names (DEC-009) can never be approved, and nothing says so until
an approval is tried. Mosaic's connector now writes only `discord:<id>`
(20ea5a0b), but the service should refuse other shapes. This belongs to
shared-signals, not Mosaic. Reported to Jason. (2026-09-26, #1509)
2026-09-26, before 21:41Z: at Jason's word, Sage sent it to the SetSpark lead
(T3 thread ac03938d). The message covers validating approvers on create
and update, what to do with DEC-009 and its open request 1, and a notice
before any change to the approver contract. The SetSpark lead replied:
they do not own it. setspark-api is built from shared-signals
`stack/api` and runs on VM 1022, and their rules keep them out of both.
Their read-only pointers: `setspark_api/service.py` 353 (the create and
update check, using `evidence()` at 152) is where the `discord:` plus
17 to 20 digits rule and the 1 to 16 bound go, with a 422
`invalid_record`. `add_approval` compares at 645, and `_discord_ids` at
567 strips the prefix for the view. Stored rows such as DEC-009 need a
check too. They passed the owner question and DEC-009 to Jason. No owner
yet.
2026-09-26 23:13Z: Jason gave the owner choice to Sage. A Sage subagent is
writing the fix, Rocko reviews it, and Sage commits it to shared-signals.
The rule keeps the sanctioned `pending:` markers. The reasons and the
DEC-009 disposition are in lead decisions item 21. Deploying to VM 1022 is
still a gated host action.
2026-09-26 23:50Z: fixed in source, shared-signals cc74d92 (Rocko
approved R2, lead decision 24). The SetSpark lead confirmed SetSpark
does not depend on free-text approvers. Still open: the deploy to VM 1022
and running the README survey query on production. Both are Jason's.
- **Index-export suite runs leave Docker networks behind.** Each export - **Index-export suite runs leave Docker networks behind.** Each export
directory becomes a compose project, and its `<dir>_default` network directory becomes a compose project, and its `<dir>_default` network
stays after the run. On 2026-09-26 the host ran out of address pools. The stays after the run. On 2026-09-26 the host ran out of address pools. The
@@ -177,3 +148,4 @@ Moved to `docs/plans/QUEUE.md` on 2026-09-13. This file holds only gaps.
- Discord engine: leaked fake pi and the timeout gap in `busy` (2026-09-26, #1509): fixed in 3edb15eb (Darkwing 6b R2, Rocko approved, review ed5510a0). Tests stop the engine in `finally`. A turn pi never started now stops pi with exit 1 instead of guessing, and the unit restarts it. Known limit: see the open entry on wedge restarts. - Discord engine: leaked fake pi and the timeout gap in `busy` (2026-09-26, #1509): fixed in 3edb15eb (Darkwing 6b R2, Rocko approved, review ed5510a0). Tests stop the engine in `finally`. A turn pi never started now stops pi with exit 1 instead of guessing, and the unit restarts it. Known limit: see the open entry on wedge restarts.
- Combined concurrent test hangs (2026-09-14, #1509): closed on evidence from 3edb15eb. At default concurrency the union passed 406/406 three times on the R2 snapshot and 408/408 on the commit's index, where clean HEAD had hung four runs out of four. The inherited-intermittency entry from 2026-09-15 stays open until a later run shows it is the same cause. - Combined concurrent test hangs (2026-09-14, #1509): closed on evidence from 3edb15eb. At default concurrency the union passed 406/406 three times on the R2 snapshot and 408/408 on the commit's index, where clean HEAD had hung four runs out of four. The inherited-intermittency entry from 2026-09-15 stays open until a later run shows it is the same cause.
- A nested `node --test` passes even when its tests fail (2026-09-26, #1508): closed. Queue A1 (34a72af9) clears NODE_TEST_CONTEXT on its own path. N13 fixes `test-foundation.sh` and `test-discord.sh`, each with a check that fails the suite if the clearing is lost. Darkwing wrote it (n13.patch 00868b2f) and Filbert approved it (e464be6c). Sage's grep on 2026-09-27 finds no other nested `node --test`: in scripts, only the two suites, `test-queue.sh` and `queue-commit.sh`, and in JS, only the queue test that covers the fix. - A nested `node --test` passes even when its tests fail (2026-09-26, #1508): closed. Queue A1 (34a72af9) clears NODE_TEST_CONTEXT on its own path. N13 fixes `test-foundation.sh` and `test-discord.sh`, each with a check that fails the suite if the clearing is lost. Darkwing wrote it (n13.patch 00868b2f) and Filbert approved it (e464be6c). Sage's grep on 2026-09-27 finds no other nested `node --test`: in scripts, only the two suites, `test-queue.sh` and `queue-commit.sh`, and in JS, only the queue test that covers the fix.
- SetSpark service accepted any string as a decision approver (2026-09-26, #1509): closed. Fixed in shared-signals cc74d92 (Rocko approved R2, lead decision 24). The operations seat (T3 12fe8cda) deployed it to VM 1022 at 00:23Z on 2026-09-27. The running `service.py` hash matches cc74d92, and `/healthz` returns 200 inside the network and through the public tunnel. The read-only README survey found one row breaking the rule (DEC-009, Proposed, version 1), one open request that isn't ready (DEC-009's), and no Accepted decision with more than 16 approvers. No rows changed. DEC-009 stays as stored (lead decision 21, item 28). The service now refuses approvals on it, so nothing can go wrong silently. Side effect: `up -d` also recreated caddy, about 20 s of edge downtime for all hosts. That is for the shared-signals deploy procedure to fix, not Mosaic.