docs(records): Sage lead handover, rows 23-25 state, row 8 stub, BUILD-LOG rebuilt on HEAD

Records Jason's 2026-09-26 ruling: Sage leads the project, Darkwing is a
collaborating seat, development stays in T3, and the old ~/.mosaic fleet is
being retired. The lead role adds no push, merge or deploy authority.

- QUEUE rows 23-25 show their commits and pushes; row 8 links a parked stub
  brief listing the rulings Jason must make before fleet seats move.
- Shared records from Darkwing (rows 6, 16, 18, 22, #1511, #1512) and Dewey
  (row 5) that were waiting on one owner for the shared files.
- DEFERRED: T3 headers counted as human in the ledger (#1506), #1509 engine
  test leak and busy gap, #1512 re-run outcome.
- BUILD-LOG.md rebuilt as HEAD plus the uncommitted entries; the working copy
  had dropped the row 23-25 entries. Diff against HEAD is additions only.

All eight suites green. Not pushed.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
2026-09-26 14:59:24 -05:00
co-authored by Claude Opus 5.5
parent af4203ca92
commit 0f5b7cb9be
8 changed files with 849 additions and 27 deletions
@@ -0,0 +1,41 @@
# Row 8: fleet seats onto `mosaic launch` (stub brief)
State: parked. Owner: unassigned. Issue: none yet. Written by Sage (lead) on
2026-09-26 so the queue can carry the row under the mandatory-brief rule
(#1508 J3, J9). This stub authorizes no work.
## Why the row exists
The old estate runs seats from `~/.mosaic/fleet/agents/<seat>/` under the
npm-global `mosaic` CLI and the `mosaic-fleet` tmux socket. The new stack
launches seats from `agents/<name>/launch.sh` in this checkout and registers
them for the control board (row 2, #1504).
On 2026-09-26 Jason said the work MUST move to the new stack, because a fleet
seat (the fleet Sage) was acting outside his instructions. That makes the
retirement a stated goal. It does not make this row active.
## What is known
- Development seats (Sage, Darkwing, Dewey, Filbert, Rocko) run in T3 for now.
T3 threads set no `MOSAIC_AGENT_NAME` and write no registration.
- Fleet seats still live on the `mosaic-fleet` socket, including orch-01,
rev-code-01, rev-code-02, jarvis and joe.
- The Discord Sage runs as `mosaic-discord@shared-signals`, a new-stack
service, and is not a fleet seat.
- AGENTS.md forbids changes to `~/.mosaic` launchers, provisioning or live
fleet processes during the internal bootstrap.
## Before this row can leave parked
Jason must rule on:
1. Which fleet seats move, which are retired and in what order.
2. Whether a moved seat runs under a Pi launcher, T3 or both.
3. How seat credentials move. Seat tokens live under
`~/.mosaic/fleet/agents/<seat>/secrets/`. Secrets never enter this
repository (canon invariant 3).
4. Lifting the AGENTS.md bootstrap restriction on `~/.mosaic` changes.
A full brief replaces this stub once he rules. Until then, `queue next`
never returns this row.
+217 -6
View File
@@ -12,6 +12,153 @@ update this file to the next action). No ambiguity, no re-planning.
## Next action
Current owner priority: #1512, QUEUE row 6 prescribed Filbert relaunch-activity pilot.
Filbert acknowledged sole source ownership; Darkwing reviews backend and Dewey
acknowledged UX review. Charter: `2026-09-15_relaunch-activity.md`.
Darkwing created/read back #1512 as authenticated Darkwing, set the owning native
seat's task through Piece5 step3 with identity preserved, and independently
reproduced old assistant text still presented after a newer live registration
in an isolated fixture. Evidence: `agents/darkwing/work/relaunch-activity/baseline.json`.
R1 arrived with seven pinned source files. Darkwing approved backend/source;
Dewey approved scoped UX with eight frozen targeted tests. Darkwing's first full
serialized run failed an inherited Discord engine tool-turn test then hung120s.
A later full frozen TAP run with a15s test deadline passed351/351 without force-exit.
Rocko diagnosed a test busy/settled-event race and success-only cleanup hang;
Darkwing independently reproduced the busy assertion with a 50ms event split and
finally cleanup. A separate timeout-log timing flaw and a potential engine
followUp-after-timeout defect were also reported. The latter belongs to row21;
no live incident is claimed. orch-01 was notified on its verified named socket.
Evidence: `agents/darkwing/work/relaunch-activity/engine-diagnosis.md`.
Darkwing verified 31 frozen Discord dependency files match commit1ac812d3.
Filbert confirmed his archive used moving HEAD and the old HANDOFF label was wrong.
He supplied an append-only correction outside R1; Darkwing verified its hash and
all89 frozen dependency pins. Local copies are `r1-provenance-correction.json`
and `r1-dependencies.sha256` under the relaunch-activity work directory.
Provenance hold resolved; original R1 and all seven source pins remain unchanged.
2026-09-26: 1685deb4 fixed the engine test race. A re-run of the frozen candidate
against 21e3e908 passed the serial acceptance command 397/397 three times.
Failures that only show when tests run concurrently are #1509 engine tests and
reproduce on clean HEAD (`relaunch-activity/rerun-2026-09-26.md`). Sage ruled that
#1512 integrates on the serial evidence. #1511 and #1512 are committed locally in
af4203ca with rows 18 and 22, and not pushed. The engine defects are a DEFERRED
entry against #1509. #1512 closes after Sage's records commit. The board restart
that shows #1512 live and the Gate F live assignment both wait on Jason.
Next for Darkwing: the #1506 ledger fix for T3 headers (Filbert reviews), then
the #1509 engine test and `busy` fixes (Rocko reviews, source only).
No live action, publication, operator acceptance or GateF claim.
Standing owner mandate: after each accepted iteration, automatically execute the
next ready authorized item, without a routine next-step prompt. Existing scope,
review, access, acceptance and protected-operation gates still apply.
Jason accepted row 18 with "parfait". The newer standing continuation instruction
supplies the start for the next already-briefed row 6, replacing its historical
Sunday start-message scheduling, without waiving dependencies or protected gates.
Rocko's existing native repository context was verified and he acknowledged sole
source ownership under `2026-09-14_task-attribution.md`. Filbert and Dewey both
acknowledged independent review ownership. Darkwing reproduced the current CLI
refusing --by with exit 4 using no live configuration or registration.
Evidence: `agents/darkwing/work/task-attribution/baseline.json`.
R1 arrived and all 15 working/frozen pins matched. Filbert approved backend source,
reporting independent 141/141 working/overlay tests and six launcher checks.
Dewey requested R1-U1: WebUI inspector conflates null/inapplicable attribution
with legacy registered unknown. Both lanes returned before Rocko received the
bounded R2 correction, including a misleading privacy-syntax comment correction.
Review record: `agents/darkwing/work/task-attribution/r1-review.md`.
Darkwing added only the missing --by usage flag to dirty `docs/TOOLS.md`, preserving
other changes; that additive documentation also requires independent review.
R2 has now passed both exact source review lanes. R1-U1 and the comment finding
are closed; Filbert also approved the separate TOOLS usage patch. Darkwing ran
344/344 broader serialized tests. Evidence and limits:
`agents/darkwing/work/task-attribution/r2-review.md`.
Old strict-v1 readers reject the new field, independently reproduced with synthetic
records. No live setter write may precede the authorized reader update.
Jason authorized that envelope with yes. On 2026-09-15, backend PID 3769124
exited gracefully; replacement 3414098 is healthy and serves the exact reviewed
board page. API exposes the new attribution field; two legacy registered rows
show unknown and non-registration tasks have null attribution.
The Rocko write was blocked before mutation: its registration names dead PID
185602, actual native lock owner is 3707667, and its discovery directory is
absent, so there is no Rocko board row. This existing Claude-board gap remains
separate; no identity repair or discovery expansion was attempted.
All registration bytes, five agent pane identities and connector identity stayed
unchanged. Receipts: `agents/darkwing/work/task-attribution/backend-restart.jsonl`
and `backend-live-verification.json`.
Jason authorized Filbert instead and confirmed Claude console integration is
not yet implemented. Filbert's native registration identity was reverified;
the authorized task update passed live API verification at 2026-09-15T00:36Z:
task '#1511 task attribution user test', source registration, setter darkwing.
Only task/taskSetBy/updatedAt changed; identity fields and startedAt were preserved.
All other registrations and agent/connector/backend identities stayed unchanged.
Original registration is backed up privately outside the repository. Receipt:
`agents/darkwing/work/task-attribution/live-test.jsonl`.
Jason supplied the table screenshot and inspector text confirming darkwing with
'as claimed by the caller, not verified'. Bounded local attribution delivery is
operator-confirmed. Publication remains separate. The standing continuation mandate
now advances the prescribed Filbert assignment above, after this local acceptance.
Gate F is not claimed or backdated. #1508 still depends on row 6 completion.
## Completed bounded row 18 delivery
Actual start: Filbert acknowledged sole implementation ownership under
`2026-09-14_discord-board-row.md`; Darkwing independently reviews backend/privacy
and Dewey acknowledged read-only UX review. Darkwing prepared acceptance checks
and reproduced the missing reply refusal with a synthetic connector plus forged
registration: current handler returned 200 and called fake transport once, with
zero real sends. Evidence: `agents/darkwing/work/discord-board/reply-baseline.json`.
Exact R3 source approvals from Darkwing and Dewey are persisted in 26257.
Nine working/frozen pins and three-file R2 delta independently verified; full
serialized suite 322/322 passed, plus Dewey's eight targeted tests. R1-B1 and
R2-B2 closed: inaccessible STOP is unknown and connector Task is fixed safe
metadata, not a routing envelope. Prior attention/UI assets are preserved.
Read-only live observation after approval found shared-signals alive/idle,
not braked, owner matching systemd MainPID, fixed Task and no registration.
Evidence: `agents/darkwing/work/discord-board/r3-live-observation.json`.
Owner approved the backend-only restart. Old PID 3204655 exited gracefully;
replacement PID 3769124 is healthy on 7331. Live API now shows the shared-signals
connector idle/live/not braked with safe Task metadata; actual connector reply
POST was refused with 409 before transport. All five agent pane identities and
the connector service PID/start identity are unchanged. Evidence:
`agents/darkwing/work/discord-board/backend-live-verification.json`.
Jason accepted the operator visual test with "parfait". This bounded local row
delivery is complete, without publication or live brake/offline transition claims.
No connector service/binding/STOP/home changes. Concurrent R1 timeouts remain unresolved/not green and
are recorded in DEFERRED.md; no general transcript redaction or broader runtime
conformance claimed. Standing continuation has advanced to row 6 above. Filbert
remains the row-18 source author; frozen R3 evidence remains unchanged.
Prior accepted correction: #1503, QUEUE row 22, board attention status correction.
Jason passed internal-team checks 1-4 and reported Researcher's false waiting
status in step 5. He approved ordinary completion becoming idle and reserving
waiting for explicit human-input requests. Filbert approved exact R1, receipt
26248. Author 144 and reviewer 193 covered different package sets; the combined
five-package author rerun passes 213 tests. Read-only actual Researcher scan
returns idle and waitingOnYou:false. Owner approved backend-only restart, now
completed and live-verified in receipt 26249: old PID 1265952 exited gracefully,
replacement PID 3204655 is healthy on loopback 7331. Live API shows Researcher
idle/not waiting at the original screenshot activity timestamp. All five agent
process identities are unchanged. Jason confirmed both targeted tests: ordinary
completion shows idle; an explicit input request shows waiting, Seen removes it
from attention without resolving waiting, and the subsequent completion returns
to idle. The full targeted status sequence is operator accepted. This is not
broader MVP/cross-harness acceptance or publication; do not resume another queue
item by inference. Brief: `2026-09-13_board-attention-status.md`.
Prior bootstrap checkpoint: #1510, QUEUE row 16. Darkwing coordinates direct coding,
review and research through the five repository-native agents. Keep source
changes in `/mnt/storage/src/mosaic-stack`; no `~/.mosaic` launcher/provisioning
changes and no live fleet stop or migration. Researcher's missing native entry
and recovery files are added. Six isolated launcher tests and all five real
`--check` runs pass without launching engines. Internal Filbert approved exact R1
as source; attributed receipt 26204, independently rerunning six tests in both
working and frozen copies. Source setup is approved. Owner-authorized live smoke passed for Researcher,
which returned the exact expected model response, receipt 26216. Rocko startup
correctly refused an existing native lock; its running repository-native Sonnet
process is on the mosaic-fleet socket and was left intact, not retested with a
model prompt. No existing sessions restarted, home launchers modified or broader
MVP/user acceptance or publication claimed. Brief: `2026-09-13_internal-development-bootstrap.md`.
The historical MVP queue and CHAT-01C publication gate below remain separate;
this direction does not resume #1508 or authorize external provisioning.
Gaps found and not fixed go to `docs/plans/DEFERRED.md`, one line each; check it at every gate.
Jason decided on 2026-09-12 (MOSAIC-STACK-D-001) that the MVP is the control
@@ -74,12 +221,74 @@ Filbert APPROVED WEBUI-1507-R1, manifest 509f20e5; all 21 hashes reverified.
Committed-tree regressions 208/208 include six WebUI tests, Chromium at
320..2560px and 330 passing rendered contrast samples. Receipt:
`reviews/2026-09-13_webui-publication.md`.
Next action for this piece: Jason runs Gate E on Monday 2026-09-14. Start
`node packages/webui/src/cli.mjs serve` with the existing board on 7331, then
open http://127.0.0.1:7330/. Reply to a registered repo seat, check its answer,
use Seen/Unsee, and record any need to return to the board page or terminal.
Keep #1507 open pending Jason's end-of-day ruling. No deployment or user
acceptance is inferred from tests; no timer or other queued work started.
Jason's 2026-09-13 feedback supersedes readiness for the workday test: Gate E
is blocked on refinement. He needs project/session navigation in the left
sidebar and independent two-way chat interfaces, not dashboard cards and an
inspector send box. He reports the return flow is missing in actual use; this
needs reproduction. The current inspector's latest assistant text is not a
conversation history. Restore relative activity age too; board `ageSeconds`
is time since last activity, not session lifetime. Durable feedback and
screenshot descriptions: #1507 comment 26082.
Refined brief and decomposition: `2026-09-13_webui-session-chat.md`, CHAT-00..08.
Jason settled Q1-Q22: all seats, full chat/tools/attachments/native approvals,
enforced controller transfer, durable drafts/queue, interrupt/force-stop and
explicit recovery. Old accepted foundation requirements were recovered rather
than re-invented. Jason confirmed shared understanding and authorized bounded CHAT-00 preparation
on 2026-09-13. CHAT-00 charter is #1507 comment 26094; research deliverable
`chat-00/README.md` is independently APPROVED by Filbert in comment 26100.
Four exact research files published at 370823b3, remote identity verified;
48 synthetic/source checks also pass from the committed research copy.
Jason approved CHAT-01 contract drafting; active bounded charter is comment
26103. R1 request 26105 received REQUEST CHANGES in 26106/26107/26108.
All R2 verdicts were collected before R3 edits. Filbert 26119, Dewey 26120
and Rocko via agent-send requested changes and accepted the named companion
gates. R3 fixes cursor binding, disconnected-browser scheduler authority and
visible dispatch refusal, NEW message roles, corrupt-queue recovery without
control deadlock, and non-destructive revocation reconciliation. It also tests
current retry dispositions, superseded stops, native resolution evidence,
stop-context confirmations and second-actor draft privacy.
R3 exact review 26124 is APPROVED AS BOUNDED DRAFT by Filbert 26126,
Dewey 26127 and Rocko via agent-send, recorded with follow-ups in 26128.
Only the four reviewed files published at 28d4e98ad8b406ca84b30170558bee22402f1e55;
remote ref verified, committed copy byte-identical to reviewed snapshot and
checks green: 98 shapes, 322 omissions, 76 reference cases, 17 lifecycle
sequences plus regressions; CHAT-00 48/48. Receipt 26131 read back. Shared
dirty planning/logs and other owners' files were excluded from the commit.
CHAT-01 bounded delivery is complete, not runtime/security/all-seat acceptance.
Jason approved CHAT-01C proposal 26131 with performing-agent attribution.
Darkwing authored the four `chat-01c/` contract/model files and froze R1 for
review in 26137, posted and read back as actual Gitea darkwing, account 104.
Seat credentials at the operator-specified location work; no minting needed.
Never use the legacy helper's default Jason identity. Future Git commits use
explicit performing-agent author/committer and seat-authenticated publication,
without changing shared config or rewriting published history.
R1 findings were corrected and both Filbert and Dewey APPROVED exact R2
through agent-send; attributed receipts persisted as darkwing in 26152.
Candidate request 26149, clean copy /tmp/chat-01c-r2-frozen-lujze3oe. Eleven
closed examples/187 omission-extra cases and models/base regressions pass.
Locally committed b023841c8a44d08677dc388043997eb4277b0545 with verified author
AND committer Darkwing <darkwing@mosaicstack.dev>; only four reviewed files.
Committed-copy checks pass. Published: Dewey confirmed on 2026-09-26 that
b023841c is on origin/refactor (`git branch -r --contains`). The HTTP 403
blocker (26154) is resolved. From 2026-09-26, pushes go through Sage with the
jarvis identity, and each push needs Jason's word. CHAT-02..08 are not
chartered. They are held until Jason rules, through Sage, on what "all seats"
means with the fleet retiring, on row 5's priority against row 6 and #1508,
and on charters and backend authors. Only small Console fixes are approved
now (return-flow regression, relative Age; Filbert reviews). No runtime work
or other queue item has started.
CHAT-03I/03D, B1-B6/Q22 and #1507 acceptance remain open. Carry Rocko R3-1
native dispatched-input reconciliation into CHAT-02, R3-2 into CHAT-01C and
R3-3 observer-revocation coverage into a later fixture revision, per 26128.
No peer reviews remain pending for CHAT-01. No other queue/runtime/live start.
Rocko architecture findings are incorporated with accepted evidence corrections.
Actual Claude protocol compatibility, tool isolation, access and cutover remain
unverified; no runtime implementation or live cutover yet. Q20 cancels ordinary-Interrupt
follow-ups into drafts; Q21 authorizes reviewed/green scoped refactor publication;
Q22 preserves piece-5/#1508/fleet ordering. Dependent fleet work remains held. Darkwing/Filbert planning corrections are
incorporated, including explicit remote implementation and publication gates. Live one-seat cutover requires separate
Jason approval after both harness fixtures and exact rollback plan. Keep #1507
open; original tests are not new-scope approval. No code or live effects started.
Darkwing closed #1506 (Gate D written, comment 26067) and
#1504 (registration shipped, Gate B passed, comment 26069) on 2026-09-13 UTC.
Darkwing holds for piece 5 (darkwing on point; brief on the plan page, section "Piece 5") until Jason sends the start message, planned Sunday 2026-09-13. #1503 stays open until Jason rules on "who is waiting on me".
@@ -374,3 +583,5 @@ git history + Gitea issues.
- 2026-09-16 (coordinator, #1509 row 23): part 3 live: SearXNG container `mosaic-searxng` (image searxng/searxng:latest, settings in the data root, formats html and json, limiter off) on 127.0.0.1:8888; binding `tools.web` added (backup in the sage evidence dir); check ok; service restarted. Jason's first turn in #sage-admin searched, fetched who.is, listed the folder and wrote `vault/Businesses/naming.md`. Defect seen in the same exchange: his second message during the turn went to pi as a follow-up, pi folded it into the same run, the first answer was never posted and the second failed as settled-without-turn. Fixed in `engine-pi.mjs` (held prompts, one run each), fake pi now models real follow-up semantics, suite 52/52 node 129, round 3 pinned (comment 26361, aggregate e30c2319, tree dbd2ce9a), service restarted with the fix. Row 24 rulings: D5 seat identity with `[email protected]`, D6 push every commit (Jason: not pushing means stale data), D7 rev-code-02.
- 2026-09-18 (coordinator, #1509 rows 23–24): row 23 committed as 1685deb4 and pushed (`90cb31f5..1685deb4`) at Jason's word. Row 24 built: `src/git.mjs` (git_status, git_commit with explicit paths, seat author and `Requested-by:` trailer, push after every commit per D6, git_pull ff-only, git_push one branch; guard for branch, detached head, in-progress operations and conflicts; index must be empty so Jason's terminal work is never swept), `bin/git-credential.mjs` (the package's own helper: `get` over https from the 0600 token file, since `git-credential-mosaic` serves only the Gitea hosts and the global config routes github.com to Jason's `gh`), git children run with no host config; vault protocol (`protocol: "vault"`): per-write clone lock, `check` and `validate_vault.py` before a commit, `reserve_id`; the connector writes `requester="<server name>"` into the envelope and the extension reads it on `before_agent_start`. Suite 58/58, node 143. Review requested from rev-code-02; binding change and live check follow the verdict.
- 2026-09-20 (coordinator, #1509 row 25): part 2b built against shared-signals a5425a2. Eight fixed verbs for the model (record_list, record_get, record_create, record_update, resolve_id, open_approval_request, get_approval_request, create_document), the connector's own client for bind and add_approval, the envelope's author and message ids read by the extension for per-turn write keys. Button evidence per the SetSpark coordinator: the connector posts a confirmation line and submits its url and text; a reply is its own evidence. Sage's key is minted (id sage-3ff47150, file outside the repo, never read here). Suite 63/63, node 162. Review candidate frozen for rev-code-02 (aggregate 09140edc, tree 7872d8c5); Gitea answered 503 when the request was posted, so the post is queued and retried. Slip: a stray `git stash` during doc checks stashed the tree for under a minute; popped at once and verified, 44 files back, tests green.
- 2026-09-26 (sage, lead): Jason's ruling: Sage leads the project, Darkwing is a collaborating seat, more seats to follow, development stays in T3 for now. The fleet Sage seat that took Invoice Ninja coordination outside Jason's instructions is being decommissioned; moving work onto the new stack is the fix. Suites all green. Rows 24 and 25 pushed (1685deb4..43d7574d). Open: about 11 days of uncommitted agent work in the tree (row 16 launch files, row 22, #1512, WUI evidence), 23 untracked aws-* skill directories in skills/ from 2026-09-21, and Jason's target for the next phase.
+53 -4
View File
@@ -8,23 +8,65 @@ at every gate. Started 2026-09-12 during the control board MVP.
## Open
- **Inherited Discord engine test intermittency during #1512 review.** Frozen
serialized run recorded a tool-turn engine assertion failure and then timed
out at 120s. A later full TAP run with a 15s test deadline passed 351/351.
Rocko isolated the busy/settled-event test race and missing failure cleanup;
Darkwing independently reproduced the event-split assertion. Rocko also reported
a timeout-log test race and a separate engine followUp-after-timeout defect.
No live incident established. Row21 owner orch-01 notified; no Discord source
takeover. Not assumed identical to earlier concurrent hangs.
Integration held pending owner disposition; logs and scope in
`agents/darkwing/work/relaunch-activity/r1-review.md`. (2026-09-15)
Outcome 2026-09-26: 1685deb4 fixed the busy/settled race and the engine no
longer sends a follow-up (held prompts). A re-run of the frozen candidate
against 21e3e908 passed the serial acceptance command 397/397 three times.
Two engine failures remain when tests run concurrently, and they reproduce on
clean HEAD without the #1512 files, so they are #1509's (entry below). Sage
ruled that #1512 integrates on the serial evidence; it landed in af4203ca.
Record: `agents/darkwing/work/relaunch-activity/rerun-2026-09-26.md`.
- **Discord engine: leaked fake pi on a failed test, and a timeout gap in
`busy`.** (a) `engine.test.mjs:100` reads the fake's `commands.jsonl` 20 ms
after the second prompt and gets ENOENT under load. The test stops the engine
outside `finally`, so the fake pi child outlives it and the test file never
exits. Six other tests in the file also stop outside `finally`. This is one
confirmed cause of the concurrent hangs in the entry below. (b) In
`engine-pi.mjs`, `busy` is `state.busy || pending.some((t) => !t.done)`. If a
turn times out before its `agent_start` is read, the turn is marked done while
`state.busy` is still false. The next prompt then goes straight to pi, which
refuses it ("agent is streaming"). It fails closed, and production timeouts
are long enough to make it rare. Seen twice in two default-concurrency runs,
and once in three on clean HEAD. Fix in source and tests only; the live
connector does not restart for this without Jason's word. Rocko reviews.
(2026-09-26, #1509, Darkwing)
- **Combined concurrent test hangs need isolation.** Row18 R1 frozen six-package runs timed out at 120s/60s, with logs in `/tmp/discord-board-r1-KbMrGQWF/TESTS-first-timeout.txt` and `TESTS-second-timeout.txt`. Serialized R3 independently passes 322/322. Cause and default-concurrency stability remain unverified; investigate separately without changing connector behavior or calling interrupted runs green. (2026-09-14, #1509)
- **Registration has no "set by" field.** `mosaic seat task` records the
task and `updatedAt` but not who set it, so a human session and the
orchestrator look the same on the board. One-line record change; rides
with the orchestrator assignment piece. (2026-09-12, #1504)
- **Usage-limit notice was missed.** Jason reports Rocko exhausted usage without
Jason seeing the notice, and is now available again. Investigate where the
notice appeared and what operator notification is missing as part of Claude
console integration. User-reported, not independently reproduced; no root
cause established. Keep outside #1512's relaunch-display scope. (2026-09-15)
- **Claude Code seats register but get no board row.** Rocko has no Pi
session log, and rows come only from Pi logs. Needs a second row source
or a Claude-side log reader. (2026-09-12, darkwing's #1504 report)
2026-09-15 #1511 live-test preflight reconfirmed no Rocko row: expected
`.pi/state/rocko/sessions` discovery directory absent. Its existing repo
registration names dead PID 185602, while the verified native lock owner is
3707667. No registration repair, discovery expansion or relaunch performed;
test write refused before mutation. Evidence:
`agents/darkwing/work/task-attribution/backend-live-verification.json`.
- **Fleet seats (`~/.mosaic`) stay on the old launchers.** No registration,
no board reply, no `seat task`. Moving them is the stress test and comes
after the WebUI and fleet launch work. (Jason, 2026-09-12)
- **Sage launcher hook is uncommitted.** `agents/sage/` is untracked; the
registration guard was added by hand to match the other four. Commit with
the sage directory. (2026-09-12)
- **Relaunched seat shows the old last message.** Pi resumes the newest log,
so the row's activity stays stale until the first message; only the
registration's `startedAt` shows the relaunch. Refinement: "relaunched at
X, no messages since". (darkwing, Step 3 log, 2026-09-12)
- **Comms skill has no rule for senders without a pane.** The board trailer
covers it today; if another pane-less sender appears, put the rule in
`skills/ms-communications` instead of a second trailer. (2026-09-12, #1505)
@@ -66,6 +108,12 @@ at every gate. Started 2026-09-12 during the control board MVP.
nodes. Launch, observe, stop, full transcript navigation, command palette and
other screens are absent. Existing palette/appearance switches remain on the
single page. Revisit only with a new brief. (2026-09-13 UTC, #1507)
- **Ledger counts T3 agent messages as human.** `messageKind` classifies a
prompt that opens with the T3 header `[from: x (…) -> to: …]` as human, so
the weekly number in Table 2 rises once development runs in T3. Rocko
reproduced it read-only, and Filbert confirmed it. The Gate G audit (#1508 R5) does not rely on
this count. Fix it before the next weekly number is quoted. (2026-09-26 UTC,
#1506)
## Queue
@@ -74,3 +122,4 @@ Moved to `docs/plans/QUEUE.md` on 2026-09-13. This file holds only gaps.
## Done
- Ledger (piece 3, #1506): shipped cd0aa5fb, Gate D written 2026-09-12 (18.9 human messages per closed issue).
- Relaunched seat shows the old last message (darkwing, Step 3 log, 2026-09-12): closed by #1512 relaunch activity, af4203ca. Filbert authored it; Darkwing and Dewey reviewed. The live board restart and Gate F remain separate.
+41 -10
View File
@@ -10,7 +10,7 @@ How to find your next thing:
- **A seat**: the first row where Owner is you and State is `in progress`,
`in review` or `briefed`. If there is none, you have nothing; say so on the
board and stop.
- **Coordinator (Claude session)**: update this table at every gate, before
- **Sage, project lead** (Jason's ruling 2026-09-26; Darkwing before that): update this table at every gate, before
anything else is written. CURRENT.md is the narrative log; this table wins
if they disagree.
@@ -24,16 +24,28 @@ Gaps found while working go to `docs/plans/DEFERRED.md`, not here.
## Pieces (in order)
Lead: Sage from 2026-09-26 (Jason's ruling); Darkwing is a collaborating seat.
Jason is preparing the target for the next phase; until it arrives, the
priority below stands.
Current owner priority: row 6, the next already-briefed coordination item after
Jason accepted row 18. His newer standing continuation instruction supplies the
start; the earlier row-18-only priority is complete. Jason requires
automatic continuation to the next authorized item after each accepted iteration;
no routine next-step prompt. Explicit dependencies and protected-action gates remain. Use the five internal agents, not fleet seats. No
`~/.mosaic` changes or live fleet migration. Rows 9-13 still depend on row 6;
this does not waive those dependencies or authorize publication/access changes.
| # | Piece | Owner | Issue | State | Gate | Brief |
|---|-------|-------|-------|-------|------|-------|
| 1 | Control board MVP (scanner + page) | darkwing | #1503 | Jason: rule whether the page answers "who is waiting on me" without a terminal; then close #1503 and mark MOSAIC-STACK-D-001 completed | A passed 2026-09-12 | plan page, top |
| 1 | Control board MVP (scanner + page) | darkwing | #1503 | targeted status correction fully operator accepted in row 22; broader MVP ruling remains separate | A passed 2026-09-12 | plan page, top |
| 2 | Seat registration and `mosaic seat task` | darkwing | #1504 | done 2026-09-13 | B passed 2026-09-12 | plan page, Step 3 |
| 3 | Reply-from-board (piece 2 on the plan page) | darkwing | #1505 | done 2026-09-12 | C passed 2026-09-12 | plan page, "Piece 2: reply-from-board" |
| 4 | Ledger (piece 3 on the plan page) | darkwing | #1506 | done 2026-09-13 | D: 18.9 human messages per closed issue, week of 2026-09-06 | plan page, "Piece 3: ledger" |
| 5 | WebUI first screen on the Console design (piece 4 on the plan page) | dewey; filbert reviews | #1507 | Jason: use WebUI Monday and give Gate E ruling; ea00ec66 published, Filbert approved, committed-tree 208/208 | E: Jason works Monday 2026-09-14 from the WebUI without the terminal | plan page, "Piece 4: WebUI first screen (Console)" |
| 6 | Darkwing on point: darkwing assigns and gates filbert's work (piece 5 on the plan page) | darkwing | none yet | briefed; Jason: send the start message from the board on Sunday 2026-09-13 | F: filbert's item closes with zero human messages from Jason | plan page, "Piece 5: darkwing on point" |
| 5 | WebUI first screen on the Console design (piece 4 on the plan page) | dewey; filbert reviews | #1507 | CHAT-00/01/01C contracts published (370823b3, 28d4e98a, b023841c); CHAT-02..08 not chartered; Gate E blocked | E: all-seat interactive demonstration then Jason workday ruling; live cutover separately approved | `2026-09-13_webui-session-chat.md`, CHAT-00..08 |
| 6 | Darkwing on point: darkwing assigns and gates filbert's work (piece 5 on the plan page) | darkwing; filbert authors pilot; darkwing/dewey review | #1511 code phase; #1512 pilot | #1511 and #1512 committed locally in af4203ca (with rows 18 and 22), not pushed; #1512 re-run against 21e3e908 passed the serial acceptance command 397/397 three times; failures under concurrency are #1509 engine tests, reproduced on clean HEAD, filed in DEFERRED; #1512 closes after Sage's records commit; board restart for live #1512 and the Gate F live assignment wait on Jason | F: filbert's item closes with zero human messages from Jason; code phase does not claim Gate F | `2026-09-15_relaunch-activity.md`; `2026-09-14_task-attribution.md`; plan page Piece 5 |
| 7 | Weekly ledger run and rails number | Jason | — | recurring, end of Monday 2026-09-14 | under 10 human messages per closed issue for the week of 2026-09-13 | `packages/ledger/README.md` |
| 8 | Fleet seats (`~/.mosaic`) onto `mosaic launch` | unassigned | — | queued; not before row 6 is done | Jason's call | none yet |
| 8 | Fleet seats (`~/.mosaic`) onto `mosaic launch` | unassigned | — | parked by current owner direction; no `~/.mosaic` changes during internal bootstrap | Jason's call | none yet |
| 9 | Queue as data: `docs/plans/queue.json`, `mosaic queue` is the only writer | darkwing; filbert reviews | #1508 | required; starts when row 6 is done, before row 8 | G: a fresh seat told only "run `mosaic queue next` and do it" starts its piece with zero human messages | `2026-09-13_queue-as-data.md`, Piece A |
| 10 | Seats read the queue, not CURRENT.md (AGENTS.md cadence, seat context files) | coordinator | #1508 | required; AGENTS.md lines done 2026-09-13, rest after row 9 | verified by Gate G | `2026-09-13_queue-as-data.md`, Piece B |
| 11 | Brief template `docs/plans/BRIEF-TEMPLATE.md`; `queue add` refuses a missing brief | darkwing | #1508 | required; with row 9 | two briefs accepted by Jason with no scope question | `2026-09-13_queue-as-data.md`, Piece C |
@@ -41,14 +53,16 @@ Gaps found while working go to `docs/plans/DEFERRED.md`, not here.
| 13 | Ledger "queue" section: issue/row/seat drift printed with the weekly number | darkwing; filbert reviews | #1508 | required; after row 9 | first run Monday 2026-09-21, zero violations or every one moved same day | `2026-09-13_queue-as-data.md`, Piece E |
| 14 | Discord connector pilot: Sage answers in Shared Signals (chat only, no tools, no repo writes) | coordinator; Filbert or orch-01 seat reviews | #1509 | done: rev-code-02 APPROVE 26170 (round 9), committed 786e379c; pilot steps 1-8 done with private receipts, Gate H passed (Jason, 2026-09-13: replies read as Sage); connector left running for MVP iteration | H: offline suite green, eight-step live pilot with private receipts, then Jason says the reply reads as Sage | `2026-09-13_discord-connector-pilot.md` |
| 15 | Discord connector: eyes reaction on every admitted message as a read receipt (MVP iteration 1) | coordinator | #1509 | done: committed 93d6b624, live check passed 19:21 UTC (turn record receipt ok, Jason: test is successful), receipt `mvp1-read-receipt-20260913T192158Z.json` in the private evidence dir; `rest.react` best effort, reaction placed at admission before the engine runs, outcome in the turn record, no reaction on drops or refusals; `scripts/test-discord.sh` 28/28 (90 node tests) | Jason sees the reaction on a live message | `2026-09-13_discord-connector-pilot.md` section 11 |
| 16 | Repository-native development bootstrap: five internal agents, Darkwing coordination | darkwing; filbert reviews | #1510 | source approved by internal Filbert, exact R1 receipt 26204; six offline tests independently pass in both copies; 24 config tests and five no-effect checks are author evidence | source approved; Researcher live response passed 26216; existing native Rocko lock preserved, no new Rocko model test; no MVP acceptance/publication | `2026-09-13_internal-development-bootstrap.md` |
| 17 | Discord connector: systemd user service with a supervised pre-start (`recover`, exit 3 never retried) (MVP iteration 2) | coordinator | #1509 | done, operator-verified by Jason 2026-09-13 (all four steps): `scripts/test-discord.sh` 40/40 (95 node tests); Sage seat migrated 19:35 UTC, SIGKILL recovered in 16 s with the dead lock cleared, brake held (exit 3, no restart), released and READY; receipt `mvp2-service-unit-*.json` in the private evidence dir. First cut (ExecStartPre) looped and was replaced by `run --supervised` before any traffic | the Sage connector runs under `mosaic-discord@shared-signals`, survives a kill with a clean restart, and stays down behind `discord.sh stop` | `2026-09-13_discord-connector-pilot.md` section 11 |
| 18 | Control board row for the Discord connector (MVP iteration 3): discovery from binding files, liveness from run.lock, reply refused | darkwing (Jason's ruling 2026-09-13); coordinator answers connector-side questions | #1509 | briefed; assigned to darkwing, not started | a Sage (discord) row on the board shows live, offline and braked correctly, and reply from the board is refused | `2026-09-13_discord-connector-pilot.md` section 11 |
| 18 | Control board row for the Discord connector (MVP iteration 3): discovery from binding files, liveness from run.lock, reply refused | darkwing (Jason's ruling 2026-09-13); coordinator answers connector-side questions | #1509 | done for bounded local delivery; Jason accepted visual test (parfait), R3 26257 reviewed, 322 tests and live 409 refusal verified; no publication or live connector state transitions claimed | a Sage (discord) row on the board shows live, offline and braked correctly, and reply from the board is refused | `2026-09-14_discord-board-row.md`; original pilot section 11 |
| 19 | Discord connector: binding reload without a restart (`reload` verb, SIGHUP, `systemctl --user reload`); channels, users, limits and guildName apply in place, identity, engine and context stay fixed, an invalid file is refused and the old binding kept (MVP iteration 4) | coordinator | #1509 | done: caaef941; live 00:03 UTC: reload applied Carmen's entry with no restart, unknown key refused by the CLI (exit 2), fixed key refused in the process with the binding kept, `systemctl --user reload` applied; suite 41/41 (101 node tests); receipt `mvp4-5-reload-carmen-*.json` | edit the binding, run `scripts/discord.sh reload shared-signals`, the change applies with no restart, a broken edit is refused and journaled | `2026-09-13_discord-connector-pilot.md` section 11 |
| 20 | Discord connector: per-user channel allowlist in the binding and Carmen enrolled (all listed rooms except #sage-admin) (MVP iteration 5) | coordinator | #1509 | done: caaef941 (`users[].channels` allowlist, `channel-not-for-user` drop); Carmen enrolled live by reload 00:03 UTC; her first message is the remaining check | Carmen gets a reply in #general and silence in #sage-admin; Jason unchanged | `2026-09-13_discord-connector-pilot.md` section 11 |
| 21 | Discord connector: read-only tools for the Discord Sage through a Mosaic pi extension confined to declared roots (MVP iteration 6) | coordinator; reviewer per Q12 | #1509 | approved: rev-code-02 round 2 verdict 26276 (tree 43f0329b); committed locally; live check in #sage-admin with Jason next; Jason ruled R1–R7 2026-09-14 (roots docs/ and agents/sage/, Carmen included) | Sage answers a question from a file under a declared root with the reads in the turn record; a read outside the roots is refused and recorded | `2026-09-14_discord-readonly-tools.md` |
| 23 | Discord connector: writes confined to the `shared-signals` root plus web fetch and search for the Discord Sage (MVP iteration 7) | coordinator; reviewer per Q12 | #1509 | in review: parts 1 and 2 (writes, web fetch and search) built 2026-09-16, suite 52/52, node 128; round 3 pinned for rev-code-02 on #1509 comment 26361 (supersedes rounds 1–2; adds the engine held-prompt fix); part 3 done live 2026-09-17 (SearXNG container on loopback, binding web key, restart; first live turn searched, fetched and wrote vault/Businesses/naming.md); Jason ruled D1–D4 2026-09-16 (SearXNG, Jason and Carmen write, any https host, rev-code-02) | Sage writes a naming shortlist into the repository from #ideas with the write and web calls in the turn record; a write outside the root is refused | `2026-09-16_discord-write-and-web-tools.md` |
| 24 | Discord connector: git verbs (status, commit, pull ff-only, push) for the Discord Sage on the `shared-signals` root, seat identity through the existing credential helper (MVP iteration 8) | coordinator; reviewer per Q12 | #1509 | done 2026-09-18: built (src/git.mjs, bin/git-credential.mjs, extension params, envelope requester, context paragraph, vault protocol via reserve_id and per-write locks); suite 58/58, node 143; rev-code-02 APPROVED round 1 (#1509 comment 26375, tree 82ab962f); D5 mechanism changed: the fleet helper declines github.com, so the package ships its own credential helper reading the 0600 seat token file; binding change and live check next | Sage commits and pushes a decision file from #ideas; GitHub shows Sage as author with a Requested-by trailer; no token in any record | `2026-09-16_discord-git-tools.md` |
| 25 | Discord connector: SetSpark record client for the Discord Sage, fixed verbs against setspark-api, connector-verified approvals (MVP iteration 9) | coordinator; reviewer per Q12 | #1509 | in progress 2026-09-20: Jason's go relayed by the SetSpark coordinator (plan v3.2, shared-signals 55b2515); part 2a built (config, key read per call, HTTP core, approval ledger, Approve button and `approve` reply resolution, bind and approval submission with restart retry); part 2b built against shared-signals a5425a2 (eight model verbs, connector client, button evidence by confirmation message); node 162 pass, suite 63 passed; rev-code-02 APPROVED round 1 (#1509 comment 26467, tree 7872d8c5); binding change and live check next | Sage creates one work item from #sage-admin and the API shows it with revision 1; a proposal is approved by the Approve button and the audit row carries Sage's key id and Jason's Discord id separately; rev-code-02 approves on #1509 | `2026-09-20_discord-setspark-client.md` |
| 22 | Board attention status: completed replies idle, explicit human input waiting | darkwing; filbert reviews | #1503 | source approved, receipt 26248; reviewer 193 per copy, author union 213 pass; actual Researcher scan idle | operator accepted full targeted status sequence: explicit request waiting, Seen hides attention but preserves waiting, completion returns idle; broader MVP/cross-harness acceptance and publication separate | `2026-09-13_board-attention-status.md` |
| 23 | Discord connector: writes confined to the `shared-signals` root plus web fetch and search for the Discord Sage (MVP iteration 7) | coordinator; reviewer per Q12 | #1509 | committed and pushed 1685deb4 (2026-09-18); operator check pending. Earlier: parts 1 and 2 (writes, web fetch and search) built 2026-09-16, suite 52/52, node 128; round 3 pinned for rev-code-02 on #1509 comment 26361 (supersedes rounds 1–2; adds the engine held-prompt fix); part 3 done live 2026-09-17 (SearXNG container on loopback, binding web key, restart; first live turn searched, fetched and wrote vault/Businesses/naming.md); Jason ruled D1–D4 2026-09-16 (SearXNG, Jason and Carmen write, any https host, rev-code-02) | Sage writes a naming shortlist into the repository from #ideas with the write and web calls in the turn record; a write outside the root is refused | `2026-09-16_discord-write-and-web-tools.md` |
| 24 | Discord connector: git verbs (status, commit, pull ff-only, push) for the Discord Sage on the `shared-signals` root, seat identity through the existing credential helper (MVP iteration 8) | coordinator; reviewer per Q12 | #1509 | committed 1949ed8d, pushed 2026-09-26; binding change and live check pending. Earlier: done 2026-09-18: built (src/git.mjs, bin/git-credential.mjs, extension params, envelope requester, context paragraph, vault protocol via reserve_id and per-write locks); suite 58/58, node 143; rev-code-02 APPROVED round 1 (#1509 comment 26375, tree 82ab962f); D5 mechanism changed: the fleet helper declines github.com, so the package ships its own credential helper reading the 0600 seat token file; binding change and live check next | Sage commits and pushes a decision file from #ideas; GitHub shows Sage as author with a Requested-by trailer; no token in any record | `2026-09-16_discord-git-tools.md` |
| 25 | Discord connector: SetSpark record client for the Discord Sage, fixed verbs against setspark-api, connector-verified approvals (MVP iteration 9) | coordinator; reviewer per Q12 | #1509 | rev-code-02 approved round 1 (#1509 comment 26467); committed 43d7574d, pushed 2026-09-26; live check pending. Earlier: in progress 2026-09-20: Jason's go relayed by the SetSpark coordinator (plan v3.2, shared-signals 55b2515); part 2a built (config, key read per call, HTTP core, approval ledger, Approve button and `approve` reply resolution, bind and approval submission with restart retry); part 2b built against shared-signals a5425a2 (eight model verbs, connector client, button evidence by confirmation message); node 162 pass, suite 63 passed; next: rev-code-02 review on #1509, local commit | Sage creates one work item from #sage-admin and the API shows it with revision 1; a proposal is approved by the Approve button and the audit row carries Sage's key id and Jason's Discord id separately; rev-code-02 approves on #1509 | `2026-09-20_discord-setspark-client.md` |
Start message for row 6, sent from the board to darkwing:
"Read docs/plans/QUEUE.md, then the plan page section "Piece 5: darkwing on
@@ -62,7 +76,7 @@ Gate F or when blocked."
| Registry increment 3 (headless identity-env leak) | #1500 closed on increment 2; Jason has not asked for 3 | CURRENT.md, "#1500 increment 2 (historical)" |
| Auth/provider/harness registry review | Paused for owner alignment | `docs/plans/2026-09-03_auth-provider-harness-registry.md` |
| CI runners, second real adapter, push automation | Deferred by owner 2026-09-03 | `docs/plans/ROADMAP.md`, "Explicitly deferred" |
| Console screens beyond the first (launch, observe, stop, transcript, palette) | Needs a new brief after Gate E | DEFERRED.md |
| Console features outside the refined session-chat brief, including Fresh creation and model switching | Deferred by WEBUI Q1; required history/control/stop now belong to row 5, not this parked item | `2026-09-13_webui-session-chat.md` |
| Open gaps from the MVP work | Fixed only when a gate needs them | DEFERRED.md, "Open" |
## Log of table changes
@@ -72,6 +86,9 @@ Gate F or when blocked."
- 2026-09-13 — dewey: WebUI row advanced to Jason-owned Gate E after Filbert approval, exact committed-tree 208/208 and remote-verified ea00ec66 publication. No other row changed.
- 2026-09-13 — rows 9 to 13 now point at the plan page `2026-09-13_queue-as-data.md` (pieces A to E, Gate G).
- 2026-09-13 — dewey: Jason feedback blocks WebUI Gate E pending refinement; project/session chat navigation, two-way conversation and relative activity age required. Durable #1507 comment 26082; no implementation begun.
- 2026-09-13 — coordinator: row 14 added (Discord connector pilot for Sage on Shared Signals), briefed, unassigned, waiting on Jason for decisions D1-D7. No other row changed.
- 2026-09-13 — coordinator: row 14 moved to in progress (#1509) after Jason ruled Q1-Q27 through ms-grill-me. No other row changed.
- 2026-09-13 — coordinator: row 14 moved to in review; package, suite, wrapper, DISCORD-USER.md draft and README written, offline and existing suites green. No other row changed.
@@ -88,6 +105,10 @@ Gate F or when blocked."
- 2026-09-13 — coordinator: row 15 moved to in verification; committed 93d6b624, connector running the new code, waiting for Jason's live message to show the reaction. No other row changed.
- 2026-09-13 — coordinator: row 15 done; live reaction confirmed by Jason and by the turn record. No other row changed.
- 2026-09-13 — coordinator: rows 14–15 pushed on Jason's authorization (788515dc..dc5902aa to origin/refactor). No other row changed.
- 2026-09-13: Darkwing recorded Jason's repository-native development priority as row 16, #1510. Darkwing coordinates the five internal agents; row 8 is held with no ~/.mosaic changes. CHAT-01C row 5 access text corrected to current push:true but Git HTTP 403. R1 26201 sent to default-socket Filbert for independent source review. Other owners' rows preserved.
2026-09-13: #1510 internal Filbert APPROVE AS SOURCE for exact R1, manifest SHA256 23a27014ce6f04ce8187d8495b2efe62b814c3c7d041b027f99b1ec4d490709d. Both verdict and subsequent nine-file hash supplement agree with frozen candidate. Darkwing persisted attributed approval and all nine pins through verified Darkwing API identity, receipt 26204. Filbert independently passed six fake-engine tests in working and frozen copies; five no-effect startup checks and config 24/24 remain author evidence. No live interoperability, publication or user acceptance claimed. Reviewed source/charter left unchanged; prior owners retain their edits.
- 2026-09-13 — coordinator: row 17 added, in verification (Discord service unit, iteration 2 on Jason's "proceed as suggested"). No other row changed.
- 2026-09-13 — coordinator: row 17 done; the Sage connector runs under systemd, kill and brake checks passed live. No other row changed.
- 2026-09-13 — coordinator: row 18 added, briefed; board-side work in darkwing's package, owner for Jason to rule. No other row changed.
@@ -97,6 +118,12 @@ Gate F or when blocked."
- 2026-09-13 — coordinator: rows 19 (binding reload) and 20 (per-user channels, Carmen) added on Jason's "proceed in order"; row 19 in progress. No other row changed.
- 2026-09-13 — coordinator: rows 19–20 done (caaef941, live reload 00:03 UTC, Carmen enrolled); Carmen's first message pending as the operator check. No other row changed.
- 2026-09-14 — coordinator: row 21 (read-only tools) briefed on Jason's "let's move to tools"; Carmen's test deferred by Jason; waiting on D1–D3 in the brief. No other row changed.
- 2026-09-14 — coordinator: row 21 rulings in (brief section 7); building the extension, engine settle change and binding key.
2026-09-14T00:09:08.161174+00:00 | Darkwing | #1503 board attention correction, row 21 | Jason approved idle for completed replies and waiting only for explicit human-input requests after reporting screenshot step-5 failure. New tests reproduced two failures before scanner correction. Phase entry recorded after implementation, not represented as an earlier entry. Working and frozen four-package suites now pass 144 tests each. Read-only actual Researcher scan returns alive:true, idle, waitingOnYou:false at lastActivity 2026-09-13T21:19:57.102Z. Explicit Input needed first-line convention, precedence and Seen lifecycle documented/tested; downstream fixture change acknowledged by Dewey. R1 26247 posted/read back as Darkwing and sent to internal Filbert, application verdict pending. No running-board restart, home launcher edit, agent restart or publication.
2026-09-14T13:08:27.885681+00:00 | Darkwing | Queue collision correction | Git c4fc8e7d and index independently confirmed Discord read-only tools already owned row 21. Restored that committed row verbatim, moved Darkwing attention status to row 22, updated active CURRENT/charter/row1 cross-references. Historical row-21 attention mentions now refer to row 22; append-only logs and frozen review snapshots not rewritten. Unique ordered IDs 1-22 verified. No staging, commit, source/service changes or changes to coordinator-owned tools brief. Row21 newer work status remains coordinator-owned; no status inferred from this restoration. Incoming source label unverified has no established return address; acknowledgment routing unresolved.
- 2026-09-14 — coordinator: row 21 rulings in (brief section 7), built and approved by rev-code-02 (26276); suite 48/48, 116 node tests; committed locally, live check next. No other row changed.
- 2026-09-16 — coordinator: row 23 added and briefed (Discord writes and web, Jason: "A + web"); Discord profile Q16 line replaced by Jason's word and Sage restarted. No other row changed.
- 2026-09-16 — coordinator: row 23 part 1 (write_file, edit_file confined to roots marked write: true; extension renamed tools.mjs) built and pinned for rev-code-02 round 1; Discord Sage's stale pi session archived and the service restarted so old Q16 refusals stop repeating.
@@ -105,7 +132,11 @@ Gate F or when blocked."
- 2026-09-16 — coordinator: row 23 part 3 live (SearXNG container mosaic-searxng on 127.0.0.1:8888, binding web key, restart); Jason's first web turn worked end to end but exposed a live defect: a second message during a turn was sent as a pi follow-up and lost the first answer. Engine now holds it until pi settles. Suite 52/52, node 129; round 3 pinned as #1509 comment 26361; service restarted with the fix. Row 24 rulings D5–D7 recorded.
- 2026-09-17 — coordinator: shared-signals-05 briefed the new id registry and file lock protocol (jetrich/shared-signals 8f0d946); folded into the row 24 brief section 6 (validate before commit, reserve_id tool, per-write clone lock, explicit-path staging). No row changed.
- 2026-09-18 — coordinator: row 23 pushed on Jason's word ("push as well"): refactor 90cb31f5..1685deb4, seven commits, identity jarvis. Row 24 built and under test: four git verbs plus reserve_id, package credential helper (the fleet helper cannot serve github.com), requester in the envelope, explicit-path staging; suite 58/58, node 143; review requested from rev-code-02 on #1509.
- 2026-09-18 — coordinator: Jason's decision, relayed by the SetSpark record-system coordinator (thread 8543de4b, confirmed by Jason as acting on his authority): record authority moves from the Git vault to NocoDB (structured records) plus Outline (prose) on VM 1022, Pocket ID identity. This session is Sage's client: an HTTP tool module with fixed verbs, a fine-grained token from a 0600 file, output caps and one journal entry per call, built after that coordinator's plan is reviewed. Row 24 git verbs stay live until cutover; the vault becomes a read-only mirror after. Verb list and audit columns sent to the coordinator. No row change yet; a row 25 brief follows their plan.
- 2026-09-20 — coordinator: SetSpark plan v3 reviewed (Phase 2 rules, Phase 3 verbs); all eight objections from the v2 review adopted; answered "phase 3 ok" with two non-blocking notes. Write target is setspark-api at api.setspark.io; row 25 brief waits on the accepted plan.
- 2026-09-20 — coordinator: plan v3.1 committed on shared-signals main (361380c). Approval flow for row 25: open_approval_request on proposal post; the connector resolves the Approve button or an exact "approve" reply, checks the required-approver list, and submits request id, author id and message id. REF-045 conflict cleared by the REF-047 renumber (9287d49); row 24 live check unblocked. Phase 3 code waits on Jason's go.
- 2026-09-20 — coordinator: Jason's go for phase 3 relayed (plan v3.2, shared-signals 55b2515). Row 25 part 2a built: setspark.mjs (config, key read per call, HTTP core, refusal rendering), approvals.mjs (ledger, reply and button resolution), connector posts the request message with the button, binds it, submits approvals, retries unknown ones on start. Tests 157 node, suite 62. Part 2b waits on stack/api/openapi.json. Contract needs (open without a message, bind, add_approval with request id, author id, message id) sent to the coordinator and adopted, with bound_message_id added on add_approval and a request_stale code; openapi.json being regenerated.
- 2026-09-20 — coordinator: contract committed (shared-signals a5425a2). Row 25 part 2b built: eight model verbs (record_list, record_get, record_create, record_update, resolve_id, open_approval_request, get_approval_request, create_document; get_counters left out), the connector's api client (bind, add_approval with kind button or reply, get), the envelope's author and message ids read by the extension for the write keys. Coordinator's ruling on button evidence: the connector posts a confirmation line and submits its url and text as source_url and statement; a reply is its own evidence. Node 162, suite 63. Next: rev-code-02 review on #1509, then a local commit.
- 2026-09-26 — sage (lead): Jason made Sage the project lead and Darkwing a collaborating seat. Rows 23–25 states reconciled with git: 1685deb4, 1949ed8d and 43d7574d are all on origin/refactor (the last two pushed today at Jason's word); each row's live check is still open. No other row changed.
- 2026-09-26 — dewey: row 5 State corrected to git; b023841c (CHAT-01C) is on origin/refactor, so the held-publication and HTTP 403 text was stale. CHAT-02..08 held pending Jason via Sage. No other row changed.
- 2026-09-26 — darkwing: row 6 State updated. #1511 and #1512 committed locally in af4203ca at Sage's ruling, on the serial acceptance evidence; the concurrency-only engine failures are filed against #1509. No other row changed.