Commit Graph
1769 Commits
Author SHA1 Message Date
jason.woltjeandClaude Opus 5.5 ac99d8f2bf queue: revs 472-473, row 60 round 1 review request, comment 27383 (#1549) (filbert)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 16:59:53 -05:00
jason.woltjeandClaude Opus 5.5 e7e6950819 review(filbert): row 60 round 1 packet, broker credential status read (#1549)
Manifest pins 9 files on base 4100fa68; candidate source is not committed.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 16:57:51 -05:00
jason.woltjeandClaude Opus 5.5 c949f9ef71 docs(sessions): row 59 round 1 review, approve (dewey)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 16:57:28 -05:00
jason.woltjeandClaude Opus 5.5 dcdd3d6d90 queue: rev 471, row 59 round 1 approve, comment 27382 (dewey)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 16:57:23 -05:00
jason.woltjeandClaude Opus 5.5 a3ba78b525 docs: lead decision 92, WebUI preview path; sessions line (#1568)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 16:55:22 -05:00
jason.woltje 1786136002 queue: revs 468-470, row 74 WebUI preview added, blocked on Q91 (#1568) (sage) 2026-10-11 16:55:09 -05:00
jason.woltjeandClaude Opus 5.5 620fb174f6 docs: WebUI preview brief, signed-in read-only Console behind the edge proxy
Mos approved the cuts 2026-10-11: forward auth at the edge, a user unit
beside the bus, a preview hostname, read-only. No code until Jason
answers Q91 (amending lead decision 48).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 16:53:21 -05:00
jason.woltjeandClaude Opus 5.5 c26341b830 sessions: sage row 68 landed, decisions 90-91, rows 72-73 (#1561)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 16:49:57 -05:00
jason.woltje ef44d9b92f queue: revs 464-467, rows 72 and 73 added and briefed (#1566, #1567) (sage) 2026-10-11 16:49:04 -05:00
jason.woltjeandClaude Opus 5.5 32aa572788 docs: lead decision 91, row 68 build log, pin and coder grant brief (#1561)
Decision 91 amends 89: the bus pins ~/.local/bin/claude through
MOSAIC_CLAUDE_BIN, so the package upgrade is no longer needed for the
first PM launch. The brief covers two Rocko rows: tests for row 68's
surviving mutants, and dropping the coder's dead task.reassign grant.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 16:47:15 -05:00
jason.woltje 4100fa68c0 queue: rev 463, row 68 done (11dae0c7, round 2) (sage) 2026-10-11 16:44:27 -05:00
jason.woltjeandClaude Opus 5.5 ba67025050 docs(sessions): row 68 round 2 review, approve (dewey)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 16:43:45 -05:00
jason.woltjeandClaude Opus 5.5 b639c07c93 sessions: filbert row 60 started; 02a23462 also carries dewey rev 461 (#1549)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 16:43:43 -05:00
jason.woltjeandClaude Opus 5.5 02a2346269 queue: rev 461, row 60 started (filbert)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 16:43:18 -05:00
jason.woltjeandClaude Opus 5.5 11dae0c7d8 feat(bus): the bus host runs an explicit Claude Code binary (#1561, row 68)
MOSAIC_CLAUDE_BIN names the claude binary by absolute path instead of
finding it on PATH. scripts/bus-service.sh render|install --claude PATH
writes it into the unit (default: command -v claude in the installing
shell); the claude adapter, the launcher's version read and the seat
session environment all use it. Mos's Q18 ask: the unit's PATH found
/usr/bin/claude 2.1.259, which refuses claude-opus-5-5.

Candidate: round 2 manifest 21c1ab05, round 1 (a2008d8b) rebased onto
f2f2861b after row 55 changed docs/TOOLS.md and packages/cli/README.md;
the changed lines are byte-identical. Approved by Filbert (27349, 27374)
and Dewey (27350, 27375). Sage's gate on f2f2861b plus the patch: cli
112, seat 27, harness 57, nine scripts/test-*.sh 0 failed, Docker on.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 16:42:23 -05:00
jason.woltjeandClaude Opus 5.5 6ee63518a3 sessions: filbert row 68 round 2 approved (#1561)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 16:41:59 -05:00
jason.woltjeandClaude Opus 5.5 b48499e3e2 queue: rev 460, row 68 round 2 approved by filbert, comment 27374 (filbert)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 16:41:52 -05:00
jason.woltjeandClaude Opus 5.5 5d04925b4e sessions: filbert row 59 round 1 in review (#1548)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 16:40:19 -05:00
jason.woltjeandClaude Opus 5.5 43f93c0bab queue: revs 458-459, row 59 in review round 1, comment 27371 (filbert)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 16:40:01 -05:00
jason.woltjeandClaude Opus 5.5 e82f7c32e2 row 59 (#1548): round 1 packet, agent state per role (filbert)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 16:39:10 -05:00
jason.woltje 16c49998f7 queue: revs 455-457, row 68 round 2 on the rebased manifest 21c1ab05, comment 27369 (sage) 2026-10-11 16:38:57 -05:00
jason.woltjeandClaude Opus 5.5 b31cc8a90c row 68 (#1561): round 2 packet, round 1 rebased onto f2f2861b after row 55
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 16:37:32 -05:00
jason.woltjeandClaude Opus 5.5 21122c3b0e docs(plans): slice 1 field table follows the code for comments and title (lead decision 90, #1550)
Darkwing found, reading ahead on row 61, that message.send never writes a
tracker comment and that task.scope.change has no writer named. The
prose moves to what the verbs enforce; row 61 rules out changing writers.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 16:34:56 -05:00
jason.woltjeandClaude Opus 5.5 f2f2861b7f docs(log): row 62 landed, the adapter reads a project tree (#1555)
BUILD-LOG entry and SESSIONS line: feat 390d437b, gate, the live read
(902b3d0e) and the follow-up row 71 (#1565).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 16:32:49 -05:00
jason.woltje 86f65766fa queue: revs 452-454, row 62 done (390d437b), row 71 added and briefed (#1565) (sage) 2026-10-11 16:31:05 -05:00
jason.woltjeandClaude Opus 5.5 9d71527622 docs(plans): brief for the tree read follow-up after row 62 (#1565)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 16:30:23 -05:00
jason.woltjeandClaude Opus 5.5 902b3d0eac vikunja: row 62 live tick on #19 with descendants on, GETs only (sage)
tick-62.mjs runs the candidate's discover(), reconcile() and tick()
against tasks.woltje.com with the sync key, a real Store and Broker in a
scratch root, and a fetch guard that refuses anything but GET. The
startup scope probes are not sent. Reconcile 15 GETs, 42 snapshots; tick
8 GETs, 0 snapshots; 18, 20 and 21 watch-only. A missing view id on #18
answers 404 code 3014 while #18 reads 200 (the fake says 13001).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 16:29:18 -05:00
jason.woltjeandClaude Opus 5.5 390d437ba2 feat(tasks): the adapter reads a project tree (#1555, row 62)
With tracker.descendants on, the tracker project is the root of a tree.
Each reconcile reads the sync bot's project list (archived projects and
negative pseudo-project ids left out) and walks it by parent_project_id.
A child that passes the install checks is read through its board, and
one that doesn't is watch-only (bucket 0) and never refuses the
business. A tick reads each project in the tree. A child answering 403
or 404 leaves the tree only if GET /projects/<id> then answers 403 or
404 too, and its open tasks get the one-by-one read. Task refs carry
the project, so a task moved inside the tree shows under its new ref
and the old ref gets its tombstone. tracker.descendants reaches the adapter
through the business var and packages/cli/src/config.mjs (lead decision
87). Off, the adapter reads as v0 did.

Darkwing built it (agents/darkwing/work/queue-62), in three rounds.
Round 3 was approved by Filbert (27317) and Dewey (27338) on manifest
8b81e836, 13 paths. Their non-blocking notes and Darkwing's follow-ups
(two surviving mutants in test 18, the fake's view-404 code) go to a
follow-up row.

Sage's gate on 918a4a19, sequential and teed: node suites tasks 71,
business 60, bus 80, cli 110 and queue 150, 0 failed; webui 39 of 40,
then 40 of 40 on three reruns (row 62 touches no webui file; a timing
test under load 17 with Dewey's gate running beside it); test-auth 15,
test-conductor 17, test-config 24, test-discord 66,
test-extension-package 18, test-foundation 44, test-queue 27,
test-release 14, test-task 98, all 0 failed (Docker on). edc5de71..HEAD
touches none of the 13 paths.

Live read, 2026-10-11T21:28:03Z, tasks.woltje.com v2.7.0, root #19,
descendants on, sync key only, GETs only (the startup scope probes not
sent): reconcile 15 GETs, 42 snapshots; tick 8 GETs, 0 snapshots.
Children 18, 20 and 21 are watch-only. A missing view id on #18 answers
404 (code 3014) while #18 reads 200, as the README says. Record:
agents/sage/work/vikunja-setup/2026-10-11_tick-62.json.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 16:29:13 -05:00
jason.woltjeandClaude Opus 5.5 45fe40f759 docs(sessions): row 68 round 1 review, approve (filbert)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 16:23:13 -05:00
jason.woltjeandClaude Opus 5.5 e93674e5c0 docs(sessions): row 68 round 1 review, approve (dewey)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 16:22:26 -05:00
jason.woltjeandClaude Opus 5.5 9b6d983164 queue: revs 448-451, row 68 round 1 approve, comment 27350 (dewey)
Includes Sage's pending revs 448 (sage-q81-docs-add) and 449
(sage-70-briefed), and Filbert's rev 451 (filbert-68-review-1).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 16:22:17 -05:00
jason.woltje c4399c8b0d queue: revs 448-449, row 70 added and briefed (#1564), Q81 docs follow-up (sage) 2026-10-11 16:21:30 -05:00
jason.woltjeandClaude Opus 5.5 19e38d7f2d docs(plans): brief for the mosaic-on-PATH docs after Q81
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 16:18:57 -05:00
jason.woltjeandClaude Opus 5.5 d3ca2c22d6 ops(q81): the wrapper forwards __lease-capability to mosaic-old (Mos)
Mos amended ruling (2): with no environment location for
MOSAIC_LEASE_VERSION_PROBE_COMMAND, the wrapper sends only
`__lease-capability` to ~/.npm-global/bin/mosaic-old, so the old CLI's
lease gate still gets its answer. Every other subcommand reaches the
pinned worktree; undo removes the forward with the wrapper. update now
rewrites the wrapper, and status flags a wrapper that differs from what
the script writes. Checked live at 21:17:58Z: the probe answered
{"name":"lease-runtime-activation","version":1}, exit 0.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 16:18:21 -05:00
jason.woltjeandClaude Opus 5.5 b93211e37e docs(queue-62): the correction's fail-closed sentence overclaimed; name the assumption
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 16:17:16 -05:00
jason.woltjeandClaude Opus 5.5 ba5e74ad36 docs(queue-62): correct round 3's live-instance claim, which came from the fake
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 16:17:04 -05:00
jason.woltjeandClaude Opus 5.5 918a4a1937 ops(q81): mosaic on PATH runs the pinned mosaic-stack CLI (sage-0042)
agents/sage/work/q81/mosaic-cli.sh does install, update, undo and status.
~/.npm-global/bin/mosaic is now a wrapper that execs scripts/mosaic in a
detached worktree at ~/.local/share/mosaic-cli/stack, pinned to pushed
ee129aa6. The estate CLI symlink was renamed in place to mosaic-old.
Only commits on origin/refactor can be pinned. `mosaic queue` refuses
from the worktree (the queue runs only in the canonical checkout), so
queue work stays on scripts/mosaic. status flags a wrapper replaced by
`npm i -g --force`.

lease-gate-notes.md: no single environment location for
MOSAIC_LEASE_VERSION_PROBE_COMMAND exists outside fleet state, so the
old-path lease gate fails closed, as Mos ruled for that case.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 16:16:28 -05:00
jason.woltjeandClaude Opus 5.5 08c9b37739 docs(sessions): row 62 round 3 review, approve (dewey)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 16:14:23 -05:00
jason.woltjeandClaude Opus 5.5 c42479f049 queue: rev 447, row 62 round 3 approve, comment 27338 (dewey)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 16:14:16 -05:00
jason.woltjeandClaude Opus 5.5 ee129aa690 docs(sessions): row 62 round 3 review, approve (filbert)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 16:09:05 -05:00
jason.woltjeandClaude Opus 5.5 bd3cf272b9 queue: rev 446, row 62 round 3 approve, comment 27317 (filbert)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 16:08:56 -05:00
jason.woltjeandClaude Opus 5.5 febfdb4826 docs: row 55 landing in BUILD-LOG and SESSIONS (sage)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 16:07:52 -05:00
jason.woltje fef76fe67e queue: revs 443-445, row 69 added and briefed (#1562), row 55 done (79d9fc2d) (sage) 2026-10-11 16:07:01 -05:00
jason.woltjeandClaude Opus 5.5 79d9fc2d56 feat(cli): full-screen terminal app (#1544, row 55)
Bare `mosaic` on a terminal opens the app. It has Inbox, Tasks, Agents
and Trail screens, help, and a decide overlay, and it uses the alternate
screen, raw mode, resize and SIGTERM, and restores the terminal on exit.
draw(state) in screens.mjs is pure. cli.mjs exports resolveDecision,
which `mosaic decide` and the app share, so both write the same lines
and ask the same question. A decision resolves on `y` only while
decideShown() says the whole decide box is on screen. The app reads that
at the key. A box that doesn't fit is replaced by "Too small to show this
decision", and any key answers No. scripts/mosaic sends no arguments to
packages/cli (a decided scope addition), so the queue dispatch test
follows. The cli README and docs/TOOLS.md describe the app.

Darkwing built it (agents/darkwing/work/queue-55), in three rounds.
Round 3 was approved by Dewey (27308) and Filbert (27309) on manifest
59f1b9b4, 9 paths. Their non-blocking notes go to row 69 (#1562): a
narrow-terminal test for the decideShown MIN_COLS guard, a way out from
the hidden box, a U+18D08 width test, a cut box keeping Esc back, and
the README row count stated as an example.

Sage's gate on 3634d06e, sequential and teed: node suites cli 110 and
queue 150, 0 failed; test-auth 15, test-conductor 17, test-config 24,
test-discord 66, test-extension-package 18, test-foundation 44,
test-queue 27, test-release 14, test-task 98, all 0 failed (Docker on).
122b1223..3634d06e touches none of the 9 paths.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 16:06:11 -05:00
jason.woltjeandClaude Opus 5.5 1e71d74670 docs(plans): terminal app follow-up brief after row 55
Filbert N10-N12 and Dewey's round 3 survivors: a narrow-terminal
decideShown guard test, a way out in the hidden decide box, a U+18D08
width test, a cut-box Esc back test, and the README row count as an
example. Owner Darkwing; reviewers Dewey and Filbert.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 16:02:16 -05:00
jason.woltje 3634d06ec8 queue: revs 440-442, row 68 round 1 in review, request comment 27312 (sage) 2026-10-11 15:57:31 -05:00
jason.woltjeandClaude Opus 5.5 ccccc16932 row 68 (#1561) round 1 packet: bus host pins MOSAIC_CLAUDE_BIN
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 15:57:01 -05:00
jason.woltjeandClaude Opus 5.5 8e33490f0f docs(sessions): row 62 round 3 in review (darkwing)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 15:55:36 -05:00
jason.woltje 8f6b06d0ae queue: revs 436-439, row 59 started (filbert), row 62 round 3 in review on 8b81e836, request comment 27310 (darkwing) 2026-10-11 15:55:27 -05:00
jason.woltjeandClaude Opus 5.5 90e568624f row 62 (#1555) round 3 packet: confirm read before a child drops, candidate 8b81e836
R2/B1: after a forbidden or not-found refusal on a child, the tick reads
GET /projects/<id> and drops the child only on 403 or 404; a deleted
kanban view (project read 200) fails the tick as in round 1. Tests 18
and 19, 23/23 mutants killed, gate on ae428a54 green (14 suites).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-11 15:54:19 -05:00