Commit Graph
898 Commits
Author SHA1 Message Date
jason.woltje 756bc1af14 queue: revs 1882-1885, row 156 round 1 in-review and Filbert changes (sage) 2026-10-18 17:51:34 -05:00
jason.woltje 70c9131f0d queue: revs 1879-1881, row 154 round 5 approvals and done (sage) 2026-10-18 17:19:56 -05:00
jason.woltje df078c9c4b queue: revs 1877-1878, row 154 round 5 review request posted as comment 29024 (sage) 2026-10-18 16:44:11 -05:00
jason.woltje 5e2a1bc118 queue: revs 1869-1874, row 165 briefed, claimed and brief re-pinned on b3cf580a (Sage 1869-1870, 1872-1873; Darkwing 1871); 154 back to in-progress for the d88613bac round (Sage 1874) 2026-10-18 16:39:30 -05:00
jason.woltje b8036b6089 plans: row 165 brief correction, the second reviewer waits on P19 367 (mos-0823)
reviewer, coder, pm and cto declare gitea and vikunja credentials, and the
row keeps credentials out. The writer refuses an added instance or a
definition change whose definition declares credentials, with a named
refusal that says why, and never writes an instance without its binding.
One added test line. Acceptance 314 is covered: security-reviewer and
merge-gate declare none. Jason rules on credential binding in daylight.
2026-10-18 16:32:51 -05:00
jason.woltje d88613bac2 queue: revs 1866-1868, row 155 done, 167 add and briefed (sage) 2026-10-18 16:22:45 -05:00
jason.woltjeandClaude Opus 5.5 68fc31a944 plans: brief for the Settings reads and snapshot follow-up to row 155 (Darkwing's draft, Mos's mos-0816 notes, Dewey's F1)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 16:19:11 -05:00
jason.woltjeandClaude Opus 5.5 197722caa2 queue: revs 1861-1865, row 155 r3 in review (darkwing) and confirm-only approvals (filbert, dewey)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 16:05:27 -05:00
jason.woltjeandClaude Opus 5.5 0473574b02 queue: revs 1846-1860, rows 155 r1-r2 reviews (darkwing, dewey, filbert), 162 done, 166 add and briefed (sage), 154 r4 in review (researcher)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 15:51:56 -05:00
jason.woltjeandClaude Opus 5.5 c70f360ae7 plans: D1 brief item 8 re-pinned to the held or stopped store read; stack-release hardening brief (row 162 follow-up)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 15:39:38 -05:00
jason.woltje 23622980f4 queue: revs 1838-1845, row 125 done (Sage 1838); 156 in progress (Dewey 1839); 162 r2 in review (Darkwing 1840-1842); 126 brief re-pin on 7ce156259 and briefed (Sage 1843-1844); 162 r2 Filbert approve on c213a801 (1845, comment 29004) 2026-10-18 15:30:16 -05:00
jason.woltjeandClaude Opus 5.5 7ce156259d plans: row 126 brief rewritten on Dewey's tokens.daily design after row 125 landed (#1620)
Row 125's core lets a check see only launch.limits and accept hits on the
four DEPTH kinds, so the quota gets its own depth-1 kind,
tokens.daily.<account>, in the two DEPTH tables and the organization-file
schema. Display is a fixed line keyed on the daily path; no report field.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 15:27:07 -05:00
jason.woltje b6827d19ea queue: revs 1836-1837, row 125 r3 Filbert approve on 8b71c405 (1836, comment 28996); row 162 r1 Filbert approve on 091693c5 (1837, comment 28997) 2026-10-18 15:03:14 -05:00
jason.woltjeandClaude Opus 5.5 99d2b49c9c queue: revs 1828-1835, row 154 r3 Filbert approve (1828); 164 done (Sage 1829); 165 brief re-pin after Jason's Q4 (Sage 1830); 125 r3 in review (Dewey 1831-1833); 162 r1 in review (Darkwing 1834-1835)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 14:50:41 -05:00
jason.woltjeandClaude Opus 5.5 606fafd431 plans: row 165 brief, Jason's Q4 confirmation relayed (mos-0805), hold lifted
Records Jason's "Q4: yes" (DECISIONS Q171, Q172) and lifts the hold.
The row moves to briefed once row 155 is done. No test reads this file.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 14:26:39 -05:00
jason.woltjeandClaude Opus 5.5 27f01be2ec queue: revs 1805-1827, row 164 r1 in review (Rocko 1806-1807, request by Sage 1808-1809), r1 changes (Dewey 1814), r2 in review (Rocko 1816, 1820-1821, request by Sage 1824-1825) and approve (Dewey 1826); 125 r2 in review (Dewey 1805, 1811-1812) and approve (Filbert 1815); 154 r2 changes (Filbert 1810, Dewey 1813), r3 in review (Researcher 1817-1819, request by Sage 1822-1823) and Dewey approve (1827)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 14:17:18 -05:00
jason.woltjeandClaude Opus 5.5 5ec790f141 queue: revs 1798-1804, row 165 added queued (Sage 1798, P19 332), 154 r2 in review (Researcher 1799-1801, request posted by Sage 1803-1804), 125 r1 changes (Filbert 1802)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 13:18:13 -05:00
jason.woltjeandClaude Opus 5.5 ab9f23d9ef docs: row brief for adding and changing role instances (P19 332, #1662); I6 brief records Jason's P19 333 ruling
Mos relayed Jason's answers in mos-0787. P19 332: a CLI command and a
Console view for role-instance changes, held until Jason confirms Mos's
reading. P19 333: accepted as a documented limit, so the I6 brief and the
design's limits line now say I6 writes it as a known limit.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 13:10:41 -05:00
jason.woltjeandClaude Opus 5.5 fe7eef8fb0 queue: revs 1791-1797, row 129 r2 approve (Filbert 1791) and done (1792), 164 claimed (Rocko 1793), 154 r1 changes (Filbert 1794, Dewey 1797), 125 r2 in review (Dewey 1795-1796)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 12:58:47 -05:00
jason.woltjeandClaude Opus 5.5 19fe85c3e2 queue: revs 1757-1790, row 124 done (Dewey r2 approve 1757), rows 125-127/129 re-pinned, 125 and 156 to dewey, 164 to rocko, row 149 done (Filbert r4 1771), 129 r1 changes (1780) and r2 in review (1787-1790), 154 phase 2 in review (Researcher 1782-1784, request 1785-1786)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 12:00:49 -05:00
jason.woltjeandClaude Opus 5.5 c2f16240c0 docs: row 156 owner dewey, after row 125 (landing run brief)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 11:41:30 -05:00
jason.woltjeandClaude Opus 5.5 c682d5f7ad docs: row 164 owner rocko, design packet before the claim (channel kind brief)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 11:35:03 -05:00
jason.woltjeandClaude Opus 5.5 0f715a0542 docs: lead decision 150, limit-check interface 2 with report (row 125, dewey-0593)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 11:21:22 -05:00
jason.woltjeandClaude Opus 5.5 5b203b614b docs: row 125 to dewey, row 126 after step 8 (PRD 1.2 build brief)
Row 126's daily quota is a second limit check with no launcher or bus
change, so it needs row 125's launcher and bus calls. Its after listed only
row 124. Row 125 moves from researcher, who is on row 154, to dewey, so the
two limit-check rows run in order with one owner.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 11:11:13 -05:00
jason.woltjeandClaude Opus 5.5 7a13129be2 queue: revs 1731-1756, row 124 round 1 changes and round 2 in review (Rocko, Dewey 1738), row 129 claimed (1737), rows 157-161 re-pinned for the I4 checks, D1/D2 re-pinned, row 162 briefed to darkwing, row 164 channel kind added (decision 149)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 10:54:32 -05:00
jason.woltjeandClaude Opus 5.5 c742ecec2e docs: lead decision 149 and the channel kind brief, after row 129 (Q156 item 4, Mos mos-0726, #1661)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 10:49:07 -05:00
jason.woltjeandClaude Opus 5.5 cd9c071ae6 plans: D1 owner is darkwing
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 10:45:35 -05:00
jason.woltjeandClaude Opus 5.5 d503552eab plans: D1 brief carries decision 96's four conditions and records the claude pin and Console flags in the pointer (Mos mos-0716, Darkwing survey)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 10:44:59 -05:00
jason.woltjeandClaude Opus 5.5 e51d8f2042 plans: row 159 I4 tests add the container-address and network-membership checks (Mos, mos-0716)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 10:42:08 -05:00
jason.woltjeandClaude Opus 5.5 6a2409f214 queue: revs 1722-1730, row 134 after 155, row 149 round 4 in review (Dewey 1723-1724), D1 and D2 rows 162-163 with P19 notes, row 157 after 163, row 154 brief re-pin
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 10:27:18 -05:00
jason.woltjeandClaude Opus 5.5 2b5c76eeb4 plans: row 154 brief owns two serve.mjs static routes and round-trips the goals review (Researcher phase 1)
Researcher's phase 1 report needs /editor.js and /editor.css route
entries in serve.mjs, and spec/north-star.md doesn't exist. The brief
now owns those two entries only and names
docs/plans/2026-09-27_goals-review.md for the round-trip test.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 10:23:35 -05:00
jason.woltjeandClaude Opus 5.5 0df05f2c5c plans: D1 and D2 brief, health-gated stack activate and rollback and the scratch-root rehearsal (#1659, #1660)
Decision 96 D track. D1 turns the de352dfaf window scripts and the
release.sh pointer-and-log shape into stack-release.sh adopt, activate,
rollback and status. D2 adds rehearse on a scratch root with launches
disabled and no model calls. A standing staging stack is left to Jason.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 10:13:48 -05:00
jason.woltjeandClaude Opus 5.5 9cc0ba0e15 plans: row 156 brief takes Filbert's three edits (task ref in landHolders, land and landing from one read, decision-consumed in flight)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 10:04:32 -05:00
jason.woltjeandClaude Opus 5.5 957fbfd410 plans: row 156 brief wakes the landing run with a landing turn (Filbert, comment 28913)
A relaunched merge-gate run has land_work but no message to turn on: the
raising run's poll consumes the approval DECISION. The host writes the
instance's landHolders entries into session.json as landing, and the
runner takes one fixed-template turn per entry before its receive loop.
Row 149's chief-of-staff message stays as the fallback; a second land
gets decision-consumed.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 10:03:28 -05:00
jason.woltjeandClaude Opus 5.5 a132b46058 queue: revisions 1713-1720 (rows 124, 154, 155 briefed and 124, 155 re-pinned by Sage; rocko 124 and darkwing 155 claims; filbert row 149 round 3 changes)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 10:03:16 -05:00
jason.woltjeandClaude Opus 5.5 6f85a55189 queue: revisions 1675-1712 (row 87 rounds 5-8 and done, I2-I6 as rows 157-161, row 156 added, row 128 round 1 and done, row 149 round 3 in review)
Other seats' revisions in this sweep: Darkwing 1675, 1680, 1685, 1691,
1699 (row 87 verdicts); Filbert 1678 (row 149 r2), 1681, 1686, 1690,
1701 (row 87), 1702 (row 128 r1); Researcher 1692-1693 (row 128
in-review); Dewey 1709-1711 (row 149 round 3 in review).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 09:50:42 -05:00
jason.woltjeandClaude Opus 5.5 77b1a6e8a9 plans: row 87 follow-ups on the start limit, and decisions 147 (B1) and 148 (B2) (#1581)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 09:41:43 -05:00
jason.woltjeandClaude Opus 5.5 bb0766826d plans: brief for the host starting the landing run once a merge decision is approved (#1651)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 09:35:56 -05:00
jason.woltjeandClaude Opus 5.5 917ef55e18 plans: row 87 round 8 counts a stop's no-such-container as gone, bounds each wait per container and gives I6 the unit comment (#1581)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 09:33:41 -05:00
jason.woltjeandClaude Opus 5.5 4c1fee85a5 plans: row 87 round 7 makes the leftover rule wait by id until each core container is gone and names the start order (#1581)
Answers Darkwing's round 6 review (28884) and Filbert's doc-only
follow-up (28883).

- After docker stop, the rule waits for "no such container" by id,
  bounded by the core stop timeout, then rm -f and the same wait; a
  container still there refuses exit 1, which the unit retries.
- A name conflict is now only a hand-made container without the store's
  labels; it stays exit 3, which the unit does not retry.
- Start order: host.lock, store path, rootless check, leftover rule,
  docker run.
- I6 gains two tests: run straight after a stop boots, and a leftover
  never removed refuses exit 1.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 09:28:56 -05:00
jason.woltjeandClaude Opus 5.5 80ebe2afc4 plans: row 87 round 6 gives the store one real-path spelling, starts each core fork on its first line and states the name-conflict refusal (#1581)
Answers Darkwing's round 5 review (28880) and Filbert's doc-only
follow-ups (28881).

- connected follows the channel from the wrapper's creation, as a forked
  child's does; the entry starts the broker on boot and the notifier on
  start, so host.mjs:217 and :244 never wait on a pid line.
- Bus start makes <dataRoot>/bus at 0700 and takes its real path; the
  bind source, mosaic.store label, leftover filter and hostStatus all use
  it.
- A name conflict refuses with exit 3, names the container and the
  client's exit code, gives host.lock back, and removes nothing.
- The host.pids test list names what each test does with the pid.
- I6 gains four lifecycle tests for these.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 09:23:53 -05:00
jason.woltjeandClaude Opus 5.5 232e054499 plans: row 87 round 5 keys the core container on the store, sets the stop timeout to cover both close waits, and defines connected and host.pids (#1581)
Answers Darkwing's round 4 review (comment 28877) and Filbert's
doc-only follow-up (28876).

- P: the core container's name is mosaic-core-<16 hex of SHA-256 of the
  real path of <dataRoot>/bus>, keyed on the store like writer.lock, so
  two data roots with the same business don't collide.
- Q: close() waits CLOSE_TIMEOUT_MS twice (host.mjs:30, 343, 347). The
  host passes MOSAIC_CLOSE_TIMEOUT_MS to the entry; the core stop
  timeout is two close timeouts plus 5 s (45 s today), used by the
  leftover rule's docker stop -t.
- R: {from, pid} start line; connected turns false on the exit line,
  client stdout close or exit, or a failed stdin write; host.pids is
  null for both forks in containerized mode and adds container; the
  pid-signalling host tests stay local, I6 uses docker exec kill.
- Nit: firstReply (129) and ended (148) cited apart from watchChildren
  (159-165).
- I6 tests and design section 9 add the slow-notifier leftover, two data
  roots, the missing-timeout refusal and connected.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 09:16:30 -05:00
jason.woltjeandClaude Opus 5.5 c95c437cb6 queue: revs 1659-1674, row 87 rounds 3 and 4 (round 4 approved by Filbert), row 128 assigned to Researcher, row 149 round 2
Sage: 1659-1661 (row 87 round 3 to in-review, comment 28868), 1667-1669
(row 128 assigned to researcher, brief re-pinned, briefed), 1671-1673
(row 87 round 4 to in-review on e5dbcf626, comment 28874).

Other seats' revs, swept in by the snapshot: Filbert 1662 (row 87 r3
changes, 28870) and 1674 (row 87 r4 approve, 28876), Dewey 1663, 1665, 1666 (row 149 round 2 in-review, 28872),
Darkwing 1664 (row 87 r3 changes, 28871), Researcher 1670 (row 128
in-progress).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 09:12:46 -05:00
jason.woltjeandClaude Opus 5.5 e5dbcf6264 plans: row 87 round 4 adds the core container's lifecycle and bus status liveness, answering Darkwing's and Filbert's round 3 reviews (#1581)
Design section 3 gains "The core container's lifecycle": the fixed name,
labels and --rm; tagged fork lines that carry each fork's replies, kills
and exit codes, so the host's per-child stop, start-failure kill and
watchChildren keep their logic; what the entry does when one fork exits;
the client ending first; SIGTERM; the host dying without closing stdin
(not spiked, I6 measures it); the leftover removal at bus start; and
bus status liveness from the engine instead of the lock's container pid.
B2 now names caps on the entry's engine-relayed stdout. Section 9 and
I6's files and tests carry the new rules. Broker cites move to
0f3eb25ea after row 143; LAUNCH_OPS is process.mjs:5-20.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 09:08:45 -05:00
jason.woltjeandClaude Opus 5.5 0f3eb25ea0 plans: refreshed row 128 brief, the bus project and thread verbs and talk --thread (#1622)
The 2026-10-14 brief predates rows 121, 142 and 143. This one names the
verbs on the existing broker ops, keeps plain talk asking for a thread
with no default, and targets acceptance 314 steps 1 and 3. Owner moves
to researcher.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 09:03:57 -05:00
jason.woltjeandClaude Opus 5.5 ac55e84fe4 plans: row 87 round 3 adds the host channel and keeps bindLaunch, answering Darkwing's and Filbert's round 2 reviews (#1581)
Darkwing L (comment 28863): section 3 gains "The host channel, a
boundary change". The bus host starts the core container with
`docker run -i` as its own child; core-entry.mjs forks process.mjs and
notifier-process.mjs with IPC inside it and relays tagged JSON lines over
the client's stdin and stdout. The core container runs with
--log-driver none, since replies carry caps; I6 tests that. The channel
adds no authentication of its own, so it is boundary change B2.

Darkwing M: the registry keeps the docker run client's pid and
startTime, so bindLaunch, runtime.mjs and broker.mjs are unchanged and
I5 changes no file in packages/bus. The human proof's ancestry check
never meets the client, so the mount list carries that boundary and I5
tests that a session can't reach sock/human or sock/relay. recover()
removes the container, kills a leftover client and binds as today.

Darkwing nits: the start check's temp names are patterns from their
writers, five state files, and the git-socket.mjs split across I3, I5
and I6.

Filbert (comment 28864): section 10 states the Console's outbound
reach on the mosaic-console bridge, no wider than today, with the
--network none forwarder as the not-spiked follow-up named on P19 333.
Section 7 says four networks and lists mosaic-console.

Section 11 lists B1 (the Console bind, before I4) and B2 (the host
channel, before I6); I4's and I6's gates name their ruling.

Doc-only: no test reads either file.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 08:56:57 -05:00
jason.woltjeandClaude Opus 5.5 6e7fdf7ffc queue: revisions 1645-1658 (row 143 done)
Sage: 1645-1646 (re-pins of 143 and 149 to 8fcd0887e), 1650-1651 (row 143 round 2 review request), 1652-1654 (row 87 in-review r2), 1658 (sage-143-done; landed as 0278b9e0b).
Researcher: 1647-1649 (row 143 round 2 in-progress and in-review).
Dewey: 1655 (dewey-143-verdict-2, round 2 approve, comment 28862).
Darkwing: 1656 (darkwing-r87-r2-verdict, row 87 round 2 changes, comment 28863).
Filbert: 1657 (filbert-87-r2, row 87 round 2 changes, comment 28864).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 08:55:09 -05:00
jason.woltjeandClaude Opus 5.5 47b030d9bc plans: row 87 round 2 answers Filbert's and Darkwing's reviews of the containerized install design (#1581)
The Console binds 0.0.0.0 in its own namespace behind a host-loopback
publish (a decision 107 enforcement change, reach unchanged). It mounts
businesses/ and its other mounts at their host paths, checks bus-host/
against an allowlist, turns the queue panel off, and answers 404 on every
board route. The git socket's bundles and land logs move to git-host/.
recover() still ends leftover runs host-lost. RESOLVED_VIA gets a
human-socket entry, and every container kind gets mount-list and
hardening tests. Spike citations are corrected, and the root case and
two-network setup are marked as not spiked.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 08:41:55 -05:00
jason.woltjeandClaude Opus 5.5 8fcd0887e0 plans: row 143 round 2 adds the chief-of-staff relay bullet, and acceptance 314 needs row 128's thread (#1637)
Dewey's F5 on comment 28853: nothing tells the chief of staff to relay a
BLOCK or an accept in_reply_to the message that carried it, and the bus
refuses a relay without that link. Row 143's brief now owns one bullet in
roles/chief-of-staff.md.

Dewey's F1: the assistant is the threaded instance, so a plain talk is
refused thread-required-use-thread-send, and no CLI code creates a project
or a thread before row 128. Acceptance 314 adds row 128 to its
prerequisites and a step that creates and opens Jason's assistant thread
in the project.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 08:28:33 -05:00
jason.woltjeandClaude Opus 5.5 c550efa278 queue: revisions 1632-1644 (re-pins of 149 and 143; row 143 in-review r1 for Researcher with the request 28849 and Dewey's changes 28853; row 87 in-review r1 with Filbert's 28851 and Darkwing's 28852 changes; row 149 in-review r1 for Dewey, request 28855)
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-18 08:27:04 -05:00