Evidence for the STATE report Sage checked and filed in 88f3253d9 (sage-1151). The skills-enabled
tar stays out of git; it is the W0b restore point under $WIN only. No credential or Environment
values: unit reads record ExecStart only, and the P3 credential files were fake placeholders.
9.5 KiB
Merged B+C window, STATE report (W11)
Operator: Darkwing. Plan: agents/sage/work/window-plan/repin-merged-bc.md draft 9, sha256 523f20e03be8aa11
(commit c49de08e8). OLD 5fa9cc8f2c, NEW 89af38a83a.
Transcripts are in window/. Every stamp below comes from them. Written 2026-10-20 after W10 (mos-0922).
Outcome
NEW is live for mosaic-stack with its PM. The store is on 3i, and the tester listener is on 127.0.0.1:7333. W0 to W10 passed. Three plan deviations are recorded below, and Mos accepted each one. No stop condition fired and nothing was rolled back. The only stop in the window was the planned 15-minute coder stop at W9o.
Stamps and activations
| Step | Start (UTC) | Result | Activation id |
|---|---|---|---|
| pre / W0 | 01:33:05Z / 01:33:22Z | copy NEW, business-check OLD and NEW pass | |
| W0b backups | 01:33:51Z | business file and skills-enabled tar saved | |
| W1 + S1 | 01:34:42.608Z / 01:34:49.332Z | chief idle; S1 taken | |
| W2 status | 01:34:52.183Z | pointer OLD, check pass | |
| W3 plan | 01:34:58.880Z | exit 0 | |
| W4 unit read | 01:35:16.787Z | OLD units, no drop-ins | |
| W5 activate (mos-0910) | 01:37:08.484Z, end 01:37:11.255Z | exit 0, 3h to 3i, gate passed | 20261020T013708Z-89af38a83afa |
| W6 plugins set harness (tester) | 01:39:58.308Z | exit 0, transaction 0a63a1dc | |
| W7 pm-on (mos-0912) | 01:41:02.949Z, end 01:41:05.278Z | exit 0, gate passed, chief rc78c9700c8e9 launched | 20261020T014103Z-89af38a83afa |
| W8 skills carry (mos-0913, mos-0914) | 01:43:16.793Z | all seven match NEW | |
| W9 tester checks, coder, S2 | 01:44:03.003Z to 02:12:46Z | verified by Mos (mos-0918) | |
| W10 browser, 7332, P4 | 02:10:27.070Z to 02:15:46.240Z | pass with deviation 3 (mos-0920, mos-0922) | |
| W11 reads | after 02:16Z | W11.txt |
Backups and hashes
- Store backup:
~/.mosaic-dev/backups/stack/20261020T013708Z-89af38a83afa. STAMP 2026-10-20T01:37:08.917Z, SCHEMA 3h. SHA256SUMS sha256 ef78f7d4f4ea7dd9262393eea4b77f84928d9b945ad8585d471e877f85e169fc. bus.sqlite sha256 eadd96d0d10663a95034303b337933227f90ccbb2378b38afe1541f1e40e09d6. Itssha256sum -cwas OK at W5 and again at S2b, and the hash didn't change across S2b. - Rollback sets:
~/.mosaic-dev/state/stack-rollback/20261020T013708Z-89af38a83afa(W5) and.../20261020T014103Z-89af38a83afa(W7). - Business file before W6: 82e726b9c416ddeaac699580bfa3b2854a40597bfe481679a3e88cc133d830b0, with the same hash
in the W0b backup
~/.config/mosaic-dev/businesses/mosaic-stack.json.pre-window-20261020T013351Z. After W6: 1e49bdf05e62607972958f5b7298cfd600c7825812370e26d7c2a842f2af9b93 (actor tester, transaction 0a63a1dc).$WIN/harness.jsonsha256 77fd493ffc9f3901. - Skills restore point:
$WIN/skills-enabled-20261020T013351Z.tar, sha256 d124631408e3801c. - snapshot.mjs was 639fd28a2674aaa03ce824e3394b4052f21cdef7d6fa49bae61a9927ed341e67 before S1 and before S2.
Pointer
- Before (W2):
stack-active.jsoncopy5fa9cc8f2c, pm true, check pass, bus pid 1338933 since 2026-10-19T21:45:25.614Z, drift 149 commits. - After (W7b, and again at W11c): copy
89af38a83a, pm true, check pass for bus, Console and CLI, bus pid 1514133 since 2026-10-20T01:41:03.795Z, unit flags match the pointer. At W11c, drift is 7 commits.
Units (ExecStart only, no Environment values)
Before (W4):
- bus:
copies/5fa9cc8f2c66.../scripts/mosaic bus start mosaic-stack --pm, DropInPaths empty. - Console:
/usr/bin/node copies/5fa9cc8f2c66.../packages/webui/src/cli.mjs serve --checkout /mnt/storage/src/mosaic-stack --port 7332 --public-host mosaic.woltje.com --auth-header X-authentik-username --allow-user jason.woltje --send, DropInPaths empty.
After (W11a, W11b, W11d):
- bus:
copies/89af38a83afa.../scripts/mosaic bus start mosaic-stack --pm, WorkingDirectory the NEW copy, DropInPaths empty. active/running, MainPID 1514133, since 2026-10-19 20:41:03 CDT. - Console:
/usr/bin/node copies/89af38a83afa.../packages/webui/src/cli.mjs serve --checkout /mnt/storage/src/mosaic-stack --port 7332 --public-host mosaic.woltje.com --auth-header X-authentik-username --allow-user jason.woltje --send --tester-port 7333, DropInPaths empty. active/running, MainPID 1475392, since 2026-10-19 20:37:09 CDT. - W11e: healthz 7332 200, listening 127.0.0.1:7332 and 127.0.0.1:7333.
- P4 tunnel (W10i, W10j): ExecStart byte-identical to pre.txt:29, one spec
R:0.0.0.0:7332:127.0.0.1:7332, DropInPaths empty, active since 2026-10-13 08:40:19 CDT.
S1, S2, S2b
S1 at 01:34:49.332Z on 3h, S2 at 02:05:17.993Z on 3i. Unchanged: decision_events 20, decisions 20, instance_names 0, message_threads 0, projects 0, thread_claims 0, thread_opens 0, threads 0, with the same sha256 where snapshot.mjs prints one. Changed:
| Table | S1 | S2 |
|---|---|---|
| deliveries | 1654 | 1673 |
| events | 1383 | 1396 |
| messages (count only) | 543 | 550 |
| role_claims | 87 | 91 |
| task_comment_cursors | 145 | 146 |
| task_snapshots | 349 | 351 |
| usage_records | 4 | 12 |
meta changed only schema_digest and schema_version. Usage byRun at S2: r8fba7e598156 0/0 with unknownTurns 1, and r4a96e2142e4d 2/52, both as in S1. New: chief rc78c9700c8e9 input 14, output 1519, unknownTurns 0, and coder r293f33bcbc63 input 2, output 44, unknownTurns 0.
S2b (an extra read, S2 against the W5 backup, opened immutable) shows priorSame true for every table and onlyInBackup []. stopTables lists deliveries, messages, role_claims, task_comment_cursors, task_snapshots and usage_records. Those are the rows added since W5. It's a pre-restore test, not a W9 stop, and if a rollback is ever chosen it names what a restore would drop.
File hashes (sha256, first 16): S1.json a4b48c69188ef856, S1.out 2de540bbf9908904, S2.json 92c3a66930db59ca, S2.out edfd2e18ae3d1806, S2b.json a703b109cd5a5f68, S2b.out eded254a8dd25328.
W9 outputs
- Tester reads all exit 0: status, console-check (5 PASS: markdown-preview, /api/config, project.files, project.file north-star, loopback save 403), launches, agents, plugins, names, threads, limits, usage.
- Chief talk (W9e): reply 49c7dc51, "I took no action and sent no staffing request".
- Coder via the chief (W9l): chief message 5b58f447 to coder r293f33bcbc63 at 01:45:48.780Z. The coder replied 7815907c at 01:45:54.714Z with "ms-unslop, ms-sdlc, ms-file-read, ms-file-write". That matches its bundle manifest (W9m), and each SKILL.md sha256 equals NEW's. The chief relayed it to the tester as 97139ccd at 01:45:59.450Z. 97139ccd is still unreceived, as Mos ruled in mos-0918.
- The coder made no tool calls. It left no repo write, push, PR, issue or outward message. I stopped it at 02:01:41.636Z (W9o, exit 0), and W9p shows only the chief live.
W10 outputs
- Browser on 127.0.0.1:7333 (W10b) showed the tester banner, the instance, routes and name editors, and only
tester forms. No launch settings, assistant, limit reset or send appeared. The Board reads. All 20 requests were
GET. Screenshots:
window/w10-settings.png,window/w10-board.png. - 7332 with
x-mosaic-tester: 1and Host 127.0.0.1:7332: 403{"error":"tester listener required"}. The control without the header got 200.
Plan deviations (all accepted by Mos)
- W8 (mos-0914). carry-past-row64.md:23 cds into the pinned copy, which has no scripts/skill.sh or skills/. The
loop ran from REPO after an empty diff against
89af38a83, followed by a per-file sha256 check that all seven skills match NEW. - W9 (mos-0917). Plan lines 202-203 call for "a coder session the tester starts", but TESTER_VERBS (broker.mjs:97) has no role.launch. Instead a tester talk asked the chief to start one coder.
- W10 (mos-0920, mos-0922). "Board and Settings read. The tester Settings has no Token limits panel, by design at bus.js settingsView isTester branch. No daily quota entry shows. Token limits read as the tester: W9i mosaic limits shows tokens [] (none set), and W10b's tester page GETs /api/bus/limits without refusal. No step rendered the human Token limits panel." Mos's code read: "bus.js tokenLimits (:599-609) renders 'No token limits are set.' for an empty row list, and its daily line appears only when a row's path[1] is 'daily'. With W9i's tokens [], the human panel would show no daily quota entry. This is a code read, not a rendered check." No human Console read ran, because on 7332 it would mean sending Jason's auth header.
Corrections during the window
- W9 no-reply. My interim said the coder hadn't answered. It had answered within 5 s. My wait polled
inbox --tester --json, which prints decisions only (cli.mjs:298-300). A message to the tester arrives only through message.receive. So the stop at 02:01:41Z hit an idle coder. W9s, W9t. - My own
git statusin the coder workspace moved its .git directory mtime to 02:07:22Z through the index lock. The index file itself didn't change. - W10a failed on two selector bugs in my script, not in the Console: the Board is #board-view, and conv-form is the global hidden form. W10b reran the same read-only check.
- My 02:14Z message claimed token limits were read on the human path at W9b console-check. That was false. console-check has no limits check. I corrected it at 02:15Z (W10d).
After-window items, not part of this report's pass
- Sage: fold the plan line 222 text fix into #394 with the carry doc fix (mos-0920). Decide whether the inbox --json point belongs with row 177 (W9t).
- Mos: a separate Console task for the "Read never." settings subtitle against the top bar's read time.
- P19 390: the --restore guard tool fix, unchanged by this window.