Round 1 onf539466f: request comment 26577 by darkwing, approval comment 26579 by filbert, recorded at rev 17. The rev 17 entry went intof3f48cfd, whose message doesn't mention it. No file was added under docs/plans/reviews/. Co-Authored-By: Claude Opus 5.5 <[email protected]>
2417 lines
100 KiB
JSON
2417 lines
100 KiB
JSON
{
|
||
"version": 1,
|
||
"canonicalRoot": "/mnt/storage/src/mosaic-stack",
|
||
"revision": 19,
|
||
"rows": [
|
||
{
|
||
"id": 1,
|
||
"piece": "Control board MVP (scanner + page)",
|
||
"owner": "darkwing",
|
||
"issues": [
|
||
1503
|
||
],
|
||
"closes": [
|
||
1503
|
||
],
|
||
"state": "done",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "A passed 2026-09-12",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-12_control-board-mvp.md",
|
||
"anchor": "Control board MVP — plan",
|
||
"blob": "51a35b3bc24ebb9f8b27ef985b024bb7540ab3e0"
|
||
},
|
||
"after": [],
|
||
"reviewers": [],
|
||
"review": null,
|
||
"claim": null,
|
||
"note": "done 2026-09-27 (Sage, lead decision 29): D-001 MVP delivered, Gate A passed 2026-09-12, attention status operator-accepted (row 22), relaunch activity, attribution and Host guard landed; #1503 closed; cross-harness board work belongs to Gate E (row 5)",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 2,
|
||
"piece": "Seat registration and `mosaic seat task`",
|
||
"owner": "darkwing",
|
||
"issues": [
|
||
1504
|
||
],
|
||
"closes": [
|
||
1504
|
||
],
|
||
"state": "done",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "B passed 2026-09-12",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-12_control-board-mvp.md",
|
||
"anchor": "Step 3: daily use and fixes",
|
||
"blob": "51a35b3bc24ebb9f8b27ef985b024bb7540ab3e0"
|
||
},
|
||
"after": [],
|
||
"reviewers": [],
|
||
"review": null,
|
||
"claim": null,
|
||
"note": "done 2026-09-13",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 3,
|
||
"piece": "Reply-from-board (piece 2 on the plan page)",
|
||
"owner": "darkwing",
|
||
"issues": [
|
||
1505
|
||
],
|
||
"closes": [
|
||
1505
|
||
],
|
||
"state": "done",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "C passed 2026-09-12",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-12_control-board-mvp.md",
|
||
"anchor": "Piece 2: reply-from-board",
|
||
"blob": "51a35b3bc24ebb9f8b27ef985b024bb7540ab3e0"
|
||
},
|
||
"after": [],
|
||
"reviewers": [],
|
||
"review": null,
|
||
"claim": null,
|
||
"note": "done 2026-09-12",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 4,
|
||
"piece": "Ledger (piece 3 on the plan page)",
|
||
"owner": "darkwing",
|
||
"issues": [
|
||
1506
|
||
],
|
||
"closes": [
|
||
1506
|
||
],
|
||
"state": "done",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "D: 18.9 human messages per closed issue, week of 2026-09-06",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-12_control-board-mvp.md",
|
||
"anchor": "Piece 3: ledger (numbers for the rails)",
|
||
"blob": "51a35b3bc24ebb9f8b27ef985b024bb7540ab3e0"
|
||
},
|
||
"after": [],
|
||
"reviewers": [],
|
||
"review": null,
|
||
"claim": null,
|
||
"note": "done 2026-09-13",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 5,
|
||
"piece": "WebUI first screen on the Console design (piece 4 on the plan page)",
|
||
"owner": "dewey",
|
||
"issues": [
|
||
1507
|
||
],
|
||
"closes": [
|
||
1507
|
||
],
|
||
"state": "in-progress",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "E: all-seat interactive demonstration then Jason workday ruling; live cutover separately approved",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-13_webui-session-chat.md",
|
||
"anchor": "WebUI session chat: refined brief and delivery plan",
|
||
"blob": "58fb11f8ebd201097905b62f6f801b0e2e2d235a"
|
||
},
|
||
"after": [],
|
||
"reviewers": [
|
||
"filbert",
|
||
"rocko"
|
||
],
|
||
"review": null,
|
||
"claim": {
|
||
"seat": "dewey",
|
||
"op": "genesis-2026-09-27"
|
||
},
|
||
"note": "CHAT-00/01/01C published (370823b3, 28d4e98a, b023841c); CHAT-02 done: backend a5beb6d9, Console c9e771cf, live check passed 2026-09-26; CHAT-03 brief pinned 2026-09-27 (BRIEF.md 1ef15ac0, lead decisions 30 to 34); CHAT-03 source author Dewey, reviewers Filbert then Rocko on binding and extension refusal, two rounds (lead decision 36); CHAT-04..08 not chartered; Gate E blocked",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T01:25:02.397Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 6,
|
||
"piece": "Darkwing on point: darkwing assigns and gates filbert's work (piece 5 on the plan page)",
|
||
"owner": "darkwing",
|
||
"issues": [
|
||
1511,
|
||
1512
|
||
],
|
||
"closes": [
|
||
1511,
|
||
1512
|
||
],
|
||
"state": "done",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "F: filbert's item closes with zero human messages from Jason; code phase does not claim Gate F",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-12_control-board-mvp.md",
|
||
"anchor": "Piece 5: darkwing on point (orchestrator behaviour)",
|
||
"blob": "51a35b3bc24ebb9f8b27ef985b024bb7540ab3e0"
|
||
},
|
||
"after": [],
|
||
"reviewers": [
|
||
"dewey"
|
||
],
|
||
"review": null,
|
||
"claim": null,
|
||
"note": "done 2026-09-27 (lead decision 29): #1511 and #1512 landed in af4203ca (pushed), closed; Gate F not passed (2 human messages in filbert's T3 thread; the first 11 days predate the T3 source); Gate G (row 9) carries the test. Filbert authored the pilot. Briefs also: 2026-09-15_relaunch-activity.md, 2026-09-14_task-attribution.md",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 7,
|
||
"piece": "Weekly ledger run and rails number",
|
||
"owner": "sage",
|
||
"issues": [],
|
||
"closes": [],
|
||
"state": "in-progress",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "under 10 human messages per closed issue for the week of 2026-09-13",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "packages/ledger/README.md",
|
||
"anchor": "Ledger",
|
||
"blob": "3a2ce27cdc4ef939258fa51eeb0e942bc60fb617"
|
||
},
|
||
"after": [],
|
||
"reviewers": [],
|
||
"review": null,
|
||
"claim": {
|
||
"seat": "sage",
|
||
"op": "genesis-2026-09-27"
|
||
},
|
||
"note": "recurring, every Monday (lead decision 27); Jason reads; 09-13..19: 47.7, 09-20..26: 33.0 human messages per closed issue",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 8,
|
||
"piece": "Fleet seats (`~/.mosaic`) onto `mosaic launch`",
|
||
"owner": "unassigned",
|
||
"issues": [],
|
||
"closes": [],
|
||
"state": "parked",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "Jason's call",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-26_fleet-seats-onto-mosaic-launch.md",
|
||
"anchor": "Row 8: fleet seats onto `mosaic launch` (stub brief)",
|
||
"blob": "df316da4a1a7c456a76ca799033ba1e0088d398a"
|
||
},
|
||
"after": [],
|
||
"reviewers": [],
|
||
"review": null,
|
||
"claim": null,
|
||
"note": "parked by current owner direction; no `~/.mosaic` changes during internal bootstrap",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 9,
|
||
"piece": "Queue as data: `docs/plans/queue.json`, `mosaic queue` is the only writer",
|
||
"owner": "darkwing",
|
||
"issues": [
|
||
1508
|
||
],
|
||
"closes": [],
|
||
"state": "waiting-on-jason",
|
||
"previousState": null,
|
||
"required": true,
|
||
"requiredSince": "2026-09-13",
|
||
"gate": "G: a fresh seat told only \"run `mosaic queue next` and do it\" starts its piece with zero human messages",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-13_queue-as-data.md",
|
||
"anchor": "Piece A: queue record and `mosaic queue` (QUEUE row 9)",
|
||
"blob": "0e57399e9e48b934ac7f7e6ff904d871b956407d"
|
||
},
|
||
"after": [],
|
||
"reviewers": [
|
||
"filbert"
|
||
],
|
||
"review": {
|
||
"rounds": [
|
||
{
|
||
"n": 1,
|
||
"op": "darkwing-9-review-1",
|
||
"by": "darkwing",
|
||
"at": "2026-09-27T01:18:13.080Z",
|
||
"issue": 1508,
|
||
"candidate": {
|
||
"kind": "commit",
|
||
"digest": "6ca116b7ba6d01df3e0e50bb69799d12b94942b5",
|
||
"text": null
|
||
},
|
||
"request": "none"
|
||
}
|
||
]
|
||
},
|
||
"claim": {
|
||
"seat": "darkwing",
|
||
"op": "genesis-2026-09-27"
|
||
},
|
||
"note": "A1 34a72af9 and A2 6ca116b7 committed; Filbert approved both, and review round 1's candidate 6ca116b7 matches the approved A2 manifest 21/21 (agents/filbert/work/queue-a2-review-r1-2026-09-27.md); genesis 3377b877 by Sage; waits on Gate G, which also verifies row 10 and carries Gate F's zero-human-message test",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T01:18:22.293Z",
|
||
"updatedBy": "darkwing"
|
||
},
|
||
{
|
||
"id": 10,
|
||
"piece": "Seats read the queue, not CURRENT.md (AGENTS.md cadence, seat context files)",
|
||
"owner": "sage",
|
||
"issues": [
|
||
1508
|
||
],
|
||
"closes": [],
|
||
"state": "waiting-on-jason",
|
||
"previousState": null,
|
||
"required": true,
|
||
"requiredSince": "2026-09-13",
|
||
"gate": "verified by Gate G",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-13_queue-as-data.md",
|
||
"anchor": "Piece B: seats read the queue, not CURRENT.md (QUEUE row 10)",
|
||
"blob": "0e57399e9e48b934ac7f7e6ff904d871b956407d"
|
||
},
|
||
"after": [],
|
||
"reviewers": [],
|
||
"review": {
|
||
"rounds": [
|
||
{
|
||
"n": 1,
|
||
"op": "row10-review-r1",
|
||
"by": "sage",
|
||
"at": "2026-09-27T01:23:20.299Z",
|
||
"issue": 1508,
|
||
"candidate": {
|
||
"kind": "commit",
|
||
"digest": "5efe28ab01c275c41979db2974b422a449dbf1e9",
|
||
"text": null
|
||
},
|
||
"request": "none"
|
||
}
|
||
]
|
||
},
|
||
"claim": {
|
||
"seat": "sage",
|
||
"op": "row10-start"
|
||
},
|
||
"note": "source 5efe28ab: AGENTS.md cadence, pointer and recovery rule, six seat CONTEXT files, queue README n3; QUEUE.md header points at the goals review (n2). Gate G verifies it: a seat starts from queue next with no human message",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T01:23:20.429Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 11,
|
||
"piece": "Brief template `docs/plans/BRIEF-TEMPLATE.md`; `queue add` refuses a missing brief",
|
||
"owner": "darkwing",
|
||
"issues": [
|
||
1508
|
||
],
|
||
"closes": [],
|
||
"state": "waiting-on-jason",
|
||
"previousState": null,
|
||
"required": true,
|
||
"requiredSince": "2026-09-13",
|
||
"gate": "two briefs accepted by Jason with no scope question",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-13_queue-as-data.md",
|
||
"anchor": "Piece C: brief template (QUEUE row 11)",
|
||
"blob": "0e57399e9e48b934ac7f7e6ff904d871b956407d"
|
||
},
|
||
"after": [],
|
||
"reviewers": [],
|
||
"review": null,
|
||
"claim": {
|
||
"seat": "darkwing",
|
||
"op": "genesis-2026-09-27"
|
||
},
|
||
"note": "template and the `queue add` brief refusal both committed with A1 (34a72af9); the gate counts the first briefs added through the queue",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 12,
|
||
"piece": "Reviews as issue comments posted by `queue move ID in-review`, not files in `docs/plans/reviews/`",
|
||
"owner": "darkwing",
|
||
"issues": [
|
||
1508
|
||
],
|
||
"closes": [],
|
||
"state": "done",
|
||
"previousState": null,
|
||
"required": true,
|
||
"requiredSince": "2026-09-13",
|
||
"gate": "one review round with no new file under reviews/",
|
||
"gateOwner": "sage",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-13_queue-as-data.md",
|
||
"anchor": "Piece D: reviews through a channel, not files (QUEUE row 12)",
|
||
"blob": "0e57399e9e48b934ac7f7e6ff904d871b956407d"
|
||
},
|
||
"after": [],
|
||
"reviewers": [
|
||
"filbert"
|
||
],
|
||
"review": {
|
||
"rounds": [
|
||
{
|
||
"n": 1,
|
||
"op": "darkwing-12-review-1",
|
||
"by": "darkwing",
|
||
"at": "2026-09-27T15:09:58.299Z",
|
||
"issue": 1508,
|
||
"candidate": {
|
||
"kind": "commit",
|
||
"digest": "f539466fcb392ba7eaa0a491e5249b67719b956d",
|
||
"text": null
|
||
},
|
||
"request": "comment",
|
||
"attempts": [
|
||
{
|
||
"op": "darkwing-12-review-1",
|
||
"by": "darkwing",
|
||
"at": "2026-09-27T15:09:58.299Z",
|
||
"state": "posted",
|
||
"comment": 26577,
|
||
"transport": {
|
||
"outcome": "posted",
|
||
"status": 201,
|
||
"comment": 26577,
|
||
"detail": "created"
|
||
},
|
||
"resolutions": []
|
||
}
|
||
],
|
||
"duplicateRisk": false,
|
||
"receipts": [
|
||
{
|
||
"reviewer": "filbert",
|
||
"op": "filbert-12-record-1",
|
||
"at": "2026-09-27T15:11:58.426Z",
|
||
"verdict": "approve",
|
||
"comment": 26579,
|
||
"candidate": "f539466fcb392ba7eaa0a491e5249b67719b956d"
|
||
}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
"claim": null,
|
||
"note": "starts once genesis is committed; the live posting test needs the per-seat credential file (8.9)",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T15:13:49.209Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 13,
|
||
"piece": "Ledger \"queue\" section: issue/row/seat drift printed with the weekly number",
|
||
"owner": "darkwing",
|
||
"issues": [
|
||
1508
|
||
],
|
||
"closes": [
|
||
1508
|
||
],
|
||
"state": "in-progress",
|
||
"previousState": null,
|
||
"required": true,
|
||
"requiredSince": "2026-09-13",
|
||
"gate": "rows 9 to 12 done, then a Monday ledger run with zero queue violations, or every one moved the same day",
|
||
"gateOwner": "sage",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-13_queue-as-data.md",
|
||
"anchor": "Piece E: ledger checks the queue (QUEUE row 13)",
|
||
"blob": "0e57399e9e48b934ac7f7e6ff904d871b956407d"
|
||
},
|
||
"after": [],
|
||
"reviewers": [
|
||
"filbert"
|
||
],
|
||
"review": null,
|
||
"claim": {
|
||
"seat": "darkwing",
|
||
"op": "darkwing-13-start-1"
|
||
},
|
||
"note": "starts once genesis is committed; closes #1508 when done, so rows 9 to 12 close nothing; first run is the Monday after E is approved (Q7)",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T15:12:11.975Z",
|
||
"updatedBy": "darkwing"
|
||
},
|
||
{
|
||
"id": 14,
|
||
"piece": "Discord connector pilot: Sage answers in Shared Signals (chat only, no tools, no repo writes)",
|
||
"owner": "coordinator",
|
||
"issues": [
|
||
1509
|
||
],
|
||
"closes": [
|
||
1509
|
||
],
|
||
"state": "done",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "H: offline suite green, eight-step live pilot with private receipts, then Jason says the reply reads as Sage",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-13_discord-connector-pilot.md",
|
||
"anchor": "Discord connector pilot: Sage on Shared Signals",
|
||
"blob": "ef6cdbb8a38c1b22d8f1c3dcbc34260cdac9714e"
|
||
},
|
||
"after": [],
|
||
"reviewers": [
|
||
"filbert"
|
||
],
|
||
"review": null,
|
||
"claim": null,
|
||
"note": "done: rev-code-02 APPROVE 26170 (round 9), committed 786e379c; pilot steps 1-8 done with private receipts, Gate H passed (Jason, 2026-09-13: replies read as Sage); connector left running for MVP iteration; reviewer lane was Filbert or orch-01",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 15,
|
||
"piece": "Discord connector: eyes reaction on every admitted message as a read receipt (MVP iteration 1)",
|
||
"owner": "coordinator",
|
||
"issues": [
|
||
1509
|
||
],
|
||
"closes": [
|
||
1509
|
||
],
|
||
"state": "done",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "Jason sees the reaction on a live message",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-13_discord-connector-pilot.md",
|
||
"anchor": "11. MVP iteration, after the pilot",
|
||
"blob": "ef6cdbb8a38c1b22d8f1c3dcbc34260cdac9714e"
|
||
},
|
||
"after": [],
|
||
"reviewers": [],
|
||
"review": null,
|
||
"claim": null,
|
||
"note": "done: committed 93d6b624, live check passed 19:21 UTC (turn record receipt ok, Jason: test is successful), receipt `mvp1-read-receipt-20260913T192158Z.json` in the private evidence dir; reaction placed at admission before the engine runs, outcome in the turn record, none on drops or refusals; `scripts/test-discord.sh` 28/28 (90 node tests)",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 16,
|
||
"piece": "Repository-native development bootstrap: five internal agents, Darkwing coordination",
|
||
"owner": "darkwing",
|
||
"issues": [
|
||
1510
|
||
],
|
||
"closes": [
|
||
1510
|
||
],
|
||
"state": "waiting-on-jason",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "source approved; Researcher live response passed 26216; existing native Rocko lock preserved, no new Rocko model test; no MVP acceptance/publication",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-13_internal-development-bootstrap.md",
|
||
"anchor": "Repository-native development bootstrap",
|
||
"blob": "5dfe2f34ab1c4cdd34d4aebd00804df3842c24e2"
|
||
},
|
||
"after": [],
|
||
"reviewers": [
|
||
"filbert"
|
||
],
|
||
"review": null,
|
||
"claim": {
|
||
"seat": "darkwing",
|
||
"op": "genesis-2026-09-27"
|
||
},
|
||
"note": "Sage checked 2026-09-27: acceptance items 1 to 5 are met, source landed in af4203ca and d41f81aa and is pushed, and the seats are in daily use under Jason's 2026-09-26 ruling (Sage leads, so the title's Darkwing coordination is superseded). No quote from Jason accepts #1510 itself, so it stays here until he closes it or says to",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T01:23:26.447Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 17,
|
||
"piece": "Discord connector: systemd user service with a supervised pre-start (`recover`, exit 3 never retried) (MVP iteration 2)",
|
||
"owner": "coordinator",
|
||
"issues": [
|
||
1509
|
||
],
|
||
"closes": [
|
||
1509
|
||
],
|
||
"state": "done",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "the Sage connector runs under `mosaic-discord@shared-signals`, survives a kill with a clean restart, and stays down behind `discord.sh stop`",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-13_discord-connector-pilot.md",
|
||
"anchor": "11. MVP iteration, after the pilot",
|
||
"blob": "ef6cdbb8a38c1b22d8f1c3dcbc34260cdac9714e"
|
||
},
|
||
"after": [],
|
||
"reviewers": [],
|
||
"review": null,
|
||
"claim": null,
|
||
"note": "done, operator-verified by Jason 2026-09-13 (all four steps): suite 40/40 (95 node tests); Sage seat migrated 19:35 UTC, SIGKILL recovered in 16 s with the dead lock cleared, brake held (exit 3, no restart), released and READY; receipt `mvp2-service-unit-*.json` in the private evidence dir; the first cut (ExecStartPre) looped and was replaced by `run --supervised` before any traffic",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 18,
|
||
"piece": "Control board row for the Discord connector (MVP iteration 3): discovery from binding files, liveness from run.lock, reply refused",
|
||
"owner": "darkwing",
|
||
"issues": [
|
||
1509
|
||
],
|
||
"closes": [
|
||
1509
|
||
],
|
||
"state": "done",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "a Sage (discord) row on the board shows live, offline and braked correctly, and reply from the board is refused",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-14_discord-board-row.md",
|
||
"anchor": "Discord connector board row",
|
||
"blob": "6a7753f8ab9a3c57d6c89857054e4119a1051d13"
|
||
},
|
||
"after": [],
|
||
"reviewers": [],
|
||
"review": null,
|
||
"claim": null,
|
||
"note": "done for bounded local delivery; Jason accepted visual test (parfait), R3 26257 reviewed, 322 tests and live 409 refusal verified; owner by Jason's ruling 2026-09-13, coordinator answered connector-side questions; also briefed in the pilot page section 11",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 19,
|
||
"piece": "Discord connector: binding reload without a restart (`reload` verb, SIGHUP, `systemctl --user reload`); channels, users, limits and guildName apply in place, identity, engine and context stay fixed, an invalid file is refused and the old binding kept (MVP iteration 4)",
|
||
"owner": "coordinator",
|
||
"issues": [
|
||
1509
|
||
],
|
||
"closes": [
|
||
1509
|
||
],
|
||
"state": "done",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "edit the binding, run `scripts/discord.sh reload shared-signals`, the change applies with no restart, a broken edit is refused and journaled",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-13_discord-connector-pilot.md",
|
||
"anchor": "11. MVP iteration, after the pilot",
|
||
"blob": "ef6cdbb8a38c1b22d8f1c3dcbc34260cdac9714e"
|
||
},
|
||
"after": [],
|
||
"reviewers": [],
|
||
"review": null,
|
||
"claim": null,
|
||
"note": "done: caaef941; live 00:03 UTC: reload applied Carmen's entry with no restart, unknown key refused by the CLI (exit 2), fixed key refused in the process with the binding kept, `systemctl --user reload` applied; suite 41/41 (101 node tests); receipt `mvp4-5-reload-carmen-*.json`",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 20,
|
||
"piece": "Discord connector: per-user channel allowlist in the binding and Carmen enrolled (all listed rooms except #sage-admin) (MVP iteration 5)",
|
||
"owner": "coordinator",
|
||
"issues": [
|
||
1509
|
||
],
|
||
"closes": [
|
||
1509
|
||
],
|
||
"state": "done",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "Carmen gets a reply in #general and silence in #sage-admin; Jason unchanged",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-13_discord-connector-pilot.md",
|
||
"anchor": "11. MVP iteration, after the pilot",
|
||
"blob": "ef6cdbb8a38c1b22d8f1c3dcbc34260cdac9714e"
|
||
},
|
||
"after": [],
|
||
"reviewers": [],
|
||
"review": null,
|
||
"claim": null,
|
||
"note": "done: caaef941 (`users[].channels` allowlist, `channel-not-for-user` drop); Carmen enrolled live by reload 00:03 UTC; her first message was the remaining check; #1509 closed with rows 14 to 25 done (lead decision 29)",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 21,
|
||
"piece": "Discord connector: read-only tools for the Discord Sage through a Mosaic pi extension confined to declared roots (MVP iteration 6)",
|
||
"owner": "coordinator",
|
||
"issues": [
|
||
1509
|
||
],
|
||
"closes": [
|
||
1509
|
||
],
|
||
"state": "done",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "Sage answers a question from a file under a declared root with the reads in the turn record; a read outside the roots is refused and recorded",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-14_discord-readonly-tools.md",
|
||
"anchor": "Discord Sage: read-only tools (iteration 6)",
|
||
"blob": "d682fa0fb1c463311c5f8924a9eb860382a9b2ac"
|
||
},
|
||
"after": [],
|
||
"reviewers": [],
|
||
"review": null,
|
||
"claim": null,
|
||
"note": "approved: rev-code-02 round 2 verdict 26276 (tree 43f0329b), committed; Jason ruled R1–R7 2026-09-14 (roots docs/ and agents/sage/, Carmen included); done with rows 14 to 25 when #1509 closed (lead decision 29); reviewer per Q12",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-14",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 22,
|
||
"piece": "Board attention status: completed replies idle, explicit human input waiting",
|
||
"owner": "darkwing",
|
||
"issues": [
|
||
1503
|
||
],
|
||
"closes": [
|
||
1503
|
||
],
|
||
"state": "done",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "operator accepted full targeted status sequence: explicit request waiting, Seen hides attention but preserves waiting, completion returns idle; broader MVP/cross-harness acceptance and publication separate",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-13_board-attention-status.md",
|
||
"anchor": "Board attention status correction",
|
||
"blob": "ce0bb5e3ebda8faf59cff78017257aec1772ccc2"
|
||
},
|
||
"after": [],
|
||
"reviewers": [
|
||
"filbert"
|
||
],
|
||
"review": null,
|
||
"claim": null,
|
||
"note": "source approved, receipt 26248; reviewer 193 per copy, author union 213 pass; actual Researcher scan idle; operator accepted (row 1); #1503 closed (lead decision 29)",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-14",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 23,
|
||
"piece": "Discord connector: writes confined to the `shared-signals` root plus web fetch and search for the Discord Sage (MVP iteration 7)",
|
||
"owner": "coordinator",
|
||
"issues": [
|
||
1509
|
||
],
|
||
"closes": [
|
||
1509
|
||
],
|
||
"state": "done",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "Sage writes a naming shortlist into the repository from #ideas with the write and web calls in the turn record; a write outside the root is refused",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-16_discord-write-and-web-tools.md",
|
||
"anchor": "Discord Sage: writes into the strategy repository, and web research (#1509, QUEUE row 23)",
|
||
"blob": "69a5c5c6e4696dd54c696eb0002f5e31c7d755a2"
|
||
},
|
||
"after": [],
|
||
"reviewers": [],
|
||
"review": null,
|
||
"claim": null,
|
||
"note": "done 2026-09-27 (Sage, lead decision 29): committed and pushed 1685deb4; live turns wrote `vault/Businesses/naming.md` with web_search and web_fetch in the turn record; the outside-root refusal rests on the offline suite, not a live turn; reviewer per Q12",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-16",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 24,
|
||
"piece": "Discord connector: git verbs (status, commit, pull ff-only, push) for the Discord Sage on the `shared-signals` root, seat identity through the existing credential helper (MVP iteration 8)",
|
||
"owner": "coordinator",
|
||
"issues": [
|
||
1509
|
||
],
|
||
"closes": [
|
||
1509
|
||
],
|
||
"state": "done",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "Sage commits and pushes a decision file from #ideas; GitHub shows Sage as author with a Requested-by trailer; no token in any record",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-16_discord-git-tools.md",
|
||
"anchor": "Discord Sage: git for the strategy repository (#1509, QUEUE row 24)",
|
||
"blob": "4139fcc07ad18a355db31205769e054d9dc75a98"
|
||
},
|
||
"after": [],
|
||
"reviewers": [],
|
||
"review": null,
|
||
"claim": null,
|
||
"note": "done 2026-09-27 (Sage, lead decision 29): committed and pushed 1949ed8d; live-configured 2026-09-18, never used from Discord; records now go through row 25 and SetSpark cutover freezes `vault/`, so first real use is the check and a failure opens a new issue; reviewer per Q12",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-16",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 25,
|
||
"piece": "Discord connector: SetSpark record client for the Discord Sage, fixed verbs against setspark-api, connector-verified approvals (MVP iteration 9)",
|
||
"owner": "coordinator",
|
||
"issues": [
|
||
1509
|
||
],
|
||
"closes": [
|
||
1509
|
||
],
|
||
"state": "done",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "Sage creates one work item from #sage-admin and the API shows it with revision 1; a proposal is approved by the Approve button and the audit row carries Sage's key id and Jason's Discord id separately; rev-code-02 approves on #1509",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-20_discord-setspark-client.md",
|
||
"anchor": "Discord Sage: SetSpark record client (#1509, QUEUE row 25)",
|
||
"blob": "19de61ce5a6ec2757b9456b9432ef49d6e63a1e6"
|
||
},
|
||
"after": [],
|
||
"reviewers": [],
|
||
"review": null,
|
||
"claim": null,
|
||
"note": "done 2026-09-26: committed and pushed 43d7574d, live check passed (DEC-010, request 2, approved by button at 21:38:58Z, lead decision 19); approver rule enforced by the service since shared-signals cc74d92 (lead decisions 24 and 28); reviewer per Q12",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-20",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 26,
|
||
"piece": "Registry increment 3 (headless identity-env leak)",
|
||
"owner": "unassigned",
|
||
"issues": [],
|
||
"closes": [],
|
||
"state": "parked",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "Jason reopens",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/CURRENT.md",
|
||
"anchor": "Completed checkpoint: #1500 increment 2 (historical)",
|
||
"blob": "ef462c4eb7b99b64b751fdcff2d81f85452d2017"
|
||
},
|
||
"after": [],
|
||
"reviewers": [],
|
||
"review": null,
|
||
"claim": null,
|
||
"note": "#1500 closed on increment 2; Jason has not asked for 3",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 27,
|
||
"piece": "Auth/provider/harness registry review",
|
||
"owner": "unassigned",
|
||
"issues": [],
|
||
"closes": [],
|
||
"state": "parked",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "Jason reopens",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-03_auth-provider-harness-registry.md",
|
||
"anchor": "Harness declaration + centralized auth/provider registry",
|
||
"blob": "18b922b0b9ae8a4216ccba53ffb549e2d09787ff"
|
||
},
|
||
"after": [],
|
||
"reviewers": [],
|
||
"review": null,
|
||
"claim": null,
|
||
"note": "Paused for owner alignment",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 28,
|
||
"piece": "CI runners, second real adapter, push automation",
|
||
"owner": "unassigned",
|
||
"issues": [],
|
||
"closes": [],
|
||
"state": "parked",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "Jason reopens",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/ROADMAP.md",
|
||
"anchor": "Explicitly deferred",
|
||
"blob": "3d866ce8c1c9ba2c58876bf398f1d55d0a9faaff"
|
||
},
|
||
"after": [],
|
||
"reviewers": [],
|
||
"review": null,
|
||
"claim": null,
|
||
"note": "Deferred by owner 2026-09-03",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 29,
|
||
"piece": "Console features outside the refined session-chat brief, including Fresh creation and model switching",
|
||
"owner": "unassigned",
|
||
"issues": [],
|
||
"closes": [],
|
||
"state": "parked",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "Jason reopens",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-13_webui-session-chat.md",
|
||
"anchor": "WebUI session chat: refined brief and delivery plan",
|
||
"blob": "58fb11f8ebd201097905b62f6f801b0e2e2d235a"
|
||
},
|
||
"after": [],
|
||
"reviewers": [],
|
||
"review": null,
|
||
"claim": null,
|
||
"note": "Deferred by WEBUI Q1; required history/control/stop now belong to row 5, not this parked item",
|
||
"blockedReason": null,
|
||
"createdAt": "unknown",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 30,
|
||
"piece": "Open gaps from the MVP work",
|
||
"owner": "unassigned",
|
||
"issues": [],
|
||
"closes": [],
|
||
"state": "parked",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "Jason reopens",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/DEFERRED.md",
|
||
"anchor": "Open",
|
||
"blob": "fd580118844bb02909d54726c83d08c7d53c393f"
|
||
},
|
||
"after": [],
|
||
"reviewers": [],
|
||
"review": null,
|
||
"claim": null,
|
||
"note": "Fixed only when a gate needs them",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
}
|
||
],
|
||
"log": [
|
||
{
|
||
"rev": 0,
|
||
"op": "genesis-2026-09-27",
|
||
"verb": "genesis",
|
||
"args": {
|
||
"root": "/mnt/storage/src/mosaic-stack",
|
||
"branch": "refactor",
|
||
"map": "agents/darkwing/work/queue-migration-map.md"
|
||
},
|
||
"by": "sage",
|
||
"at": "2026-09-27T01:14:44.440Z",
|
||
"semantics": 1,
|
||
"result": {
|
||
"mapBlob": "21fc374784399b418ba6625eb0cc3e98bf445257",
|
||
"highWater": 30,
|
||
"retired": [],
|
||
"rows": [
|
||
{
|
||
"id": 1,
|
||
"piece": "Control board MVP (scanner + page)",
|
||
"owner": "darkwing",
|
||
"issues": [
|
||
1503
|
||
],
|
||
"closes": [
|
||
1503
|
||
],
|
||
"state": "done",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "A passed 2026-09-12",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-12_control-board-mvp.md",
|
||
"anchor": "Control board MVP — plan",
|
||
"blob": "51a35b3bc24ebb9f8b27ef985b024bb7540ab3e0"
|
||
},
|
||
"after": [],
|
||
"reviewers": [],
|
||
"review": null,
|
||
"claim": null,
|
||
"note": "done 2026-09-27 (Sage, lead decision 29): D-001 MVP delivered, Gate A passed 2026-09-12, attention status operator-accepted (row 22), relaunch activity, attribution and Host guard landed; #1503 closed; cross-harness board work belongs to Gate E (row 5)",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 2,
|
||
"piece": "Seat registration and `mosaic seat task`",
|
||
"owner": "darkwing",
|
||
"issues": [
|
||
1504
|
||
],
|
||
"closes": [
|
||
1504
|
||
],
|
||
"state": "done",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "B passed 2026-09-12",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-12_control-board-mvp.md",
|
||
"anchor": "Step 3: daily use and fixes",
|
||
"blob": "51a35b3bc24ebb9f8b27ef985b024bb7540ab3e0"
|
||
},
|
||
"after": [],
|
||
"reviewers": [],
|
||
"review": null,
|
||
"claim": null,
|
||
"note": "done 2026-09-13",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 3,
|
||
"piece": "Reply-from-board (piece 2 on the plan page)",
|
||
"owner": "darkwing",
|
||
"issues": [
|
||
1505
|
||
],
|
||
"closes": [
|
||
1505
|
||
],
|
||
"state": "done",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "C passed 2026-09-12",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-12_control-board-mvp.md",
|
||
"anchor": "Piece 2: reply-from-board",
|
||
"blob": "51a35b3bc24ebb9f8b27ef985b024bb7540ab3e0"
|
||
},
|
||
"after": [],
|
||
"reviewers": [],
|
||
"review": null,
|
||
"claim": null,
|
||
"note": "done 2026-09-12",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 4,
|
||
"piece": "Ledger (piece 3 on the plan page)",
|
||
"owner": "darkwing",
|
||
"issues": [
|
||
1506
|
||
],
|
||
"closes": [
|
||
1506
|
||
],
|
||
"state": "done",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "D: 18.9 human messages per closed issue, week of 2026-09-06",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-12_control-board-mvp.md",
|
||
"anchor": "Piece 3: ledger (numbers for the rails)",
|
||
"blob": "51a35b3bc24ebb9f8b27ef985b024bb7540ab3e0"
|
||
},
|
||
"after": [],
|
||
"reviewers": [],
|
||
"review": null,
|
||
"claim": null,
|
||
"note": "done 2026-09-13",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 5,
|
||
"piece": "WebUI first screen on the Console design (piece 4 on the plan page)",
|
||
"owner": "dewey",
|
||
"issues": [
|
||
1507
|
||
],
|
||
"closes": [
|
||
1507
|
||
],
|
||
"state": "in-progress",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "E: all-seat interactive demonstration then Jason workday ruling; live cutover separately approved",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-13_webui-session-chat.md",
|
||
"anchor": "WebUI session chat: refined brief and delivery plan",
|
||
"blob": "58fb11f8ebd201097905b62f6f801b0e2e2d235a"
|
||
},
|
||
"after": [],
|
||
"reviewers": [
|
||
"filbert",
|
||
"rocko"
|
||
],
|
||
"review": null,
|
||
"claim": {
|
||
"seat": "dewey",
|
||
"op": "genesis-2026-09-27"
|
||
},
|
||
"note": "CHAT-00/01/01C published (370823b3, 28d4e98a, b023841c); CHAT-02 done: backend a5beb6d9, Console c9e771cf, live check passed 2026-09-26; CHAT-03 brief approved and pinned 2026-09-27 (BRIEF.md 1ef15ac0, rescoped to Gate E, lead decisions 30 to 33; Filbert r3 approve, Rocko blocker closed, Filbert scope check pass); source author named by Sage after queue A2 lands; CHAT-04..08 not chartered; Gate E blocked",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 6,
|
||
"piece": "Darkwing on point: darkwing assigns and gates filbert's work (piece 5 on the plan page)",
|
||
"owner": "darkwing",
|
||
"issues": [
|
||
1511,
|
||
1512
|
||
],
|
||
"closes": [
|
||
1511,
|
||
1512
|
||
],
|
||
"state": "done",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "F: filbert's item closes with zero human messages from Jason; code phase does not claim Gate F",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-12_control-board-mvp.md",
|
||
"anchor": "Piece 5: darkwing on point (orchestrator behaviour)",
|
||
"blob": "51a35b3bc24ebb9f8b27ef985b024bb7540ab3e0"
|
||
},
|
||
"after": [],
|
||
"reviewers": [
|
||
"dewey"
|
||
],
|
||
"review": null,
|
||
"claim": null,
|
||
"note": "done 2026-09-27 (lead decision 29): #1511 and #1512 landed in af4203ca (pushed), closed; Gate F not passed (2 human messages in filbert's T3 thread; the first 11 days predate the T3 source); Gate G (row 9) carries the test. Filbert authored the pilot. Briefs also: 2026-09-15_relaunch-activity.md, 2026-09-14_task-attribution.md",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 7,
|
||
"piece": "Weekly ledger run and rails number",
|
||
"owner": "sage",
|
||
"issues": [],
|
||
"closes": [],
|
||
"state": "in-progress",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "under 10 human messages per closed issue for the week of 2026-09-13",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "packages/ledger/README.md",
|
||
"anchor": "Ledger",
|
||
"blob": "3a2ce27cdc4ef939258fa51eeb0e942bc60fb617"
|
||
},
|
||
"after": [],
|
||
"reviewers": [],
|
||
"review": null,
|
||
"claim": {
|
||
"seat": "sage",
|
||
"op": "genesis-2026-09-27"
|
||
},
|
||
"note": "recurring, every Monday (lead decision 27); Jason reads; 09-13..19: 47.7, 09-20..26: 33.0 human messages per closed issue",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 8,
|
||
"piece": "Fleet seats (`~/.mosaic`) onto `mosaic launch`",
|
||
"owner": "unassigned",
|
||
"issues": [],
|
||
"closes": [],
|
||
"state": "parked",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "Jason's call",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-26_fleet-seats-onto-mosaic-launch.md",
|
||
"anchor": "Row 8: fleet seats onto `mosaic launch` (stub brief)",
|
||
"blob": "df316da4a1a7c456a76ca799033ba1e0088d398a"
|
||
},
|
||
"after": [],
|
||
"reviewers": [],
|
||
"review": null,
|
||
"claim": null,
|
||
"note": "parked by current owner direction; no `~/.mosaic` changes during internal bootstrap",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 9,
|
||
"piece": "Queue as data: `docs/plans/queue.json`, `mosaic queue` is the only writer",
|
||
"owner": "darkwing",
|
||
"issues": [
|
||
1508
|
||
],
|
||
"closes": [],
|
||
"state": "in-progress",
|
||
"previousState": null,
|
||
"required": true,
|
||
"requiredSince": "2026-09-13",
|
||
"gate": "G: a fresh seat told only \"run `mosaic queue next` and do it\" starts its piece with zero human messages",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-13_queue-as-data.md",
|
||
"anchor": "Piece A: queue record and `mosaic queue` (QUEUE row 9)",
|
||
"blob": "0e57399e9e48b934ac7f7e6ff904d871b956407d"
|
||
},
|
||
"after": [],
|
||
"reviewers": [
|
||
"filbert"
|
||
],
|
||
"review": null,
|
||
"claim": {
|
||
"seat": "darkwing",
|
||
"op": "genesis-2026-09-27"
|
||
},
|
||
"note": "A1 (journal, lock, CLI, verify) committed 34a72af9; A2 (migration, render, dispatch) committed with this map; Filbert approved both; genesis and hook install by Sage; Gate G also verifies row 10",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 10,
|
||
"piece": "Seats read the queue, not CURRENT.md (AGENTS.md cadence, seat context files)",
|
||
"owner": "coordinator",
|
||
"issues": [
|
||
1508
|
||
],
|
||
"closes": [],
|
||
"state": "briefed",
|
||
"previousState": null,
|
||
"required": true,
|
||
"requiredSince": "2026-09-13",
|
||
"gate": "verified by Gate G",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-13_queue-as-data.md",
|
||
"anchor": "Piece B: seats read the queue, not CURRENT.md (QUEUE row 10)",
|
||
"blob": "0e57399e9e48b934ac7f7e6ff904d871b956407d"
|
||
},
|
||
"after": [],
|
||
"reviewers": [],
|
||
"review": null,
|
||
"claim": null,
|
||
"note": "AGENTS.md lines done 2026-09-13; the rest starts once genesis is committed",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 11,
|
||
"piece": "Brief template `docs/plans/BRIEF-TEMPLATE.md`; `queue add` refuses a missing brief",
|
||
"owner": "darkwing",
|
||
"issues": [
|
||
1508
|
||
],
|
||
"closes": [],
|
||
"state": "waiting-on-jason",
|
||
"previousState": null,
|
||
"required": true,
|
||
"requiredSince": "2026-09-13",
|
||
"gate": "two briefs accepted by Jason with no scope question",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-13_queue-as-data.md",
|
||
"anchor": "Piece C: brief template (QUEUE row 11)",
|
||
"blob": "0e57399e9e48b934ac7f7e6ff904d871b956407d"
|
||
},
|
||
"after": [],
|
||
"reviewers": [],
|
||
"review": null,
|
||
"claim": {
|
||
"seat": "darkwing",
|
||
"op": "genesis-2026-09-27"
|
||
},
|
||
"note": "template and the `queue add` brief refusal both committed with A1 (34a72af9); the gate counts the first briefs added through the queue",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 12,
|
||
"piece": "Reviews as issue comments posted by `queue move ID in-review`, not files in `docs/plans/reviews/`",
|
||
"owner": "darkwing",
|
||
"issues": [
|
||
1508
|
||
],
|
||
"closes": [],
|
||
"state": "briefed",
|
||
"previousState": null,
|
||
"required": true,
|
||
"requiredSince": "2026-09-13",
|
||
"gate": "one review round with no new file under reviews/",
|
||
"gateOwner": "sage",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-13_queue-as-data.md",
|
||
"anchor": "Piece D: reviews through a channel, not files (QUEUE row 12)",
|
||
"blob": "0e57399e9e48b934ac7f7e6ff904d871b956407d"
|
||
},
|
||
"after": [],
|
||
"reviewers": [],
|
||
"review": null,
|
||
"claim": null,
|
||
"note": "starts once genesis is committed; the live posting test needs the per-seat credential file (8.9)",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 13,
|
||
"piece": "Ledger \"queue\" section: issue/row/seat drift printed with the weekly number",
|
||
"owner": "darkwing",
|
||
"issues": [
|
||
1508
|
||
],
|
||
"closes": [
|
||
1508
|
||
],
|
||
"state": "briefed",
|
||
"previousState": null,
|
||
"required": true,
|
||
"requiredSince": "2026-09-13",
|
||
"gate": "first run Monday 2026-09-21, zero violations or every one moved same day",
|
||
"gateOwner": "sage",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-13_queue-as-data.md",
|
||
"anchor": "Piece E: ledger checks the queue (QUEUE row 13)",
|
||
"blob": "0e57399e9e48b934ac7f7e6ff904d871b956407d"
|
||
},
|
||
"after": [],
|
||
"reviewers": [
|
||
"filbert"
|
||
],
|
||
"review": null,
|
||
"claim": null,
|
||
"note": "starts once genesis is committed; closes #1508 when done, so rows 9 to 12 close nothing; first run is the Monday after E is approved (Q7)",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 14,
|
||
"piece": "Discord connector pilot: Sage answers in Shared Signals (chat only, no tools, no repo writes)",
|
||
"owner": "coordinator",
|
||
"issues": [
|
||
1509
|
||
],
|
||
"closes": [
|
||
1509
|
||
],
|
||
"state": "done",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "H: offline suite green, eight-step live pilot with private receipts, then Jason says the reply reads as Sage",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-13_discord-connector-pilot.md",
|
||
"anchor": "Discord connector pilot: Sage on Shared Signals",
|
||
"blob": "ef6cdbb8a38c1b22d8f1c3dcbc34260cdac9714e"
|
||
},
|
||
"after": [],
|
||
"reviewers": [
|
||
"filbert"
|
||
],
|
||
"review": null,
|
||
"claim": null,
|
||
"note": "done: rev-code-02 APPROVE 26170 (round 9), committed 786e379c; pilot steps 1-8 done with private receipts, Gate H passed (Jason, 2026-09-13: replies read as Sage); connector left running for MVP iteration; reviewer lane was Filbert or orch-01",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 15,
|
||
"piece": "Discord connector: eyes reaction on every admitted message as a read receipt (MVP iteration 1)",
|
||
"owner": "coordinator",
|
||
"issues": [
|
||
1509
|
||
],
|
||
"closes": [
|
||
1509
|
||
],
|
||
"state": "done",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "Jason sees the reaction on a live message",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-13_discord-connector-pilot.md",
|
||
"anchor": "11. MVP iteration, after the pilot",
|
||
"blob": "ef6cdbb8a38c1b22d8f1c3dcbc34260cdac9714e"
|
||
},
|
||
"after": [],
|
||
"reviewers": [],
|
||
"review": null,
|
||
"claim": null,
|
||
"note": "done: committed 93d6b624, live check passed 19:21 UTC (turn record receipt ok, Jason: test is successful), receipt `mvp1-read-receipt-20260913T192158Z.json` in the private evidence dir; reaction placed at admission before the engine runs, outcome in the turn record, none on drops or refusals; `scripts/test-discord.sh` 28/28 (90 node tests)",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 16,
|
||
"piece": "Repository-native development bootstrap: five internal agents, Darkwing coordination",
|
||
"owner": "darkwing",
|
||
"issues": [
|
||
1510
|
||
],
|
||
"closes": [
|
||
1510
|
||
],
|
||
"state": "waiting-on-jason",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "source approved; Researcher live response passed 26216; existing native Rocko lock preserved, no new Rocko model test; no MVP acceptance/publication",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-13_internal-development-bootstrap.md",
|
||
"anchor": "Repository-native development bootstrap",
|
||
"blob": "5dfe2f34ab1c4cdd34d4aebd00804df3842c24e2"
|
||
},
|
||
"after": [],
|
||
"reviewers": [
|
||
"filbert"
|
||
],
|
||
"review": null,
|
||
"claim": {
|
||
"seat": "darkwing",
|
||
"op": "genesis-2026-09-27"
|
||
},
|
||
"note": "source approved by internal Filbert, exact R1 receipt 26204; six offline tests independently pass in both copies; 24 config tests and five no-effect checks are author evidence",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 17,
|
||
"piece": "Discord connector: systemd user service with a supervised pre-start (`recover`, exit 3 never retried) (MVP iteration 2)",
|
||
"owner": "coordinator",
|
||
"issues": [
|
||
1509
|
||
],
|
||
"closes": [
|
||
1509
|
||
],
|
||
"state": "done",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "the Sage connector runs under `mosaic-discord@shared-signals`, survives a kill with a clean restart, and stays down behind `discord.sh stop`",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-13_discord-connector-pilot.md",
|
||
"anchor": "11. MVP iteration, after the pilot",
|
||
"blob": "ef6cdbb8a38c1b22d8f1c3dcbc34260cdac9714e"
|
||
},
|
||
"after": [],
|
||
"reviewers": [],
|
||
"review": null,
|
||
"claim": null,
|
||
"note": "done, operator-verified by Jason 2026-09-13 (all four steps): suite 40/40 (95 node tests); Sage seat migrated 19:35 UTC, SIGKILL recovered in 16 s with the dead lock cleared, brake held (exit 3, no restart), released and READY; receipt `mvp2-service-unit-*.json` in the private evidence dir; the first cut (ExecStartPre) looped and was replaced by `run --supervised` before any traffic",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 18,
|
||
"piece": "Control board row for the Discord connector (MVP iteration 3): discovery from binding files, liveness from run.lock, reply refused",
|
||
"owner": "darkwing",
|
||
"issues": [
|
||
1509
|
||
],
|
||
"closes": [
|
||
1509
|
||
],
|
||
"state": "done",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "a Sage (discord) row on the board shows live, offline and braked correctly, and reply from the board is refused",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-14_discord-board-row.md",
|
||
"anchor": "Discord connector board row",
|
||
"blob": "6a7753f8ab9a3c57d6c89857054e4119a1051d13"
|
||
},
|
||
"after": [],
|
||
"reviewers": [],
|
||
"review": null,
|
||
"claim": null,
|
||
"note": "done for bounded local delivery; Jason accepted visual test (parfait), R3 26257 reviewed, 322 tests and live 409 refusal verified; owner by Jason's ruling 2026-09-13, coordinator answered connector-side questions; also briefed in the pilot page section 11",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 19,
|
||
"piece": "Discord connector: binding reload without a restart (`reload` verb, SIGHUP, `systemctl --user reload`); channels, users, limits and guildName apply in place, identity, engine and context stay fixed, an invalid file is refused and the old binding kept (MVP iteration 4)",
|
||
"owner": "coordinator",
|
||
"issues": [
|
||
1509
|
||
],
|
||
"closes": [
|
||
1509
|
||
],
|
||
"state": "done",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "edit the binding, run `scripts/discord.sh reload shared-signals`, the change applies with no restart, a broken edit is refused and journaled",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-13_discord-connector-pilot.md",
|
||
"anchor": "11. MVP iteration, after the pilot",
|
||
"blob": "ef6cdbb8a38c1b22d8f1c3dcbc34260cdac9714e"
|
||
},
|
||
"after": [],
|
||
"reviewers": [],
|
||
"review": null,
|
||
"claim": null,
|
||
"note": "done: caaef941; live 00:03 UTC: reload applied Carmen's entry with no restart, unknown key refused by the CLI (exit 2), fixed key refused in the process with the binding kept, `systemctl --user reload` applied; suite 41/41 (101 node tests); receipt `mvp4-5-reload-carmen-*.json`",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 20,
|
||
"piece": "Discord connector: per-user channel allowlist in the binding and Carmen enrolled (all listed rooms except #sage-admin) (MVP iteration 5)",
|
||
"owner": "coordinator",
|
||
"issues": [
|
||
1509
|
||
],
|
||
"closes": [
|
||
1509
|
||
],
|
||
"state": "done",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "Carmen gets a reply in #general and silence in #sage-admin; Jason unchanged",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-13_discord-connector-pilot.md",
|
||
"anchor": "11. MVP iteration, after the pilot",
|
||
"blob": "ef6cdbb8a38c1b22d8f1c3dcbc34260cdac9714e"
|
||
},
|
||
"after": [],
|
||
"reviewers": [],
|
||
"review": null,
|
||
"claim": null,
|
||
"note": "done: caaef941 (`users[].channels` allowlist, `channel-not-for-user` drop); Carmen enrolled live by reload 00:03 UTC; her first message was the remaining check; #1509 closed with rows 14 to 25 done (lead decision 29)",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 21,
|
||
"piece": "Discord connector: read-only tools for the Discord Sage through a Mosaic pi extension confined to declared roots (MVP iteration 6)",
|
||
"owner": "coordinator",
|
||
"issues": [
|
||
1509
|
||
],
|
||
"closes": [
|
||
1509
|
||
],
|
||
"state": "done",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "Sage answers a question from a file under a declared root with the reads in the turn record; a read outside the roots is refused and recorded",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-14_discord-readonly-tools.md",
|
||
"anchor": "Discord Sage: read-only tools (iteration 6)",
|
||
"blob": "d682fa0fb1c463311c5f8924a9eb860382a9b2ac"
|
||
},
|
||
"after": [],
|
||
"reviewers": [],
|
||
"review": null,
|
||
"claim": null,
|
||
"note": "approved: rev-code-02 round 2 verdict 26276 (tree 43f0329b), committed; Jason ruled R1–R7 2026-09-14 (roots docs/ and agents/sage/, Carmen included); done with rows 14 to 25 when #1509 closed (lead decision 29); reviewer per Q12",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-14",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 22,
|
||
"piece": "Board attention status: completed replies idle, explicit human input waiting",
|
||
"owner": "darkwing",
|
||
"issues": [
|
||
1503
|
||
],
|
||
"closes": [
|
||
1503
|
||
],
|
||
"state": "done",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "operator accepted full targeted status sequence: explicit request waiting, Seen hides attention but preserves waiting, completion returns idle; broader MVP/cross-harness acceptance and publication separate",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-13_board-attention-status.md",
|
||
"anchor": "Board attention status correction",
|
||
"blob": "ce0bb5e3ebda8faf59cff78017257aec1772ccc2"
|
||
},
|
||
"after": [],
|
||
"reviewers": [
|
||
"filbert"
|
||
],
|
||
"review": null,
|
||
"claim": null,
|
||
"note": "source approved, receipt 26248; reviewer 193 per copy, author union 213 pass; actual Researcher scan idle; operator accepted (row 1); #1503 closed (lead decision 29)",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-14",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 23,
|
||
"piece": "Discord connector: writes confined to the `shared-signals` root plus web fetch and search for the Discord Sage (MVP iteration 7)",
|
||
"owner": "coordinator",
|
||
"issues": [
|
||
1509
|
||
],
|
||
"closes": [
|
||
1509
|
||
],
|
||
"state": "done",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "Sage writes a naming shortlist into the repository from #ideas with the write and web calls in the turn record; a write outside the root is refused",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-16_discord-write-and-web-tools.md",
|
||
"anchor": "Discord Sage: writes into the strategy repository, and web research (#1509, QUEUE row 23)",
|
||
"blob": "69a5c5c6e4696dd54c696eb0002f5e31c7d755a2"
|
||
},
|
||
"after": [],
|
||
"reviewers": [],
|
||
"review": null,
|
||
"claim": null,
|
||
"note": "done 2026-09-27 (Sage, lead decision 29): committed and pushed 1685deb4; live turns wrote `vault/Businesses/naming.md` with web_search and web_fetch in the turn record; the outside-root refusal rests on the offline suite, not a live turn; reviewer per Q12",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-16",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 24,
|
||
"piece": "Discord connector: git verbs (status, commit, pull ff-only, push) for the Discord Sage on the `shared-signals` root, seat identity through the existing credential helper (MVP iteration 8)",
|
||
"owner": "coordinator",
|
||
"issues": [
|
||
1509
|
||
],
|
||
"closes": [
|
||
1509
|
||
],
|
||
"state": "done",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "Sage commits and pushes a decision file from #ideas; GitHub shows Sage as author with a Requested-by trailer; no token in any record",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-16_discord-git-tools.md",
|
||
"anchor": "Discord Sage: git for the strategy repository (#1509, QUEUE row 24)",
|
||
"blob": "4139fcc07ad18a355db31205769e054d9dc75a98"
|
||
},
|
||
"after": [],
|
||
"reviewers": [],
|
||
"review": null,
|
||
"claim": null,
|
||
"note": "done 2026-09-27 (Sage, lead decision 29): committed and pushed 1949ed8d; live-configured 2026-09-18, never used from Discord; records now go through row 25 and SetSpark cutover freezes `vault/`, so first real use is the check and a failure opens a new issue; reviewer per Q12",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-16",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 25,
|
||
"piece": "Discord connector: SetSpark record client for the Discord Sage, fixed verbs against setspark-api, connector-verified approvals (MVP iteration 9)",
|
||
"owner": "coordinator",
|
||
"issues": [
|
||
1509
|
||
],
|
||
"closes": [
|
||
1509
|
||
],
|
||
"state": "done",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "Sage creates one work item from #sage-admin and the API shows it with revision 1; a proposal is approved by the Approve button and the audit row carries Sage's key id and Jason's Discord id separately; rev-code-02 approves on #1509",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-20_discord-setspark-client.md",
|
||
"anchor": "Discord Sage: SetSpark record client (#1509, QUEUE row 25)",
|
||
"blob": "19de61ce5a6ec2757b9456b9432ef49d6e63a1e6"
|
||
},
|
||
"after": [],
|
||
"reviewers": [],
|
||
"review": null,
|
||
"claim": null,
|
||
"note": "done 2026-09-26: committed and pushed 43d7574d, live check passed (DEC-010, request 2, approved by button at 21:38:58Z, lead decision 19); approver rule enforced by the service since shared-signals cc74d92 (lead decisions 24 and 28); reviewer per Q12",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-20",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 26,
|
||
"piece": "Registry increment 3 (headless identity-env leak)",
|
||
"owner": "unassigned",
|
||
"issues": [],
|
||
"closes": [],
|
||
"state": "parked",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "Jason reopens",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/CURRENT.md",
|
||
"anchor": "Completed checkpoint: #1500 increment 2 (historical)",
|
||
"blob": "ef462c4eb7b99b64b751fdcff2d81f85452d2017"
|
||
},
|
||
"after": [],
|
||
"reviewers": [],
|
||
"review": null,
|
||
"claim": null,
|
||
"note": "#1500 closed on increment 2; Jason has not asked for 3",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 27,
|
||
"piece": "Auth/provider/harness registry review",
|
||
"owner": "unassigned",
|
||
"issues": [],
|
||
"closes": [],
|
||
"state": "parked",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "Jason reopens",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-03_auth-provider-harness-registry.md",
|
||
"anchor": "Harness declaration + centralized auth/provider registry",
|
||
"blob": "18b922b0b9ae8a4216ccba53ffb549e2d09787ff"
|
||
},
|
||
"after": [],
|
||
"reviewers": [],
|
||
"review": null,
|
||
"claim": null,
|
||
"note": "Paused for owner alignment",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 28,
|
||
"piece": "CI runners, second real adapter, push automation",
|
||
"owner": "unassigned",
|
||
"issues": [],
|
||
"closes": [],
|
||
"state": "parked",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "Jason reopens",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/ROADMAP.md",
|
||
"anchor": "Explicitly deferred",
|
||
"blob": "3d866ce8c1c9ba2c58876bf398f1d55d0a9faaff"
|
||
},
|
||
"after": [],
|
||
"reviewers": [],
|
||
"review": null,
|
||
"claim": null,
|
||
"note": "Deferred by owner 2026-09-03",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 29,
|
||
"piece": "Console features outside the refined session-chat brief, including Fresh creation and model switching",
|
||
"owner": "unassigned",
|
||
"issues": [],
|
||
"closes": [],
|
||
"state": "parked",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "Jason reopens",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/2026-09-13_webui-session-chat.md",
|
||
"anchor": "WebUI session chat: refined brief and delivery plan",
|
||
"blob": "58fb11f8ebd201097905b62f6f801b0e2e2d235a"
|
||
},
|
||
"after": [],
|
||
"reviewers": [],
|
||
"review": null,
|
||
"claim": null,
|
||
"note": "Deferred by WEBUI Q1; required history/control/stop now belong to row 5, not this parked item",
|
||
"blockedReason": null,
|
||
"createdAt": "unknown",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
},
|
||
{
|
||
"id": 30,
|
||
"piece": "Open gaps from the MVP work",
|
||
"owner": "unassigned",
|
||
"issues": [],
|
||
"closes": [],
|
||
"state": "parked",
|
||
"previousState": null,
|
||
"required": false,
|
||
"requiredSince": null,
|
||
"gate": "Jason reopens",
|
||
"gateOwner": "jason",
|
||
"brief": {
|
||
"path": "docs/plans/DEFERRED.md",
|
||
"anchor": "Open",
|
||
"blob": "fd580118844bb02909d54726c83d08c7d53c393f"
|
||
},
|
||
"after": [],
|
||
"reviewers": [],
|
||
"review": null,
|
||
"claim": null,
|
||
"note": "Fixed only when a gate needs them",
|
||
"blockedReason": null,
|
||
"createdAt": "2026-09-13",
|
||
"updatedAt": "2026-09-27T01:14:44.440Z",
|
||
"updatedBy": "sage"
|
||
}
|
||
],
|
||
"legacyView": "Lead: Sage from 2026-09-26 (Jason's ruling); Darkwing is a collaborating seat.\nJason is preparing the target for the next phase; until it arrives, the\npriority below stands.\n\nCurrent priority: Sage's goal order from the 2026-09-27 goals review (close\nwhat is open, queue as data, Gate E), ratified by Jason 2026-09-27. Earlier: row 6, after Jason accepted row 18. His newer standing continuation instruction supplies the\nstart; the earlier row-18-only priority is complete. Jason requires\nautomatic continuation to the next authorized item after each accepted iteration;\nno routine next-step prompt. Explicit dependencies and protected-action gates remain. Use the five internal agents, not fleet seats. No\n`~/.mosaic` changes or live fleet migration. Row 6 closed 2026-09-27 (lead decision 29),\nwhich clears rows 9-13 to proceed; it does not authorize publication/access changes.\n\n| # | Piece | Owner | Issue | State | Gate | Brief |\n|---|-------|-------|-------|-------|------|-------|\n| 1 | Control board MVP (scanner + page) | darkwing | #1503 | done 2026-09-27 (Sage, lead decision 29): D-001 MVP delivered, Gate A passed 2026-09-12, attention status operator-accepted (row 22), relaunch activity, attribution and Host guard landed; #1503 closed; cross-harness board work belongs to Gate E (row 5) | A passed 2026-09-12 | plan page, top |\n| 2 | Seat registration and `mosaic seat task` | darkwing | #1504 | done 2026-09-13 | B passed 2026-09-12 | plan page, Step 3 |\n| 3 | Reply-from-board (piece 2 on the plan page) | darkwing | #1505 | done 2026-09-12 | C passed 2026-09-12 | plan page, \"Piece 2: reply-from-board\" |\n| 4 | Ledger (piece 3 on the plan page) | darkwing | #1506 | done 2026-09-13 | D: 18.9 human messages per closed issue, week of 2026-09-06 | plan page, \"Piece 3: ledger\" |\n| 5 | WebUI first screen on the Console design (piece 4 on the plan page) | dewey; filbert reviews | #1507 | CHAT-00/01/01C contracts published (370823b3, 28d4e98a, b023841c); CHAT-02 done: backend a5beb6d9, Console c9e771cf, live check passed 2026-09-26; CHAT-03 brief approved and pinned 2026-09-27 (BRIEF.md 1ef15ac0, rescoped to Gate E, lead decisions 30 to 33; Filbert r3 approve, Rocko blocker closed, Filbert scope check pass); source author named by Sage after queue A2 lands; CHAT-04..08 not chartered; Gate E blocked | E: all-seat interactive demonstration then Jason workday ruling; live cutover separately approved | `2026-09-13_webui-session-chat.md`, CHAT-00..08 |\n| 6 | Darkwing on point: darkwing assigns and gates filbert's work (piece 5 on the plan page) | darkwing; filbert authors pilot; darkwing/dewey review | #1511 code phase; #1512 pilot | done 2026-09-27 (Sage, lead decision 29): #1511 and #1512 landed in af4203ca (pushed) and are closed; Gate F not passed: the ledger counts 2 human messages in filbert's T3 thread during #1512 (one is Jason's 09-26 seat takeover) and its first 11 days predate the T3 source; Gate G (row 9) now carries the zero-human-message test | F: filbert's item closes with zero human messages from Jason; code phase does not claim Gate F | `2026-09-15_relaunch-activity.md`; `2026-09-14_task-attribution.md`; plan page Piece 5 |\n| 7 | Weekly ledger run and rails number | sage (lead decision 27); Jason reads | — | recurring, every Monday; 09-13..19: 47.7, 09-20..26: 33.0 human messages per closed issue | under 10 human messages per closed issue for the week of 2026-09-13 | `packages/ledger/README.md` |\n| 8 | Fleet seats (`~/.mosaic`) onto `mosaic launch` | unassigned | — | parked by current owner direction; no `~/.mosaic` changes during internal bootstrap | Jason's call | none yet |\n| 9 | Queue as data: `docs/plans/queue.json`, `mosaic queue` is the only writer | darkwing; filbert reviews | #1508 | required; A1 (journal, lock, CLI, verify) committed 34a72af9 2026-09-27, Filbert approved; A2 (migration, render, dispatch) in progress, then genesis and hook install by Sage | G: a fresh seat told only \"run `mosaic queue next` and do it\" starts its piece with zero human messages | `2026-09-13_queue-as-data.md`, Piece A |\n| 10 | Seats read the queue, not CURRENT.md (AGENTS.md cadence, seat context files) | coordinator | #1508 | required; AGENTS.md lines done 2026-09-13, rest after row 9 | verified by Gate G | `2026-09-13_queue-as-data.md`, Piece B |\n| 11 | Brief template `docs/plans/BRIEF-TEMPLATE.md`; `queue add` refuses a missing brief | darkwing | #1508 | required; template committed with A1 (34a72af9); `queue add` refusal lands with A2 | two briefs accepted by Jason with no scope question | `2026-09-13_queue-as-data.md`, Piece C |\n| 12 | Reviews as issue comments posted by `queue move ID in-review`, not files in `docs/plans/reviews/` | darkwing | #1508 | required; after row 9 | one review round with no new file under reviews/ | `2026-09-13_queue-as-data.md`, Piece D |\n| 13 | Ledger \"queue\" section: issue/row/seat drift printed with the weekly number | darkwing; filbert reviews | #1508 | required; after row 9 | first run Monday 2026-09-21, zero violations or every one moved same day | `2026-09-13_queue-as-data.md`, Piece E |\n| 14 | Discord connector pilot: Sage answers in Shared Signals (chat only, no tools, no repo writes) | coordinator; Filbert or orch-01 seat reviews | #1509 | done: rev-code-02 APPROVE 26170 (round 9), committed 786e379c; pilot steps 1-8 done with private receipts, Gate H passed (Jason, 2026-09-13: replies read as Sage); connector left running for MVP iteration | H: offline suite green, eight-step live pilot with private receipts, then Jason says the reply reads as Sage | `2026-09-13_discord-connector-pilot.md` |\n| 15 | Discord connector: eyes reaction on every admitted message as a read receipt (MVP iteration 1) | coordinator | #1509 | done: committed 93d6b624, live check passed 19:21 UTC (turn record receipt ok, Jason: test is successful), receipt `mvp1-read-receipt-20260913T192158Z.json` in the private evidence dir; `rest.react` best effort, reaction placed at admission before the engine runs, outcome in the turn record, no reaction on drops or refusals; `scripts/test-discord.sh` 28/28 (90 node tests) | Jason sees the reaction on a live message | `2026-09-13_discord-connector-pilot.md` section 11 |\n| 16 | Repository-native development bootstrap: five internal agents, Darkwing coordination | darkwing; filbert reviews | #1510 | source approved by internal Filbert, exact R1 receipt 26204; six offline tests independently pass in both copies; 24 config tests and five no-effect checks are author evidence | source approved; Researcher live response passed 26216; existing native Rocko lock preserved, no new Rocko model test; no MVP acceptance/publication | `2026-09-13_internal-development-bootstrap.md` |\n| 17 | Discord connector: systemd user service with a supervised pre-start (`recover`, exit 3 never retried) (MVP iteration 2) | coordinator | #1509 | done, operator-verified by Jason 2026-09-13 (all four steps): `scripts/test-discord.sh` 40/40 (95 node tests); Sage seat migrated 19:35 UTC, SIGKILL recovered in 16 s with the dead lock cleared, brake held (exit 3, no restart), released and READY; receipt `mvp2-service-unit-*.json` in the private evidence dir. First cut (ExecStartPre) looped and was replaced by `run --supervised` before any traffic | the Sage connector runs under `mosaic-discord@shared-signals`, survives a kill with a clean restart, and stays down behind `discord.sh stop` | `2026-09-13_discord-connector-pilot.md` section 11 |\n| 18 | Control board row for the Discord connector (MVP iteration 3): discovery from binding files, liveness from run.lock, reply refused | darkwing (Jason's ruling 2026-09-13); coordinator answers connector-side questions | #1509 | done for bounded local delivery; Jason accepted visual test (parfait), R3 26257 reviewed, 322 tests and live 409 refusal verified; no publication or live connector state transitions claimed | a Sage (discord) row on the board shows live, offline and braked correctly, and reply from the board is refused | `2026-09-14_discord-board-row.md`; original pilot section 11 |\n| 19 | Discord connector: binding reload without a restart (`reload` verb, SIGHUP, `systemctl --user reload`); channels, users, limits and guildName apply in place, identity, engine and context stay fixed, an invalid file is refused and the old binding kept (MVP iteration 4) | coordinator | #1509 | done: caaef941; live 00:03 UTC: reload applied Carmen's entry with no restart, unknown key refused by the CLI (exit 2), fixed key refused in the process with the binding kept, `systemctl --user reload` applied; suite 41/41 (101 node tests); receipt `mvp4-5-reload-carmen-*.json` | edit the binding, run `scripts/discord.sh reload shared-signals`, the change applies with no restart, a broken edit is refused and journaled | `2026-09-13_discord-connector-pilot.md` section 11 |\n| 20 | Discord connector: per-user channel allowlist in the binding and Carmen enrolled (all listed rooms except #sage-admin) (MVP iteration 5) | coordinator | #1509 | done: caaef941 (`users[].channels` allowlist, `channel-not-for-user` drop); Carmen enrolled live by reload 00:03 UTC; her first message is the remaining check | Carmen gets a reply in #general and silence in #sage-admin; Jason unchanged | `2026-09-13_discord-connector-pilot.md` section 11 |\n| 21 | Discord connector: read-only tools for the Discord Sage through a Mosaic pi extension confined to declared roots (MVP iteration 6) | coordinator; reviewer per Q12 | #1509 | approved: rev-code-02 round 2 verdict 26276 (tree 43f0329b); committed locally; live check in #sage-admin with Jason next; Jason ruled R1–R7 2026-09-14 (roots docs/ and agents/sage/, Carmen included) | Sage answers a question from a file under a declared root with the reads in the turn record; a read outside the roots is refused and recorded | `2026-09-14_discord-readonly-tools.md` |\n| 22 | Board attention status: completed replies idle, explicit human input waiting | darkwing; filbert reviews | #1503 | source approved, receipt 26248; reviewer 193 per copy, author union 213 pass; actual Researcher scan idle | operator accepted full targeted status sequence: explicit request waiting, Seen hides attention but preserves waiting, completion returns idle; broader MVP/cross-harness acceptance and publication separate | `2026-09-13_board-attention-status.md` |\n| 23 | Discord connector: writes confined to the `shared-signals` root plus web fetch and search for the Discord Sage (MVP iteration 7) | coordinator; reviewer per Q12 | #1509 | done 2026-09-27 (Sage, lead decision 29): committed and pushed 1685deb4; live turns wrote `vault/Businesses/naming.md` with web_search and web_fetch in the turn record; the outside-root refusal rests on the offline suite, not a live turn | Sage writes a naming shortlist into the repository from #ideas with the write and web calls in the turn record; a write outside the root is refused | `2026-09-16_discord-write-and-web-tools.md` |\n| 24 | Discord connector: git verbs (status, commit, pull ff-only, push) for the Discord Sage on the `shared-signals` root, seat identity through the existing credential helper (MVP iteration 8) | coordinator; reviewer per Q12 | #1509 | done 2026-09-27 (Sage, lead decision 29): committed and pushed 1949ed8d; live-configured 2026-09-18, never used from Discord; records now go through row 25 and SetSpark cutover freezes `vault/`, so first real use is the check and a failure opens a new issue | Sage commits and pushes a decision file from #ideas; GitHub shows Sage as author with a Requested-by trailer; no token in any record | `2026-09-16_discord-git-tools.md` |\n| 25 | Discord connector: SetSpark record client for the Discord Sage, fixed verbs against setspark-api, connector-verified approvals (MVP iteration 9) | coordinator; reviewer per Q12 | #1509 | done 2026-09-26: committed and pushed 43d7574d, live check passed (DEC-010, request 2, approved by button at 21:38:58Z, lead decision 19); approver rule enforced by the service since shared-signals cc74d92 (lead decisions 24 and 28) | Sage creates one work item from #sage-admin and the API shows it with revision 1; a proposal is approved by the Approve button and the audit row carries Sage's key id and Jason's Discord id separately; rev-code-02 approves on #1509 | `2026-09-20_discord-setspark-client.md` |\n\nStart message for row 6, sent from the board to darkwing:\n\"Read docs/plans/QUEUE.md, then the plan page section \"Piece 5: darkwing on\npoint\", and execute it. Start with the first assignment for filbert. Report at\nGate F or when blocked.\"\n\n## Parked (not in order, needs Jason to reopen)\n\n| Item | Why parked | Where |\n|------|------------|-------|\n| Registry increment 3 (headless identity-env leak) | #1500 closed on increment 2; Jason has not asked for 3 | CURRENT.md, \"#1500 increment 2 (historical)\" |\n| Auth/provider/harness registry review | Paused for owner alignment | `docs/plans/2026-09-03_auth-provider-harness-registry.md` |\n| CI runners, second real adapter, push automation | Deferred by owner 2026-09-03 | `docs/plans/ROADMAP.md`, \"Explicitly deferred\" |\n| Console features outside the refined session-chat brief, including Fresh creation and model switching | Deferred by WEBUI Q1; required history/control/stop now belong to row 5, not this parked item | `2026-09-13_webui-session-chat.md` |\n| Open gaps from the MVP work | Fixed only when a gate needs them | DEFERRED.md, \"Open\" |\n\n",
|
||
"receipt": "ok genesis-2026-09-27 rev 0 genesis 30 rows"
|
||
},
|
||
"viewSha": "3306b486be165b88c554ba13283cab4c79a5b67fbe3c2b6bfe72f987e1eddf07"
|
||
},
|
||
{
|
||
"rev": 1,
|
||
"op": "assign-10-sage",
|
||
"verb": "assign",
|
||
"args": {
|
||
"id": 10,
|
||
"seat": "sage"
|
||
},
|
||
"by": "sage",
|
||
"at": "2026-09-27T01:16:40.574Z",
|
||
"semantics": 1,
|
||
"result": {
|
||
"row": 10,
|
||
"field": "owner",
|
||
"from": "coordinator",
|
||
"to": "sage",
|
||
"receipt": "ok assign-10-sage rev 1 row 10 owner: coordinator→sage"
|
||
},
|
||
"viewSha": "b09c9036d3e40f4242295a550c871e10873eac34bf65f0c148ca48d8776cf6c0"
|
||
},
|
||
{
|
||
"rev": 2,
|
||
"op": "row13-gate-reword",
|
||
"verb": "set",
|
||
"args": {
|
||
"id": 13,
|
||
"field": "gate",
|
||
"value": "rows 9 to 12 done, then a Monday ledger run with zero queue violations, or every one moved the same day",
|
||
"reason": null
|
||
},
|
||
"by": "sage",
|
||
"at": "2026-09-27T01:16:40.640Z",
|
||
"semantics": 1,
|
||
"result": {
|
||
"row": 13,
|
||
"field": "gate",
|
||
"from": "first run Monday 2026-09-21, zero violations or every one moved same day",
|
||
"to": "rows 9 to 12 done, then a Monday ledger run with zero queue violations, or every one moved the same day",
|
||
"receipt": "ok row13-gate-reword rev 2 row 13 gate: first run Monday 2026-09-21, zero violations or every one moved same day→rows 9 to 12 done, then a Monday ledger run with zero queue violations, or every one moved the same day"
|
||
},
|
||
"viewSha": "98b4b55b9e2fda7c89e4a5bc2e28514773b9d993be87a92fc98dbbae62b70b7a"
|
||
},
|
||
{
|
||
"rev": 3,
|
||
"op": "darkwing-9-review-1",
|
||
"verb": "move",
|
||
"args": {
|
||
"id": 9,
|
||
"to": "in-review",
|
||
"reason": null,
|
||
"candidate": "6ca116b7ba6d01df3e0e50bb69799d12b94942b5",
|
||
"evidence": null,
|
||
"issue": null
|
||
},
|
||
"by": "darkwing",
|
||
"at": "2026-09-27T01:18:13.080Z",
|
||
"semantics": 1,
|
||
"result": {
|
||
"row": 9,
|
||
"from": "in-progress",
|
||
"to": "in-review",
|
||
"round": 1,
|
||
"issue": 1508,
|
||
"candidate": {
|
||
"kind": "commit",
|
||
"digest": "6ca116b7ba6d01df3e0e50bb69799d12b94942b5",
|
||
"text": null
|
||
},
|
||
"receipt": "ok darkwing-9-review-1 rev 3 row 9 in-progress→in-review round 1 on #1508"
|
||
},
|
||
"viewSha": "3b583a7df4b4bcf38619e63cabed54f8c8c1cba9c204f5dd12b5c45358c013c3"
|
||
},
|
||
{
|
||
"rev": 4,
|
||
"op": "darkwing-9-to-jason-1",
|
||
"verb": "move",
|
||
"args": {
|
||
"id": 9,
|
||
"to": "waiting-on-jason",
|
||
"reason": null,
|
||
"candidate": null,
|
||
"evidence": null,
|
||
"issue": null
|
||
},
|
||
"by": "darkwing",
|
||
"at": "2026-09-27T01:18:16.887Z",
|
||
"semantics": 1,
|
||
"result": {
|
||
"row": 9,
|
||
"from": "in-review",
|
||
"to": "waiting-on-jason",
|
||
"round": null,
|
||
"issue": null,
|
||
"candidate": null,
|
||
"receipt": "ok darkwing-9-to-jason-1 rev 4 row 9 in-review→waiting-on-jason"
|
||
},
|
||
"viewSha": "47851be5a42e0508fe156e7db5a210c82f4cdf44c8e23cfa92262790cd78d1c9"
|
||
},
|
||
{
|
||
"rev": 5,
|
||
"op": "darkwing-9-note-closeout",
|
||
"verb": "note",
|
||
"args": {
|
||
"id": 9,
|
||
"text": "A1 34a72af9 and A2 6ca116b7 committed; Filbert approved both, and review round 1's candidate 6ca116b7 matches the A2 manifest he approved 21/21 (agents/filbert/work/queue-a2-review-r1-2026-09-27.md); genesis 3377b877 by Sage; waits on Gate G, which also verifies row 10 and carries Gate F's zero-human-message test"
|
||
},
|
||
"by": "darkwing",
|
||
"at": "2026-09-27T01:18:16.950Z",
|
||
"semantics": 1,
|
||
"result": {
|
||
"row": 9,
|
||
"field": "note",
|
||
"receipt": "ok darkwing-9-note-closeout rev 5 row 9 note"
|
||
},
|
||
"viewSha": "0414f31ed303a5c0f3587fdc5a0c6dc499ceadd69cfbcdf324885622f506c7a8"
|
||
},
|
||
{
|
||
"rev": 6,
|
||
"op": "darkwing-9-note-closeout-2",
|
||
"verb": "note",
|
||
"args": {
|
||
"id": 9,
|
||
"text": "A1 34a72af9 and A2 6ca116b7 committed; Filbert approved both, and review round 1's candidate 6ca116b7 matches the approved A2 manifest 21/21 (agents/filbert/work/queue-a2-review-r1-2026-09-27.md); genesis 3377b877 by Sage; waits on Gate G, which also verifies row 10 and carries Gate F's zero-human-message test"
|
||
},
|
||
"by": "darkwing",
|
||
"at": "2026-09-27T01:18:22.293Z",
|
||
"semantics": 1,
|
||
"result": {
|
||
"row": 9,
|
||
"field": "note",
|
||
"receipt": "ok darkwing-9-note-closeout-2 rev 6 row 9 note"
|
||
},
|
||
"viewSha": "55d8988b0a095eb907d7452ccdf5d213402ce7d5b21c03e3622b422798bf57c9"
|
||
},
|
||
{
|
||
"rev": 7,
|
||
"op": "row10-start",
|
||
"verb": "move",
|
||
"args": {
|
||
"id": 10,
|
||
"to": "in-progress",
|
||
"reason": null,
|
||
"candidate": null,
|
||
"evidence": null,
|
||
"issue": null
|
||
},
|
||
"by": "sage",
|
||
"at": "2026-09-27T01:18:54.047Z",
|
||
"semantics": 1,
|
||
"result": {
|
||
"row": 10,
|
||
"from": "briefed",
|
||
"to": "in-progress",
|
||
"round": null,
|
||
"issue": null,
|
||
"candidate": null,
|
||
"receipt": "ok row10-start rev 7 row 10 briefed→in-progress"
|
||
},
|
||
"viewSha": "9fe7ea03b06f4123d96e19f31497045dc3f8987d9fd2a8d527aabd3a43391dd9"
|
||
},
|
||
{
|
||
"rev": 8,
|
||
"op": "darkwing-12-start-1",
|
||
"verb": "move",
|
||
"args": {
|
||
"id": 12,
|
||
"to": "in-progress",
|
||
"reason": null,
|
||
"candidate": null,
|
||
"evidence": null,
|
||
"issue": null
|
||
},
|
||
"by": "darkwing",
|
||
"at": "2026-09-27T01:19:33.192Z",
|
||
"semantics": 1,
|
||
"result": {
|
||
"row": 12,
|
||
"from": "briefed",
|
||
"to": "in-progress",
|
||
"round": null,
|
||
"issue": null,
|
||
"candidate": null,
|
||
"receipt": "ok darkwing-12-start-1 rev 8 row 12 briefed→in-progress"
|
||
},
|
||
"viewSha": "3de3fb832f58b718da490a230bd5135de8f7b0c6d03aacb6565b2e74683f951a"
|
||
},
|
||
{
|
||
"rev": 9,
|
||
"op": "row10-review-r1",
|
||
"verb": "move",
|
||
"args": {
|
||
"id": 10,
|
||
"to": "in-review",
|
||
"reason": null,
|
||
"candidate": "5efe28ab01c275c41979db2974b422a449dbf1e9",
|
||
"evidence": null,
|
||
"issue": null
|
||
},
|
||
"by": "sage",
|
||
"at": "2026-09-27T01:23:20.299Z",
|
||
"semantics": 1,
|
||
"result": {
|
||
"row": 10,
|
||
"from": "in-progress",
|
||
"to": "in-review",
|
||
"round": 1,
|
||
"issue": 1508,
|
||
"candidate": {
|
||
"kind": "commit",
|
||
"digest": "5efe28ab01c275c41979db2974b422a449dbf1e9",
|
||
"text": null
|
||
},
|
||
"receipt": "ok row10-review-r1 rev 9 row 10 in-progress→in-review round 1 on #1508"
|
||
},
|
||
"viewSha": "4f7ae5584d499d9f3a00b882808e66574ca3f40f5340d80b15dae13f25bda867"
|
||
},
|
||
{
|
||
"rev": 10,
|
||
"op": "row10-wait-gate-g",
|
||
"verb": "move",
|
||
"args": {
|
||
"id": 10,
|
||
"to": "waiting-on-jason",
|
||
"reason": null,
|
||
"candidate": null,
|
||
"evidence": null,
|
||
"issue": null
|
||
},
|
||
"by": "sage",
|
||
"at": "2026-09-27T01:23:20.365Z",
|
||
"semantics": 1,
|
||
"result": {
|
||
"row": 10,
|
||
"from": "in-review",
|
||
"to": "waiting-on-jason",
|
||
"round": null,
|
||
"issue": null,
|
||
"candidate": null,
|
||
"receipt": "ok row10-wait-gate-g rev 10 row 10 in-review→waiting-on-jason"
|
||
},
|
||
"viewSha": "1ea954471befe6d1efe3ad82c90e7a969051d878057511844bd1944e5a78030c"
|
||
},
|
||
{
|
||
"rev": 11,
|
||
"op": "row10-note-r1",
|
||
"verb": "note",
|
||
"args": {
|
||
"id": 10,
|
||
"text": "source 5efe28ab: AGENTS.md cadence, pointer and recovery rule, six seat CONTEXT files, queue README n3; QUEUE.md header points at the goals review (n2). Gate G verifies it: a seat starts from queue next with no human message"
|
||
},
|
||
"by": "sage",
|
||
"at": "2026-09-27T01:23:20.429Z",
|
||
"semantics": 1,
|
||
"result": {
|
||
"row": 10,
|
||
"field": "note",
|
||
"receipt": "ok row10-note-r1 rev 11 row 10 note"
|
||
},
|
||
"viewSha": "35be5f3fc9231ee78c1afa2f579e76863a5ad834f41dc0796f540de55b0e0a0b"
|
||
},
|
||
{
|
||
"rev": 12,
|
||
"op": "row16-note-sage-check",
|
||
"verb": "note",
|
||
"args": {
|
||
"id": 16,
|
||
"text": "Sage checked 2026-09-27: acceptance items 1 to 5 are met, source landed in af4203ca and d41f81aa and is pushed, and the seats are in daily use under Jason's 2026-09-26 ruling (Sage leads, so the title's Darkwing coordination is superseded). No quote from Jason accepts #1510 itself, so it stays here until he closes it or says to"
|
||
},
|
||
"by": "sage",
|
||
"at": "2026-09-27T01:23:26.447Z",
|
||
"semantics": 1,
|
||
"result": {
|
||
"row": 16,
|
||
"field": "note",
|
||
"receipt": "ok row16-note-sage-check rev 12 row 16 note"
|
||
},
|
||
"viewSha": "9656335d0fcdde82a0478dea94149afd8dadf819f06e29f458321c0069ea680a"
|
||
},
|
||
{
|
||
"rev": 13,
|
||
"op": "row5-note-chat03-author",
|
||
"verb": "note",
|
||
"args": {
|
||
"id": 5,
|
||
"text": "CHAT-00/01/01C published (370823b3, 28d4e98a, b023841c); CHAT-02 done: backend a5beb6d9, Console c9e771cf, live check passed 2026-09-26; CHAT-03 brief pinned 2026-09-27 (BRIEF.md 1ef15ac0, lead decisions 30 to 34); CHAT-03 source author Dewey, reviewers Filbert then Rocko on binding and extension refusal, two rounds (lead decision 36); CHAT-04..08 not chartered; Gate E blocked"
|
||
},
|
||
"by": "sage",
|
||
"at": "2026-09-27T01:25:02.397Z",
|
||
"semantics": 1,
|
||
"result": {
|
||
"row": 5,
|
||
"field": "note",
|
||
"receipt": "ok row5-note-chat03-author rev 13 row 5 note"
|
||
},
|
||
"viewSha": "60efc311c3146629946eddbf9cae8b72a56443081ddb79cc0ab3ccd25034272f"
|
||
},
|
||
{
|
||
"rev": 14,
|
||
"op": "sage-12-reviewers-1",
|
||
"verb": "set",
|
||
"args": {
|
||
"id": 12,
|
||
"field": "reviewers",
|
||
"value": [
|
||
"filbert"
|
||
],
|
||
"reason": null
|
||
},
|
||
"by": "sage",
|
||
"at": "2026-09-27T15:09:05.208Z",
|
||
"semantics": 2,
|
||
"result": {
|
||
"row": 12,
|
||
"field": "reviewers",
|
||
"from": [],
|
||
"to": [
|
||
"filbert"
|
||
],
|
||
"receipt": "ok sage-12-reviewers-1 rev 14 row 12 reviewers: none→filbert"
|
||
},
|
||
"viewSha": "46f24009684e96428a32f77a5b30b9c07e7e5f5df0a0953f141e68a5429f9193"
|
||
},
|
||
{
|
||
"rev": 15,
|
||
"op": "darkwing-12-review-1",
|
||
"verb": "move",
|
||
"args": {
|
||
"id": 12,
|
||
"to": "in-review",
|
||
"reason": null,
|
||
"candidate": "f539466f",
|
||
"evidence": null,
|
||
"issue": null
|
||
},
|
||
"by": "darkwing",
|
||
"at": "2026-09-27T15:09:58.299Z",
|
||
"semantics": 2,
|
||
"result": {
|
||
"row": 12,
|
||
"from": "in-progress",
|
||
"to": "in-review",
|
||
"round": 1,
|
||
"issue": 1508,
|
||
"candidate": {
|
||
"kind": "commit",
|
||
"digest": "f539466fcb392ba7eaa0a491e5249b67719b956d",
|
||
"text": null
|
||
},
|
||
"receipt": "ok darkwing-12-review-1 rev 15 row 12 in-progress→in-review round 1 on #1508; request darkwing-12-review-1 requesting"
|
||
},
|
||
"viewSha": "8ff89ccf81295f9aa38a94eacf6f8741e1db30a199553fae1811ed7840626ab2"
|
||
},
|
||
{
|
||
"rev": 16,
|
||
"op": "darkwing-12-review-1.outcome",
|
||
"verb": "review-outcome",
|
||
"args": {
|
||
"id": 12,
|
||
"attempt": "darkwing-12-review-1",
|
||
"outcome": "posted",
|
||
"status": 201,
|
||
"comment": 26577,
|
||
"detail": "created"
|
||
},
|
||
"by": "darkwing",
|
||
"at": "2026-09-27T15:09:59.154Z",
|
||
"semantics": 2,
|
||
"result": {
|
||
"row": 12,
|
||
"round": 1,
|
||
"attempt": "darkwing-12-review-1",
|
||
"state": "posted",
|
||
"receipt": "ok darkwing-12-review-1.outcome rev 16 row 12 round 1 request darkwing-12-review-1 posted comment 26577"
|
||
},
|
||
"viewSha": "09e2983526a7823a3a9a00689bc49bcd312f44b2ccd28b0eb5e4a89a1834ceaa"
|
||
},
|
||
{
|
||
"rev": 17,
|
||
"op": "filbert-12-record-1",
|
||
"verb": "review-record",
|
||
"args": {
|
||
"id": 12,
|
||
"verdict": "approve",
|
||
"comment": 26579,
|
||
"candidate": "f539466fcb392ba7eaa0a491e5249b67719b956d"
|
||
},
|
||
"by": "filbert",
|
||
"at": "2026-09-27T15:11:58.426Z",
|
||
"semantics": 2,
|
||
"result": {
|
||
"row": 12,
|
||
"round": 1,
|
||
"verdict": "approve",
|
||
"receipt": "ok filbert-12-record-1 rev 17 row 12 round 1 approve by filbert (comment 26579)"
|
||
},
|
||
"viewSha": "b71757db206ef49ce9546ab434a5a9b9a46d937f53655f48d132a44fe8c5bf62"
|
||
},
|
||
{
|
||
"rev": 18,
|
||
"op": "darkwing-13-start-1",
|
||
"verb": "move",
|
||
"args": {
|
||
"id": 13,
|
||
"to": "in-progress",
|
||
"reason": null,
|
||
"candidate": null,
|
||
"evidence": null,
|
||
"issue": null
|
||
},
|
||
"by": "darkwing",
|
||
"at": "2026-09-27T15:12:11.975Z",
|
||
"semantics": 2,
|
||
"result": {
|
||
"row": 13,
|
||
"from": "briefed",
|
||
"to": "in-progress",
|
||
"round": null,
|
||
"issue": null,
|
||
"candidate": null,
|
||
"receipt": "ok darkwing-13-start-1 rev 18 row 13 briefed→in-progress"
|
||
},
|
||
"viewSha": "3afb02f471a89cc73e54b977adae87e46378b231f5a1b9041ee91f8f88768fff"
|
||
},
|
||
{
|
||
"rev": 19,
|
||
"op": "sage-12-done-1",
|
||
"verb": "move",
|
||
"args": {
|
||
"id": 12,
|
||
"to": "done",
|
||
"reason": null,
|
||
"candidate": null,
|
||
"evidence": null,
|
||
"issue": null
|
||
},
|
||
"by": "sage",
|
||
"at": "2026-09-27T15:13:49.209Z",
|
||
"semantics": 2,
|
||
"result": {
|
||
"row": 12,
|
||
"from": "in-review",
|
||
"to": "done",
|
||
"round": 1,
|
||
"issue": null,
|
||
"candidate": null,
|
||
"receipt": "ok sage-12-done-1 rev 19 row 12 in-review→done round 1"
|
||
},
|
||
"viewSha": "ee2ff4a052e2a283dd5af046064f11a54aeb32e97fce288933169dbdb3403200"
|
||
}
|
||
]
|
||
}
|