docs(records): row 25 approver fix, second Discord restart, SetSpark approver and docker network gaps
Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
@@ -3074,3 +3074,49 @@ extension enables the eight record and approval verbs from it. Receipt
|
||||
(0600): `restart-row25-20260926T205803Z.txt` in the Sage evidence directory.
|
||||
Jason's live check (one work item, one proposal approved by button) is still
|
||||
to do.
|
||||
|
||||
## 2026-09-26: row 25 approver names, a second Discord restart (#1509, Sage, reviewed by Rocko)
|
||||
|
||||
Correction to the entry above: the 20:58Z restart put the SetSpark verbs
|
||||
live, but the approval half did not work. In Jason's live check, SS-027 was
|
||||
created and read back. DEC-009 was also created, but no Approve button was
|
||||
posted. The Discord Sage had written `required_approvers` as `["Jason",
|
||||
"Carmen"]`. The SetSpark service stores approvers as `discord:<id>` and
|
||||
accepted the names without checking them. `open_approval_request` then
|
||||
passed the names to the connector, and `validateRequest` refused them ("bad
|
||||
approver id"). The connector was right to refuse. The gap was that the model
|
||||
had no way to write a valid approver, and no test ran create through the
|
||||
connector's check.
|
||||
|
||||
After: 20ea5a0b.
|
||||
- The binding's `users` provide the approver names.
|
||||
- `record_create` and `record_update` turn each name into `discord:<id>`.
|
||||
An unknown name, a raw id, a duplicate or a non-list is refused before
|
||||
any request goes out, and the refusal does not echo the value.
|
||||
- `hideIds` removes Discord user ids from every SetSpark tool text and
|
||||
refusal, before any field is cut. The connector's approval request still
|
||||
carries the bare ids.
|
||||
- With `setspark` set, a reload that changes a user's id or name is refused.
|
||||
That change needs a restart.
|
||||
- A local contract fixture runs from create through `validateRequest`, and
|
||||
the old name-stored shape still refuses.
|
||||
|
||||
Rocko asked for two revisions. R1: a refused id was echoed back, and ids
|
||||
leaked through nested or embedded text. R2: the service code and bad
|
||||
property names were cut before hiding. Rocko approved R3 (81379830…, report
|
||||
da75219f…). The eight suites passed on an index export
|
||||
(24/90/43/17/14/15/63/18), and the Discord node tests passed 173/173.
|
||||
|
||||
The first R3 task and release runs failed 31 and 3 tests. The cause was
|
||||
Docker running out of network address pools, not the change. My own stale
|
||||
index-export compose networks had used them up. I removed the five that
|
||||
were mine, none with a container attached, and both suites passed on the
|
||||
same export. Follow-up in DEFERRED.
|
||||
|
||||
Restart at 21:30:21Z from 20ea5a0b, with `packages/discord` clean. Old PID
|
||||
499064 stopped cleanly. The new PID is 954332 with pi child 954554, and the
|
||||
gateway was READY at 21:30:22Z. Pi's `setspark` config has the approver
|
||||
names jason and carmen. Receipt (0600):
|
||||
`restart-row25-approvers-20260926T213021Z.txt`. Jason reruns the approval
|
||||
check. DEC-009 needs a `record_update` to names, or a new decision, and
|
||||
then a new approval request.
|
||||
|
||||
@@ -391,3 +391,8 @@ are never rewritten or removed; corrections are new entries.
|
||||
2026-09-26T20:35:44Z | Dewey (T3 Claude Code, thread 84fb346c) | #1507 board Host/Origin guard before CHAT-02 | Correction: the entry above at 20:35:39Z used the wrong line format; this one restates it. packages/control-board serve.mjs foreignRequest (d0a9bbed) plus two failing-first tests in serve.test.mjs (e01d7bd9); HEAD fails at foreign Host, six mutations each fail, control-board/webui/seat suites 149/149. Packet agents/dewey/work/board-guard/NOTES.md for Rocko via Sage. No commit or push.
|
||||
2026-09-26T20:38:14Z | Sage (T3 Claude Code, thread 1ef1e4f8) | Integration: board Host/Origin guard | Rocko approved de9ff942 (review 5a12f08e); Sage committed the guard with records after suites on an index export, pushed, and restarted the control board. Discord restart still held on 6b R2.
|
||||
2026-09-26T20:58:56Z | Sage (T3 Claude Code, thread 1ef1e4f8) | #1509 row 25 SetSpark live, Gate F routing | Found resolveToolRoots dropping setspark; fixed with failing-first test, Rocko approved, committed 6c06a6f3 and pushed; restarted mosaic-discord@shared-signals (890894 -> 499064), pi has the eight SetSpark verbs. Ruled Darkwing's three Gate F questions; Filbert reviews the brief. Jason live check pending.
|
||||
2026-09-26T21:04:43Z | Filbert (T3 Claude Code, thread 9cb9731e) | #1508 queue plan round 6; Gate F T3 ledger source brief review (#1506) | Plan re-pinned 889f2566 (Sage's jarvis path and 403 rulings), then 282fabbb answering Rocko r5 (3b031a70): Gate G pins before launch and audits retrospectively, since Pi writes no session file before the first assistant message, and the first entry's parentId is null (G1); the guard is checked as active on every invocation with a git hook run canary, scratch-checked (G2); lead login jarvis. Sent to Rocko for round 6. Gate F brief R1 08959a05: revise (review 19dda29a; WAL tests, live read-only DB counts, header cross-check, test isolation); R2 e8300cb6 approved with 3 nits (review bb02d8d3). My W2 clean-stop claim was wrong, and a correction entry was appended. No source edits, commit or push.
|
||||
2026-09-26T21:05:39Z | Dewey (T3 Claude Code, thread 84fb346c) | #1507 CHAT-02 backend (packages/conversation) and board routes, at review | New read-only Pi history reader (safe-fs, parser, CHAT-01 pages, pinned snapshots, cursors, follow) plus GET /api/conversations and /api/conversation after the Host/Origin guard. Suites 175/175; chat-00/01/01c checks pass; real data 19 rows, 102 pages, 0 schema-invalid; mutations 27/28 reader (one equivalent) and 9/9 routes. Packet agents/dewey/work/chat-02/BACKEND.md pins nine files. Darkwing asked to review the routes; Filbert's code review request goes when his turn ends. No commit or push.
|
||||
- 2026-09-26T21:06:18Z | filbert (T3 9cb9731e) | #1508 round 6 approved by Rocko (report 80cde839, verified; builder note: capture H before the step-1 canary and reuse it for base and CAS), plan left at 282fabbb; Gate F R3 f3c05c1b confirmed and approved, review be1aa414 | reported to Sage and Darkwing; no commits
|
||||
2026-09-26T21:14:06Z | Filbert (T3 Claude Code, thread 9cb9731e) | #1507 CHAT-02 backend code review | Packet 286c3ad5 (nine pins verified): revise. The candidate alone passes 175/175 in a clean worktree. Three required fixes, each reproduced: branch id moves with every append; the assumed-link bridge merges branches; EACCES on a directory component turns the catalogue into a 500. Three small items. Report 27d64e14, scripts in agents/filbert/work/chat-02-backend-review-evidence/. No commit or push.
|
||||
2026-09-26T21:31:11Z | Sage (T3 Claude Code, thread 1ef1e4f8) | #1509 row 25 approver fix and second Discord restart | Jason's live check found no Approve button (DEC-009 approvers stored as names). Fix 20ea5a0b (Rocko R1/R2 revise, R3 approve 81379830), pushed; restart 21:30:21Z, PID 954332, pi has approver names jason,carmen. Approval recheck with Jason next.
|
||||
|
||||
@@ -181,3 +181,16 @@ which stay with him. Each item names who decided it and what happened.
|
||||
each round stays small. C ships inside A1. Gate F's code goes ahead on
|
||||
Filbert's verdict, without a separate look from Jason. The design calls
|
||||
are the lead's (item 12).
|
||||
16. **Row 25 approvals, second fix and restart.** Jason's live check found no
|
||||
Approve button. DEC-009's approvers had been stored as names, and the
|
||||
connector refused them. Sage fixed it so the model writes user names,
|
||||
the connector maps them to Discord ids, and no id reaches tool text.
|
||||
Rocko approved R3, and the fix is 20ea5a0b, pushed. Sage restarted the
|
||||
connector at 21:30:21Z, the second restart today. It is a local dev
|
||||
service, and Jason was waiting on the check. Two design calls:
|
||||
- A user id or name change with `setspark` on needs a restart, not a
|
||||
reload.
|
||||
- Tool text drops every Discord user id, including ids the binding
|
||||
doesn't know.
|
||||
The SetSpark service accepting free-text approvers is reported to
|
||||
Jason as a shared-signals gap. Mosaic doesn't change it.
|
||||
|
||||
@@ -114,6 +114,20 @@ 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
|
||||
stays uncommitted in the tree only as long as a review needs it.
|
||||
(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)
|
||||
- **Index-export suite runs leave Docker networks behind.** Each export
|
||||
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
|
||||
task and release suites then failed 31 and 3 tests with "all predefined
|
||||
address pools have been fully subnetted". Sage removed its own five stale
|
||||
networks. The dw-* ones are still there. Fix: the export recipe, or the
|
||||
suites, removes the project network on exit. (2026-09-26)
|
||||
|
||||
## Queue
|
||||
|
||||
|
||||
Reference in New Issue
Block a user