13 KiB
Re-pin window 490e2771d to 4429a104f (row 192, Q175 phase 1), STATE report (W11)
Operator and tester: Sage. Plan: agents/sage/work/window-plan/repin-4429a104f.md at f41729178, sha256
e1272d1a391e00fb1291d47da9973c0ba342d65fcd42f583ea007e883c1f32b9 (checked before W0b, W9). The plan file in
this commit carries three corrections made after the window. They are listed at the end, so its sha256 differs
now. Tool blob 3b068b1546 (scripts/stack-release.sh). OLD 490e2771d3, NEW
4429a104f6. Every stamp below comes from date -u or from the transcript W.txt
in this directory. Mos's gos: mos-1113 (W5), mos-1114 (W9 to W11), mos-1128 (W9b accepted), mos-1135 (W10
browser part), mos-1137 (line g, post W11).
Outcome
NEW is live for mosaic-stack with its PM, and the store stays on 3i. Row 192's sign-in code is in the copy but
dormant, because the Console runs without --sso. W0 to W10 passed, and nothing was rolled back. W10 stopped
once on two failed browser checks. I diagnosed both read-only as checks written before row 192, not faults in
NEW, and Mos passed them (mos-1135). Matrix line (g) isn't byte-identical, for a known cause, and Mos passed it
(mos-1137). Nobody acted as Jason. There was no --by jason, no pi, no Save and no mosaic name, and
bus.tester was not touched.
Stamps and activation
| Step | Start (UTC) | Result |
|---|---|---|
| P1 values, business-check OLD | file written 21:43:13Z | values as planned, LOAD_OK (p1.txt) |
| W0 copy NEW with npm ci, business-check NEW | 21:45:57Z | copied, lockfile diff empty, LOAD_OK (w0.txt) |
| P2 console-check on a stub of NEW | 21:46:09Z | CONSOLE_PASS without and with --tester-port (p2.txt) |
| P3 rehearsal (Mos) | 21:52:31Z to 21:52:34Z | REHEARSAL_PASS, rc 0 (p3/) |
| P3 flags check (Mos) | 21:53:52Z to 21:53:56Z | NEW Console with the pointer flags on 7341/7342: healthz 200 both, then gone, 0 listeners |
| P4, P5, P6 | 22:00:17Z | P4 PASS, P5 PASS (HEAD 4385b9ec1), matrix-old.txt |
| W0b business file copy | 22:00:49Z | sha256 1e49bdf0 |
| W1 idle check, S1 | 22:00:49.758Z | chief idle; S1 a7649760 |
| W2 status | 22:00:49.819Z | pointer OLD, pm true, 3i, unit flags match |
| W3 plan | 22:00:50.068Z | exit 0 (W3-plan.txt 45de68d4) |
| W4 unit read | 22:00:50.238Z | OLD units, no drop-ins, bus --pm, no quote or backslash |
| W5 activate (mos-1113) | 22:02:06.776Z, end 22:02:09.556Z | exit 0, gate passed, activate ok |
| W5 status | 22:02:13.885Z | pointer NEW, pm true, 3i, unit flags match |
| W9 checks and turns (mos-1114) | 22:05:51Z to 22:06:06Z | pass |
| W9b run end and S2 | 22:21:05.171Z, S2 22:21:07Z | ended by the launcher (thread-idle); S2 1a444f5a |
| W10 browser (stop), diagnosis | 22:29:14Z, 22:30:02Z | 10 of 12, then both failures traced to the checks |
| W10 matrix, P4 (mos-1135) | 22:31:29Z | a-f identical, g +121 bytes; P4 PASS |
| W11 reads | 22:44:33Z to 22:44:34Z | units, tunnel, business file, failed units |
Activation id 20261020T220206Z-4429a104f6d6. Pointer at 2026-10-20T22:02:09Z.
Backups and hashes
- Store backup:
~/.mosaic-dev/backups/stack/20261020T220206Z-4429a104f6d6, SHA256SUMS sha256 b61d64843c9e2a153842606353450838da9cb778c8f3b9c27cc9366dd72ec0c9. - Rollback set:
~/.mosaic-dev/state/stack-rollback/20261020T220206Z-4429a104f6d6. Rollback goes to490e2771d. - Business file: 1e49bdf05e62607972958f5b7298cfd600c7825812370e26d7c2a842f2af9b93 at P1, at W0b and again at
W11. The W0b copy is
~/.config/mosaic-dev/businesses/mosaic-stack.json.pre-window-20261020T220049Zwith the same hash. Nothing in the window wrote it.backups.txtholds the W0b and W5 lines.
Pointer before and after
Before (W2): copy 490e2771d3, pm true, schema 3i, activation 20261020T192956Z-490e2771d3d0. Console flags
--port 7332 --public-host mosaic.woltje.com --auth-header X-authentik-username --allow-user jason.woltje --tester-port 7333.
After (W5, W9 and W11): copy 4429a104f6, pm true, schema 3i, activation 20261020T220206Z-4429a104f6d6. The
Console flags are the same, with no --send, no --sso and no proof pair. Bus pid 2950923 and Console pid
2950925, both since 22:02:08Z. Status shows drift of 6 commits on refactor since the pointer's copy (records).
Unit ExecStart lines (no Environment values)
W11, after. Both units active, DropInPaths empty, WorkingDirectory the NEW copy:
bus: ~/.local/share/mosaic-stack/copies/4429a104f6d65ccf165f6c83b5d1dce3147dfde0/scripts/mosaic bus start mosaic-stack --pm (MainPID 2950923)
webui: /usr/bin/node ~/.local/share/mosaic-stack/copies/4429a104f6d65ccf165f6c83b5d1dce3147dfde0/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 --tester-port 7333 (MainPID 2950925)
W4 read the same two lines on OLD's copy (W.txt 329-344). The bus Environment has 2 assignments with no quote or backslash. The values are not recorded. The Console's cwd is the NEW copy (W9). The webui journal since W5 has one "Proxy: proxy proof off" line and no "Sign-in:" line.
Tunnel: mosaic-preview-tunnel.service active, running, MainPID 1317, since 2026-10-13 08:40:19 CDT. The window
didn't touch it. P4 before and after shows one R: spec, R:0.0.0.0:7332:127.0.0.1:7332.
S1, S2 and the store
S1 (S1.json, sha256 a7649760c3439705c8b5f3af26d0c21aea1081c1eb295fd02aef3a642064194b) is W1's held read at
22:00:49Z. S2 (agents/sage/work/window-repin-4429a104f/S2.json, sha256
1a444f5ac0049bc78e397b6928e1008cfe8cbc30989bbf2042b4ed27f56a4173) is the held read after the assistant run
ended, at 22:21:07Z. Both are 3i. SNAP (snapshot.mjs, 639fd28a) was checked before each.
| Table | S1 rows | S2 rows | S2 vs S1 |
|---|---|---|---|
| decisions, decision_events | 21, 21 | 21, 21 | same sha256 |
| meta, instance_names, thread_opens | 3, 0, 0 | 3, 0, 0 | same sha256 |
| deliveries | 1726 | 1740 | +14 |
| events | 1525 | 1543 | +18 |
| role_claims | 98 | 101 | +3 |
| messages | 567 | 571 | +4 (counts only) |
| message_threads | 2 | 4 | +2 (counts only) |
| usage_records | 30 | 34 | +4 |
| projects, threads, thread_claims | 1, 1, 2 | 2, 2, 4 | +1, +1, +2 |
| task_snapshots | 401 | 408 | +7 |
| task_comment_cursors | 215 | 220 | +5 |
For every grown table with a seq, maxSeq grew by exactly the row delta.
The task_snapshots and task_comment_cursors rows (mos-1128 item 2). The writer is the bus's own Vikunja poll, not
an agent. packages/bus/src/process.mjs:104 loads the tasks adapter. Its timer runs tick every pollSeconds
(packages/tasks/src/adapter.mjs:192-197), and sync.mjs:169 calls broker.recordTask with no cap
(packages/bus/src/broker.mjs:1123). That writes source 'poll' with role and run null (broker.mjs:1159-1174)
and the comment cursors (:1131-1138). The adapter logs only on an error (adapter.mjs:115), so the bus journal
has no line for a good tick. That's why there's no sync line between 22:05Z and 22:22Z. The rows, read
read-only after the window:
- task_snapshots 402-404 at 22:05:08Z: P19 436, 435 and 434, all updated 22:04:55-56Z. 405-406 at 22:12:38Z: 438
and 437. 407 at 22:17:08Z: 438 again. 408 at 22:19:08Z: 431. All have
source poll,via cursor, role null and run null. These are tracker edits made by seats during the window, which the poll picked up. - task_comment_cursors 216-220: tasks 424, 432, 438, 431 and 436, last comments 397 to 401. These are the comments seats posted on P19 in the same minutes (398 is Mos's comment on #432).
Rows after S2 (task_snapshots 409 at 22:33Z, cursors 221-223) are the same poll and are outside the window.
W9 output
- Status, console-check (CONSOLE_PASS), the journal counts, the Console cwd and one running chief from this start (r097436c91816) all passed.
talk chief --tester(c5b43f04): the chief replied that a tester message authorizes nothing and it took no action.- Project
window-20261020-2205, thread 446201de-e8b5-4df3-9356-d0d5422cc899.talk --thread(b4b66ced) got one assistant reply from run r497f1c817d4d.thread readshows the tester REQUEST and the assistant RESULT. threads,names(empty) andusageread fine. The human-thread probe was skipped: S1's one thread is the 177-185 window's tester thread d0ba7a66, so no human thread exists.- W9b: the launcher logged launch at 22:06:00.766Z, thread-idle at 22:21:05.149Z and end at 22:21:05.171Z (reason stopped, exit 0). Nobody stopped it by hand.
W10
The browser check (w10-browser.mjs, dda57ccf) ran against 127.0.0.1:7333 with fetch and XHR limited to GET and
HEAD. It made no writes and sent no W9 thread request. 10 of 12 checks passed. The two that failed:
- "Only tester forms":
#sign-outwas in the list. It is row 192's form atpackages/webui/src/public/index.html:12,hidden.app.js:479shows it only when/api/confighassso: true. The live config has nossokey, and the form stayed hidden. - "Chat lists the W9 thread": the check read only the first
ul.chat-thread-list.chat.js:93renders one list per project, and W9 made the second project. The diagnosis (w10-diag.mjs, 42d0844b) read every panel and found 446201de listed.
Both checks come from the 177-185 window (Darkwing's window-rows-177-185/w10-browser.mjs), written before row
192 and before a second thread project existed. Corrected, they now read:
- Only tester forms, allowing
#sign-outwhen it ishiddenand/api/confighas nosso: true. - The W9 thread is in some
.chat-projects section.panelthread list, not only the first.
Both corrections are in the plan's W10 line, for the next window that copies this one.
The matrix (matrix-new.txt against matrix-old.txt). Lines a to f are byte-identical. Line g is 200 non-json
both times, but 6454 bytes on OLD and 6575 on NEW. index.html is 6470 bytes at 490e2771d and 6591 at 4429a104f,
+121, and the only hunk is the line 12 form. The served page grew by the same 121. The plan's W10 line now says a
line for a file the pin changes isn't "identical", with this case as its example. P4 again at 22:31:29Z: PASS.
Failed user units (mos-1128 item 3)
All three predate the re-pin at 22:02Z and come from the legacy ~/.mosaic and jarvis-brain setup, not the
stack. P19 #393, "dragon-lin: seven legacy user units in failed state", covers all three (filed by Mos on
10-20 at about 01:42Z). It has no comments yet. The current failure times are later than the ones #393 lists,
so I added a comment with them. Times are from systemctl --user show (CDT) with UTC alongside.
| Unit | Runs | Failed | #393 |
|---|---|---|---|
| mosaic-standup-pm.service | ~/.mosaic/tools/coordinator/standup_trigger.py pm |
2026-10-19 19:00:28 CDT (10-20 00:00:28Z), exit 1 | listed |
| mosaic-install-drift.service | ~/src/jarvis-brain/scripts/alerting/mosaic-install-drift |
2026-10-20 00:12:54 CDT (05:12:54Z), exit 9 | listed, with an older time |
| [email protected] | ~/.local/bin/mosaic-unit-failed mosaic-reconcile.service |
2026-10-20 13:16:12 CDT (18:16:12Z), exit 4 | listed, with an older time |
The marker's journal at 18:16:12Z says the escalation's tmux send to jarvis failed ("tmux target not found",
socket mosaic-fleet), so the page wasn't delivered. The record is on disk in
~/.local/state/mosaic-unit-failures/20261020.jsonl. mosaic-reconcile.service failed at that time (exit 7)
but last ran OK at 17:16:27 CDT (22:16:27Z). The marker stays failed until something resets it. The journal no
longer has lines for the other two units. The window changed none of these units, and touching them is
outside it (~/.mosaic is off limits, and #393 needs Jason or ops-01's charter to disable any). W11's list also
shows setspark-tmp-guard.service failed. It belongs to another project, and I've left it.
Corrections to the plan, made after the window
- NEW is 103 commits past OLD (
git rev-list --count 490e2771d..4429a104f), not 106. The 106 instatuswas OLD to HEAD305857c8f, so it also counted the three record commits. - P3:
rehearsestarts NEW's Console with only--portand--business, not the pointer's flags. Mos's separate flags check covers that (p3/flags-check.txt,p3/flags-console.log). The line was wrong as written (mos-1107). - W10: the matrix line g size change and the two corrected browser checks, as above.
Files
W.txt (transcript), S1.json, S2.json, matrix-old.txt, matrix-new.txt, backups.txt, W3-plan.txt,
W5.txt, W5-status.txt, w0.txt, p1.txt, p2.txt, p3/ (Mos's rehearsal and flags check), p456.sh,
w9.sh, w9b.sh, w9.out, w9b.out, w10-browser.mjs, w10-diag.mjs with their outputs (the three
screenshots stay on disk in this directory, uncommitted, since the push check refuses binaries),
and the .w9*, .w10* and .w11* reads. The store snapshot tool is snapshot.mjs (639fd28a).