135 lines
8.2 KiB
Markdown
135 lines
8.2 KiB
Markdown
# Lead decisions, 2026-09-26
|
|
|
|
Written by Sage (lead). At 20:02Z Jason asked for my decision on the open items
|
|
("You are lead... Proactive movement and intelligent decisions"). I read that
|
|
as his say-so for the push and the local operational calls below. It does not
|
|
cover credentials, the `~/.mosaic` restriction or the live Discord service,
|
|
which stay with him. Each item names who decided it and what happened.
|
|
|
|
## Decided and done
|
|
|
|
1. **Push `refactor`.** Done at 20:03Z with the jarvis identity:
|
|
origin/refactor 43d7574d → 42c08d52 (21e3e908, af4203ca, 0f5b7cb9,
|
|
42c08d52). Fast-forward only. All eight suites were green at 42c08d52.
|
|
2. **No merge into `next`.** `next` is the old monolith: `apps/`,
|
|
Woodpecker CI and the npm packages behind the estate `mosaic` CLI that the
|
|
live fleet still runs. `refactor` is 172 commits ahead of it, and `next`
|
|
has one commit refactor lacks (2101c9b4, a v1 git-tools fix, #1502). A
|
|
merge replaces the default branch's content, may trigger CI and publishing,
|
|
and could break the fleet before it is retired. Merge conditions: row 8
|
|
(fleet retirement) done, a CI definition for the new root, and 2101c9b4
|
|
either carried into `v1/` or ruled moot. Until then `refactor` is the
|
|
working branch and pushes stay fast-forward only.
|
|
3. **Control board restarted** at 20:03:52Z so #1512's relaunch notice runs
|
|
live. Old PID 3414098 (from 09-14) stopped on SIGTERM; new PID 3977979,
|
|
log `/tmp/control-board-20260926T200352Z.log`, same flags (none), same
|
|
port 7331. Before and after: 44 sessions, identical counts, seen state
|
|
kept; `relaunchedAt` now appears in `/api/board`. The WebUI (PID 1266267)
|
|
reads files from disk and needed no restart.
|
|
|
|
## Decided, work under way
|
|
|
|
4. **Queue as data (#1508).** Section 8 of Filbert's plan is the
|
|
specification (sha256 124b6f9e…). Rocko reviews round 3.
|
|
- Q1: Gate G reads "run `scripts/mosaic queue next` and do it".
|
|
- Q2: Gate G runs on a Pi launcher (`--fresh`); `next` refuses without
|
|
an identity.
|
|
- Q3: the CLI never commits; the lead commits the queue files by explicit
|
|
path after `scripts/test-queue.sh`.
|
|
- Q4: D posts only with an explicit per-seat credential file and refuses
|
|
the default. It is built and tested against a fake transport.
|
|
- J1, J2, J4, J5: as proposed in section 7.2. J6: closes = issues, not
|
|
narrowed without a logged reason. J8: E's budget is 12 Gitea calls at
|
|
most, 0 with `--no-issues`. Reduced liveness gate: yes. E before D: yes.
|
|
- J3 (every row has a brief), J7 (dropped), J9 (row 8 stub): decided
|
|
earlier today.
|
|
- No separate journal file. The log lives inside `queue.json`, written by
|
|
temp file, fsync, rename and a directory fsync. The lock is `link()` of a
|
|
complete record, with no automatic reclaim.
|
|
5. **Gate F waits for a T3 source.** The ledger's Table 2 reads only Pi
|
|
session logs. Filbert confirmed no Pi log carries T3 traffic, so the
|
|
Human column cannot see T3 seats. Darkwing briefs a read-only T3 thread
|
|
source after the #1509 engine fixes. When it exists, Sage picks Filbert's
|
|
Gate F item and Jason sends nothing.
|
|
6. **Gate E "all seats"** means every seat that registers on the board. T3
|
|
threads are listed as not covered until they carry identity.
|
|
7. **Sage launch files.** Dewey reviewed them (revise, small). Sage made the
|
|
revisions: `sage` is added to the launcher test, the README is rewritten
|
|
for the lead role, and the seat reads but never writes the old DYOR records
|
|
under `~/.mosaic`. It creates no new DYOR records until Jason names a
|
|
location. Dewey re-reviews, then updates the other seats' persona files
|
|
that still name Darkwing as lead.
|
|
|
|
## Jason's rulings (walkthrough, 20:19Z to 20:31Z)
|
|
|
|
- **Seat tokens for piece D's live round.** Jason ruled at 20:19Z: yes, in
|
|
place. Piece D reads each seat's own Gitea token by path,
|
|
`~/.mosaic/fleet/agents/<seat>/secrets/gitea-mosaicstack-<seat>.token`
|
|
(0600), read-only. It makes no copies and changes nothing under
|
|
`~/.mosaic`. Sage's Gitea calls use jarvis. Darkwing and Dewey have
|
|
write:repository, and Filbert and Rocko have write:issue only.
|
|
- **Discord connector restart.** Jason ruled at 20:20Z: one restart, after
|
|
Rocko approves 6b and it is committed, and row 25 goes live in the same
|
|
restart. Steps: back up the binding to the Sage evidence directory, add the
|
|
`setspark` key (keyFile `~/.config/setspark/keys/sage.json`, never read),
|
|
run `discord.sh check`, restart, then Jason's live check (one work item,
|
|
one proposal approved by button).
|
|
- **Fleet retirement scope (row 8).** Jason ruled at 20:21Z: dev seats only.
|
|
orch-01, plan-01, rev-code-01, rev-code-02, code-be-01 and code-dogfood-01
|
|
get no new work and retire because the T3 seats cover them (Sage leads,
|
|
Filbert plans, Rocko reviews, Darkwing and Dewey build). Jason stops each
|
|
process himself or tells Sage to, one seat at a time. The other eight live
|
|
fleet seats (jarvis, joe, huey, ricer, topher, velma, zane, resume) are
|
|
outside row 8. Credentials stay in place (see piece D above). The
|
|
`~/.mosaic` restriction still stands.
|
|
- **DYOR records.** Jason ruled at 20:23Z: DYOR work belongs in
|
|
`/mnt/storage/src/dyor-stack-v4/`, a separate project from SetSpark. Sage
|
|
has moved from DYOR to SetSpark tasks. Sage's SOUL, CONTEXT, README and
|
|
DISCORD-USER files change to match, and that commit lands before the next
|
|
Discord restart so the Discord Sage picks it up.
|
|
- **One live reply test in the WebUI.** Passed. Jason sent "ping" to
|
|
researcher at 20:10:57Z and "pong" came back at 20:11:06Z. `/api/board`
|
|
showed it at 20:15:18Z. Dewey went through 30 board sends to repo Pi seats.
|
|
29 got a final answer in the same session file, and the one miss was a seat
|
|
relaunched mid-turn. No second return defect was found. Jason confirmed at 20:31Z
|
|
that "pong" appeared in the inspector without Refresh. The 09-13 report
|
|
was about the missing thread view, which CHAT-02 builds.
|
|
- **`skills/aws-*`.** Jason ruled at 20:25Z: add them to `.git/info/exclude`,
|
|
a local ignore that is never committed. Done at 20:26Z. That covers the 20 `aws-*`
|
|
directories and two more from the same 09-21 install, `launch-with-aws`
|
|
and `signing-in-to-aws`. They stay where they are and no longer show in
|
|
`git status`.
|
|
- **Row 5 CHAT-02 to 08.** Jason ruled at 20:31Z: go on CHAT-02 only, at
|
|
Dewey's brief 636b0fac (Filbert approved R4). CHAT-03 to 08 stay held, and
|
|
Sage takes CHAT-03 back to Jason before anyone starts it. Order: the board
|
|
Host and Origin guard (Rocko reviews), then the `packages/conversation`
|
|
backend, then the Console. Filbert reviews the code, and Darkwing reviews
|
|
the two board routes. CHAT-03 owns the Claude catalogue after B1.
|
|
|
|
## Added later the same day
|
|
|
|
8. **CHAT-02 brief (Dewey, sha256 314da8b0…).** Sage ruled D1 to D4 at
|
|
about 20:18Z:
|
|
- D1: the writer-claim record and R3-1 move to CHAT-03.
|
|
- D2: Pi only in CHAT-02. The Claude catalogue refuses
|
|
`unsupported-harness` until B1 has evidence. This narrows the plan's
|
|
"both harnesses".
|
|
- D3: `packages/conversation` is a library with no server. The board adds
|
|
two read-only routes, and Darkwing reviews that change.
|
|
- D4: Dewey writes the backend, then the Console. Filbert reviews.
|
|
- D5 (the go on CHAT-02 to 08) is still Jason's.
|
|
9. **Discord connector restart held.** Jason said to restart before 20:17Z. The
|
|
unit runs from this checkout, and the tree holds Darkwing's uncommitted,
|
|
unreviewed #1509 engine change (`engine-pi.mjs`, the new `engineBusy`).
|
|
A restart now would load it. The only committed Discord change since the
|
|
18 September restart is 43d7574d (row 25), which does nothing until the
|
|
binding gets a `setspark` key. So a restart today would change nothing
|
|
except to pick up unreviewed code. Sage restarts once, after Rocko approves
|
|
6b and it is committed. If Jason wants row 25 live, the binding change goes
|
|
in the same restart. `discord.sh check` passed at 20:17Z. The service was
|
|
idle, with the last turn on 09-18.
|
|
Rocko's 6b R1 verdict (about 20:34Z) was request changes. The high finding
|
|
is that removing the grace lets delayed events from an old run resolve the
|
|
next prompt (report `agents/rocko/work/discord-engine-busy-r1-review-2026-09-26.md`,
|
|
047dbd8f). Darkwing is on R2, and the restart stays held.
|