diff --git a/.beads/backup/backup_state.json b/.beads/backup/backup_state.json index ca9b12c..491a511 100644 --- a/.beads/backup/backup_state.json +++ b/.beads/backup/backup_state.json @@ -1,13 +1,13 @@ { - "last_dolt_commit": "73h8ob8ngkfhfmgeirktsakc256h78f6", + "last_dolt_commit": "ja7u8bmu3vi06d8u60afn8fkeqgqe872", "last_event_id": 0, - "timestamp": "2026-03-02T02:25:18.6301293Z", + "timestamp": "2026-03-02T03:12:49.026048287Z", "counts": { - "issues": 440, - "events": 206, + "issues": 451, + "events": 248, "comments": 2, - "dependencies": 581, - "labels": 658, + "dependencies": 603, + "labels": 680, "config": 14 } } \ No newline at end of file diff --git a/.beads/backup/dependencies.jsonl b/.beads/backup/dependencies.jsonl index 55db983..85e0431 100644 --- a/.beads/backup/dependencies.jsonl +++ b/.beads/backup/dependencies.jsonl @@ -442,6 +442,9 @@ {"created_at":"2026-02-24T01:38:23Z","created_by":"zenchantlive","depends_on_id":"beadboard-cm8","issue_id":"beadboard-12l","type":"blocks"} {"created_at":"2026-02-24T01:38:07Z","created_by":"zenchantlive","depends_on_id":"beadboard-uui","issue_id":"beadboard-12l","type":"parent"} {"created_at":"2026-02-19T21:27:39Z","created_by":"zenchantlive","depends_on_id":"bb-ui2","issue_id":"beadboard-2on","type":"relates-to"} +{"created_at":"2026-03-01T18:26:24Z","created_by":"zenchantlive","depends_on_id":"beadboard-6wv","issue_id":"beadboard-3de","type":"blocks"} +{"created_at":"2026-03-01T18:31:50Z","created_by":"ZenchantLive","depends_on_id":"beadboard-6cc","issue_id":"beadboard-4vr","type":"blocks"} +{"created_at":"2026-03-01T18:31:50Z","created_by":"ZenchantLive","depends_on_id":"beadboard-bgh","issue_id":"beadboard-4vr","type":"blocks"} {"created_at":"2026-02-28T16:59:16Z","created_by":"ZenchantLive","depends_on_id":"beadboard-550","issue_id":"beadboard-550.1","type":"parent-child"} {"created_at":"2026-02-28T16:59:25Z","created_by":"ZenchantLive","depends_on_id":"beadboard-550","issue_id":"beadboard-550.2","type":"parent-child"} {"created_at":"2026-02-28T16:59:50Z","created_by":"ZenchantLive","depends_on_id":"beadboard-550.1","issue_id":"beadboard-550.2","type":"blocks"} @@ -474,7 +477,10 @@ {"created_at":"2026-03-01T16:54:04Z","created_by":"ZenchantLive","depends_on_id":"beadboard-03r","issue_id":"beadboard-6fv","type":"relates-to"} {"created_at":"2026-03-01T16:54:05Z","created_by":"ZenchantLive","depends_on_id":"beadboard-8rg","issue_id":"beadboard-6fv","type":"relates-to"} {"created_at":"2026-03-01T16:40:03Z","created_by":"ZenchantLive","depends_on_id":"beadboard-8st","issue_id":"beadboard-6fv","type":"relates-to"} +{"created_at":"2026-03-01T18:28:53Z","created_by":"zenchantlive","depends_on_id":"beadboard-e6w","issue_id":"beadboard-6wv","type":"relates-to"} +{"created_at":"2026-03-01T18:28:26Z","created_by":"zenchantlive","depends_on_id":"beadboard-mdo","issue_id":"beadboard-6wv","type":"relates-to"} {"created_at":"2026-03-01T16:39:59Z","created_by":"ZenchantLive","depends_on_id":"beadboard-60a","issue_id":"beadboard-76p","type":"relates-to"} +{"created_at":"2026-03-01T18:28:25Z","created_by":"zenchantlive","depends_on_id":"beadboard-mdo","issue_id":"beadboard-76p","type":"relates-to"} {"created_at":"2026-03-01T16:40:01Z","created_by":"ZenchantLive","depends_on_id":"beadboard-zas","issue_id":"beadboard-76p","type":"relates-to"} {"created_at":"2026-02-21T18:52:32Z","created_by":"zenchantlive","depends_on_id":"beadboard-7jp","issue_id":"beadboard-7jp.1","type":"parent-child"} {"created_at":"2026-02-21T18:53:18Z","created_by":"zenchantlive","depends_on_id":"beadboard-7jp","issue_id":"beadboard-7jp.2","type":"parent-child"} @@ -505,7 +511,10 @@ {"created_at":"2026-03-01T16:40:03Z","created_by":"ZenchantLive","depends_on_id":"beadboard-6fv","issue_id":"beadboard-8st","type":"relates-to"} {"created_at":"2026-03-01T16:40:04Z","created_by":"ZenchantLive","depends_on_id":"beadboard-fga","issue_id":"beadboard-8st","type":"relates-to"} {"created_at":"2026-02-21T18:50:43Z","created_by":"zenchantlive","depends_on_id":"beadboard-8u3","issue_id":"beadboard-8u3.1","type":"parent-child"} +{"created_at":"2026-03-01T18:26:23Z","created_by":"zenchantlive","depends_on_id":"beadboard-6wv","issue_id":"beadboard-8yd","type":"blocks"} +{"created_at":"2026-03-01T18:28:52Z","created_by":"zenchantlive","depends_on_id":"beadboard-e6w","issue_id":"beadboard-8yd","type":"relates-to"} {"created_at":"2026-03-01T15:38:15Z","created_by":"ZenchantLive","depends_on_id":"beadboard-cc8","issue_id":"beadboard-91y","type":"parent-child"} +{"created_at":"2026-03-01T18:26:25Z","created_by":"zenchantlive","depends_on_id":"beadboard-6wv","issue_id":"beadboard-9bz","type":"blocks"} {"created_at":"2026-02-24T04:15:13Z","created_by":"zenchantlive","depends_on_id":"beadboard-lgi","issue_id":"beadboard-b7t","type":"parent-child"} {"created_at":"2026-02-24T04:15:37Z","created_by":"zenchantlive","depends_on_id":"beadboard-yo5","issue_id":"beadboard-b7t","type":"blocks"} {"created_at":"2026-02-24T04:15:13Z","created_by":"zenchantlive","depends_on_id":"beadboard-lgi","issue_id":"beadboard-brq","type":"parent-child"} @@ -523,6 +532,8 @@ {"created_at":"2026-02-28T14:39:47Z","created_by":"ZenchantLive","depends_on_id":"beadboard-d2x","issue_id":"beadboard-d2x.2","type":"parent-child"} {"created_at":"2026-02-28T14:39:56Z","created_by":"ZenchantLive","depends_on_id":"beadboard-d2x.1","issue_id":"beadboard-d2x.2","type":"blocks"} {"created_at":"2026-02-24T01:38:07Z","created_by":"zenchantlive","depends_on_id":"beadboard-uui","issue_id":"beadboard-d4n","type":"parent"} +{"created_at":"2026-03-01T18:26:26Z","created_by":"zenchantlive","depends_on_id":"beadboard-6wv","issue_id":"beadboard-dud","type":"blocks"} +{"created_at":"2026-03-01T18:28:52Z","created_by":"zenchantlive","depends_on_id":"beadboard-e6w","issue_id":"beadboard-dud","type":"relates-to"} {"created_at":"2026-03-01T16:54:03Z","created_by":"ZenchantLive","depends_on_id":"bb-u6f.3","issue_id":"beadboard-duo","type":"relates-to"} {"created_at":"2026-03-01T16:54:03Z","created_by":"ZenchantLive","depends_on_id":"beadboard-68k.2","issue_id":"beadboard-duo","type":"relates-to"} {"created_at":"2026-03-01T16:54:03Z","created_by":"ZenchantLive","depends_on_id":"beadboard-68k.4","issue_id":"beadboard-duo","type":"relates-to"} @@ -531,6 +542,10 @@ {"created_at":"2026-03-01T16:53:59Z","created_by":"ZenchantLive","depends_on_id":"bb-u6f.6.1","issue_id":"beadboard-dvp","type":"relates-to"} {"created_at":"2026-03-01T16:39:58Z","created_by":"ZenchantLive","depends_on_id":"beadboard-5r1","issue_id":"beadboard-dvp","type":"relates-to"} {"created_at":"2026-03-01T16:53:59Z","created_by":"ZenchantLive","depends_on_id":"beadboard-r1i","issue_id":"beadboard-dvp","type":"relates-to"} +{"created_at":"2026-03-01T18:28:53Z","created_by":"zenchantlive","depends_on_id":"beadboard-6wv","issue_id":"beadboard-e6w","type":"relates-to"} +{"created_at":"2026-03-01T18:28:52Z","created_by":"zenchantlive","depends_on_id":"beadboard-8yd","issue_id":"beadboard-e6w","type":"relates-to"} +{"created_at":"2026-03-01T18:28:52Z","created_by":"zenchantlive","depends_on_id":"beadboard-dud","issue_id":"beadboard-e6w","type":"relates-to"} +{"created_at":"2026-03-01T18:28:51Z","created_by":"zenchantlive","depends_on_id":"beadboard-fld","issue_id":"beadboard-e6w","type":"relates-to"} {"created_at":"2026-02-21T04:03:20Z","created_by":"zenchantlive","depends_on_id":"beadboard-3xc","issue_id":"beadboard-eo8","type":"parent"} {"created_at":"2026-02-21T04:03:22Z","created_by":"zenchantlive","depends_on_id":"beadboard-c08","issue_id":"beadboard-eo8","type":"blocks"} {"created_at":"2026-03-01T16:54:06Z","created_by":"ZenchantLive","depends_on_id":"bb-6bx","issue_id":"beadboard-fga","type":"relates-to"} @@ -538,6 +553,7 @@ {"created_at":"2026-03-01T16:54:07Z","created_by":"ZenchantLive","depends_on_id":"beadboard-5vs","issue_id":"beadboard-fga","type":"relates-to"} {"created_at":"2026-03-01T16:40:04Z","created_by":"ZenchantLive","depends_on_id":"beadboard-8st","issue_id":"beadboard-fga","type":"relates-to"} {"created_at":"2026-03-01T16:40:02Z","created_by":"ZenchantLive","depends_on_id":"beadboard-duo","issue_id":"beadboard-fld","type":"relates-to"} +{"created_at":"2026-03-01T18:28:51Z","created_by":"zenchantlive","depends_on_id":"beadboard-e6w","issue_id":"beadboard-fld","type":"relates-to"} {"created_at":"2026-02-24T01:42:05Z","created_by":"zenchantlive","depends_on_id":"beadboard-gb0","issue_id":"beadboard-gb0.1","type":"parent-child"} {"created_at":"2026-02-24T01:42:33Z","created_by":"zenchantlive","depends_on_id":"beadboard-gb0.4","issue_id":"beadboard-gb0.1","type":"blocks"} {"created_at":"2026-02-24T01:42:05Z","created_by":"zenchantlive","depends_on_id":"beadboard-gb0","issue_id":"beadboard-gb0.2","type":"parent-child"} @@ -554,6 +570,9 @@ {"created_at":"2026-02-24T01:42:12Z","created_by":"zenchantlive","depends_on_id":"beadboard-gb0","issue_id":"beadboard-gb0.8","type":"parent-child"} {"created_at":"2026-02-24T01:38:07Z","created_by":"zenchantlive","depends_on_id":"beadboard-uui","issue_id":"beadboard-j3u","type":"parent"} {"created_at":"2026-03-01T16:53:51Z","created_by":"ZenchantLive","depends_on_id":"beadboard-116","issue_id":"beadboard-jgy","type":"relates-to"} +{"created_at":"2026-03-01T18:28:26Z","created_by":"zenchantlive","depends_on_id":"beadboard-6wv","issue_id":"beadboard-mdo","type":"relates-to"} +{"created_at":"2026-03-01T18:28:25Z","created_by":"zenchantlive","depends_on_id":"beadboard-76p","issue_id":"beadboard-mdo","type":"relates-to"} +{"created_at":"2026-03-01T18:28:26Z","created_by":"zenchantlive","depends_on_id":"beadboard-y8k","issue_id":"beadboard-mdo","type":"relates-to"} {"created_at":"2026-03-01T16:39:57Z","created_by":"ZenchantLive","depends_on_id":"beadboard-116","issue_id":"beadboard-nq9","type":"relates-to"} {"created_at":"2026-03-01T16:54:00Z","created_by":"ZenchantLive","depends_on_id":"beadboard-60a","issue_id":"beadboard-r1i","type":"relates-to"} {"created_at":"2026-03-01T16:53:59Z","created_by":"ZenchantLive","depends_on_id":"beadboard-dvp","issue_id":"beadboard-r1i","type":"relates-to"} @@ -571,10 +590,13 @@ {"created_at":"2026-02-28T14:34:48Z","created_by":"ZenchantLive","depends_on_id":"beadboard-x3l.1","issue_id":"beadboard-x3l.3","type":"blocks"} {"created_at":"2026-02-28T14:34:43Z","created_by":"ZenchantLive","depends_on_id":"beadboard-x3l","issue_id":"beadboard-x3l.4","type":"parent-child"} {"created_at":"2026-02-28T14:34:48Z","created_by":"ZenchantLive","depends_on_id":"beadboard-x3l.1","issue_id":"beadboard-x3l.4","type":"blocks"} +{"created_at":"2026-03-01T18:26:24Z","created_by":"zenchantlive","depends_on_id":"beadboard-6wv","issue_id":"beadboard-y8k","type":"blocks"} +{"created_at":"2026-03-01T18:28:26Z","created_by":"zenchantlive","depends_on_id":"beadboard-mdo","issue_id":"beadboard-y8k","type":"relates-to"} {"created_at":"2026-02-21T04:03:21Z","created_by":"zenchantlive","depends_on_id":"beadboard-3xc","issue_id":"beadboard-yad","type":"parent"} {"created_at":"2026-02-21T04:03:22Z","created_by":"zenchantlive","depends_on_id":"beadboard-eo8","issue_id":"beadboard-yad","type":"blocks"} {"created_at":"2026-02-24T04:15:12Z","created_by":"zenchantlive","depends_on_id":"beadboard-lgi","issue_id":"beadboard-yo5","type":"parent-child"} {"created_at":"2026-03-01T16:53:57Z","created_by":"ZenchantLive","depends_on_id":"beadboard-116","issue_id":"beadboard-yz6","type":"relates-to"} +{"created_at":"2026-03-01T18:26:25Z","created_by":"zenchantlive","depends_on_id":"beadboard-6wv","issue_id":"beadboard-z2s","type":"blocks"} {"created_at":"2026-03-01T16:54:01Z","created_by":"ZenchantLive","depends_on_id":"beadboard-68k.4","issue_id":"beadboard-zas","type":"relates-to"} {"created_at":"2026-03-01T16:54:02Z","created_by":"ZenchantLive","depends_on_id":"beadboard-68k.5","issue_id":"beadboard-zas","type":"relates-to"} {"created_at":"2026-03-01T16:40:01Z","created_by":"ZenchantLive","depends_on_id":"beadboard-76p","issue_id":"beadboard-zas","type":"relates-to"} diff --git a/.beads/backup/events.jsonl b/.beads/backup/events.jsonl index a654815..8276f63 100644 --- a/.beads/backup/events.jsonl +++ b/.beads/backup/events.jsonl @@ -204,3 +204,45 @@ {"actor":"zenchantlive","comment":"Added label: template:release","created_at":"2026-03-01T18:04:26Z","event_type":"label_added","id":204,"issue_id":"beadboard-x3l","new_value":null,"old_value":null} {"actor":"zenchantlive","comment":"Added label: template:release","created_at":"2026-03-01T18:04:26Z","event_type":"label_added","id":205,"issue_id":"beadboard-x3l","new_value":null,"old_value":null} {"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T18:25:18Z","event_type":"created","id":206,"issue_id":"beadboard-6wv","new_value":"","old_value":""} +{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T18:25:32Z","event_type":"created","id":207,"issue_id":"beadboard-8yd","new_value":"","old_value":""} +{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T18:25:46Z","event_type":"created","id":208,"issue_id":"beadboard-y8k","new_value":"","old_value":""} +{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T18:25:54Z","event_type":"created","id":209,"issue_id":"beadboard-3de","new_value":"","old_value":""} +{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T18:26:01Z","event_type":"created","id":210,"issue_id":"beadboard-z2s","new_value":"","old_value":""} +{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T18:26:09Z","event_type":"created","id":211,"issue_id":"beadboard-9bz","new_value":"","old_value":""} +{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T18:26:17Z","event_type":"created","id":212,"issue_id":"beadboard-dud","new_value":"","old_value":""} +{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T18:26:53Z","event_type":"closed","id":213,"issue_id":"beadboard-8yd","new_value":"Completed: Removed LaunchSwarmDialog, rewired all Rocket buttons to AssignmentPanel. Commits c246cea, a0787f8.","old_value":""} +{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T18:26:53Z","event_type":"closed","id":214,"issue_id":"beadboard-y8k","new_value":"Completed: Fixed cross-view nav with atomic buildUrlParams URL updates. Commit c246cea.","old_value":""} +{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T18:26:54Z","event_type":"closed","id":215,"issue_id":"beadboard-3de","new_value":"Completed: Standardized icon buttons across DAG nodes and social cards. Commits c246cea, a0787f8.","old_value":""} +{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T18:26:54Z","event_type":"closed","id":216,"issue_id":"beadboard-z2s","new_value":"Completed: Created TelemetryStrip with real /api/activity + SSE data. Commit 114bb18.","old_value":""} +{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T18:26:55Z","event_type":"closed","id":217,"issue_id":"beadboard-9bz","new_value":"Completed: Added minimize/restore flow for all feed panels. Commit a0787f8.","old_value":""} +{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T18:26:56Z","event_type":"closed","id":218,"issue_id":"beadboard-dud","new_value":"Completed: Unified-shell wired as central panel state coordinator. Commit c246cea.","old_value":""} +{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T18:26:56Z","event_type":"closed","id":219,"issue_id":"beadboard-6wv","new_value":"Completed: All subtasks done. Full UX consolidation shipped on feat/themev2. Commits c246cea, a0787f8, 114bb18.","old_value":""} +{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T18:28:17Z","event_type":"created","id":220,"issue_id":"beadboard-mdo","new_value":"","old_value":""} +{"actor":"zenchantlive","comment":"Added label: memory","created_at":"2026-03-01T18:28:17Z","event_type":"label_added","id":221,"issue_id":"beadboard-mdo","new_value":null,"old_value":null} +{"actor":"zenchantlive","comment":"Added label: mem-canonical","created_at":"2026-03-01T18:28:17Z","event_type":"label_added","id":222,"issue_id":"beadboard-mdo","new_value":null,"old_value":null} +{"actor":"zenchantlive","comment":"Added label: mem-hard","created_at":"2026-03-01T18:28:17Z","event_type":"label_added","id":223,"issue_id":"beadboard-mdo","new_value":null,"old_value":null} +{"actor":"zenchantlive","comment":"Added label: memory-arch","created_at":"2026-03-01T18:28:17Z","event_type":"label_added","id":224,"issue_id":"beadboard-mdo","new_value":null,"old_value":null} +{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T18:28:25Z","event_type":"closed","id":225,"issue_id":"beadboard-mdo","new_value":"Ratified canonical memory","old_value":""} +{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T18:28:44Z","event_type":"created","id":226,"issue_id":"beadboard-e6w","new_value":"","old_value":""} +{"actor":"zenchantlive","comment":"Added label: memory","created_at":"2026-03-01T18:28:44Z","event_type":"label_added","id":227,"issue_id":"beadboard-e6w","new_value":null,"old_value":null} +{"actor":"zenchantlive","comment":"Added label: mem-canonical","created_at":"2026-03-01T18:28:44Z","event_type":"label_added","id":228,"issue_id":"beadboard-e6w","new_value":null,"old_value":null} +{"actor":"zenchantlive","comment":"Added label: mem-soft","created_at":"2026-03-01T18:28:44Z","event_type":"label_added","id":229,"issue_id":"beadboard-e6w","new_value":null,"old_value":null} +{"actor":"zenchantlive","comment":"Added label: memory-ux","created_at":"2026-03-01T18:28:44Z","event_type":"label_added","id":230,"issue_id":"beadboard-e6w","new_value":null,"old_value":null} +{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T18:28:51Z","event_type":"closed","id":231,"issue_id":"beadboard-e6w","new_value":"Ratified canonical memory","old_value":""} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-01T18:31:45Z","event_type":"created","id":232,"issue_id":"beadboard-6cc","new_value":"","old_value":""} +{"actor":"ZenchantLive","comment":"Added label: brainstorm","created_at":"2026-03-01T18:31:45Z","event_type":"label_added","id":233,"issue_id":"beadboard-6cc","new_value":null,"old_value":null} +{"actor":"ZenchantLive","comment":"Added label: memory","created_at":"2026-03-01T18:31:45Z","event_type":"label_added","id":234,"issue_id":"beadboard-6cc","new_value":null,"old_value":null} +{"actor":"ZenchantLive","comment":"Added label: memory-view","created_at":"2026-03-01T18:31:45Z","event_type":"label_added","id":235,"issue_id":"beadboard-6cc","new_value":null,"old_value":null} +{"actor":"ZenchantLive","comment":"Added label: ux","created_at":"2026-03-01T18:31:45Z","event_type":"label_added","id":236,"issue_id":"beadboard-6cc","new_value":null,"old_value":null} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-01T18:31:49Z","event_type":"created","id":237,"issue_id":"beadboard-bgh","new_value":"","old_value":""} +{"actor":"ZenchantLive","comment":"Added label: brainstorm","created_at":"2026-03-01T18:31:49Z","event_type":"label_added","id":238,"issue_id":"beadboard-bgh","new_value":null,"old_value":null} +{"actor":"ZenchantLive","comment":"Added label: dolt","created_at":"2026-03-01T18:31:49Z","event_type":"label_added","id":239,"issue_id":"beadboard-bgh","new_value":null,"old_value":null} +{"actor":"ZenchantLive","comment":"Added label: history","created_at":"2026-03-01T18:31:49Z","event_type":"label_added","id":240,"issue_id":"beadboard-bgh","new_value":null,"old_value":null} +{"actor":"ZenchantLive","comment":"Added label: frontend","created_at":"2026-03-01T18:31:49Z","event_type":"label_added","id":241,"issue_id":"beadboard-bgh","new_value":null,"old_value":null} +{"actor":"ZenchantLive","comment":"Added label: innovation","created_at":"2026-03-01T18:31:49Z","event_type":"label_added","id":242,"issue_id":"beadboard-bgh","new_value":null,"old_value":null} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-01T18:31:50Z","event_type":"created","id":243,"issue_id":"beadboard-4vr","new_value":"","old_value":""} +{"actor":"ZenchantLive","comment":"Added label: brainstorm","created_at":"2026-03-01T18:31:50Z","event_type":"label_added","id":244,"issue_id":"beadboard-4vr","new_value":null,"old_value":null} +{"actor":"ZenchantLive","comment":"Added label: memory","created_at":"2026-03-01T18:31:50Z","event_type":"label_added","id":245,"issue_id":"beadboard-4vr","new_value":null,"old_value":null} +{"actor":"ZenchantLive","comment":"Added label: dolt","created_at":"2026-03-01T18:31:50Z","event_type":"label_added","id":246,"issue_id":"beadboard-4vr","new_value":null,"old_value":null} +{"actor":"ZenchantLive","comment":"Added label: roadmap","created_at":"2026-03-01T18:31:50Z","event_type":"label_added","id":247,"issue_id":"beadboard-4vr","new_value":null,"old_value":null} +{"actor":"ZenchantLive","comment":"Added label: planning","created_at":"2026-03-01T18:31:50Z","event_type":"label_added","id":248,"issue_id":"beadboard-4vr","new_value":null,"old_value":null} diff --git a/.beads/backup/issues.jsonl b/.beads/backup/issues.jsonl index 54f7cd1..ee8881a 100644 --- a/.beads/backup/issues.jsonl +++ b/.beads/backup/issues.jsonl @@ -324,11 +324,13 @@ {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"de16ff14799deec70c5d7d6460cbb45b8172a6a030fca033103eb2bf03f3132f","created_at":"2026-02-21T20:27:30Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-1sc","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":0,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"open","target":"","timeout_ns":0,"title":"Testing SSE Flow","updated_at":"2026-02-21T20:27:30Z","waiters":"","wisp_type":"","work_type":"mutex"} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"657bd72a18f1253a55fb518a8bc81650e522478f2680dbcda1e6cfad0c31545f","created_at":"2026-02-19T21:27:39Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Swarm molecule orchestrating epic bb-ui2.\n\nEpic: bb-ui2\nCoordinator: ","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-2on","is_template":0,"issue_type":"molecule","last_activity":null,"metadata":"{}","mol_type":"swarm","notes":"","original_size":null,"owner":"","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"open","target":"","timeout_ns":0,"title":"Swarm: Unified UX - Earthy Dark Shell with Social/Graph/Swarm Views","updated_at":"2026-02-19T21:27:39Z","waiters":"","wisp_type":"","work_type":"mutex"} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"e2b97837e61514dddcc83954d6025f909f9147e5ddc0d8b84af4e517579ea756","created_at":"2026-02-21T04:00:53Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-2ua","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"open","target":"","timeout_ns":0,"title":"Implement Frontend UI","updated_at":"2026-02-21T04:00:53Z","waiters":"","wisp_type":"","work_type":"mutex"} +{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Completed: Standardized icon buttons across DAG nodes and social cards. Commits c246cea, a0787f8.","closed_at":"2026-03-02T02:26:54Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"ce2604a43d4092c254caa1254fcab4a65f940b754ff465699c5a14ee8b47598d","created_at":"2026-03-02T02:25:54Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Standardized icon buttons across DAG nodes and social cards. Removed deprecated Orbit/Activity buttons, replaced with MessageSquare (view details/conversation), GitBranch (DAG view), Rocket (assign), and Signal (telemetry). Conversation priority: taskId always shows conversation panel over assign panel. Scope: graph-node-card.tsx, social-card.tsx, social-page.tsx. Success Criteria: Consistent icon set across all card types with correct panel behavior.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-3de","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Standardize DAG node and social card icon buttons","updated_at":"2026-03-02T02:26:54Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"Document root cause, exact repair commands, final counts, and restart steps for dolt server","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Recovered active Dolt dataset to 381 issues, restored non-empty ready queue, and documented repeatable repair steps + server prerequisites.","closed_at":"2026-02-28T18:21:01Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"bada9a1f2c63666e70f1d526e68d101e47b518b2b5106a852a00e4c2c5599a38","created_at":"2026-02-28T18:20:48Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Capture successful Dolt reconciliation after bd 0.56.1 migration and lock/server failures.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-3t8","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Root cause: state divergence and backend drift. .beads/issues.jsonl + beads.db had 381 issues, while active Dolt DB exposed only 4 due stale/incorrect Dolt dataset, stale lock files, and server-mode requirements after upgrading bd.\\n\\nRepair sequence that worked:\\n1) Upgraded bd to 0.56.1.\\n2) Installed local dolt binary (~/.local/bin/dolt).\\n3) Started local dolt sql-server on 127.0.0.1:3307 rooted at .beads/dolt.\\n4) Verified source-of-truth candidate counts: issues.jsonl=381 and beads.db=381 matched.\\n5) Recovered known-good 381-issue Dolt dataset from backup path and restored into active .beads/dolt/beadboard.\\n6) Set active dolt database via 'bd dolt set database beadboard'.\\n7) Re-ran status/ready/list verification.\\n\\nFinal verification:\\n- bd status =\u003e Total 381, Open 66, Blocked 23, Closed 219, Ready 43\\n- bd ready -n 20 =\u003e non-empty (42 ready total)\\n- bd list --all --json =\u003e total 381; status counts {open:66, closed:219, tombstone:94, deferred:2}\\n\\nOperational note:\\n- bd 0.56.1 is server-mode for Dolt; ensure dolt sql-server is running on configured host/port before bd commands.\\n- If unavailable, restart from repo with: cd .beads/dolt \u0026\u0026 dolt sql-server --host 127.0.0.1 --port 3307","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":0,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Dolt/JSONL recovery: restore beadboard issue inventory","updated_at":"2026-02-28T18:21:01Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"b7358e2500ddbd6ab2157d800925c3e62edee73814034f7c334eeebef9528256","created_at":"2026-02-21T04:00:36Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-3xc","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":2,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"open","target":"","timeout_ns":0,"title":"Swarm Test: Order Processing System","updated_at":"2026-02-21T04:00:36Z","waiters":"","wisp_type":"","work_type":"mutex"} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"e608f5c7f0baffc76ce0d2bfea7935212c4554e0304c6f260dd1ce27cf3651f7","created_at":"2026-02-21T20:31:04Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-43c","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":0,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"open","target":"","timeout_ns":0,"title":"Diff test issue","updated_at":"2026-02-21T20:31:04Z","waiters":"","wisp_type":"","work_type":"mutex"} {"acceptance_criteria":"Templates have color and icon fields, TemplateInspector has color palette, emoji selector, live preview, clone button, display components show template icons","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Templates now have full customization: color palette, icon/emoji selector, live preview, clone functionality. All verification gates pass.","closed_at":"2026-02-26T04:47:40Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"402c4e701dcafb01e60b8a2db10b4d1e8277ee49e3377e0d62c227aa44054247","created_at":"2026-02-26T04:24:13Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Add same customization features to templates as archetypes have","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-4i8","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Completed: added color and icon fields to SwarmTemplate, enhanced TemplateInspector with color palette (30 presets), emoji selector (40 emojis), live preview, clone functionality. Updated all display components.","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"closed","target":"","timeout_ns":0,"title":"Enhanced Template Customization","updated_at":"2026-02-26T04:47:40Z","waiters":"","wisp_type":"","work_type":"mutex"} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Recreating as proper children of Phase 0 epic with correct naming","closed_at":"2026-02-28T21:02:57Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"8aac7647cec1a02916705314b4723ff7e1736530ff8002871de31974fb605c31","created_at":"2026-02-28T20:59:29Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"The TopBar blocked toggle already updates URL state via useUrlState, and SocialPage already accepts a blockedOnly prop, but UnifiedShell never passes it through. One-line fix.\n\nFile: src/components/shared/unified-shell.tsx\nLocation: \u003cSocialPage\u003e call inside renderMiddleContent() (~line 128)\n\nChange: blockedOnly is already available from useUrlState() at line 38. Add as prop:\n \u003cSocialPage\n issues={filteredIssues}\n selectedId={taskId ?? undefined}\n onSelect={handleCardSelect}\n projectScopeOptions={projectScopeOptions}\n blockedOnly={blockedOnly} // add this\n /\u003e\n\nAlso ensure blockedOnly is destructured from useUrlState() at line 38.\n\nAcceptance: Clicking 'Blocked Items' toggle in TopBar immediately filters the social feed to blocked cards only. Toggling off restores full list.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-4qa","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":0,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"P0.1: Wire blockedOnly to SocialPage","updated_at":"2026-02-28T21:02:57Z","waiters":"","wisp_type":"","work_type":""} +{"acceptance_criteria":"Success Criteria: (1) Consolidated roadmap with v1/v2 scope; (2) Implementation bead breakdown with dependency order; (3) Verification strategy defined before coding.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"d23389de955b95452fb837c5ca204a32c97cb70c1df18de77e22defa2518826d","created_at":"2026-03-02T02:31:47Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Scope:\n- Synthesize outcomes from the Memory View and Dolt-history brainstorming epics into a prioritized roadmap.\n- Define v1/v2 cutlines, dependencies, and acceptance contracts for implementation beads.\n- Identify objective success metrics for the selected concept.\n\nOut of Scope:\n- Implementing features.\n- Re-litigating already accepted architectural constraints unless new evidence requires it.\n\nPrompt:\nConverge brainstorming outputs into one execution-ready plan with explicit milestone beads, dependency order, and measurable success criteria.\n","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-4vr","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"open","target":"","timeout_ns":0,"title":"[epic][brainstorm] Memory + Dolt Synthesis to Implementation Roadmap","updated_at":"2026-03-02T02:31:47Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"When user selects a template for an epic, the templateId is persisted to the epic and the UI updates to show the assigned template.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Template assignment now persists to epic metadata via /api/beads/update. UI updates to show assigned template after selection.","closed_at":"2026-02-26T18:35:07Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"1d2cf4c11f769fc5c29ff2d678490181ebdbd4e6501dec802bf80b80301c8b05","created_at":"2026-02-26T18:14:41Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Scope: Implement API call or state update to persist templateId to epic. Out of scope: AI auto-assignment.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-514","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Adding metadata support to update mutation. Will store templateId in epic's metadata field.","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":2,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"closed","target":"","timeout_ns":0,"title":"Persist Epic Template Assignment","updated_at":"2026-02-26T18:35:07Z","waiters":"","wisp_type":"","work_type":"mutex"} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"4b24c9aff4656ee95f8bfa7ae5c52e19b158f87bcfb3f5c0b755a9bdc30fcb7a","created_at":"2026-02-24T03:15:39Z","created_by":"","crystallizes":0,"defer_until":null,"description":"","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-538","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"","payload":"","pinned":0,"priority":2,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"tombstone","target":"","timeout_ns":0,"title":"SELECT id FROM issues WHERE issue_type = 'agent'","updated_at":"2026-02-24T03:32:33Z","waiters":"","wisp_type":"","work_type":"mutex"} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"All 4 child tasks complete. BeadBoard now reads issues directly from Dolt SQL via mysql2. issues.jsonl kept as deprecated fallback. SSE realtime works. 146/146 tests pass.","closed_at":"2026-03-01T01:33:54Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"3fe6b56a9d16a62a965c3256b757be462daa4463e512ddff73ae2de77282f869","created_at":"2026-02-28T23:40:58Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"## TASK CONTEXT\n- Bead ID: TBD (epic)\n- Title: Replace issues.jsonl reads with direct Dolt SQL (mysql2)\n- Driver: Dolt is the source of truth for beads; issues.jsonl is a stale export that drifts whenever bd writes to Dolt without an explicit re-export step.\n\n## TASK CONTRACT\n- Goal: BeadBoard reads issues directly from the Dolt SQL server (MySQL wire protocol via mysql2) instead of parsing issues.jsonl. This eliminates the Dolt→JSONL sync problem and unlocks Dolt time-travel queries for future history/audit views.\n- Success Criteria:\n - All data-read paths in src/lib/read-issues.ts and src/lib/aggregate-read.ts query Dolt via mysql2 instead of reading issues.jsonl\n - issues.jsonl fallback kept temporarily but not relied on for correctness\n - npm run typecheck \u0026\u0026 npm run lint \u0026\u0026 npm run test pass\n - Frontend shows live bead state without manual export step\n - Time-travel query foundation in place (e.g. AS OF clause supported)\n\n## IMPLEMENTATION CONSTRAINTS\n- Dolt server: mysql2 connects to 127.0.0.1:3307 (same host/port as bd's Dolt backend)\n- Connection config must be read from .beads/metadata.json (dolt_server_port etc.) — do not hardcode\n- Keep issues.jsonl as deprecated fallback during transition; do not delete it yet\n- The preferBd path in read-issues.ts can be removed once mysql2 path is stable\n\n## ENVIRONMENT / PLATFORM NOTES\n### Single-platform users (majority case)\n- WSL2-only: frontend + Dolt both on WSL2 → 127.0.0.1:3307 works out of the box\n- Windows-only: frontend + Dolt both on Windows → 127.0.0.1:3307 works out of the box\n\n### Mixed WSL2 + Windows (workaround required)\nIf running the Next.js frontend in Windows PowerShell while the Dolt server runs in WSL2 (or vice versa), 127.0.0.1 refers to different loopbacks. Workaround: enable WSL2 mirrored networking so localhost is shared between Windows and WSL2.\n\nSetup (one-time): create C:\\Users\\\u003cyou\u003e\\.wslconfig:\n [wsl2]\n networkingMode=mirrored\n\nThen restart WSL2: wsl --shutdown \u0026\u0026 wsl\n\nThis is NOT required for users on a single platform. Document in README/AGENTS.md for contributors working in mixed environments.\n\n## FUTURE CAPABILITIES UNLOCKED\nOnce on mysql2 + Dolt:\n- Time-travel queries: SELECT * FROM issues AS OF '2026-02-20' WHERE id = '...'\n- Full changelog per bead: SELECT * FROM dolt_diff_issues WHERE to_id = '...' ORDER BY commit_date\n- Historical status counts for burndown/velocity charts\n- Audit trail: who changed what and when\n\n## VERIFICATION REQUIREMENTS\n- npm run typecheck\n- npm run lint \n- npm run test\n- Manual: create a bead via bd, confirm frontend shows it immediately without any export step","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-550","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":2,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Replace issues.jsonl reads with direct Dolt SQL (mysql2)","updated_at":"2026-03-01T01:33:54Z","waiters":"","wisp_type":"","work_type":""} @@ -348,9 +350,10 @@ {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Activity is ambient (right panel default), not a separate nav tab. Nav stays at Social + Graph only. Jump to Activity wiring handled in .2.","closed_at":"2026-02-28T21:40:11Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"9a961815e343851fdef5518ded410928e07af7dc36a576a2007f95d6e1ad4712","created_at":"2026-02-28T21:07:13Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Activity is a valid view but unreachable from navigation. Both LeftPanel views array and MobileNav tabs array only have Social and Graph.\n\nFile 1: src/components/shared/left-panel.tsx (~line 188)\n Add: { id: 'activity', label: 'Activity' } to views array\n\nFile 2: src/components/shared/mobile-nav.tsx (~line 6)\n Add Activity tab and replace Unicode glyphs with Lucide icons:\n import { LayoutList, Share2, Activity } from 'lucide-react'\n tabs: [\n { id: 'social', label: 'Social', icon: \u003cLayoutList className='h-5 w-5' /\u003e },\n { id: 'graph', label: 'Graph', icon: \u003cShare2 className='h-5 w-5' /\u003e },\n { id: 'activity', label: 'Activity', icon: \u003cActivity className='h-5 w-5' /\u003e },\n ]\n Add aria-label={tab.label} to each tab button.\n Check current mobile-nav render pattern before editing.\n\nAcceptance: Left panel and mobile nav both show 3 tabs. Mobile icons are Lucide SVGs with aria-labels.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-68k.3","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":0,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Add Activity tab to LeftPanel and MobileNav","updated_at":"2026-02-28T21:40:11Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"thread-drawer.tsx line 418: replaced hardcoded 'In Progress' with issue?.status formatted via replace(/_/g,' ')","closed_at":"2026-02-28T21:42:49Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"efe0272f2e8cc03118780bc25826cbf6757adf3b1182b0839a3846c46309ff0c","created_at":"2026-02-28T21:07:21Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Thread drawer shows 'In Progress' for every issue regardless of actual status. Line 418 has a hardcoded string.\n\nFile: src/components/shared/thread-drawer.tsx (line 418)\n\nCurrent:\n \u003cspan ...\u003eIn Progress\u003c/span\u003e\n\nChange to:\n \u003cspan ...\u003e\n {issue?.status?.replace(/_/g, ' ').replace(/\\b\\w/g, c =\u003e c.toUpperCase()) ?? 'Unknown'}\n \u003c/span\u003e\n\nNote: line 280 already reads issue.status correctly for a Badge — follow that same pattern.\n\nAcceptance: status='open' shows 'Open', status='in_progress' shows 'In Progress', status='blocked' shows 'Blocked'.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-68k.4","is_template":0,"issue_type":"bug","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":0,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Fix thread drawer status badge (hardcoded 'In Progress')","updated_at":"2026-02-28T21:42:49Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"TopBar now receives totalTasks, criticalAlerts, busyCount from live issues array in unified-shell.tsx","closed_at":"2026-02-28T21:42:49Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"6e8513805497f6db649d9e40df79780d2f0247a63945737b8f8f4bc8714d6581","created_at":"2026-02-28T21:07:28Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TopBar metric tiles always show 0 because UnifiedShell passes no props. The live issues array is available in scope.\n\nFile: src/components/shared/unified-shell.tsx (TopBar call)\n\nChange: compute from issues and pass props:\n \u003cTopBar\n totalTasks={issues.filter(i =\u003e i.issue_type !== 'epic').length}\n criticalAlerts={issues.filter(i =\u003e i.status === 'blocked').length}\n busyCount={issues.filter(i =\u003e i.status === 'in_progress').length}\n idleCount={0}\n /\u003e\n\nFirst check top-bar.tsx prop types to confirm field names match.\nidleCount=0 explicitly until Phase 4 wires the liveness map.\n\nAcceptance: TopBar shows real blocked count and in-progress count. Values update when SSE pushes changes.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-68k.5","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":0,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Wire TopBar metric tiles from live issue data","updated_at":"2026-02-28T21:42:49Z","waiters":"","wisp_type":"","work_type":""} +{"acceptance_criteria":"Success Criteria: (1) At least 2 viable UI directions documented; (2) Recommended direction includes data model, interaction flow, and provenance handling; (3) Risks and open questions explicitly listed.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"1af1626d9b81a84b67e018476beaa1f3b4620dea1302960ee5f4dd4bb5959731","created_at":"2026-03-02T02:31:42Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Scope:\n- Design a Memory View in the frontend where users can browse, filter, inspect, and apply canonical memory nodes.\n- Define information architecture, interaction model, data requirements, and quality/provenance indicators.\n- Produce 2-3 design options with tradeoffs and a recommended direction.\n\nOut of Scope:\n- Implementing production UI/components/routes.\n- Finalizing backend contracts beyond design-level proposals.\n\nPrompt:\nDesign a user-facing Memory View that makes stored memories understandable and actionable for fresh agents and humans. Optimize for discoverability, provenance clarity, and low-noise workflows.\n","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-6cc","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"open","target":"","timeout_ns":0,"title":"[epic][brainstorm] Memory View UX and Interaction Model","updated_at":"2026-03-02T02:31:42Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"Given a stale update bug, when triage starts, then parity, read path, and watcher inputs are explicitly checked before implementation.\nVerification command(s): bd show \u003cissue-id\u003e; npm run test -- tests/lib/watcher.test.ts","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Ratified canonical memory","closed_at":"2026-03-02T00:40:02Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"bbe1ec504fa93a449a6213ddddb3855247c8db34af65a6960198b0582a738558","created_at":"2026-03-02T00:40:01Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Scope: Bug triage and remediation for stale state, watcher, and refresh failures.\nOut of Scope: Non-state-related cosmetic bugs.\nRule: Verify source-of-truth parity first, then inspect read paths and watcher inputs before patching symptoms.\nRationale: Prevents superficial fixes that hide core data flow faults.\nFailure Mode: Repeated regressions when stale-state root cause remains unresolved.\n","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-6fv","is_template":0,"issue_type":"decision","last_activity":null,"metadata":"{\"domain\":\"memory-reliability\",\"effective_date\":\"2026-03-02\",\"evidence_ids\":\"beadboard-03r,beadboard-8rg,bb-xtu,bb-tpc.3\",\"memory_strength\":\"hard\",\"memory_version\":1,\"owner\":\"team\",\"plan_refs\":\"docs/plans/2026-02-28-bd-only-coordination-migration-plan.md\",\"superseded_by\":null,\"supersedes\":null}","mol_type":"","notes":"Provenance linked: beadboard-03r, beadboard-8rg, bb-xtu, bb-tpc.3","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"[MEMORY][RELIABILITY][HARD] Triage stale-state bugs via parity and watcher checks","updated_at":"2026-03-02T00:54:05Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"bf5c6b303e055cbf850699726821e46ad1c082a5c64a38b31804f44957545abe","created_at":"2026-02-21T19:53:05Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-6lq","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":0,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"open","target":"","timeout_ns":0,"title":"Testing CURL","updated_at":"2026-02-21T19:53:05Z","waiters":"","wisp_type":"","work_type":"mutex"} -{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"f0b9984371281432490f8180b6afae032bb52dcd16d44c5d95c3e13831c63aaa","created_at":"2026-03-02T02:25:18Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Epic covering the full UX rework that removed the broken LaunchSwarmDialog (formula-based), rewired all Rocket/Launch Swarm buttons to use the working archetype-based AssignmentPanel, added cross-view navigation between Social and Graph, and introduced TelemetryStrip minimized sidebar. Scope: TopBar, LeftPanel, DAG nodes, social cards, unified-shell wiring, TelemetryStrip component. Out of Scope: New archetype templates, backend changes. Success Criteria: All Rocket buttons open AssignmentPanel, cross-view nav works atomically, TelemetryStrip shows real activity events with minimize/restore.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-6wv","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"open","target":"","timeout_ns":0,"title":"UX Consolidation: Launch Swarm + Telemetry Strip + Cross-View Navigation","updated_at":"2026-03-02T02:25:18Z","waiters":"","wisp_type":"","work_type":""} +{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Completed: All subtasks done. Full UX consolidation shipped on feat/themev2. Commits c246cea, a0787f8, 114bb18.","closed_at":"2026-03-02T02:26:57Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"f0b9984371281432490f8180b6afae032bb52dcd16d44c5d95c3e13831c63aaa","created_at":"2026-03-02T02:25:18Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Epic covering the full UX rework that removed the broken LaunchSwarmDialog (formula-based), rewired all Rocket/Launch Swarm buttons to use the working archetype-based AssignmentPanel, added cross-view navigation between Social and Graph, and introduced TelemetryStrip minimized sidebar. Scope: TopBar, LeftPanel, DAG nodes, social cards, unified-shell wiring, TelemetryStrip component. Out of Scope: New archetype templates, backend changes. Success Criteria: All Rocket buttons open AssignmentPanel, cross-view nav works atomically, TelemetryStrip shows real activity events with minimize/restore.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-6wv","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"UX Consolidation: Launch Swarm + Telemetry Strip + Cross-View Navigation","updated_at":"2026-03-02T02:26:57Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"test","closed_at":"2026-02-21T21:21:14Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"3270adeb60c4f28981bd6ec8bc489b081cdc7d7ea53369481f1f7d9f20f1b879","created_at":"2026-02-21T21:21:12Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-6xd","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":2,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"closed","target":"","timeout_ns":0,"title":"Realtime Test","updated_at":"2026-02-21T21:21:14Z","waiters":"","wisp_type":"","work_type":"mutex"} {"acceptance_criteria":"Canonical architecture memories are related to this anchor via bd dep relate.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"7187d6f3fabf12f10f20f59b03ebad7e76a504087323844c11fae6f3dcc52449","created_at":"2026-03-02T00:39:15Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Domain anchor for architecture constraints and design decisions. Use this as the root index for canonical architecture memories.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-76p","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"open","target":"","timeout_ns":0,"title":"[MEMORY-ANCHOR] Architecture","updated_at":"2026-03-02T00:39:15Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"86de8583c55d0f91e7ebd9d286204656cfeef20c0e0c428c81ea4678cde5bfd9","created_at":"2026-02-21T18:51:54Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Title: Swarm Archetypes \u0026 Templates CRUD\n- Type: Epic\n- Dependencies: none\n\nTASK CONTRACT\n- Goal: Enable full create/read/update/delete operations for archetypes and templates in the Swarm system through the UI.\n- Success Criteria:\n - Archetypes can be created, edited, and deleted via UI\n - Templates can be created, edited, and deleted via UI\n - API routes support POST/PUT/DELETE for both resources\n - isBuiltIn records are protected from deletion\n - All quality gates pass (typecheck, lint, test)\n- Scope:\n - Server-side CRUD functions in beads-fs.ts\n - REST API routes for archetypes and templates\n - Editable modal inspectors for both resource types\n - Add New buttons on each tab\n - Delete functionality with isBuiltIn protection\n- Out of Scope:\n - Agent spawning/live execution\n - Drag-drop assignment to beads\n - Major visual redesign\n - Real-time collaboration features","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-7jp","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"open","target":"","timeout_ns":0,"title":"Swarm Archetypes \u0026 Templates CRUD","updated_at":"2026-02-21T18:51:54Z","waiters":"","wisp_type":"","work_type":"mutex"} @@ -374,12 +377,15 @@ {"acceptance_criteria":"Canonical reliability memories are related to this anchor via bd dep relate.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"b1c44a1f659c63451b531032d0237cc65410f15e5a3f772025b6681a17b58434","created_at":"2026-03-02T00:39:17Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Domain anchor for incident handling, error triage patterns, and durable workaround guidance.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-8st","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"open","target":"","timeout_ns":0,"title":"[MEMORY-ANCHOR] Reliability and Errors","updated_at":"2026-03-02T00:39:17Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"0a8fb10f793ed70eb59992adca0ac0588e8c055fcdf94f10d0e634a779b4234c","created_at":"2026-02-21T18:50:22Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: bb-swarm-crud\n- Title: Swarm Archetypes \u0026 Templates CRUD\n- Parent/Epic: none\n- Dependencies: none\n\nTASK CONTRACT\n- Goal: Enable full create/read/update/delete operations for archetypes and templates in the Swarm system through the UI.\n- Success Criteria:\n - Archetypes can be created, edited, and deleted via UI\n - Templates can be created, edited, and deleted via UI\n - API routes support POST/PUT/DELETE for both resources\n - isBuiltIn records are protected from deletion\n - All quality gates pass (typecheck, lint, test)\n- Scope:\n - Server-side CRUD functions in beads-fs.ts\n - REST API routes for archetypes and templates\n - Editable modal inspectors for both resource types\n - Add New buttons on each tab\n - Delete functionality with isBuiltIn protection\n- Out of Scope:\n - Agent spawning/live execution\n - Drag-drop assignment to beads\n - Major visual redesign\n - Real-time collaboration features","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-8u3","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":2,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"tombstone","target":"","timeout_ns":0,"title":"Swarm Archetypes \u0026 Templates CRUD","updated_at":"2026-02-21T18:51:39Z","waiters":"","wisp_type":"","work_type":"mutex"} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"4ea0dc702d1e5653f38049f95b30ac8362d39a65c271639456b2a4c89b64da3a","created_at":"2026-02-21T18:50:43Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: bb-swarm-crud.1\n- Title: Archetypes server functions\n- Parent/Epic: beadboard-8u3\n- Dependencies: none\n\nTASK CONTRACT\n- Goal: Implement server-side save and delete functions for archetypes in beads-fs.ts.\n- Success Criteria:\n - saveArchetype(archetype: AgentArchetype) writes to .beads/archetypes/{id}.json\n - deleteArchetype(id: string) removes the file and returns success\n - Delete operation rejects if isBuiltIn is true\n - Create operation auto-generates slug id from name if not provided\n - Create operation sets createdAt, updatedAt, isBuiltIn: false\n - Update operation updates updatedAt timestamp\n - Unit tests cover all functions and edge cases\n- Scope:\n - File: src/lib/server/beads-fs.ts\n - File: src/lib/types-swarm.ts (if type updates needed)\n - File: __tests__/server/beads-fs.test.ts (or appropriate test location)\n - Slug generation utility (e.g., 'System Architect' -\u003e 'system-architect')\n- Out of Scope:\n - API routes (next task)\n - UI components\n - Template functions\n\nIMPLEMENTATION CONSTRAINTS\n- Preserve existing getArchetypes() function\n- Reuse existing ARCHE_DIR constant\n- Keep changes targeted and minimal for this bead\n\nVERIFICATION REQUIREMENTS\n- Required commands:\n - npm run typecheck\n - npm run lint\n - npm run test\n- Required artifacts:\n - Test output showing passing tests for save/delete functions","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-8u3.1","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":2,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"tombstone","target":"","timeout_ns":0,"title":"Archetypes server functions","updated_at":"2026-02-21T18:51:38Z","waiters":"","wisp_type":"","work_type":"mutex"} +{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Completed: Removed LaunchSwarmDialog, rewired all Rocket buttons to AssignmentPanel. Commits c246cea, a0787f8.","closed_at":"2026-03-02T02:26:53Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"701f86d3c498199265e1a562f9750625fe0d932ef03e65b1bff924c56ce427f9","created_at":"2026-03-02T02:25:32Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Removed the broken formula-based LaunchSwarmDialog from TopBar and LeftPanel. Rewired all Rocket/Launch Swarm buttons (TopBar, LeftPanel per-epic, DAG nodes, social cards) to open the working archetype-based AssignmentPanel instead. Every trigger clears taskId first so assignMode renders AssignmentPanel. Scope: top-bar.tsx, left-panel.tsx, unified-shell.tsx, smart-dag.tsx, graph-node-card.tsx, social-card.tsx. Success Criteria: All Rocket buttons open AssignmentPanel with correct archetype flow.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-8yd","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Remove LaunchSwarmDialog and rewire Rocket buttons to AssignmentPanel","updated_at":"2026-03-02T02:26:53Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"5c8e7b5409f4360b4af2e905de3260e8021c632ca8ee033d4eaeba6d0e393703","created_at":"2026-03-01T23:38:09Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Root cause: src/lib/watcher.ts snapshot diff does not detect changes to the comments array on a BeadIssue. When 'bd comments add' writes to .beads/issues.jsonl, the file watcher fires but the diff logic finds no changed fields and skips broadcasting. Task: (1) Read src/lib/watcher.ts and locate the snapshot diff / ProjectEventCoalescer logic. (2) Check if comments are included in the snapshotted fields. (3) Add comment-count (or comment-list hash) to the diff so any comment addition triggers an SSE event. (4) Verify SSE fires in tests or manual test with 'bd comments add'. Key files: src/lib/watcher.ts, src/lib/parser.ts (BeadIssue shape), tests/lib/ for existing watcher tests.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-91y","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"open","target":"","timeout_ns":0,"title":"Investigate snapshot diff — add comment-count detection","updated_at":"2026-03-01T23:38:09Z","waiters":"","wisp_type":"","work_type":""} +{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Completed: Added minimize/restore flow for all feed panels. Commit a0787f8.","closed_at":"2026-03-02T02:26:55Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"df74347b9ed272d87b1712fcd1bd0faa3cb0b19c28a8553bf095358aeccd225e","created_at":"2026-03-02T02:26:10Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Added minimize button (ChevronLeft) to both global Activity Feed and Epic Command Feed in contextual-right-panel.tsx. Minimize restores last state (taskId or assignMode) via lastTaskId/lastAssignMode state tracking in unified-shell.tsx. When TelemetryStrip maximize is clicked, it clears non-telemetry state to show full feed. Scope: contextual-right-panel.tsx, unified-shell.tsx. Success Criteria: Minimize button on all feed panels, restore previous panel state, TelemetryStrip maximize works.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-9bz","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Add minimize/restore flow for activity feed panels","updated_at":"2026-03-02T02:26:55Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"Templates can be applied to epics. BeadIssue gets templateId field. Template picker applies template to selected epic. Assignment panel shows template roster when epic selected.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Implemented epic-level template assignment. BeadIssue now has templateId field. Assignment panel shows Epic Template section when epic selected, with team roster. Template picker applies template to epic. Fixed all test files with new field.","closed_at":"2026-02-26T18:11:04Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"be154ecd5cc535438c43a5ca89428bcafe9fb8c308a3d7023d891b8e53504ac8","created_at":"2026-02-26T17:57:14Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Scope: Add templateId to BeadIssue type, update template picker to apply to epics, show template info in assignment panel. Out of scope: AI auto-assignment logic, multi-agent execution.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-9ce","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Added templateId to BeadIssue type. Updated assignment-panel with epic template section. Template picker now applies template to selected epic. All typecheck, lint, and tests pass.","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":2,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"closed","target":"","timeout_ns":0,"title":"Epic-Level Template Assignment","updated_at":"2026-02-26T18:11:04Z","waiters":"","wisp_type":"","work_type":"mutex"} {"acceptance_criteria":"When clicking Archetypes or Templates buttons, show a popup modal with list of existing items. User can select to use/edit or create new. Modal should have same styling as inspector modals.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Implemented popup modal pickers for Archetypes and Templates. Clicking the buttons now opens a modal with list of existing items, Select/Edit/Create options.","closed_at":"2026-02-26T17:47:58Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"e02327e0255e03eafc4ef4c3c4568a8f7282dd9340e74259ca40f743fb69e3dc","created_at":"2026-02-26T17:39:10Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-adr","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Created ArchetypePicker and TemplatePicker modal components. Updated assignment-panel.tsx to use picker modals instead of inline lists. Typecheck and lint pass.","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":2,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"closed","target":"","timeout_ns":0,"title":"Archetype/Template Picker Modal","updated_at":"2026-02-26T17:47:58Z","waiters":"","wisp_type":"","work_type":"mutex"} {"acceptance_criteria":"6-8 built-in templates for common scenarios, each with optimized team composition, icons, colors, descriptions explaining when to use","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Created 9 intelligent preset templates for common development workflows with optimized team compositions.","closed_at":"2026-02-26T05:19:28Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"700f2faa8ddc32644cf35a934f7ba48230e1f7252261aa8b13b51c0368b43a64","created_at":"2026-02-26T05:13:43Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Create intelligently constructed preset templates based on the 6 archetypes for common development workflows","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-agp","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Created 9 intelligent preset templates: Feature Development, Bug Fix Squad, Code Review, Greenfield Project, Release Team, Investigation Team, Refactoring Team, Full Development Squad, Standard Application. Each has optimized team composition, workflow formula, color, and icon.","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"closed","target":"","timeout_ns":0,"title":"Intelligent Preset Templates","updated_at":"2026-02-26T05:19:28Z","waiters":"","wisp_type":"","work_type":"mutex"} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"All fixes implemented and tested. 14/14 tests passing. Conversation panel now opens on icon click, closes on second click, prioritizes task over epic, and back button navigates correctly.","closed_at":"2026-03-01T21:49:05Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"d8c24c8b5f11334061801afb3fd6818abbfbbd5af2ee20a1964aa6d3527e5987","created_at":"2026-03-01T21:48:57Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"## What was done\n\n### Problem\nClicking the MessageSquare conversation icon on DAG nodes (WorkflowGraph / Dependencies tab) was not opening the ThreadDrawer in the right panel. The icon had been added but the panel never changed content.\n\n### Root cause analysis\n1. **Priority inversion in ContextualRightPanel**: The panel checked `epicId` BEFORE `taskId`. When the user had filtered the graph by an epic (setting `epicId` in URL), clicking the conversation icon would set `taskId` but `epicId` remained set — so SwarmCommandFeed rendered instead of ThreadDrawer.\n2. **epicId not cleared on epic selection**: `setEpicId` did not clear `task` from the URL, so old taskId persisted across epic selections.\n3. **Stale onSelect in flowModel**: WorkflowGraph's `flowModel` useMemo did not include `onSelect` in its dependency array, risking stale conversation callbacks.\n\n### Fixes applied\n\n**src/components/activity/contextual-right-panel.tsx**\n- Reordered branches: `if (taskId)` now comes before `if (epicId)`\n- Task conversation always takes priority over epic feed when a task is explicitly selected\n\n**src/hooks/use-url-state.ts**\n- `setEpicId` now clears `task` param: `updateUrl({ epic: id, task: null })`\n- Clicking an epic in the left panel resets active task conversation, so SwarmCommandFeed correctly shows\n\n**src/components/shared/workflow-graph.tsx**\n- Added `onSelect` to `flowModel` useMemo dependency array\n- Prevents stale conversation callbacks from being captured in node data\n\n**src/components/shared/unified-shell.tsx**\n- `handleGraphSelect` now toggles: clicking the same node a second time calls `setTaskId(null)`, closing the right panel\n- Also bumped dep array to include `taskId`\n\n### Earlier session changes (same epic, context compacted)\n- Added MessageSquare icon to GraphNodeCard with proper prop-threading (no useUrlState inside ReactFlow nodes)\n- WorkflowGraph threads `onConversationOpen` and `selectedTaskId` into node data\n- Fixed ContextualRightPanel `onClose` no-ops → wired to `setTaskId(null)` / `setSwarmId(null)`\n- UnifiedShell right panel is always visible (removed `panel === 'open'` gate)\n- SmartDag task grid changed to horizontal scroll with fixed-width cards\n- hideClosed defaults to true in SmartDag\n- Added Suspense boundary in page.tsx for useSearchParams\n- 14 static analysis tests in tests/components/graph/graph-node-conversation.test.tsx\n\n### Tests\n- 14/14 tests passing in tests/components/graph/graph-node-conversation.test.tsx\n- All tests cover: icon presence, no useUrlState in node, prop-threading, stopPropagation, selectedTaskId highlight, onConversationOpen wiring, taskId priority over epicId, back button wired, right panel always visible, Suspense boundary","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-b3c","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":2,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Graph DAG conversation panel wiring (Phase 1 completion)","updated_at":"2026-03-01T21:49:05Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"AssignmentPanel shows: Needs Agent section (ready tasks without agent: label), Pre-assigned section (tasks with agent: label), Active Workers section scoped to current epic. Can assign from sidebar.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Closed","closed_at":"2026-02-24T08:10:25Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"8c15190610c3cd385b979e6e3f224c323a5bcdd4fbe1dc6f80bec3062c585193","created_at":"2026-02-24T04:15:00Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-b7t","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Starting work on AssignmentPanel enhancement. Will add three sections: Needs Agent (ready tasks without agent: label), Pre-assigned (tasks with agent: label), Active Workers scoped to current epic.","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"closed","target":"","timeout_ns":0,"title":"Enhance AssignmentPanel with sections","updated_at":"2026-02-24T08:10:25Z","waiters":"","wisp_type":"","work_type":"mutex"} +{"acceptance_criteria":"Success Criteria: (1) At least 2 distinct Dolt-powered UX concepts documented; (2) Each concept maps to concrete user jobs and technical constraints; (3) One concept selected for v1 experimentation.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"fc46795ff2d6bdaf5e5f2603d34b6575eb700089b3ea2dae5274fe75a1470944","created_at":"2026-03-02T02:31:47Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Scope:\n- Brainstorm unique frontend experiences powered by Dolt version history (time-travel views, memory lineage replay, change narratives, forensic debugging flows).\n- Define which Dolt capabilities should be surfaced directly in UI and which should remain internal tooling.\n- Produce 2-3 product concepts with clear user value and implementation risk.\n\nOut of Scope:\n- Building full production features in this epic.\n- Changing core bd storage backend behavior.\n\nPrompt:\nDesign cool, unique, and practical ways to use Dolt history in the frontend so users can understand how issue state, memory rules, and execution decisions evolved over time.\n","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-bgh","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"open","target":"","timeout_ns":0,"title":"[epic][brainstorm] Dolt Version History as Frontend Product Surface","updated_at":"2026-03-02T02:31:47Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"Graph nodes show Assign button for open/blocked tasks. Dropdown shows archetypes. Selecting archetype calls /api/swarm/prep. Shows assigned archetype badge after success. Can change/remove assignment.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Completed. Added Assign button to GraphNodeCard with Radix dropdown-menu, proper dark theme CSS, agent: label prefix, and change/remove assignment support. All 6 TDD tests pass. All verification gates pass.","closed_at":"2026-02-24T04:57:56Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"2c9ad551bc6d678d2eac1e2237eaba7d6b5e80b8f341943ff711292cd978a3f6","created_at":"2026-02-24T04:15:00Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-brq","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"## Completed Implementation\n\n### Files Changed\n- **src/components/graph/graph-node-card.tsx**: Added Assign button with Radix dropdown-menu, kept original dark theme CSS\n- **src/app/api/swarm/prep/route.ts**: Added DELETE handler for remove assignment\n\n### Key Features\n- Assign button shows for open/blocked/ready tasks (not closed)\n- Dropdown shows all archetypes with color indicators\n- Shows current assigned archetype with Change option\n- Remove assignment option in dropdown\n- Uses correct `agent:` label prefix\n- Auto-refreshes via SSE after assignment\n\n### Tests Written (TDD)\nAll 6 tests pass:\n1. GraphNodeCard checks for assignable status\n2. GraphNodeCard excludes closed tasks\n3. GraphNodeCard parses agent: label\n4. GraphNodeCard imports Radix dropdown-menu\n5. GraphNodeCard receives archetypes\n6. GraphNodeCard supports assignment action\n\n### Verification Gates\n- npm run typecheck: ✓ PASS\n- npm run lint: ✓ PASS (0 errors, 21 warnings - pre-existing)\n- npm run test: ✓ PASS (all tests)","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"closed","target":"","timeout_ns":0,"title":"Add Assign button/dropdown to GraphNodeCard","updated_at":"2026-02-24T04:57:56Z","waiters":"","wisp_type":"","work_type":"mutex"} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":"sysarchitect-01","await_id":"","await_type":"","close_reason":"","closed_at":"2026-02-21T05:03:50Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"28d5443e989a71f0e7d9401694808fac30965cdf14414649ed256d1a1ec514c7","created_at":"2026-02-21T04:01:08Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-c08","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"closed","target":"","timeout_ns":0,"title":"Analyze Legacy System","updated_at":"2026-02-21T05:03:50Z","waiters":"","wisp_type":"","work_type":"mutex"} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"1dafbb5c4d9daaa58832c82f8e6970f25243e6a66cef0243c4b200f216d94e49","created_at":"2026-03-01T23:37:59Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"When a comment is added via 'bd comments add' (or the ThreadDrawer POST), the JSONL file is mutated but the Chokidar watcher does not broadcast an SSE event. Users have to manually refresh to see new comments. The watcher snapshot diff likely only diffs top-level issue fields (status, title, etc.) and does not detect the comments array changing. Fix should: (1) detect comment-count changes in the snapshot diff, (2) emit an SSE activity/change event so subscribed clients re-fetch and display the new comment without a full page refresh.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-cc8","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"open","target":"","timeout_ns":0,"title":"SSE watcher misses comment additions — no live refresh on bd comment add","updated_at":"2026-03-01T23:37:59Z","waiters":"","wisp_type":"","work_type":""} @@ -391,8 +397,10 @@ {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"93c0c0ce899172851d9d6422d3a21859f3df78de06e8c56c6326fe3d28441e81","created_at":"2026-02-28T22:39:47Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: beadboard-d2x.2\n- Title: Reroute TopBar blocked button to open BlockedTriageModal\n- Parent/Epic: beadboard-d2x\n- Dependencies (must be done first): beadboard-d2x.1\n\nTASK CONTRACT\n- Goal: The TopBar 'Blocked Items' button currently toggles a URL param (blockedOnly). Replace this with a modal open trigger that opens BlockedTriageModal, keeping the blockedOnly filter wired from Phase 0 for the social feed but making the primary triage action the modal.\n- Success Criteria:\n - Clicking 'Blocked Items' in TopBar opens BlockedTriageModal\n - BlockedTriageModal receives issues and projectRoot from UnifiedShell\n - Existing blockedOnly URL toggle in TopBar is either removed or made secondary (decide when reading the component — do not break Phase 0 work)\n - npm run typecheck passes\n- Scope:\n - src/components/shared/top-bar.tsx — change blocked button handler\n - src/components/shared/unified-shell.tsx — add modal open state, pass to TopBar and BlockedTriageModal\n- Out of Scope:\n - Changing BlockedTriageModal internals (beadboard-d2x.1)\n - Phase 0 blockedOnly social feed filter\n\nIMPLEMENTATION CONSTRAINTS\n- Preserve existing backend/API contracts unless explicitly stated otherwise.\n- Reuse shared components and logic; avoid one-off forks.\n- Keep changes targeted and minimal for this bead.\n\nVERIFICATION REQUIREMENTS\n- Required commands:\n - npm run typecheck\n - npm run lint\n - npm run test\n- Report any remaining risks and follow-up beads explicitly.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-d2x.2","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":2,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"open","target":"","timeout_ns":0,"title":"Reroute TopBar blocked button to open BlockedTriageModal","updated_at":"2026-02-28T22:39:47Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"File created: src/components/graph/assignment-panel.tsx; Archetypes/Templates buttons open inspector modals; Task assignment section shows selected issue details; Archetype picker dropdown populated from useArchetypes; Prep Task for Swarm button calls /api/swarm/prep; Condensed squad roster shows active agents; npm run typecheck passes","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"6125f57d0c2fc09352deb2de82632197bccfb2fc6e320d50e5c4f53baf58c645","created_at":"2026-02-24T01:37:40Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-d4n","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"tombstone","target":"","timeout_ns":0,"title":"Create AssignmentPanel component","updated_at":"2026-02-24T01:40:31Z","waiters":"","wisp_type":"","work_type":"mutex"} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"6c33dd19c5fab28ffb3ec7fed3b423630107c24616fda2ff2234fadd30cf2069","created_at":"2026-02-21T20:30:26Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-dp2","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":0,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"open","target":"","timeout_ns":0,"title":"Testing from curl","updated_at":"2026-02-21T20:30:26Z","waiters":"","wisp_type":"","work_type":"mutex"} +{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Completed: Unified-shell wired as central panel state coordinator. Commit c246cea.","closed_at":"2026-03-02T02:26:56Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"85f32a2db061ff92c0a3c65e4a21b94666aaba59367a94ceb90274c406fa2333","created_at":"2026-03-02T02:26:17Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Wired unified-shell.tsx as the central coordinator for all panel state: assignMode, taskId, lastTaskId, lastAssignMode, isNonTelemetry detection. All panel-switching flows (rocket, conversation, telemetry, minimize, social-view rocket) route through unified-shell handlers. handleSocialRocket, handleMinimize, handleNodeTelemetry etc. Scope: unified-shell.tsx. Success Criteria: Single source of truth for right panel state, no state desync across views.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-dud","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Wire unified-shell as central state coordinator for panel modes","updated_at":"2026-03-02T02:26:56Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"Given newly introduced UI copy, when reviewed, then wording is concise and unambiguous for first-time users.\nVerification command(s): npm run lint; targeted UI review in changed components","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Ratified canonical memory","closed_at":"2026-03-02T00:40:01Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"211674ee3309e1029490d7490617c2b5a29ed26507221e66dd15f83664657869","created_at":"2026-03-02T00:40:00Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Scope: UI copy in labels, controls, and status messaging.\nOut of Scope: Internal comments and engineering-only diagnostics.\nRule: Use simple user-facing language and explicit status words.\nRationale: Reduces ambiguity and onboarding friction.\nFailure Mode: Dense or vague copy increases mistakes and support load.\n","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-duo","is_template":0,"issue_type":"decision","last_activity":null,"metadata":"{\"domain\":\"memory-ux\",\"effective_date\":\"2026-03-02\",\"evidence_ids\":\"beadboard-68k.4,beadboard-68k.2,bb-u6f.3\",\"memory_strength\":\"soft\",\"memory_version\":1,\"owner\":\"team\",\"plan_refs\":\"docs/plans/2026-02-16-social-view-redesign-plan.md,docs/plans/2026-02-15-unified-ux-prd.md\",\"superseded_by\":null,\"supersedes\":null}","mol_type":"","notes":"Provenance linked: beadboard-68k.4, beadboard-68k.2, bb-u6f.3","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"[MEMORY][UX][SOFT] User-facing copy must stay simple and explicit","updated_at":"2026-03-02T00:54:03Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"Given independent subtasks, when execution starts, then each subtask has explicit ownership and verification evidence.\nVerification command(s): bd dep tree \u003cepic-id\u003e; bd ready; git status --short","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Ratified canonical memory","closed_at":"2026-03-02T00:39:57Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"58dedbce1a26e2564d00aa59ee8560b614f3e5f388d7006ae544abf591f37d40","created_at":"2026-03-02T00:39:56Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Scope: Any task with 2+ independent units of work.\nOut of Scope: Single-file trivial edits.\nRule: Parallelize independent reads/exploration and isolate ownership for independent execution threads.\nRationale: Reduces cycle time while preserving traceability.\nFailure Mode: Serial execution on independent work causes avoidable delays.\n","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-dvp","is_template":0,"issue_type":"decision","last_activity":null,"metadata":"{\"domain\":\"memory-agent\",\"effective_date\":\"2026-03-02\",\"evidence_ids\":\"bb-u6f.6,bb-u6f.6.1,beadboard-r1i\",\"memory_strength\":\"soft\",\"memory_version\":1,\"owner\":\"team\",\"plan_refs\":\"docs/plans/2026-02-28-bd-only-coordination-migration-plan.md\",\"superseded_by\":null,\"supersedes\":null}","mol_type":"","notes":"Provenance linked: bb-u6f.6, bb-u6f.6.1, beadboard-r1i","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"[MEMORY][AGENT][SOFT] Parallelize independent work with clear ownership","updated_at":"2026-03-02T00:53:58Z","waiters":"","wisp_type":"","work_type":""} +{"acceptance_criteria":"Given a new panel-switching trigger from any view, when implementation is reviewed, then the trigger routes through unified-shell handler props, not local component state.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Ratified canonical memory","closed_at":"2026-03-02T02:28:51Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"dc81055193cbc3465d327d4277ed0f5cf12f672a711ce291286f3631d0702b7b","created_at":"2026-03-02T02:28:44Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Scope: Right panel mode switching (conversation, assign, telemetry, minimize/restore). Out of Scope: Left panel and top bar state. Rule: unified-shell.tsx is the single source of truth for right panel state (assignMode, taskId, lastTaskId, lastAssignMode). All panel-switching flows from any view (DAG nodes, social cards, top bar) must route through unified-shell handlers, not manage panel state locally. Rationale: LaunchSwarmDialog failed because it was a parallel panel system. Centralizing in unified-shell prevents state desync across views. Failure Mode: Local panel state in child components causes inconsistent behavior depending on which view the user entered from.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-e6w","is_template":0,"issue_type":"decision","last_activity":null,"metadata":"{\"domain\":\"memory-ux\",\"effective_date\":\"2026-03-02\",\"evidence_ids\":\"beadboard-dud,beadboard-8yd\",\"memory_strength\":\"soft\",\"memory_version\":1,\"owner\":\"team\",\"plan_refs\":\"\",\"superseded_by\":null,\"supersedes\":null}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"[MEMORY][UX][SOFT] Unified-shell owns all right-panel state transitions","updated_at":"2026-03-02T02:28:51Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":"sysarchitect-01","await_id":"","await_type":"","close_reason":"","closed_at":"2026-02-26T01:53:00Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"8f7527a166f80da24341c6f5e75236a288ffeeb01edae418ed05484aec5a767f","created_at":"2026-02-21T04:01:11Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-eo8","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"closed","target":"","timeout_ns":0,"title":"Design New Component","updated_at":"2026-02-26T01:53:00Z","waiters":"","wisp_type":"","work_type":"mutex"} {"acceptance_criteria":"Given a workaround task, when created, then trigger, rollback criteria, and retirement owner are present.\nVerification command(s): bd show \u003cworkaround-id\u003e","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Ratified canonical memory","closed_at":"2026-03-02T00:40:03Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"b63e0ea4d4920bde46d19ad0a3bbe214fb4669e0f0a1d346cca2a4dabe8d252e","created_at":"2026-03-02T00:40:02Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Scope: Temporary workaround decisions under delivery pressure.\nOut of Scope: Final architecture decisions already ratified.\nRule: Any workaround must include trigger conditions, rollback criteria, and owner for retirement.\nRationale: Keeps tactical decisions from becoming accidental permanent architecture.\nFailure Mode: Undocumented workaround debt accumulates and obscures system intent.\n","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-fga","is_template":0,"issue_type":"decision","last_activity":null,"metadata":"{\"domain\":\"memory-reliability\",\"effective_date\":\"2026-03-02\",\"evidence_ids\":\"bb-ff6,bb-6bx,beadboard-5vs\",\"memory_strength\":\"soft\",\"memory_version\":1,\"owner\":\"team\",\"plan_refs\":\"docs/plans/2026-02-28-bd-only-coordination-migration-plan.md,docs/plans/2026-02-22-dag-views-ux-design.md\",\"superseded_by\":null,\"supersedes\":null}","mol_type":"","notes":"Provenance linked: bb-ff6, bb-6bx, beadboard-5vs","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"[MEMORY][RELIABILITY][SOFT] Workarounds require trigger rollback and owner","updated_at":"2026-03-02T00:54:07Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"Canonical UI/UX memories are related to this anchor via bd dep relate.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"20f7b859593b2616b5e07a51d20d07e392aa37468421e31d2854243508fbacde","created_at":"2026-03-02T00:39:16Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Domain anchor for UI/UX rules, accessibility constraints, and component usage patterns.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-fld","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"open","target":"","timeout_ns":0,"title":"[MEMORY-ANCHOR] UI/UX","updated_at":"2026-03-02T00:39:16Z","waiters":"","wisp_type":"","work_type":""} @@ -414,6 +422,7 @@ {"acceptance_criteria":"help/memory folder exists with workflow docs; both AGENTS manuals reference and enforce memory workflow commands and schema.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Memory workflow docs and AGENTS integration added","closed_at":"2026-03-02T00:46:38Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"8542172d8d6c8ac3d885d5d13059206681e450bdb5f0891ae91b825c5f612abd","created_at":"2026-03-02T00:45:20Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Add critical operational docs for the bd-native memory system under help/memory and update root+beadboard AGENTS.md with explicit memory workflow protocol and command patterns.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-jgy","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Added help/memory index+workflow+query+schema docs; updated AGENTS.md with mandatory Native Memory Workflow section and command contracts.","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Document memory workflow in help/memory and AGENTS manuals","updated_at":"2026-03-02T00:46:38Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"User can assign archetypes to tasks via graph nodes and sidebar. Shows assigned archetype badges on nodes. Shows Needs Agent / Pre-assigned / Active Workers sections in sidebar.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Epic complete. Users can now assign archetypes to tasks via graph nodes (dropdown with archetype selection) and sidebar (Needs Agent section with quick assign). Shows archetype badges on nodes. AssignmentPanel shows three sections: Needs Agent, Pre-assigned, and Squad Roster (active workers scoped to epic).","closed_at":"2026-02-24T08:12:02Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"c92148b19bcb16a4c63bfa35b0a534867a3fc85ecb7f79a6443ae8524f0efc4f","created_at":"2026-02-24T04:14:38Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-lgi","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"## Final Fix: Single Archetype Per Task\n\n### Design Decision\nAfter discussion, we determined that bd (bead) is designed for ONE agent\narchetype per task - clear ownership model.\n\n### Implementation\n- handleAssignAgent now removes existing agent: labels before adding new one\n- Calls DELETE first, then POST\n- Optimistic UI reflects single archetype constraint\n- Reassigning still works (click different archetype to replace)\n\n### Test Coverage\n- 5 new tests in graph-node-single-archetype.test.tsx\n\n### Commit\n211e503 - feat(graph): enforce single archetype per task","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"closed","target":"","timeout_ns":0,"title":"Assign Archetypes to Tasks - UI System","updated_at":"2026-02-25T01:05:17Z","waiters":"","wisp_type":"","work_type":"mutex"} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"SSE refresh test complete - bead should appear and disappear without page reload","closed_at":"2026-02-21T20:50:23Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"e7bc06d037451c7ce09c7f8809077e907db3b57b82cad71b4520b1b165b177cc","created_at":"2026-02-21T20:49:59Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Testing that SSE events trigger UI refresh without manual page reload. This bead will be closed immediately after creation.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-m4f","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":3,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"closed","target":"","timeout_ns":0,"title":"Test Bead - SSE Refresh Verification","updated_at":"2026-02-21T20:50:23Z","waiters":"","wisp_type":"","work_type":"mutex"} +{"acceptance_criteria":"Given a multi-param URL update, when the code is reviewed, then it must use a single buildUrlParams then router.push call, not sequential setX() calls.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Ratified canonical memory","closed_at":"2026-03-02T02:28:25Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"3b834ed2860e79b1560932a39726c0e89b1830b64e4c1684115aeb8cc2897f54","created_at":"2026-03-02T02:28:17Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Scope: Any code that updates multiple URL search params (view, taskId, assignMode, graphTab, etc.) in sequence. Out of Scope: Single-param updates. Rule: Never call multiple sequential setX() functions that each rebuild the URL from the same stale searchParams snapshot. Instead, use a single buildUrlParams() call to construct all params atomically, then one router.push(). Rationale: Each setX() reads the current searchParams at call time; if two run in the same tick, the second overwrites the first changes. Failure Mode: Params silently dropped, e.g. view changes but taskId reverts to previous value.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-mdo","is_template":0,"issue_type":"decision","last_activity":null,"metadata":"{\"domain\":\"memory-arch\",\"effective_date\":\"2026-03-02\",\"evidence_ids\":\"beadboard-y8k\",\"memory_strength\":\"hard\",\"memory_version\":1,\"owner\":\"team\",\"plan_refs\":\"\",\"superseded_by\":null,\"supersedes\":null}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"[MEMORY][ARCH][HARD] Atomic URL param updates to avoid stale closure races","updated_at":"2026-03-02T02:28:25Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"Canonical workflow memories are related to this anchor via bd dep relate.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"5da123dbdad6d8b1b981104fad944679e17fff64a82cbdeabe118169df3ed468","created_at":"2026-03-02T00:39:16Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Domain anchor for execution process constraints, verification gates, and delivery discipline.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-nq9","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"open","target":"","timeout_ns":0,"title":"[MEMORY-ANCHOR] Workflow Protocol","updated_at":"2026-03-02T00:39:16Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":"2026-02-27T01:33:44Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"78b8b49cd1224c2a66dd49a452abbe6f6fce3e8fd4347cc8c84e2322c5226003","created_at":"2026-02-21T20:52:19Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-o6s","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":3,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"closed","target":"","timeout_ns":0,"title":"Test Bead 2 - SSE Check","updated_at":"2026-02-27T01:33:44Z","waiters":"","wisp_type":"","work_type":"mutex"} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Closed","closed_at":"2026-03-01T22:24:56Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"4f88d13043a1b0f19dfd4804d0b7b181b0317e0a2826b62354e2d45acb3b1a39","created_at":"2026-03-01T22:24:50Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"# Dolt Database Organization \u0026 PATH Troubleshooting\r\n\r\nOrganized scattered CLI `.txt` help texts into `beadboard/help/cli/` and added explicit workflow guides in `beadboard/help/workflows` for checking recently closed beads (`bd query`) and using the new `bd vc` dolt database features.\r\n\r\n**Issues Encountered \u0026 Resolved:**\r\n1. User accidentally ran `dolt init` in root rather than running commands in the actual DB directory (`.beads/dolt/beadboard/`). The empty root DB was pushed to DoltHub.\r\n2. We navigated correctly to `.beads/dolt/beadboard/` and ran `dolt push -f origin main` to forcefully overwrite the empty database on DoltHub with the actual issue history.\r\n3. The installed `bd` binary (`0.49.6`) was out of date. User ran the remote update script to `0.57.0`.\r\n4. The updated `bd` directory (`C:\\Users\\Zenchant\\AppData\\Local\\Programs\\bd`) was not on the system `PATH`. We programmatically updated the `$env:Path` in the registry and the active session.\r\n5. `bd 0.57.0` does not bundle the `dolt` binary anymore. The `bd ready` command was throwing a \"Dolt server unreachable... dolt is not installed\" error.\r\n6. We resolved this by downloading the official Dolt windows release archive, extracting `dolt.exe`, and placing it alongside `bd.exe` in the `bd` data directory. The `bd ready` command now successfully auto-starts the Dolt server.\r\n","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-qq2","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":2,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Dolt Migration and PATH Fixes","updated_at":"2026-03-01T22:24:56Z","waiters":"","wisp_type":"","work_type":""} @@ -431,10 +440,12 @@ {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"fac32fa6621d7e7c923dc4d894046adade762c4dd1924e7b697dea7dcbc410cb","created_at":"2026-02-28T22:34:43Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: beadboard-x3l.3\n- Title: Render agent avatar on graph nodes with stuck-agent pulse\n- Parent/Epic: beadboard-x3l\n- Dependencies (must be done first): beadboard-x3l.1\n\nTASK CONTRACT\n- Goal: Active graph nodes should show the assigned agent's avatar. Nodes whose agent is in a 'stuck' liveness state should display a pulsing warning treatment so the operator can spot problems at a glance in the DAG view.\n- Success Criteria:\n - Graph node card renders a small agent avatar when issue.assignee is present in livenessMap\n - Stuck agents (livenessMap value === 'stuck') show a CSS pulse/ring animation on the node border\n - Non-assigned nodes are visually unchanged\n - npm run typecheck passes\n- Scope:\n - src/components/graph/smart-dag.tsx or the node card component it renders — add livenessMap prop and avatar/pulse render\n - Read SmartDag to find where individual node UI is rendered before editing\n- Out of Scope:\n - SocialCard presence (beadboard-x3l.2)\n - Graph layout or DAG structure changes\n\nIMPLEMENTATION CONSTRAINTS\n- Preserve existing backend/API contracts unless explicitly stated otherwise.\n- Reuse shared components and logic; avoid one-off forks.\n- Keep changes targeted and minimal for this bead.\n\nVERIFICATION REQUIREMENTS\n- Required commands:\n - npm run typecheck\n - npm run lint\n - npm run test\n- Report any remaining risks and follow-up beads explicitly.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-x3l.3","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"open","target":"","timeout_ns":0,"title":"Render agent avatar on graph nodes with stuck-agent pulse","updated_at":"2026-02-28T22:34:43Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"24edd6f97db15701b4c156021112e907eda6bb9b8370a7c0b24efb571f351a50","created_at":"2026-02-28T22:34:43Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: beadboard-x3l.4\n- Title: Replace LeftPanel footer with live workspace stats\n- Parent/Epic: beadboard-x3l\n- Dependencies (must be done first): beadboard-x3l.1\n\nTASK CONTRACT\n- Goal: The LeftPanel footer currently shows a hardcoded identity string. Replace it with live stats: number of active agents and number of tasks currently in motion, derived from livenessMap and the live issues array.\n- Success Criteria:\n - Footer shows 'N agents active, M tasks in motion' with real counts\n - Counts update reactively when SSE pushes changes\n - No hardcoded identity text remains in LeftPanel footer\n - npm run typecheck passes\n- Scope:\n - src/components/shared/left-panel.tsx — update footer section\n - LeftPanel already receives issues prop — use it for task count\n - livenessMap passed from UnifiedShell (add to LeftPanelProps if not present)\n- Out of Scope:\n - TopBar identity input (beadboard-0fi.1)\n - Changing LeftPanel navigation or epic tree\n\nIMPLEMENTATION CONSTRAINTS\n- Preserve existing backend/API contracts unless explicitly stated otherwise.\n- Reuse shared components and logic; avoid one-off forks.\n- Keep changes targeted and minimal for this bead.\n\nVERIFICATION REQUIREMENTS\n- Required commands:\n - npm run typecheck\n - npm run lint\n - npm run test\n- Report any remaining risks and follow-up beads explicitly.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-x3l.4","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":2,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"open","target":"","timeout_ns":0,"title":"Replace LeftPanel footer with live workspace stats","updated_at":"2026-02-28T22:34:43Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"6cd918a6dbca1854922993c92bc5f72d714552caf1c37c060a05be31ce8f69b1","created_at":"2026-02-23T04:45:06Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-xte","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":0,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"open","target":"","timeout_ns":0,"title":"DAG Views UX Overhaul (Macro/Micro Contexts)","updated_at":"2026-02-23T04:45:06Z","waiters":"","wisp_type":"","work_type":"mutex"} +{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Completed: Fixed cross-view nav with atomic buildUrlParams URL updates. Commit c246cea.","closed_at":"2026-03-02T02:26:54Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"8015948e8e8d959e6203745d7a69b65a4740667bbc3186513d301c0d628c3804","created_at":"2026-03-02T02:25:46Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Fixed cross-view navigation between Social and Graph views. GitBranch button on social cards navigates to graph with graphTab=flow (Dependencies/DAG tab). Columns2 button on DAG nodes navigates to Social view. Fixed stale closure bug by using single buildUrlParams() -\u003e router.push() for atomic multi-param URL updates instead of sequential setState calls. Scope: social-card.tsx, smart-dag.tsx, graph-node-card.tsx, use-url-state.ts. Success Criteria: Cross-view buttons navigate correctly without race conditions.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-y8k","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Fix cross-view navigation: Social \u003c-\u003e Graph with atomic URL params","updated_at":"2026-03-02T02:26:54Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"When working on an epic, skill reads the template:XXX label, looks up the template definition, and uses team composition to spawn appropriate agents","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Already captured in bb-buff.4 as template label integration concept","closed_at":"2026-02-28T01:45:54Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"107d4555390dfcb6ecbc1918e2c920939802b71cf298e7c294b6a1e664ce6b51","created_at":"2026-02-28T01:44:45Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"When the skill spawns work on an epic, it should:\\n1. Check for labels starting with 'template:'\\n2. Look up the template from /api/swarm/templates\\n3. Use the team composition (archetype counts) to determine how many agents to spawn\\n4. Follow the protoFormula workflow\\n\\nThis allows the user to assign templates to epics in the UI, and the skill will automatically understand what team is needed when asked to work on that epic.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-y95","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":2,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"closed","target":"","timeout_ns":0,"title":"Skill should read template labels from epics","updated_at":"2026-02-28T01:45:54Z","waiters":"","wisp_type":"","work_type":"mutex"} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":"2026-02-26T01:53:14Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"8e8e7f62385e3abeb51670bf3874802cd10a3b78ccb43f83419bd0c451e2798f","created_at":"2026-02-21T04:01:14Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-yad","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"closed","target":"","timeout_ns":0,"title":"Implement Frontend UI","updated_at":"2026-02-26T01:53:14Z","waiters":"","wisp_type":"","work_type":"mutex"} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"d78f815d3cca5b475133a1ec66f3af94ea4b0147346fb6d3dcbd76cfd86590ef","created_at":"2026-02-21T18:34:36Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-yg7","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":0,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"open","target":"","timeout_ns":0,"title":"Make Archetypes and Templates Editable in Swarm View","updated_at":"2026-02-21T18:34:36Z","waiters":"","wisp_type":"","work_type":"mutex"} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Recreating as proper children of Phase 0 epic with correct naming","closed_at":"2026-02-28T21:02:57Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"2140bb9fc04d3ec765c3a43b24ad5e8385f639bb70a1166667075da137fd5a19","created_at":"2026-02-28T20:59:38Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"view=activity is a valid ViewType (in VALID_VIEWS in use-url-state.ts) but renderMiddleContent() in UnifiedShell returns null for it. SocialCard 'Jump to Activity' navigates users here, so they land on a blank page.\n\nFile: src/components/shared/unified-shell.tsx\nLocation: renderMiddleContent() function (around lines 103-140)\n\nChange: Add before the final 'return null':\n if (view === 'activity') {\n return (\n \u003cActivityPanel\n issues={filteredIssues}\n projectRoot={projectRoot}\n /\u003e\n );\n }\n\nImport: ActivityPanel is already used in contextual-right-panel.tsx:\n import { ActivityPanel } from '../activity/activity-panel';\nCheck ActivityPanel's props signature before adding - confirm it accepts issues and projectRoot.\n\nAcceptance: Navigating to /?view=activity renders the activity feed. SocialCard 'Jump to Activity' link lands on content, not a blank page.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-yh3","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":0,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"P0.2: Add activity render case to renderMiddleContent()","updated_at":"2026-02-28T21:02:57Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"GraphNodeData interface includes labels field. WorkflowGraph passes issue.labels to node data. Tests verify labels are present in node data.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Completed. Added labels field to GraphNodeData interface and passed issue.labels through WorkflowGraph and dependency-graph-page. All 4 TDD tests pass. All verification gates pass.","closed_at":"2026-02-24T04:20:57Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"61552df0e260d87fe90969800bbe754766ae094d37244bd295360241f6dedab8","created_at":"2026-02-24T04:15:00Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-yo5","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"## Completed Implementation\n\n### Files Changed\n- **src/components/graph/graph-node-card.tsx**: Added `labels: string[]` field to GraphNodeData interface\n- **src/components/shared/workflow-graph.tsx**: Added `labels: issue.labels` to node data\n- **src/components/graph/dependency-graph-page.tsx**: Added `labels: issue.labels` to node data (deprecated page kept working)\n- **tests/components/graph/graph-node-labels.test.tsx**: Created 4 TDD tests\n- **package.json**: Added new test file to test script\n\n### Tests Written (TDD)\nAll 4 tests pass:\n1. GraphNodeData interface includes labels field\n2. GraphNodeData labels is typed as string array\n3. WorkflowGraph passes issue.labels to node data\n4. WorkflowGraph uses labels from issue in node mapping\n\n### Verification Gates\n- npm run typecheck: ✓ PASS\n- npm run lint: ✓ PASS (0 errors, 21 warnings - all pre-existing)\n- npm run test: ✓ PASS (all tests)\n\n### Evidence\n```\nnpm run typecheck\n\u003e tsc --noEmit\n(no output = success)\n\nnpm run lint\n✖ 21 problems (0 errors, 21 warnings)\n\nnpm run test\n# tests 13 (including new graph-node-labels suite)\n# pass 13\n# fail 0\n```","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"closed","target":"","timeout_ns":0,"title":"Pass labels to graph nodes","updated_at":"2026-02-24T04:20:57Z","waiters":"","wisp_type":"","work_type":"mutex"} {"acceptance_criteria":"Anchors exist, at least 5 canonical memory nodes exist and are closed, links to anchors exist, and plan docs updated.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Phase 1 memory fabric bootstrapped in bd with anchors and canonical memory nodes","closed_at":"2026-03-02T00:40:49Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"de3a851d3aa09e12495ce3aeec0c1933496e90dbe6893794b8d34316f38eccb4","created_at":"2026-03-02T00:38:49Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Implement Phase 1 native memory system in bd: create domain anchors, seed canonical memory decisions with strict schema labels, link via relates_to, and document evidence.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-yz6","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Evidence: created anchors beadboard-76p/fld/nq9/5r1/8st; created+closed canonical nodes beadboard-116,dvp,60a,zas,duo,6fv,fga; verified retrieval via bd query label=memory+mem-canonical+status=closed and connectivity via bd dep list.","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Bootstrap Phase 1 Memory Fabric (anchors + canonical nodes)","updated_at":"2026-03-02T00:40:49Z","waiters":"","wisp_type":"","work_type":""} +{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Completed: Created TelemetryStrip with real /api/activity + SSE data. Commit 114bb18.","closed_at":"2026-03-02T02:26:55Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"d86b021c1a42f4c81c3eace6b52b0484c971006c631ff13b74dfa38a8d100288","created_at":"2026-03-02T02:26:02Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Created new TelemetryStrip component - a minimized right sidebar that shows recent activity event dots from /api/activity + SSE (same data source as ActivityPanel). Uses getEventTone() color coding. Includes maximize button to restore full activity feed. Scope: telemetry-strip.tsx (NEW), unified-shell.tsx. Success Criteria: TelemetryStrip shows real activity events as colored dots, maximize restores full feed.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-z2s","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Create TelemetryStrip minimized sidebar component","updated_at":"2026-03-02T02:26:55Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"Given a behavior change touching multiple views, when implementation lands, then shared logic path is reused and covered by tests.\nVerification command(s): rg \"\u003cshared-function-or-hook\u003e\" src tests; npm run test","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Ratified canonical memory","closed_at":"2026-03-02T00:39:59Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"2103a5356ed4ed273497387c9676eef14c41f9ea886a1c91a654efcb81fef218","created_at":"2026-03-02T00:39:59Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Scope: Repeated logic used by multiple views or pages.\nOut of Scope: One-off prototypes and disposable experiments.\nRule: Reuse shared paths/components for cross-view behavior; avoid one-off logic drift.\nRationale: Prevents silent divergence between Kanban, Graph, and API views.\nFailure Mode: Patching one surface only creates inconsistent user behavior.\n","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-zas","is_template":0,"issue_type":"decision","last_activity":null,"metadata":"{\"domain\":\"memory-arch\",\"effective_date\":\"2026-03-02\",\"evidence_ids\":\"beadboard-68k.4,beadboard-68k.5,beadboard-r1i.1\",\"memory_strength\":\"hard\",\"memory_version\":1,\"owner\":\"team\",\"plan_refs\":\"docs/plans/2026-02-22-dag-views-ux-design.md,docs/plans/2026-02-15-unified-ux-prd.md\",\"superseded_by\":null,\"supersedes\":null}","mol_type":"","notes":"Provenance linked: beadboard-68k.4, beadboard-68k.5, beadboard-r1i.1","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"[MEMORY][ARCH][HARD] Shared logic for cross-view behavior","updated_at":"2026-03-02T00:54:01Z","waiters":"","wisp_type":"","work_type":""} diff --git a/.beads/backup/labels.jsonl b/.beads/backup/labels.jsonl index 1a44ad0..b4cbbe4 100644 --- a/.beads/backup/labels.jsonl +++ b/.beads/backup/labels.jsonl @@ -600,6 +600,11 @@ {"issue_id":"beadboard-116","label":"mem-hard"} {"issue_id":"beadboard-116","label":"memory"} {"issue_id":"beadboard-116","label":"memory-workflow"} +{"issue_id":"beadboard-4vr","label":"brainstorm"} +{"issue_id":"beadboard-4vr","label":"dolt"} +{"issue_id":"beadboard-4vr","label":"memory"} +{"issue_id":"beadboard-4vr","label":"planning"} +{"issue_id":"beadboard-4vr","label":"roadmap"} {"issue_id":"beadboard-5r1","label":"memory"} {"issue_id":"beadboard-5r1","label":"memory-agent"} {"issue_id":"beadboard-5r1","label":"memory-anchor"} @@ -607,6 +612,10 @@ {"issue_id":"beadboard-60a","label":"mem-hard"} {"issue_id":"beadboard-60a","label":"memory"} {"issue_id":"beadboard-60a","label":"memory-arch"} +{"issue_id":"beadboard-6cc","label":"brainstorm"} +{"issue_id":"beadboard-6cc","label":"memory"} +{"issue_id":"beadboard-6cc","label":"memory-view"} +{"issue_id":"beadboard-6cc","label":"ux"} {"issue_id":"beadboard-6fv","label":"mem-canonical"} {"issue_id":"beadboard-6fv","label":"mem-hard"} {"issue_id":"beadboard-6fv","label":"memory"} @@ -619,6 +628,11 @@ {"issue_id":"beadboard-8st","label":"memory-anchor"} {"issue_id":"beadboard-8st","label":"memory-reliability"} {"issue_id":"beadboard-b7t","label":"agent:coder"} +{"issue_id":"beadboard-bgh","label":"brainstorm"} +{"issue_id":"beadboard-bgh","label":"dolt"} +{"issue_id":"beadboard-bgh","label":"frontend"} +{"issue_id":"beadboard-bgh","label":"history"} +{"issue_id":"beadboard-bgh","label":"innovation"} {"issue_id":"beadboard-brq","label":"agent:coder"} {"issue_id":"beadboard-c08","label":"agent:architect"} {"issue_id":"beadboard-c08","label":"agent:system-architect"} @@ -631,6 +645,10 @@ {"issue_id":"beadboard-dvp","label":"mem-soft"} {"issue_id":"beadboard-dvp","label":"memory"} {"issue_id":"beadboard-dvp","label":"memory-agent"} +{"issue_id":"beadboard-e6w","label":"mem-canonical"} +{"issue_id":"beadboard-e6w","label":"mem-soft"} +{"issue_id":"beadboard-e6w","label":"memory"} +{"issue_id":"beadboard-e6w","label":"memory-ux"} {"issue_id":"beadboard-eo8","label":"agent:architect"} {"issue_id":"beadboard-fga","label":"mem-canonical"} {"issue_id":"beadboard-fga","label":"mem-soft"} @@ -645,6 +663,10 @@ {"issue_id":"beadboard-ij8","label":"memory"} {"issue_id":"beadboard-jgy","label":"docs"} {"issue_id":"beadboard-jgy","label":"memory"} +{"issue_id":"beadboard-mdo","label":"mem-canonical"} +{"issue_id":"beadboard-mdo","label":"mem-hard"} +{"issue_id":"beadboard-mdo","label":"memory"} +{"issue_id":"beadboard-mdo","label":"memory-arch"} {"issue_id":"beadboard-nq9","label":"memory"} {"issue_id":"beadboard-nq9","label":"memory-anchor"} {"issue_id":"beadboard-nq9","label":"memory-workflow"}