diff --git a/.beads/backup/backup_state.json b/.beads/backup/backup_state.json index a9ae39a..0789db7 100644 --- a/.beads/backup/backup_state.json +++ b/.beads/backup/backup_state.json @@ -1,13 +1,13 @@ { - "last_dolt_commit": "66ifa8kbgfvb61v8srln9e20gscn63up", + "last_dolt_commit": "j39gq7fffmom94nf7v71der02l87vs21", "last_event_id": 0, - "timestamp": "2026-03-02T21:45:44.439037442Z", + "timestamp": "2026-03-02T22:00:46.131345897Z", "counts": { - "issues": 483, - "events": 510, + "issues": 488, + "events": 544, "comments": 12, "dependencies": 654, - "labels": 762, + "labels": 775, "config": 14 } } \ No newline at end of file diff --git a/.beads/backup/events.jsonl b/.beads/backup/events.jsonl index 5559f32..f9701aa 100644 --- a/.beads/backup/events.jsonl +++ b/.beads/backup/events.jsonl @@ -508,3 +508,37 @@ {"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T13:43:52Z","event_type":"closed","id":512,"issue_id":"beadboard-1bg.4","new_value":"Missions and realtime docs completed with control-plane orchestration model and reliability guardrails.","old_value":""} {"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T13:43:55Z","event_type":"status_changed","id":513,"issue_id":"beadboard-1bg.5","new_value":"{\"assignee\":\"beadboard-8hq\",\"status\":\"in_progress\"}","old_value":"{\"id\":\"beadboard-1bg.5\",\"title\":\"project.md Template\",\"description\":\"TASK CONTEXT\\n- Bead ID: beadboard-1bg.5\\n- Parent: beadboard-1bg\\n- Dependencies: beadboard-1bg.1, beadboard-1bg.2, beadboard-1bg.3, beadboard-1bg.4\\n\\nTASK CONTRACT\\n- Goal: Create project.md template for env-specific workarounds\\n- Success Criteria:\\n - Template file agents can copy and edit with project-specific knowledge\\n- Scope:\\n - project.md template in skill\\n - How to fill with env-specific workarounds\\n- Out of Scope:\\n - Actual project setup\\n\\nIMPLEMENTATION CONSTRAINTS\\n- Template in skills/beadboard-driver/\\n\\nVERIFICATION REQUIREMENTS\\n- Required commands: npm run typecheck, npm run lint\",\"status\":\"open\",\"priority\":1,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-02T06:29:36Z\",\"created_by\":\"zenchantlive\",\"updated_at\":\"2026-03-02T06:35:44Z\"}"} {"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T13:45:43Z","event_type":"updated","id":514,"issue_id":"beadboard-1bg.5","new_value":"{\"notes\":\"Added skills/beadboard-driver/project.md template for cross-repo usage: environment constraints, verification policy, coordination defaults, and user-controlled scope authority. Verification: npm run typecheck (pass), npm run lint (0 errors, 22 warnings).\"}","old_value":"{\"id\":\"beadboard-1bg.5\",\"title\":\"project.md Template\",\"description\":\"TASK CONTEXT\\n- Bead ID: beadboard-1bg.5\\n- Parent: beadboard-1bg\\n- Dependencies: beadboard-1bg.1, beadboard-1bg.2, beadboard-1bg.3, beadboard-1bg.4\\n\\nTASK CONTRACT\\n- Goal: Create project.md template for env-specific workarounds\\n- Success Criteria:\\n - Template file agents can copy and edit with project-specific knowledge\\n- Scope:\\n - project.md template in skill\\n - How to fill with env-specific workarounds\\n- Out of Scope:\\n - Actual project setup\\n\\nIMPLEMENTATION CONSTRAINTS\\n- Template in skills/beadboard-driver/\\n\\nVERIFICATION REQUIREMENTS\\n- Required commands: npm run typecheck, npm run lint\",\"status\":\"in_progress\",\"priority\":1,\"issue_type\":\"task\",\"assignee\":\"beadboard-8hq\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-02T06:29:36Z\",\"created_by\":\"zenchantlive\",\"updated_at\":\"2026-03-02T21:43:55Z\"}"} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T13:45:54Z","event_type":"closed","id":515,"issue_id":"beadboard-1bg.5","new_value":"project.md template created for per-project operational adaptation without changing core skill contract.","old_value":""} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T13:45:57Z","event_type":"status_changed","id":516,"issue_id":"beadboard-1bg.6","new_value":"{\"assignee\":\"beadboard-8hq\",\"status\":\"in_progress\"}","old_value":"{\"id\":\"beadboard-1bg.6\",\"title\":\"Self-healing Scripts\",\"description\":\"TASK CONTEXT\\n- Bead ID: beadboard-1bg.6\\n- Parent: beadboard-1bg\\n- Dependencies: beadboard-1bg.1, beadboard-1bg.2, beadboard-1bg.3, beadboard-1bg.4, beadboard-1bg.5\\n\\nTASK CONTRACT\\n- Goal: Create diagnostic and self-healing scripts\\n- Success Criteria:\\n - Scripts for common env issues\\n- Scope:\\n - Diagnostic scripts\\n - Self-healing scripts (on-demand)\\n- Out of Scope:\\n - Auto-run diagnostics\\n\\nIMPLEMENTATION CONSTRAINTS\\n- Scripts in skills/beadboard-driver/scripts/\\n\\nVERIFICATION REQUIREMENTS\\n- Required commands: npm run typecheck, npm run lint\",\"status\":\"open\",\"priority\":1,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-02T06:29:58Z\",\"created_by\":\"zenchantlive\",\"updated_at\":\"2026-03-02T06:35:44Z\"}"} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T13:49:30Z","event_type":"updated","id":517,"issue_id":"beadboard-1bg.6","new_value":"{\"notes\":\"Implemented self-healing tooling: skills/beadboard-driver/scripts/diagnose-env.mjs and skills/beadboard-driver/scripts/heal-common-issues.mjs (dry-run default, opt-in apply). Added contract tests and wired them into skills/beadboard-driver/tests/run-tests.mjs. Also fixed cross-platform session-preflight test assumptions. Verification: node --test skills/beadboard-driver/tests/diagnose-env.contract.test.mjs skills/beadboard-driver/tests/heal-common-issues.contract.test.mjs (pass), node skills/beadboard-driver/tests/run-tests.mjs (pass), npm run typecheck (pass), npm run lint (0 errors, 22 warnings).\"}","old_value":"{\"id\":\"beadboard-1bg.6\",\"title\":\"Self-healing Scripts\",\"description\":\"TASK CONTEXT\\n- Bead ID: beadboard-1bg.6\\n- Parent: beadboard-1bg\\n- Dependencies: beadboard-1bg.1, beadboard-1bg.2, beadboard-1bg.3, beadboard-1bg.4, beadboard-1bg.5\\n\\nTASK CONTRACT\\n- Goal: Create diagnostic and self-healing scripts\\n- Success Criteria:\\n - Scripts for common env issues\\n- Scope:\\n - Diagnostic scripts\\n - Self-healing scripts (on-demand)\\n- Out of Scope:\\n - Auto-run diagnostics\\n\\nIMPLEMENTATION CONSTRAINTS\\n- Scripts in skills/beadboard-driver/scripts/\\n\\nVERIFICATION REQUIREMENTS\\n- Required commands: npm run typecheck, npm run lint\",\"status\":\"in_progress\",\"priority\":1,\"issue_type\":\"task\",\"assignee\":\"beadboard-8hq\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-02T06:29:58Z\",\"created_by\":\"zenchantlive\",\"updated_at\":\"2026-03-02T21:45:57Z\"}"} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T13:49:32Z","event_type":"closed","id":518,"issue_id":"beadboard-1bg.6","new_value":"Diagnostic and self-healing scripts completed with contract tests and safe execution model.","old_value":""} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T13:49:35Z","event_type":"status_changed","id":519,"issue_id":"beadboard-1bg.7","new_value":"{\"assignee\":\"beadboard-8hq\",\"status\":\"in_progress\"}","old_value":"{\"id\":\"beadboard-1bg.7\",\"title\":\"Skill Tests\",\"description\":\"TASK CONTEXT\\n- Bead ID: beadboard-1bg.7\\n- Parent: beadboard-1bg\\n- Dependencies: beadboard-1bg.6\\n\\nTASK CONTRACT\\n- Goal: Create skill-local and repo-level tests\\n- Success Criteria:\\n - Tests prove system works\\n- Scope:\\n - Skill-local tests\\n - Repo-level tests\\n- Out of Scope:\\n - Integration tests beyond skill\\n\\nIMPLEMENTATION CONSTRAINTS\\n- Tests in skills/beadboard-driver/tests/ and tests/skills/beadboard-driver/\\n\\nVERIFICATION REQUIREMENTS\\n- Required commands: npm run typecheck, npm run lint, npm run test\",\"status\":\"open\",\"priority\":1,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-02T06:30:08Z\",\"created_by\":\"zenchantlive\",\"updated_at\":\"2026-03-02T06:35:44Z\"}"} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T13:53:25Z","event_type":"updated","id":520,"issue_id":"beadboard-1bg.7","new_value":"{\"notes\":\"Expanded test surface for beadboard-driver. Added skill-local contracts: readiness-report, diagnose-env, heal-common-issues. Added repo-level tests: tests/skills/beadboard-driver/diagnose-env.test.ts and heal-common-issues.test.ts. Updated package.json test script to include all tests/skills/beadboard-driver tests. Verification: node skills/beadboard-driver/tests/run-tests.mjs (pass), node --import tsx --test tests/skills/beadboard-driver/*.test.ts (pass), npm run typecheck (pass), npm run lint (0 errors, 22 warnings), npm run test (fails on pre-existing tests/hooks/url-state-integration.test.ts expecting graphTab default flow; actual overview).\"}","old_value":"{\"id\":\"beadboard-1bg.7\",\"title\":\"Skill Tests\",\"description\":\"TASK CONTEXT\\n- Bead ID: beadboard-1bg.7\\n- Parent: beadboard-1bg\\n- Dependencies: beadboard-1bg.6\\n\\nTASK CONTRACT\\n- Goal: Create skill-local and repo-level tests\\n- Success Criteria:\\n - Tests prove system works\\n- Scope:\\n - Skill-local tests\\n - Repo-level tests\\n- Out of Scope:\\n - Integration tests beyond skill\\n\\nIMPLEMENTATION CONSTRAINTS\\n- Tests in skills/beadboard-driver/tests/ and tests/skills/beadboard-driver/\\n\\nVERIFICATION REQUIREMENTS\\n- Required commands: npm run typecheck, npm run lint, npm run test\",\"status\":\"in_progress\",\"priority\":1,\"issue_type\":\"task\",\"assignee\":\"beadboard-8hq\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-02T06:30:08Z\",\"created_by\":\"zenchantlive\",\"updated_at\":\"2026-03-02T21:49:35Z\"}"} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T13:53:27Z","event_type":"closed","id":521,"issue_id":"beadboard-1bg.7","new_value":"Skill-local and repo-level beadboard-driver tests completed and wired into primary test script; outstanding full-suite failure is pre-existing outside skill scope.","old_value":""} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T13:53:30Z","event_type":"status_changed","id":522,"issue_id":"beadboard-1bg.8","new_value":"{\"assignee\":\"beadboard-8hq\",\"status\":\"in_progress\"}","old_value":"{\"id\":\"beadboard-1bg.8\",\"title\":\"Core Skill Rewrite: skill.md v4\",\"description\":\"TASK CONTEXT\\n- Bead ID: beadboard-1bg.8\\n- Parent: beadboard-1bg\\n- Dependencies: beadboard-1bg.1, beadboard-1bg.2, beadboard-1bg.3, beadboard-1bg.4, beadboard-1bg.5, beadboard-1bg.6, beadboard-1bg.7\\n\\nTASK CONTRACT\\n- Goal: Rewrite skill.md as entry point, manual, and TOC\\n- Success Criteria:\\n - skill.md points to all reference docs\\n - Acts as selling point for users\\n - TOC for entire skill\\n- Scope:\\n - Complete rewrite of skill.md\\n - Pointers to scripts, references, project.md\\n- Out of Scope:\\n - Implementation details\\n\\nIMPLEMENTATION CONSTRAINTS\\n- skill.md in skills/beadboard-driver/\\n\\nVERIFICATION REQUIREMENTS\\n- Required commands: npm run typecheck, npm run lint\",\"status\":\"open\",\"priority\":1,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-02T06:30:20Z\",\"created_by\":\"zenchantlive\",\"updated_at\":\"2026-03-02T06:35:44Z\"}"} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T13:55:51Z","event_type":"updated","id":523,"issue_id":"beadboard-1bg.8","new_value":"{\"notes\":\"Rewrote skills/beadboard-driver/SKILL.md as BeadBoard Driver v4 entrypoint/manual/TOC for cross-repo execution model; added links to new references, scripts, tests, and project.md template. Updated agents/openai.yaml prompt/description for v4 model and session-lifecycle reference with explicit user-controlled scope rule. Verification: npm run typecheck (pass), npm run lint (0 errors, 22 warnings).\"}","old_value":"{\"id\":\"beadboard-1bg.8\",\"title\":\"Core Skill Rewrite: skill.md v4\",\"description\":\"TASK CONTEXT\\n- Bead ID: beadboard-1bg.8\\n- Parent: beadboard-1bg\\n- Dependencies: beadboard-1bg.1, beadboard-1bg.2, beadboard-1bg.3, beadboard-1bg.4, beadboard-1bg.5, beadboard-1bg.6, beadboard-1bg.7\\n\\nTASK CONTRACT\\n- Goal: Rewrite skill.md as entry point, manual, and TOC\\n- Success Criteria:\\n - skill.md points to all reference docs\\n - Acts as selling point for users\\n - TOC for entire skill\\n- Scope:\\n - Complete rewrite of skill.md\\n - Pointers to scripts, references, project.md\\n- Out of Scope:\\n - Implementation details\\n\\nIMPLEMENTATION CONSTRAINTS\\n- skill.md in skills/beadboard-driver/\\n\\nVERIFICATION REQUIREMENTS\\n- Required commands: npm run typecheck, npm run lint\",\"status\":\"in_progress\",\"priority\":1,\"issue_type\":\"task\",\"assignee\":\"beadboard-8hq\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-02T06:30:20Z\",\"created_by\":\"zenchantlive\",\"updated_at\":\"2026-03-02T21:53:30Z\"}"} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T13:55:53Z","event_type":"closed","id":524,"issue_id":"beadboard-1bg.8","new_value":"Core v4 skill entrypoint rewrite completed and aligned to external-repo + BeadBoard control-plane operating model.","old_value":""} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T13:55:54Z","event_type":"closed","id":525,"issue_id":"beadboard-1bg","new_value":"all steps complete","old_value":""} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T13:56:27Z","event_type":"updated","id":526,"issue_id":"beadboard-1bg","new_value":"{\"notes\":\"Session completed all child beads with evidence. Memory review: scope-authority correction captured as canonical memory beadboard-at4; no additional reusable memory required.\"}","old_value":"{\"id\":\"beadboard-1bg\",\"title\":\"[EPIC] BeadBoard Driver Skill v4 Rewrite\",\"description\":\"Rewrite beadboard-driver skill to be a complete agent SDK for interacting with beadboard from any project.\\\\n\\\\nSTRUCTURE:\\\\n1. Memory System Docs (btn.1)\\\\n2. Coord Events + Sessions + Ack Docs (btn.2)\\\\n3. Archetypes + Templates + Swarms Docs (btn.3)\\\\n4. Missions + Realtime Docs (btn.4)\\\\n5. project.md Template (btn.5)\\\\n6. Self-healing Scripts (btn.6)\\\\n7. Tests (btn.7)\\\\n8. Core Skill Rewrite: skill.md v4 (btn.8) - LAST\",\"status\":\"closed\",\"priority\":1,\"issue_type\":\"epic\",\"assignee\":\"beadboard-8hq\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-02T06:28:30Z\",\"created_by\":\"zenchantlive\",\"updated_at\":\"2026-03-02T21:55:54Z\",\"closed_at\":\"2026-03-02T21:55:54Z\",\"close_reason\":\"all steps complete\"}"} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T13:56:36Z","event_type":"updated","id":527,"issue_id":"beadboard-8hq","new_value":"{\"notes\":\"Session orchestration complete: memory prep, epic beadboard-1bg execution, child beads claimed/closed, and NEXT_SESSION_PROMPT updated.\"}","old_value":"{\"id\":\"beadboard-8hq\",\"title\":\"Agent: codex-orchestrator\",\"description\":\"Session orchestrator preparing memory and execution context for beadboard-1bg\",\"status\":\"open\",\"priority\":0,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-02T21:15:03Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-02T21:15:03Z\"}"} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T13:56:38Z","event_type":"closed","id":528,"issue_id":"beadboard-8hq","new_value":"Session complete.","old_value":""} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T13:59:01Z","event_type":"created","id":529,"issue_id":"beadboard-c70","new_value":"","old_value":""} +{"actor":"ZenchantLive","comment":"Added label: skills","created_at":"2026-03-02T13:59:01Z","event_type":"label_added","id":530,"issue_id":"beadboard-c70","new_value":null,"old_value":null} +{"actor":"ZenchantLive","comment":"Added label: installation","created_at":"2026-03-02T13:59:01Z","event_type":"label_added","id":531,"issue_id":"beadboard-c70","new_value":null,"old_value":null} +{"actor":"ZenchantLive","comment":"Added label: agents","created_at":"2026-03-02T13:59:01Z","event_type":"label_added","id":532,"issue_id":"beadboard-c70","new_value":null,"old_value":null} +{"actor":"ZenchantLive","comment":"Added label: documentation","created_at":"2026-03-02T13:59:01Z","event_type":"label_added","id":533,"issue_id":"beadboard-c70","new_value":null,"old_value":null} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T14:00:09Z","event_type":"status_changed","id":534,"issue_id":"beadboard-c70","new_value":"{\"assignee\":\"beadboard-8hq\",\"status\":\"in_progress\"}","old_value":"{\"id\":\"beadboard-c70\",\"title\":\"[EPIC] BeadBoard Installation + Discovery Contract for Driver Skill\",\"description\":\"TASK CONTEXT\\\\n- Bead ID: auto\\\\n- Parent: none\\\\n- Dependencies: none\\\\n\\\\nTASK CONTRACT\\\\n- Goal: Make beadboard-driver reliably detect BeadBoard installation and provide clear install/remediation UX for both agents and humans.\\\\n- Success Criteria:\\\\n - Skill docs include explicit BeadBoard identity and GitHub link\\\\n - Driver scripts produce deterministic install guidance when BeadBoard tooling is missing\\\\n - Global vs repo-local usage model is documented and testable\\\\n- Scope:\\\\n - Installation checks and remediation messages\\\\n - Global package/distribution strategy decision\\\\n - Optional project template contract for global skills\\\\n- Out of Scope:\\\\n - Full package publish implementation unless split into child beads\\\\n\\\\nIMPLEMENTATION CONSTRAINTS\\\\n- Preserve existing bd as source-of-truth workflow semantics\\\\n- Keep user-facing copy simple and explicit\\\\n\\\\nVERIFICATION REQUIREMENTS\\\\n- Required commands: npm run typecheck, npm run lint, npm run test\",\"status\":\"open\",\"priority\":1,\"issue_type\":\"epic\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-02T21:59:02Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-02T21:59:02Z\"}"} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T14:00:09Z","event_type":"created","id":535,"issue_id":"beadboard-frf","new_value":"","old_value":""} +{"actor":"ZenchantLive","comment":"Added label: gt:agent","created_at":"2026-03-02T14:00:09Z","event_type":"label_added","id":536,"issue_id":"beadboard-frf","new_value":null,"old_value":null} +{"actor":"ZenchantLive","comment":"Added label: role:orchestrator","created_at":"2026-03-02T14:00:09Z","event_type":"label_added","id":537,"issue_id":"beadboard-frf","new_value":null,"old_value":null} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T14:00:17Z","event_type":"updated","id":538,"issue_id":"beadboard-c70","new_value":"{\"assignee\":\"beadboard-frf\"}","old_value":"{\"id\":\"beadboard-c70\",\"title\":\"[EPIC] BeadBoard Installation + Discovery Contract for Driver Skill\",\"description\":\"TASK CONTEXT\\\\n- Bead ID: auto\\\\n- Parent: none\\\\n- Dependencies: none\\\\n\\\\nTASK CONTRACT\\\\n- Goal: Make beadboard-driver reliably detect BeadBoard installation and provide clear install/remediation UX for both agents and humans.\\\\n- Success Criteria:\\\\n - Skill docs include explicit BeadBoard identity and GitHub link\\\\n - Driver scripts produce deterministic install guidance when BeadBoard tooling is missing\\\\n - Global vs repo-local usage model is documented and testable\\\\n- Scope:\\\\n - Installation checks and remediation messages\\\\n - Global package/distribution strategy decision\\\\n - Optional project template contract for global skills\\\\n- Out of Scope:\\\\n - Full package publish implementation unless split into child beads\\\\n\\\\nIMPLEMENTATION CONSTRAINTS\\\\n- Preserve existing bd as source-of-truth workflow semantics\\\\n- Keep user-facing copy simple and explicit\\\\n\\\\nVERIFICATION REQUIREMENTS\\\\n- Required commands: npm run typecheck, npm run lint, npm run test\",\"status\":\"in_progress\",\"priority\":1,\"issue_type\":\"epic\",\"assignee\":\"beadboard-8hq\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-02T21:59:02Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-02T22:00:09Z\"}"} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T14:00:41Z","event_type":"created","id":539,"issue_id":"beadboard-btt","new_value":"","old_value":""} +{"actor":"ZenchantLive","comment":"Added label: skills","created_at":"2026-03-02T14:00:41Z","event_type":"label_added","id":540,"issue_id":"beadboard-btt","new_value":null,"old_value":null} +{"actor":"ZenchantLive","comment":"Added label: installation","created_at":"2026-03-02T14:00:41Z","event_type":"label_added","id":541,"issue_id":"beadboard-btt","new_value":null,"old_value":null} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T14:00:43Z","event_type":"created","id":542,"issue_id":"beadboard-i0q","new_value":"","old_value":""} +{"actor":"ZenchantLive","comment":"Added label: skills","created_at":"2026-03-02T14:00:43Z","event_type":"label_added","id":543,"issue_id":"beadboard-i0q","new_value":null,"old_value":null} +{"actor":"ZenchantLive","comment":"Added label: documentation","created_at":"2026-03-02T14:00:43Z","event_type":"label_added","id":544,"issue_id":"beadboard-i0q","new_value":null,"old_value":null} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T14:00:45Z","event_type":"created","id":545,"issue_id":"beadboard-05a","new_value":"","old_value":""} +{"actor":"ZenchantLive","comment":"Added label: skills","created_at":"2026-03-02T14:00:45Z","event_type":"label_added","id":546,"issue_id":"beadboard-05a","new_value":null,"old_value":null} +{"actor":"ZenchantLive","comment":"Added label: installation","created_at":"2026-03-02T14:00:45Z","event_type":"label_added","id":547,"issue_id":"beadboard-05a","new_value":null,"old_value":null} +{"actor":"ZenchantLive","comment":"Added label: decision","created_at":"2026-03-02T14:00:45Z","event_type":"label_added","id":548,"issue_id":"beadboard-05a","new_value":null,"old_value":null} diff --git a/.beads/backup/issues.jsonl b/.beads/backup/issues.jsonl index 9976ffd..0b345d7 100644 --- a/.beads/backup/issues.jsonl +++ b/.beads/backup/issues.jsonl @@ -314,6 +314,7 @@ {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Old agent bead - closing to clean up","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"6a5fb49e11843572a423980b0d076b27cbe4a13d2a4173c87657d81103b54800","created_at":"2026-02-14T21:07:21Z","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":"bb-zenchantlive","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"","payload":"","pinned":0,"priority":0,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"tombstone","target":"","timeout_ns":0,"title":"Agent: zenchantlive","updated_at":"2026-02-24T03:36:25Z","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":"76216d7f27c186b24f99e7dbf59a1c9953ee2e173b426f1d55fd1e794867321b","created_at":"2026-02-16T07:56:22Z","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":"bb-zzr","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":"open","target":"","timeout_ns":0,"title":"test-swarm-3","updated_at":"2026-02-16T07:56:22Z","waiters":"","wisp_type":"","work_type":"mutex"} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Fixed ActivityPanel SSE data parsing bug. Root cause: code checked data?.event but SSE sends activity event directly (not wrapped). Changed condition to data?.beadId and added regression test in tests/lib/realtime-activity-sse.test.ts. All tests pass.","closed_at":"2026-02-23T01:10:25Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"fbc67c7db1ac2e599221a422a8798dcf1e24c0478462ba96d872a4e08ae6f3e2","created_at":"2026-02-21T21:29:57Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"## Problem Statement\nThe BeadBoard application requires manual page refresh to see updates from bd CLI commands (create, update, close, etc.). Real-time SSE updates are not working across all views.\n\n## Root Cause Analysis\n\n### Issue 1: SSE Events Not Emitted After Mutations\n**File:** src/lib/mutations.ts\n**Problem:** executeMutation() ran bd commands but never called issuesEventBus.emit() to notify SSE clients.\n**Fix:** Added issuesEventBus.emit(projectRoot, undefined, 'changed') after successful mutations.\n\n### Issue 2: Swarm Workspace Had No SSE Subscription\n**Files:** src/components/swarm/swarm-workspace.tsx, src/hooks/use-archetypes.ts, src/hooks/use-templates.ts\n**Problem:** SwarmWorkspace component never subscribed to SSE events. Only Kanban, Graph, and Sessions pages had SSE via useBeadsSubscription.\n**Fix:** Added useBeadsSubscription to UnifiedShell (parent of all views) so ALL views get real-time updates.\n\n### Issue 3: ActivityPanel Missing projectRoot Parameter\n**File:** src/components/activity/activity-panel.tsx\n**Problem:** ActivityPanel's SSE connection used EventSource('/api/events') without projectRoot parameter, causing path mismatch with server-side subscriptions.\n**Fix:** Added projectRoot prop to ActivityPanel, passed from UnifiedShell.\n\n### Issue 4: Watcher Not Watching Archetypes/Templates Directories\n**File:** src/lib/watcher.ts\n**Problem:** File watcher only monitored .beads/beads.db, issues.jsonl, last-touched but NOT archetypes/ or templates/ directories.\n**Fix:** Added archetypes and templates directories to watchedPaths array.\n\n### Issue 5: use-archetypes and use-templates Hooks Had No SSE\n**Files:** src/hooks/use-archetypes.ts, src/hooks/use-templates.ts\n**Problem:** Hooks fetched data once but never refreshed on changes.\n**Fix:** Added SSE subscription useEffect to both hooks, passing projectRoot parameter.\n\n## What's Fixed\n✅ Middle content area (Kanban, Graph, Social, Swarm views) - via useBeadsSubscription in UnifiedShell\n✅ Archetypes CRUD refresh - via SSE in useArchetypes hook\n✅ Templates CRUD refresh - via SSE in useTemplates hook\n✅ SSE events emitted after mutations - via issuesEventBus.emit in mutations.ts\n✅ Watcher monitors archetypes/templates directories\n\n## What's NOT Fixed Yet (Needs Investigation)\n❌ Right panel ActivityPanel - SSE subscription added but activity events may not be triggering UI updates\n❌ Timeline page (/timeline) - has its own SSE connection without projectRoot parameter\n❌ Client-side console shows no SSE connection logs (should see [SSE] Connecting... and 🚨 SSE ISSUES RECEIVED)\n\n## Files Modified\n- src/lib/mutations.ts - Added issuesEventBus.emit after successful mutations\n- src/lib/watcher.ts - Added archetypes/templates to watched paths, added logging\n- src/lib/realtime.ts - Added debug logging to emit function\n- src/hooks/use-archetypes.ts - Added projectRoot param, SSE subscription\n- src/hooks/use-templates.ts - Added projectRoot param, SSE subscription\n- src/hooks/use-beads-subscription.ts - Already working, no changes needed\n- src/components/shared/unified-shell.tsx - Added useBeadsSubscription at root level\n- src/components/swarm/swarm-workspace.tsx - Added projectRoot prop, pass to hooks\n- src/components/activity/activity-panel.tsx - Added projectRoot prop, fixed SSE URL\n\n## Debug Commands Used\n```bash\n# Test SSE endpoint directly\ncurl -s -N 'http://localhost:3000/api/events?projectRoot=C%3A%5CUsers%5CZenchant%5Ccodex%5Cbeadboard'\n\n# Check activity API\ncurl -s http://localhost:3000/api/activity\n\n# Test bd commands while watching SSE\nbd create --title 'test' --type task \u0026\u0026 bd close \u003cid\u003e --reason 'test'\n```\n\n## Next Steps\n1. Verify browser console shows [SSE] Connecting to event source for: \u003cprojectRoot\u003e\n2. If not showing, check if UnifiedShell is actually rendering (not some other layout)\n3. Check if activity events are being received in ActivityPanel SSE listener\n4. Fix Timeline page SSE connection (add projectRoot parameter)\n5. Create regression test that:\n - Opens page with SSE subscription\n - Runs bd create command via CLI\n - Asserts new bead appears without page refresh\n - Runs bd close command\n - Asserts bead disappears without page refresh\n\n## Regression Test Requirements\n- Test should run in Node.js or Playwright\n- Must verify SSE connection is established\n- Must verify create/update/close events trigger UI refresh\n- Must verify ActivityPanel receives activity events\n- Must run as part of CI/CD pipeline","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-03r","is_template":0,"issue_type":"bug","last_activity":null,"metadata":"{}","mol_type":"","notes":"## Root Cause Found and Fixed\n\n### The Actual Bug\n**File:** src/components/activity/activity-panel.tsx (line 281-282)\n**Symptom:** ActivityPanel received SSE events but never updated UI\n\n### Root Cause Analysis\nThe bug was a **data structure mismatch** between SSE frame format and parsing logic:\n\n1. **SSE Frame Format** (from toActivitySseFrame in realtime.ts):\n ```\n event: activity\n data: {\"id\":\"...\",\"kind\":\"closed\",\"beadId\":\"...\",...}\n ```\n The activity event is sent DIRECTLY as the data payload.\n\n2. **Bug in ActivityPanel** (BEFORE):\n ```typescript\n const data = JSON.parse(event.data);\n if (data?.event) { // ← ALWAYS FALSE!\n setActivities(prev =\u003e [data.event, ...prev]);\n }\n ```\n The code expected `data.event` but `event` property never existed.\n\n3. **The Fix** (AFTER):\n ```typescript\n const data = JSON.parse(event.data);\n if (data?.beadId) { // ← Check actual property\n setActivities(prev =\u003e [data, ...prev]); // ← Use data directly\n }\n ```\n\n### Why This Was Hard to Find\n- SSE events WERE being received (logs showed them)\n- ActivityPanel.onActivity WAS being called (log showed 'Received activity event')\n- But the condition `data?.event` silently failed, causing no state update\n- No error was thrown, just silent failure\n\n### How Systematic Debugging Helped\n1. **Phase 1 - Evidence Gathering:** Read browser console logs showing SSE events received\n2. **Phase 2 - Pattern Analysis:** Compared SSE frame format (toActivitySseFrame) with parsing logic\n3. **Phase 3 - Hypothesis:** Data structure mismatch - event is sent directly, not nested\n4. **Phase 4 - Fix:** Changed condition from `data?.event` to `data?.beadId`\n\n### Regression Test Created\n**File:** tests/lib/realtime-activity-sse.test.ts\n- Tests that toActivitySseFrame sends event directly (not wrapped)\n- Tests that parsing checks data.beadId not data.event\n- Documents the exact bug pattern to prevent recurrence\n- All 4 tests pass\n\n### Files Changed\n- src/components/activity/activity-panel.tsx (1-line fix)\n- tests/lib/realtime-activity-sse.test.ts (new regression test)","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":"closed","target":"","timeout_ns":0,"title":"Fix Real-time SSE Refresh Across All Views","updated_at":"2026-02-23T01:10:25Z","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":"99a47df4056b87d68ae5fc82c723221ef1865a9cf41c6295b1041ccf8c7ff894","created_at":"2026-03-02T22:00:46Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\\n- Bead ID: beadboard-c70.3\\n- Parent: beadboard-c70\\n- Dependencies: beadboard-c70.1\\n\\nTASK CONTRACT\\n- Goal: Decide whether to ship a global BeadBoard CLI/install package and define rollout plan.\\n- Success Criteria:\\n - decision record with tradeoffs and recommendation\\n - if yes, follow-up implementation beads created\\n- Scope:\\n - npm/homebrew/powershell installer options\\n - update path/discovery expectations\\n- Out of Scope:\\n - full implementation in this bead\\n\\nVERIFICATION REQUIREMENTS\\n- Required commands: n/a (decision/documentation bead)","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-05a","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":"Evaluate global BeadBoard package/distribution strategy","updated_at":"2026-03-02T22:00:46Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"All 3 subtasks complete: actor state in UnifiedShell, editable chip in TopBar, wired to both drawers. localStorage hydration fix included. All checks pass.","closed_at":"2026-03-01T23:28:12Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"ccca61fd392daec3d0660539d31cb3dbdc3c9463534d6558ab44057248584190","created_at":"2026-02-28T21:58:39Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: beadboard-0fi\n- Title: Phase 2: Operator Identity\n- Parent/Epic: none (phase epic)\n- Dependencies (must be done first): beadboard-r1i (Phase 1 right panel complete)\n\nTASK CONTRACT\n- Goal: Replace fragmented actor identity with a single operator profile stored in UnifiedShell state, visible in TopBar, and threaded to both ConversationDrawer and ThreadDrawer. Currently ConversationDrawer reads/writes actor from localStorage independently; ThreadDrawer sends comments with no actor at all.\n- Success Criteria:\n - Operator can set their name once in TopBar and it persists across both drawer types\n - Comments posted via ThreadDrawer include the actor field\n - ConversationDrawer no longer reads localStorage directly — receives actor from shell\n - Switching identity in TopBar immediately affects subsequent comments\n - npm run typecheck \u0026\u0026 npm run lint \u0026\u0026 npm run test all pass\n- Scope:\n - UnifiedShell actor state (single source of truth)\n - TopBar identity selector UI\n - ConversationDrawer actor prop (remove localStorage.getItem)\n - ThreadDrawer postComment actor wiring\n- Out of Scope:\n - Multi-user auth or session management\n - Persisting identity server-side\n - Changing comment API contract\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-0fi","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":"Phase 2: Operator Identity","updated_at":"2026-03-01T23:28:12Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"actor state in UnifiedShell, editable chip in TopBar, all checks pass","closed_at":"2026-03-01T22:55:53Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"fb126c52a55ccf123c442b6d13cf23cbca1f61443801be3c938aa97d7c26f42e","created_at":"2026-02-28T22:03:38Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: beadboard-0fi.1\n- Title: Add actor state to UnifiedShell and identity input to TopBar\n- Parent/Epic: beadboard-0fi\n- Dependencies (must be done first): none (first in phase)\n\nTASK CONTRACT\n- Goal: Add a single operator identity string to UnifiedShell state, initialize it from localStorage('bb.humanActor') for backwards compatibility, persist changes back to localStorage, and render an editable identity field in TopBar so the operator can set their name once and have it flow to both drawers.\n- Success Criteria:\n - UnifiedShell exposes actor: string and setActor: (name: string) =\u003e void\n - Initial value read from localStorage('bb.humanActor') if present, otherwise empty string\n - On change, value written back to localStorage('bb.humanActor')\n - TopBar renders a compact text input or editable chip showing current actor name\n - TopBar receives actor and onActorChange props (check current TopBarProps in src/components/shared/top-bar.tsx before editing)\n - npm run typecheck passes\n- Scope:\n - src/components/shared/unified-shell.tsx — add useState for actor, pass to TopBar\n - src/components/shared/top-bar.tsx — add actor input UI and props\n- Out of Scope:\n - Passing actor to drawers (that is beadboard-0fi.2 and beadboard-0fi.3)\n - Server-side persistence\n - Validation or auth\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-0fi.1","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Identity UI pattern: editable chip. Shows actor name as pill in TopBar. Click → becomes text input. Blur or Enter → snaps back to chip. Placeholder 'your name' when empty. Uses local useState for editing vs display mode.\n\nIMPLEMENTATION PLAN (ready to execute next session):\n\n1. src/components/shared/unified-shell.tsx\n - Add import: useState (already imported)\n - Add actor state near top of component (after existing useState declarations):\n const [actor, setActor] = useState\u003cstring\u003e(() =\u003e\n typeof window !== 'undefined' ? (window.localStorage.getItem('bb.humanActor') ?? '') : ''\n );\n - Add useEffect to persist on change:\n useEffect(() =\u003e {\n if (typeof window !== 'undefined') window.localStorage.setItem('bb.humanActor', actor);\n }, [actor]);\n - Pass to TopBar: actor={actor} onActorChange={setActor}\n\n2. src/components/shared/top-bar.tsx\n - Add to TopBarProps: actor?: string; onActorChange?: (name: string) =\u003e void;\n - Add editable chip component inline (no new file needed):\n - Local state: const [editing, setEditing] = useState(false);\n - When !editing: render \u003cbutton onClick={() =\u003e setEditing(true)} className='...'\u003e\n {actor || 'your name'}\n \u003c/button\u003e\n - When editing: render \u003cinput autoFocus value={actor} onChange={e =\u003e onActorChange?.(e.target.value)}\n onBlur={() =\u003e setEditing(false)} onKeyDown={e =\u003e e.key === 'Enter' \u0026\u0026 setEditing(false)}\n placeholder='your name' className='...' /\u003e\n - Place the chip in TopBar right section, before ThemeToggle\n\n3. Run: npm run typecheck \u0026\u0026 npm run lint \u0026\u0026 npm run test\n4. Close beadboard-0fi.1 then start beadboard-0fi.2","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 actor state to UnifiedShell and identity input to TopBar","updated_at":"2026-03-01T22:55:53Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"actor prop added, localStorage reads/writes removed, syncs from prop via useEffect","closed_at":"2026-03-01T22:57:24Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"99d32b3b3fa6a04d55a25f5c72e26eab0ee258e3c6f0282e903abd71f3c2480f","created_at":"2026-02-28T22:04:48Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: beadboard-0fi.2\n- Title: Wire actor from shell to ConversationDrawer (remove localStorage read)\n- Parent/Epic: beadboard-0fi\n- Dependencies (must be done first): beadboard-0fi.1\n\nTASK CONTRACT\n- Goal: ConversationDrawer currently reads and writes actor identity from localStorage('bb.humanActor') at lines 125 and 167. Replace these with an actor prop received from UnifiedShell so identity is controlled by a single source of truth.\n- Success Criteria:\n - ConversationDrawer accepts actor: string prop\n - localStorage.getItem('bb.humanActor') call at line 125 removed — replaced with prop\n - localStorage.setItem call at line 167 removed — UnifiedShell owns persistence\n - Comments still include actor in the POST body\n - npm run typecheck passes\n- Scope:\n - src/components/sessions/conversation-drawer.tsx — replace localStorage reads with prop\n - src/components/shared/unified-shell.tsx — pass actor to ConversationDrawer call site\n - Verify ConversationDrawer is called in unified-shell.tsx or sessions-page.tsx and update accordingly\n- Out of Scope:\n - ConversationDrawer UI changes\n - ThreadDrawer (that is beadboard-0fi.3)\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-0fi.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":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Wire actor from shell to ConversationDrawer (remove localStorage read)","updated_at":"2026-03-01T22:57:24Z","waiters":"","wisp_type":"","work_type":""} @@ -321,15 +322,15 @@ {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Old test bead","closed_at":"2026-03-02T06:35:15Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"046a1f52a7bb2c83e7cc4c6cbd2fb1c6d044a6c58c9650c1c119c10e74925927","created_at":"2026-02-21T19:49:41Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"This is just a test to verify SSE streams and cache busting are working.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-0ui","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":"closed","target":"","timeout_ns":0,"title":"Test Live Updates Cache Busting","updated_at":"2026-03-02T06:35:15Z","waiters":"","wisp_type":"","work_type":"mutex"} {"acceptance_criteria":"Given an implementation task, when work begins and ends, then bd state transitions and verification command evidence are recorded.\nVerification command(s): bd show \u003ctask-id\u003e; npm run typecheck; npm run lint; npm run test","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Ratified canonical memory","closed_at":"2026-03-02T00:39:56Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"4bb7dfe9677649424d41010b675c5d92a5f0bd3c5a04f65a92a61aae90e64404","created_at":"2026-03-02T00:39:55Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Scope: All new implementation tasks that change behavior or data flow.\nOut of Scope: Purely informational discussions without code or workflow changes.\nRule: Start from explicit verification evidence and update work state in bd before claiming progress complete.\nRationale: Prevents status drift and false completion claims.\nFailure Mode: Unverified completion claims lead to regressions and mistrust.\n","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-116","is_template":0,"issue_type":"decision","last_activity":null,"metadata":"{\"domain\":\"memory-workflow\",\"effective_date\":\"2026-03-02\",\"evidence_ids\":\"bb-92d.6,beadboard-jgy,beadboard-yz6\",\"memory_strength\":\"hard\",\"memory_version\":1,\"owner\":\"team\",\"plan_refs\":\"docs/plans/2026-03-01-beads-native-memory.md,docs/plans/2026-03-02-bd-memory-fabric-design.md\",\"superseded_by\":null,\"supersedes\":null}","mol_type":"","notes":"Provenance linked: bb-92d.6, beadboard-jgy, beadboard-yz6","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][WORKFLOW][HARD] Evidence before completion claims","updated_at":"2026-03-02T00:53:56Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"Deleted: src/components/swarm/swarm-workspace.tsx; Deleted: src/components/swarm/telemetry-grid.tsx; Deleted: src/components/swarm/specialized-agent-dag.tsx; No remaining imports of deleted files; npm run typecheck, lint, test all pass","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":"34f0fcdadf9f8e5942f1cf97234e425872a3458d99431cee4b58c6bf824cd1cc","created_at":"2026-02-24T01:37:47Z","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-12l","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":"Delete deprecated swarm files","updated_at":"2026-02-24T01:40:31Z","waiters":"","wisp_type":"","work_type":"mutex"} -{"acceptance_criteria":"","actor":"","agent_state":"","assignee":"beadboard-8hq","await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"5b365b1bf848b131a3ceb489a78730df747437dfbd81e15934eedbd72ccb1461","created_at":"2026-03-02T06:28:30Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Rewrite beadboard-driver skill to be a complete agent SDK for interacting with beadboard from any project.\\n\\nSTRUCTURE:\\n1. Memory System Docs (btn.1)\\n2. Coord Events + Sessions + Ack Docs (btn.2)\\n3. Archetypes + Templates + Swarms Docs (btn.3)\\n4. Missions + Realtime Docs (btn.4)\\n5. project.md Template (btn.5)\\n6. Self-healing Scripts (btn.6)\\n7. Tests (btn.7)\\n8. Core Skill Rewrite: skill.md v4 (btn.8) - LAST","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-1bg","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":"in_progress","target":"","timeout_ns":0,"title":"[EPIC] BeadBoard Driver Skill v4 Rewrite","updated_at":"2026-03-02T21:15:39Z","waiters":"","wisp_type":"","work_type":""} +{"acceptance_criteria":"","actor":"","agent_state":"","assignee":"beadboard-8hq","await_id":"","await_type":"","close_reason":"all steps complete","closed_at":"2026-03-02T21:55:54Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"5b365b1bf848b131a3ceb489a78730df747437dfbd81e15934eedbd72ccb1461","created_at":"2026-03-02T06:28:30Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Rewrite beadboard-driver skill to be a complete agent SDK for interacting with beadboard from any project.\\n\\nSTRUCTURE:\\n1. Memory System Docs (btn.1)\\n2. Coord Events + Sessions + Ack Docs (btn.2)\\n3. Archetypes + Templates + Swarms Docs (btn.3)\\n4. Missions + Realtime Docs (btn.4)\\n5. project.md Template (btn.5)\\n6. Self-healing Scripts (btn.6)\\n7. Tests (btn.7)\\n8. Core Skill Rewrite: skill.md v4 (btn.8) - LAST","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-1bg","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"Session completed all child beads with evidence. Memory review: scope-authority correction captured as canonical memory beadboard-at4; no additional reusable memory required.","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":"[EPIC] BeadBoard Driver Skill v4 Rewrite","updated_at":"2026-03-02T21:56:27Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":"beadboard-8hq","await_id":"","await_type":"","close_reason":"Memory system docs completed with canonical workflow and command references for cross-repo agent operation.","closed_at":"2026-03-02T21:37:52Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"bb91c89da52d94fc67aa078dfa828e83d1b3436b3e7e8526204da16d0ef2fc50","created_at":"2026-03-02T06:28:39Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: beadboard-1bg.1\n- Parent: beadboard-1bg\n- Dependencies: None\n\nTASK CONTRACT\n- Goal: Document how agents use beadboard's memory system\n- Success Criteria:\n - Reference docs cover full memory workflow\n - Includes query commands, provenance validation, contract creation\n- Scope:\n - Memory workflow (query → attach → ratify → evolve)\n - Domain anchors\n - Canonical memory nodes\n - Memory contracts\n - Noise budget limits\n- Out of Scope:\n - Frontend UI for memory\n\nIMPLEMENTATION CONSTRAINTS\n- Reference docs in skills/beadboard-driver/references/\n- Follow help/memory/ patterns\n\nVERIFICATION REQUIREMENTS\n- Required commands: npm run typecheck, npm run lint","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-1bg.1","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Added skills/beadboard-driver/references/memory-system.md covering memory workflow, canonical schema, provenance checks, supersede flow, and user-controlled scope model. Verification: npm run typecheck (pass), npm run lint (pass with 19 pre-existing warnings, 0 errors).","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 System Docs","updated_at":"2026-03-02T21:37:52Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":"beadboard-8hq","await_id":"","await_type":"","close_reason":"Coord events, sessions, and ack workflow docs completed for external-repo agent operations with UI-observable coordination semantics.","closed_at":"2026-03-02T21:39:54Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"bfab2842c4223f2666b5d07c6c8e10daf4558f7eb377f35e538ea40bc58c0257","created_at":"2026-03-02T06:28:51Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: beadboard-1bg.2\n- Parent: beadboard-1bg\n- Dependencies: None\n\nTASK CONTRACT\n- Goal: Document coord events, sessions, and message acknowledgment\n- Success Criteria:\n - Reference docs for protocol events, inbox handling, ack workflow\n- Scope:\n - Coord events (HANDOFF, BLOCKED, RESUME, INFO, INCURSION)\n - Sessions and inbox\n - Message ack workflow (unread → read → acked)\n- Out of Scope:\n - Implementation details\n\nIMPLEMENTATION CONSTRAINTS\n- Reference docs in skills/beadboard-driver/references/\n\nVERIFICATION REQUIREMENTS\n- Required commands: npm run typecheck, npm run lint","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-1bg.2","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Added skills/beadboard-driver/references/coord-events-sessions-ack.md documenting HANDOFF/BLOCKED/RESUME/INFO/INCURSION semantics, inbox lifecycle unread-\u003eread-\u003eacked, and UI/action mapping. Verification run: npm run typecheck (fails on pre-existing src/components/graph/dependency-graph-page.tsx smoothstep type mismatch), npm run lint (0 errors, 19 warnings).","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":"Coord Events + Sessions + Ack Docs","updated_at":"2026-03-02T21:39:54Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":"beadboard-8hq","await_id":"","await_type":"","close_reason":"Archetype/template/swarm docs completed with clear ownership and orchestration contracts.","closed_at":"2026-03-02T21:41:58Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"67f5f57b85b8e34aa040a325e546f20705e0fc495a4343786d983332c61f2a79","created_at":"2026-03-02T06:29:01Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: beadboard-1bg.3\n- Parent: beadboard-1bg\n- Dependencies: None\n\nTASK CONTRACT\n- Goal: Document agent roles, team compositions, and swarm operations\n- Success Criteria:\n - Reference docs for archetypes, templates, swarm join/leave/manage\n- Scope:\n - Archetypes (agent roles: coder, reviewer, writer)\n - Templates (team compositions)\n - Swarms (create, join, leave, close)\n- Out of Scope:\n - Mission assignment logic\n\nIMPLEMENTATION CONSTRAINTS\n- Reference docs in skills/beadboard-driver/references/\n\nVERIFICATION REQUIREMENTS\n- Required commands: npm run typecheck, npm run lint","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-1bg.3","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Added skills/beadboard-driver/references/archetypes-templates-swarms.md covering role contracts, template composition, swarm lifecycle, and user-orchestrated control-plane model. Verification: npm run typecheck (pass), npm run lint (0 errors, 22 warnings).","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":"Archetypes + Templates + Swarms Docs","updated_at":"2026-03-02T21:41:58Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":"beadboard-8hq","await_id":"","await_type":"","close_reason":"Missions and realtime docs completed with control-plane orchestration model and reliability guardrails.","closed_at":"2026-03-02T21:43:53Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"0bd6ae81e141c97a05ad24cecf6f711224b64a9a7683365e617ad6ef1340d562","created_at":"2026-03-02T06:29:11Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: beadboard-1bg.4\n- Parent: beadboard-1bg\n- Dependencies: beadboard-1bg.3\n\nTASK CONTRACT\n- Goal: Document work assignments and live updates\n- Success Criteria:\n - Reference docs for mission assignment and realtime events\n- Scope:\n - Missions (assign, graph, topology)\n - Realtime (SSE events, live updates)\n- Out of Scope:\n - Implementation details\n\nIMPLEMENTATION CONSTRAINTS\n- Reference docs in skills/beadboard-driver/references/\n\nVERIFICATION REQUIREMENTS\n- Required commands: npm run typecheck, npm run lint","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-1bg.4","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Added skills/beadboard-driver/references/missions-realtime.md covering mission assignment model, dependency/topology alignment, realtime/SSE expectations, stale-state triage order, and user-vs-agent responsibility split. Verification: npm run typecheck (pass), npm run lint (0 errors, 22 warnings).","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":"Missions + Realtime Docs","updated_at":"2026-03-02T21:43:53Z","waiters":"","wisp_type":"","work_type":""} -{"acceptance_criteria":"","actor":"","agent_state":"","assignee":"beadboard-8hq","await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"2fad4b6142ddd9a0254fd6454b762b62c1a285ca2888f98f18e7f9c44e084a33","created_at":"2026-03-02T06:29:36Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: beadboard-1bg.5\n- Parent: beadboard-1bg\n- Dependencies: beadboard-1bg.1, beadboard-1bg.2, beadboard-1bg.3, beadboard-1bg.4\n\nTASK CONTRACT\n- Goal: Create project.md template for env-specific workarounds\n- Success Criteria:\n - Template file agents can copy and edit with project-specific knowledge\n- Scope:\n - project.md template in skill\n - How to fill with env-specific workarounds\n- Out of Scope:\n - Actual project setup\n\nIMPLEMENTATION CONSTRAINTS\n- Template in skills/beadboard-driver/\n\nVERIFICATION REQUIREMENTS\n- Required commands: npm run typecheck, npm run lint","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-1bg.5","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Added skills/beadboard-driver/project.md template for cross-repo usage: environment constraints, verification policy, coordination defaults, and user-controlled scope authority. Verification: npm run typecheck (pass), npm run lint (0 errors, 22 warnings).","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":"in_progress","target":"","timeout_ns":0,"title":"project.md Template","updated_at":"2026-03-02T21:45:44Z","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":"d7302b86bcc6f49ab49e288dfc1dd4e6612510214676169a3c53cb9295e35e74","created_at":"2026-03-02T06:29:58Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: beadboard-1bg.6\n- Parent: beadboard-1bg\n- Dependencies: beadboard-1bg.1, beadboard-1bg.2, beadboard-1bg.3, beadboard-1bg.4, beadboard-1bg.5\n\nTASK CONTRACT\n- Goal: Create diagnostic and self-healing scripts\n- Success Criteria:\n - Scripts for common env issues\n- Scope:\n - Diagnostic scripts\n - Self-healing scripts (on-demand)\n- Out of Scope:\n - Auto-run diagnostics\n\nIMPLEMENTATION CONSTRAINTS\n- Scripts in skills/beadboard-driver/scripts/\n\nVERIFICATION REQUIREMENTS\n- Required commands: npm run typecheck, npm run lint","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-1bg.6","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":"Self-healing Scripts","updated_at":"2026-03-02T06:35:44Z","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":"ed49325f3273e2358584e61cc75aec9f54ba7c92c500d7a739c8b6e4abf67980","created_at":"2026-03-02T06:30:08Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: beadboard-1bg.7\n- Parent: beadboard-1bg\n- Dependencies: beadboard-1bg.6\n\nTASK CONTRACT\n- Goal: Create skill-local and repo-level tests\n- Success Criteria:\n - Tests prove system works\n- Scope:\n - Skill-local tests\n - Repo-level tests\n- Out of Scope:\n - Integration tests beyond skill\n\nIMPLEMENTATION CONSTRAINTS\n- Tests in skills/beadboard-driver/tests/ and tests/skills/beadboard-driver/\n\nVERIFICATION REQUIREMENTS\n- Required commands: npm run typecheck, npm run lint, npm run test","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-1bg.7","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":"Skill Tests","updated_at":"2026-03-02T06:35:44Z","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":"a74acda56962e24b7690896e4592acd1497b802f3c33057fd9c9a7322c6324f1","created_at":"2026-03-02T06:30:20Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: beadboard-1bg.8\n- Parent: beadboard-1bg\n- Dependencies: beadboard-1bg.1, beadboard-1bg.2, beadboard-1bg.3, beadboard-1bg.4, beadboard-1bg.5, beadboard-1bg.6, beadboard-1bg.7\n\nTASK CONTRACT\n- Goal: Rewrite skill.md as entry point, manual, and TOC\n- Success Criteria:\n - skill.md points to all reference docs\n - Acts as selling point for users\n - TOC for entire skill\n- Scope:\n - Complete rewrite of skill.md\n - Pointers to scripts, references, project.md\n- Out of Scope:\n - Implementation details\n\nIMPLEMENTATION CONSTRAINTS\n- skill.md in skills/beadboard-driver/\n\nVERIFICATION REQUIREMENTS\n- Required commands: npm run typecheck, npm run lint","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-1bg.8","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":"Core Skill Rewrite: skill.md v4","updated_at":"2026-03-02T06:35:44Z","waiters":"","wisp_type":"","work_type":""} +{"acceptance_criteria":"","actor":"","agent_state":"","assignee":"beadboard-8hq","await_id":"","await_type":"","close_reason":"project.md template created for per-project operational adaptation without changing core skill contract.","closed_at":"2026-03-02T21:45:54Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"2fad4b6142ddd9a0254fd6454b762b62c1a285ca2888f98f18e7f9c44e084a33","created_at":"2026-03-02T06:29:36Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: beadboard-1bg.5\n- Parent: beadboard-1bg\n- Dependencies: beadboard-1bg.1, beadboard-1bg.2, beadboard-1bg.3, beadboard-1bg.4\n\nTASK CONTRACT\n- Goal: Create project.md template for env-specific workarounds\n- Success Criteria:\n - Template file agents can copy and edit with project-specific knowledge\n- Scope:\n - project.md template in skill\n - How to fill with env-specific workarounds\n- Out of Scope:\n - Actual project setup\n\nIMPLEMENTATION CONSTRAINTS\n- Template in skills/beadboard-driver/\n\nVERIFICATION REQUIREMENTS\n- Required commands: npm run typecheck, npm run lint","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-1bg.5","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Added skills/beadboard-driver/project.md template for cross-repo usage: environment constraints, verification policy, coordination defaults, and user-controlled scope authority. Verification: npm run typecheck (pass), npm run lint (0 errors, 22 warnings).","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":"project.md Template","updated_at":"2026-03-02T21:45:54Z","waiters":"","wisp_type":"","work_type":""} +{"acceptance_criteria":"","actor":"","agent_state":"","assignee":"beadboard-8hq","await_id":"","await_type":"","close_reason":"Diagnostic and self-healing scripts completed with contract tests and safe execution model.","closed_at":"2026-03-02T21:49:33Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"d7302b86bcc6f49ab49e288dfc1dd4e6612510214676169a3c53cb9295e35e74","created_at":"2026-03-02T06:29:58Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: beadboard-1bg.6\n- Parent: beadboard-1bg\n- Dependencies: beadboard-1bg.1, beadboard-1bg.2, beadboard-1bg.3, beadboard-1bg.4, beadboard-1bg.5\n\nTASK CONTRACT\n- Goal: Create diagnostic and self-healing scripts\n- Success Criteria:\n - Scripts for common env issues\n- Scope:\n - Diagnostic scripts\n - Self-healing scripts (on-demand)\n- Out of Scope:\n - Auto-run diagnostics\n\nIMPLEMENTATION CONSTRAINTS\n- Scripts in skills/beadboard-driver/scripts/\n\nVERIFICATION REQUIREMENTS\n- Required commands: npm run typecheck, npm run lint","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-1bg.6","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Implemented self-healing tooling: skills/beadboard-driver/scripts/diagnose-env.mjs and skills/beadboard-driver/scripts/heal-common-issues.mjs (dry-run default, opt-in apply). Added contract tests and wired them into skills/beadboard-driver/tests/run-tests.mjs. Also fixed cross-platform session-preflight test assumptions. Verification: node --test skills/beadboard-driver/tests/diagnose-env.contract.test.mjs skills/beadboard-driver/tests/heal-common-issues.contract.test.mjs (pass), node skills/beadboard-driver/tests/run-tests.mjs (pass), npm run typecheck (pass), npm run lint (0 errors, 22 warnings).","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":"Self-healing Scripts","updated_at":"2026-03-02T21:49:33Z","waiters":"","wisp_type":"","work_type":""} +{"acceptance_criteria":"","actor":"","agent_state":"","assignee":"beadboard-8hq","await_id":"","await_type":"","close_reason":"Skill-local and repo-level beadboard-driver tests completed and wired into primary test script; outstanding full-suite failure is pre-existing outside skill scope.","closed_at":"2026-03-02T21:53:27Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"ed49325f3273e2358584e61cc75aec9f54ba7c92c500d7a739c8b6e4abf67980","created_at":"2026-03-02T06:30:08Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: beadboard-1bg.7\n- Parent: beadboard-1bg\n- Dependencies: beadboard-1bg.6\n\nTASK CONTRACT\n- Goal: Create skill-local and repo-level tests\n- Success Criteria:\n - Tests prove system works\n- Scope:\n - Skill-local tests\n - Repo-level tests\n- Out of Scope:\n - Integration tests beyond skill\n\nIMPLEMENTATION CONSTRAINTS\n- Tests in skills/beadboard-driver/tests/ and tests/skills/beadboard-driver/\n\nVERIFICATION REQUIREMENTS\n- Required commands: npm run typecheck, npm run lint, npm run test","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-1bg.7","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Expanded test surface for beadboard-driver. Added skill-local contracts: readiness-report, diagnose-env, heal-common-issues. Added repo-level tests: tests/skills/beadboard-driver/diagnose-env.test.ts and heal-common-issues.test.ts. Updated package.json test script to include all tests/skills/beadboard-driver tests. Verification: node skills/beadboard-driver/tests/run-tests.mjs (pass), node --import tsx --test tests/skills/beadboard-driver/*.test.ts (pass), npm run typecheck (pass), npm run lint (0 errors, 22 warnings), npm run test (fails on pre-existing tests/hooks/url-state-integration.test.ts expecting graphTab default flow; actual overview).","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":"Skill Tests","updated_at":"2026-03-02T21:53:27Z","waiters":"","wisp_type":"","work_type":""} +{"acceptance_criteria":"","actor":"","agent_state":"","assignee":"beadboard-8hq","await_id":"","await_type":"","close_reason":"Core v4 skill entrypoint rewrite completed and aligned to external-repo + BeadBoard control-plane operating model.","closed_at":"2026-03-02T21:55:54Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"a74acda56962e24b7690896e4592acd1497b802f3c33057fd9c9a7322c6324f1","created_at":"2026-03-02T06:30:20Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: beadboard-1bg.8\n- Parent: beadboard-1bg\n- Dependencies: beadboard-1bg.1, beadboard-1bg.2, beadboard-1bg.3, beadboard-1bg.4, beadboard-1bg.5, beadboard-1bg.6, beadboard-1bg.7\n\nTASK CONTRACT\n- Goal: Rewrite skill.md as entry point, manual, and TOC\n- Success Criteria:\n - skill.md points to all reference docs\n - Acts as selling point for users\n - TOC for entire skill\n- Scope:\n - Complete rewrite of skill.md\n - Pointers to scripts, references, project.md\n- Out of Scope:\n - Implementation details\n\nIMPLEMENTATION CONSTRAINTS\n- skill.md in skills/beadboard-driver/\n\nVERIFICATION REQUIREMENTS\n- Required commands: npm run typecheck, npm run lint","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-1bg.8","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Rewrote skills/beadboard-driver/SKILL.md as BeadBoard Driver v4 entrypoint/manual/TOC for cross-repo execution model; added links to new references, scripts, tests, and project.md template. Updated agents/openai.yaml prompt/description for v4 model and session-lifecycle reference with explicit user-controlled scope rule. Verification: npm run typecheck (pass), npm run lint (0 errors, 22 warnings).","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":"Core Skill Rewrite: skill.md v4","updated_at":"2026-03-02T21:55:54Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"Graph has layout-shape controls; switching changes dagre rank direction and node/edge orientation; typecheck and lint pass.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Added true DAG shape controls (direction + density) so users can change graph form instead of only zooming viewport.","closed_at":"2026-03-02T06:32:57Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"9895aa89d25d7f3aa684c92377b31d91ccc4527d724309f95961cd98aec637a8","created_at":"2026-03-02T06:30:35Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Scope: let users change DAG shape so nodes are not forced into a long horizontal line. Implement layout direction toggle (Horizontal/Vertical) and compact spacing option in WorkflowGraph controls.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-1d7","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Implemented layout-shape controls in src/components/shared/workflow-graph.tsx: Horizontal/Vertical direction toggle, Compact/Normal density toggle, and retained Fit action. Layout now re-runs dagre with rankdir + spacing settings and updates node source/target port orientation.\nVerification: npm run typecheck =\u003e PASS. npm run lint =\u003e PASS with existing warnings (19 warnings, 0 errors). Memory review: no new reusable memory.","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":"Graph: add layout shape controls (not zoom)","updated_at":"2026-03-02T06:32:57Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Old test bead","closed_at":"2026-03-02T06:35:14Z","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":"closed","target":"","timeout_ns":0,"title":"Testing SSE Flow","updated_at":"2026-03-02T06:35: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":"8a628c9041dfe616f541513cd8f2a21080368e8fe78d4711b3725e4d4718e28a","created_at":"2026-03-02T06:55:18Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Parent: None (top-level epic)\n- Dependencies: None\n\nTASK CONTRACT\n- Goal: Perform comprehensive UX critique and fix continuity issues across views\n- Success Criteria:\n - All views are consistent\n - No confusing navigation patterns\n- Scope:\n - Analyze current UI for issues\n - Fix Graph view (tasks/dependencies tabs confusion)\n - Fix any other UX problems found\n- Out of Scope:\n - Adding new features\n\nIMPLEMENTATION CONSTRAINTS\n- Follow bead-prompting.md format\n- Use brainstorming skill before implementation\n- Document all UX issues found\n\nVERIFICATION REQUIREMENTS\n- Required commands: npm run typecheck, npm run lint, npm run test","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-2e6","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":"open","target":"","timeout_ns":0,"title":"[BRAINSTORM] UX Continuity and Critique","updated_at":"2026-03-02T06:55:18Z","waiters":"","wisp_type":"","work_type":""} @@ -383,7 +384,7 @@ {"acceptance_criteria":"","actor":"","agent_state":"","assignee":"Antigravity (Engineer)","await_id":"","await_type":"","close_reason":"","closed_at":"2026-02-21T19:44:59Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"cafbcb4f477e248fb44186a142ed39da50b1d814d55ac99051cfc9de504fd86d","created_at":"2026-02-21T18:54:19Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Title: Templates UI edit mode\n- Parent/Epic: beadboard-7jp (Swarm Archetypes \u0026 Templates CRUD)\n- Dependencies: beadboard-7jp.4 (Templates API routes must be complete)\n\nTASK CONTRACT\n- Goal: Enable editing and creation of templates in the TemplateInspector modal.\n- Success Criteria:\n - TemplateInspector form fields are editable (not readOnly)\n - Team composition editor: add/remove archetypes, edit counts\n - Save button is enabled and calls PUT /api/swarm/templates/[id]\n - Delete button added (hidden if isBuiltIn: true), calls DELETE with confirmation\n - Add Template button added to Templates tab header\n - Add mode: empty form, Save calls POST /api/swarm/templates\n - Validation: name required, at least one team member\n - Loading state on save, success/error toast on completion\n - Refresh template list after successful save/delete\n- Scope:\n - File: src/components/swarm/template-inspector.tsx\n - File: src/components/swarm/swarm-workspace.tsx (Add button)\n - File: src/hooks/use-templates.ts (refresh function if needed)\n- Out of Scope:\n - Archetype UI\n - Drag-drop functionality\n - Major visual redesign\n\nIMPLEMENTATION CONSTRAINTS\n- Preserve existing modal layout and styling\n- Reuse archetype selector/dropdown components where possible\n- Keep changes targeted and minimal\n\nVERIFICATION REQUIREMENTS\n- Required commands:\n - npm run typecheck\n - npm run lint\n - npm run test\n- Manual verification: edit, create, delete flows work in browser","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-7jp.7","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":"Templates UI edit mode","updated_at":"2026-02-21T19:44:59Z","waiters":"","wisp_type":"","work_type":"mutex"} {"acceptance_criteria":"Nodes show archetype badge when assigned. Different visual states for: needs agent, pre-assigned, has active worker. Badge shows archetype icon/initial with color.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Nodes now show archetype badges when assigned via agent: label. Visual states implemented: assigned badge shows archetype name/color. Unassign works with optimistic UI updates. Acceptance criteria met: badges show archetype icon/initial with color, different states for pre-assigned (badge visible).","closed_at":"2026-02-24T07:54:03Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"076606484269f852757f0b9b1cf1f253e23e437cc43848edad5382a9e8273cae","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-7r7","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Fixed unassign bug - added optimistic UI updates to GraphNodeCard. Labels now update immediately when assign/unassign is clicked, with rollback on error. Uses localLabels state synced with data.labels via useEffect.","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":"Add visual indicators for assigned archetypes on nodes","updated_at":"2026-02-24T07:54:03Z","waiters":"","wisp_type":"","work_type":"mutex"} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Closed","closed_at":"2026-02-23T01:06:06Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"592d98f1b52625ea862f2711ca27ed82a8ed8b438ccc1c470b4690be892ef2e4","created_at":"2026-02-21T20:29:17Z","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-8af","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":"closed","target":"","timeout_ns":0,"title":"Testing file system events","updated_at":"2026-02-23T01:06:06Z","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":"c9670e54dd8c22d08ce0f28469b84cf0c0e66848e936061b53f8227840813bd0","created_at":"2026-03-02T21:15:03Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Session orchestrator preparing memory and execution context for beadboard-1bg","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-8hq","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":"open","target":"","timeout_ns":0,"title":"Agent: codex-orchestrator","updated_at":"2026-03-02T21:15:03Z","waiters":"","wisp_type":"","work_type":""} +{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Session complete.","closed_at":"2026-03-02T21:56:39Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"c9670e54dd8c22d08ce0f28469b84cf0c0e66848e936061b53f8227840813bd0","created_at":"2026-03-02T21:15:03Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Session orchestrator preparing memory and execution context for beadboard-1bg","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-8hq","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Session orchestration complete: memory prep, epic beadboard-1bg execution, child beads claimed/closed, and NEXT_SESSION_PROMPT updated.","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":"Agent: codex-orchestrator","updated_at":"2026-03-02T21:56:39Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"all steps complete","closed_at":"2026-03-02T01:25:18Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"1daaa8eb2e9bd594181336464685396e3481d6e4ebc54975c8738b0705cb6031","created_at":"2026-02-28T22:05:35Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: (auto)\n- Title: Phase 3: Coordination Layer Integration\n- Parent/Epic: none (phase epic)\n- Dependencies (must be done first): beadboard-r1i (Phase 1), beadboard-0fi (Phase 2)\n\nTASK CONTRACT\n- Goal: Make swarm management accessible from everywhere — social cards, left panel epic rows, and TopBar — without navigating to a dedicated page. Currently AssignmentPanel logic is only reachable via graph assign mode toggle.\n- Success Criteria:\n - Blocked/unassigned social cards show an inline Assign affordance\n - Each epic row in LeftPanel has a Launch Swarm action\n - LaunchSwarmDialog is accessible from TopBar globally\n - Launching a swarm navigates to ?swarm=X so the new swarm appears in the right panel immediately\n - npm run typecheck \u0026\u0026 npm run lint \u0026\u0026 npm run test all pass\n- Scope:\n - useArchetypePicker hook extracted from AssignmentPanel\n - SocialCard assign affordance\n - LeftPanel epic row Launch Swarm button\n - TopBar LaunchSwarmDialog integration\n- Out of Scope:\n - Graph swarm subgraph overlay (Phase 4 dependency)\n - Agent presence on cards (Phase 4)\n - Modifying swarm/mission API endpoints\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-8ij","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":"Phase 3: Coordination Layer Integration","updated_at":"2026-03-02T01:25:18Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"useArchetypePicker hook created and integrated into AssignmentPanel","closed_at":"2026-03-02T01:15:33Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"dbeef17e3f0802b12e32585eb382ec30141457a3df76518ef5fe5c655d206ec7","created_at":"2026-02-28T22:05:45Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: beadboard-8ij.1\n- Title: Extract useArchetypePicker hook from AssignmentPanel\n- Parent/Epic: beadboard-8ij\n- Dependencies (must be done first): none (first in phase)\n\nTASK CONTRACT\n- Goal: Extract the archetype fetching and assignment logic from AssignmentPanel into a reusable useArchetypePicker hook so it can be used in SocialCard, LeftPanel, and TopBar without duplicating code.\n- Success Criteria:\n - New hook at src/hooks/use-archetype-picker.ts exports useArchetypePicker\n - Hook encapsulates: fetching archetypes from /api/archetypes, selected archetype state, and handleAssign(issueId) function that calls /api/mission/assign\n - AssignmentPanel refactored to use the new hook (no behaviour change, existing graph assign mode still works)\n - npm run typecheck passes\n- Scope:\n - src/hooks/use-archetype-picker.ts (new file)\n - src/components/graph/assignment-panel.tsx (refactor to use hook)\n - Read AssignmentPanel fully before extracting to understand current API calls and state\n- Out of Scope:\n - Changing AssignmentPanel UI\n - Using the hook in SocialCard or TopBar yet (beadboard-8ij.2, beadboard-8ij.3)\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-8ij.1","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Hook extracted with archetype selection state and assignment logic. AssignmentPanel refactored to use hook. Typecheck passes with 0 errors.","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":"Extract useArchetypePicker hook from AssignmentPanel","updated_at":"2026-03-02T01:15:33Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Inline assign working on SocialCard for blocked/unassigned tasks","closed_at":"2026-03-02T01:18:15Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"ed2e1d70a3066c50cbeb0d25c7c67f8589df6458832d7114bf32ad45a86e06ca","created_at":"2026-02-28T22:29:28Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: beadboard-8ij.2\n- Title: Add inline Assign affordance to SocialCard for blocked/unassigned tasks\n- Parent/Epic: beadboard-8ij\n- Dependencies (must be done first): beadboard-8ij.1\n\nTASK CONTRACT\n- Goal: Tasks in blocked or open/unassigned state should show an Assign button directly on the SocialCard, opening an inline archetype picker without leaving the social view or opening a modal.\n- Success Criteria:\n - SocialCard shows an Assign button when issue.status === 'blocked' or (issue.status === 'open' and no assignee)\n - Clicking Assign opens an inline dropdown/popover using useArchetypePicker\n - Selecting an archetype calls handleAssign and updates the card\n - Cards with an existing assignee do not show the Assign button\n - npm run typecheck passes\n- Scope:\n - src/components/social/social-card.tsx — add conditional Assign button\n - Use useArchetypePicker hook from beadboard-8ij.1\n - Inline UI only — no modal, no view switch\n- Out of Scope:\n - Changing SocialCard layout for other states\n - Agent presence/liveness indicators (Phase 4)\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-8ij.2","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Inline assign affordance added to blocked/unassigned cards. Uses useArchetypePicker hook. Archetypes fetched in SocialPage and passed to SocialCard. Typecheck passes with 0 errors.","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 inline Assign affordance to SocialCard for blocked/unassigned tasks","updated_at":"2026-03-02T01:18:15Z","waiters":"","wisp_type":"","work_type":""} @@ -408,7 +409,9 @@ {"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":null,"await_id":"","await_type":"","close_reason":"Recreating with proper format","closed_at":"2026-03-02T06:28:21Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"f0c18c1e83eb43576abc4278b6ac4584534752c205278c63ad73c02e8dc1892c","created_at":"2026-03-02T06:27:34Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Rewrite beadboard-driver skill to be a complete agent SDK for interacting with beadboard from any project.\\n\\nGoal: Any agent with this skill + bd can immediately use:\\n- Beads (create/update/close)\\n- Dependencies\\n- Memory system (query → attach → ratify → evolve)\\n- Comments\\n- Sessions + Ack\\n- Archetypes + Templates\\n- Swarms + Missions\\n- Coord Events\\n- Realtime\\n- project.md (living env-specific doc)\\n- Self-healing scripts\\n- Tests\\n\\nThis replaces the deprecated Activity Lease model and old bb/agent-mail references.\\n\\nSTRUCTURE:\\n1. Memory System Docs (4.1)\\n2. Coord Events + Sessions + Ack Docs (4.2)\\n3. Archetypes + Templates + Swarms Docs (4.3)\\n4. Missions + Realtime Docs (4.4)\\n5. project.md Template (4.5)\\n6. Self-healing Scripts (4.6)\\n7. Tests (4.7)\\n8. Core Skill Rewrite: skill.md v4 (4.8) - LAST","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-btn","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":"[EPIC] BeadBoard Driver Skill v4 Rewrite","updated_at":"2026-03-02T06:28:21Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":"2026-03-02T06:34:26Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"3c9ffc764c5d237b5070c88ba9fba055d55c997d7e09d147115d0ee345ec636a","created_at":"2026-03-02T06:27:53Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: beadboard-btn.1\n- Parent: beadboard-btn ([EPIC] BeadBoard Driver Skill v4 Rewrite)\n- Dependencies: None\n\nTASK CONTRACT\n- Goal: Document how agents use beadboard's memory system\n- Success Criteria:\n - Reference docs cover full memory workflow\n - Includes query commands, provenance validation, contract creation\n- Scope:\n - Memory workflow (query → attach → ratify → evolve)\n - Domain anchors\n - Canonical memory nodes\n - Memory contracts\n - Noise budget\n- Out of Scope:\n - Frontend UI for memory\n\nIMPLEMENTATION CONSTRAINTS\n- Reference docs in skills/beadboard-driver/references/\n- Follow memory_fabric_workflow.txt patterns\n\nVERIFICATION REQUIREMENTS\n- Required commands: npm run typecheck, npm run lint","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-btn.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":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Memory System Docs: Query → Attach → Ratify → Evolve","updated_at":"2026-03-02T06:34:26Z","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":"a8f57ddd9897be3e26cb697cb5c8358dd6707c3716184bcb959c067701b30700","created_at":"2026-03-02T22:00:41Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\\n- Bead ID: beadboard-c70.1\\n- Parent: beadboard-c70\\n- Dependencies: none\\n\\nTASK CONTRACT\\n- Goal: Define and implement deterministic install/discovery checks for beadboard-driver scripts.\\n- Success Criteria:\\n - session-preflight and diagnose-env return explicit BeadBoard install guidance with GitHub link\\n - Contract tests cover missing-tool remediation output\\n- Scope:\\n - bd command discovery\\n - bb path resolution behavior\\n - remediation copy\\n- Out of Scope:\\n - package publishing\\n\\nVERIFICATION REQUIREMENTS\\n- Required commands: npm run typecheck, npm run lint, npm run test","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-btt","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":"Driver install check contract (bd+bb discovery + remediation UX)","updated_at":"2026-03-02T22:00:41Z","waiters":"","wisp_type":"","work_type":""} {"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":"beadboard-frf","await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"48b68bfe217bdda9d6db9cb4de0c280fa3fd2f005056aac422092919aa7c8198","created_at":"2026-03-02T21:59:02Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\\n- Bead ID: auto\\n- Parent: none\\n- Dependencies: none\\n\\nTASK CONTRACT\\n- Goal: Make beadboard-driver reliably detect BeadBoard installation and provide clear install/remediation UX for both agents and humans.\\n- Success Criteria:\\n - Skill docs include explicit BeadBoard identity and GitHub link\\n - Driver scripts produce deterministic install guidance when BeadBoard tooling is missing\\n - Global vs repo-local usage model is documented and testable\\n- Scope:\\n - Installation checks and remediation messages\\n - Global package/distribution strategy decision\\n - Optional project template contract for global skills\\n- Out of Scope:\\n - Full package publish implementation unless split into child beads\\n\\nIMPLEMENTATION CONSTRAINTS\\n- Preserve existing bd as source-of-truth workflow semantics\\n- Keep user-facing copy simple and explicit\\n\\nVERIFICATION REQUIREMENTS\\n- Required commands: npm run typecheck, npm run lint, npm run test","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-c70","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":"in_progress","target":"","timeout_ns":0,"title":"[EPIC] BeadBoard Installation + Discovery Contract for Driver Skill","updated_at":"2026-03-02T22:00: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":"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":""} {"acceptance_criteria":"File created: src/hooks/use-graph-analysis.ts; Hook exports GraphAnalysis interface with: graphModel, signalById, cycleNodeIdSet, actionableNodeIds, blockerTooltipMap, blockerAnalysis, chainNodeIds; Hook takes (issues, projectRoot, selectedId) parameters; 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":"9ae1d444b1c2ed81d0d6df2a8b2243b2e0a873454df1964b7c2711172025fc05","created_at":"2026-02-24T01:37:13Z","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-ck0","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"## TASK CONTEXT\n- Bead ID: beadboard-ck0\n- Title: Create useGraphAnalysis hook\n- Parent/Epic: beadboard-uui (Unify Graph + Swarm into Single Enhanced Graph View)\n- Dependencies (must be done first): None\n\n## GOAL\nExtract duplicated graph computation logic from workflow-graph.tsx (lines 73-135) and dependency-graph-page.tsx (lines 327-433) into a reusable hook. This consolidates the graph analysis logic that is currently duplicated across two files.\n\n## SUCCESS CRITERIA\n- File created: src/hooks/use-graph-analysis.ts (~100 lines)\n- Hook exports GraphAnalysis interface with: graphModel, signalById, cycleNodeIdSet, actionableNodeIds, blockerTooltipMap, blockerAnalysis, chainNodeIds\n- Hook takes (issues: BeadIssue[], projectRoot: string, selectedId: string | null | undefined) parameters\n- Uses existing buildGraphModel from ../../lib/graph\n- Uses analyzeBlockedChain, detectDependencyCycles from ../../lib/graph-view\n- npm run typecheck passes\n\n## SCOPE\n- Create new hook file at src/hooks/use-graph-analysis.ts\n- Export GraphAnalysis interface\n- Use useMemo for all computed values\n- Document each computed field with JSDoc comments\n\n## OUT OF SCOPE\n- Modifying existing components (that happens in beadboard-5sr)\n- Adding new graph analysis features\n- Changes to buildGraphModel or graph-view functions\n\n## IMPLEMENTATION NOTES\nThe hook should compute:\n1. graphModel: Result of buildGraphModel(issues, { projectKey: projectRoot })\n2. signalById: Map of issue.id -\u003e { blockedBy: number, blocks: number }\n3. cycleNodeIdSet: Set of node IDs that are part of dependency cycles\n4. actionableNodeIds: Set of node IDs that have no open blockers (ready to work)\n5. blockerTooltipMap: Map of issue.id -\u003e string[] of blocker descriptions\n6. blockerAnalysis: Result of analyzeBlockedChain for selectedId (null if no selection)\n7. chainNodeIds: Set of selectedId + all blocker node IDs\n\n## VERIFICATION REQUIREMENTS\n- Required commands:\n - npm run typecheck\n- Required artifacts:\n - Screenshot of new hook file structure","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 useGraphAnalysis hook","updated_at":"2026-02-24T01:40:31Z","waiters":"","wisp_type":"","work_type":"mutex"} {"acceptance_criteria":"UnifiedShell has assignMode and selectedAssignIssue state; SmartDag receives onAssignModeChange and onSelectedIssueChange callbacks; When view===graph \u0026\u0026 assignMode, right panel renders AssignmentPanel; Otherwise right panel renders ContextualRightPanel; Remove if (view === 'swarm') block and SwarmWorkspace import; npm run typecheck, lint, test all pass","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":"a8729938cc2c763ba0878950a5ccf14deb1fa8aee16ec8d951678f37bb3d29c5","created_at":"2026-02-24T01:37:47Z","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-cm8","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":"Wire assign mode into UnifiedShell","updated_at":"2026-02-24T01:40:31Z","waiters":"","wisp_type":"","work_type":"mutex"} @@ -428,6 +431,7 @@ {"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":""} {"acceptance_criteria":"6 archetypes with comprehensive system prompts (200-400 lines each), handoff protocols defined, all prompts follow structured format (phases, output format, examples), archetypes load correctly in UI, test-agent.json deleted","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Completed 6 comprehensive agent archetypes with detailed system prompts (200-400 lines each), handoff protocols, workflow phases, and examples. All verification gates pass.","closed_at":"2026-02-26T03:14:31Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"35fb89e510008e4ecc977565f01996e074296f356dce072ed6d74097d8a87fcb","created_at":"2026-02-26T02:52: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-fp5","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"Created 6 comprehensive archetypes: architect, engineer, reviewer, tester, investigator, shipper. Each has 200+ line system prompts with workflow phases, handoff protocols, and examples. Deleted test-agent.json placeholder. All verification gates pass (typecheck, lint warnings only, tests pass).","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":"Comprehensive Agent Archetype System v2","updated_at":"2026-02-26T03:14: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":"249f0ee0db1341a9297788e402d93dfd5d0fb82a0024c2dde5754e0f6c3a698f","created_at":"2026-03-02T22:00:09Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Refine beadboard-driver SKILL.md to sell human value while preserving agent execution contract","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-frf","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":"open","target":"","timeout_ns":0,"title":"Agent: codex-skill-marketing","updated_at":"2026-03-02T22:00:09Z","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":"8fd7102d911f66fc12c0218596be2d43b56c8a8252a0b8895bfdd5dea5e0cf27","created_at":"2026-02-24T01:41: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-gb0","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"## TASK CONTEXT\n- Bead ID: beadboard-gb0\n- Title: Unify Graph + Swarm into Single Enhanced Graph View\n- Parent/Epic: None (this is the epic)\n- Dependencies: None\n\n## GOAL\nMerge the duplicate graph implementations (`?view=graph`, `?view=swarm`, and `/graph` page) into one enhanced graph view with two modes:\n- **Analysis mode** (default): Full dependency DAG with progressive disclosure (filters toolbar, tabs)\n- **Assign mode** (toggled): DAG highlights ready nodes, right panel transforms into assignment controls\n\n## PROBLEM STATEMENT\nBeadBoard has two views that both render the same `WorkflowGraph` DAG component, creating duplication:\n- `?view=graph` is a bare 49-line wrapper (`SmartDag`) with no rich features\n- `?view=swarm` duplicates the DAG with swarm-specific UI\n- Standalone `/graph` page (`DependencyGraphPage`) has rich features stranded from the shell view\n\n## SUCCESS CRITERIA\n- `?view=graph` shows enhanced DAG with all dependency analysis features\n- 'Assign' toggle enables task assignment workflow\n- `?view=swarm` deprecated (falls back to default view)\n- Archetypes/Templates accessible from assign mode right panel\n- All child tasks completed and verified\n- `npm run typecheck \u0026\u0026 npm run lint \u0026\u0026 npm run test` all pass\n\n## SCOPE\n- SmartDag rewrite with progressive disclosure + tabs + assign mode\n- AssignmentPanel component for assign mode\n- useGraphAnalysis hook extraction\n- Swarm view removal from navigation\n- Delete deprecated swarm files (swarm-workspace.tsx, telemetry-grid.tsx, specialized-agent-dag.tsx)\n\n## OUT OF SCOPE\n- Backend API changes (use existing `/api/swarm/prep`)\n- New archetypes/templates features\n- Mobile-specific layouts\n- Changes to archetype-inspector.tsx, template-inspector.tsx (kept for AssignmentPanel)\n\n## REFERENCE\n- PRD: `docs/prd/unified-graph-view.md`\n- Step 1 (agent animations): Already COMPLETED\n\n## CHILD TASKS\n1. `beadboard-gb0.4`: Create useGraphAnalysis hook (INDEPENDENT)\n2. `beadboard-gb0.2`: Add assign mode to WorkflowGraph + GraphNodeCard (INDEPENDENT)\n3. `beadboard-gb0.3`: Create AssignmentPanel component (INDEPENDENT)\n4. `beadboard-gb0.8`: Remove swarm view from navigation (INDEPENDENT)\n5. `beadboard-gb0.1`: Rewrite SmartDag with progressive disclosure (BLOCKED BY: gb0.4)\n6. `beadboard-gb0.5`: Wire assign mode into UnifiedShell (BLOCKED BY: gb0.3, gb0.1)\n7. `beadboard-gb0.7`: Delete deprecated swarm files (BLOCKED BY: gb0.5, gb0.8)\n8. `beadboard-gb0.6`: Update standalone /graph page (BLOCKED BY: gb0.7)\n\n## PARALLELIZATION\nPhase 1 (parallel): gb0.4, gb0.2, gb0.3, gb0.8\nPhase 2 (sequential): gb0.1 (after gb0.4)\nPhase 3 (sequential): gb0.5 (after gb0.3, gb0.1)\nPhase 4 (sequential): gb0.7 (after gb0.5, gb0.8)\nPhase 5 (sequential): gb0.6 (after gb0.7)","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":"Unify Graph + Swarm into Single Enhanced Graph View","updated_at":"2026-02-24T01:43:10Z","waiters":"","wisp_type":"","work_type":"mutex"} {"acceptance_criteria":"Toolbar with Filters and Assign toggles; Filters row with hop depth, hide closed, blocking-only, sort ready first; Tab switcher: Tasks/Dependencies; Tasks tab with TaskCardGrid; Dependencies tab with DependencyFlowStrip + GraphSection; onAssignModeChange and onSelectedIssueChange callbacks; npm run typecheck, lint, test pass","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Closed","closed_at":"2026-02-24T03:08:34Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"ec99a8e7756a1f9b4b0016e9e0338054bf4cbf6475cee93b141110d04da6f174","created_at":"2026-02-24T01:42: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-gb0.1","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"## Completed Implementation\n\n### Files Changed\n- **src/components/graph/smart-dag.tsx**: Rewrote from 49-line wrapper to 272-line enhanced DAG with:\n - Toolbar with Filters toggle + Assign toggle\n - WorkflowTabs for Tasks/Dependencies switching\n - Collapsible filter row (hide closed, ready first, depth, blocking only)\n - Tasks tab with TaskCardGrid\n - Dependencies tab with WorkflowGraph (passing assignMode)\n\n- **tests/components/graph/smart-dag.test.tsx**: Created 12 TDD tests (all passing)\n- **package.json**: Added smart-dag.test.tsx to test script\n\n### Tests Written (TDD)\nAll 12 tests pass:\n1. SmartDag - file exists and exports\n2. SmartDag - contains Filters toggle button\n3. SmartDag - contains Assign toggle button\n4. SmartDag - contains WorkflowTabs\n5. SmartDag - supports onAssignModeChange callback\n6. SmartDag - supports onSelectedIssueChange callback\n7. SmartDag - imports TaskCardGrid\n8. SmartDag - imports WorkflowGraph\n9. SmartDag - passes assignMode to WorkflowGraph\n10. SmartDag - manages hideClosed filter\n11. SmartDag - manages sortReadyFirst filter\n12. SmartDag - uses useGraphAnalysis hook\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 including new smart-dag tests)\n\n### Deferred\n- DependencyFlowStrip: Created TODO bead `beadboard-58u` for future enhancement\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 12 (smart-dag suite)\n# pass 12\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":"Rewrite SmartDag with progressive disclosure","updated_at":"2026-02-24T03:08:34Z","waiters":"","wisp_type":"","work_type":"mutex"} {"acceptance_criteria":"WorkflowGraphProps includes assignMode?: boolean; GraphNodeData includes isAssignMode?: boolean; Non-actionable nodes dimmed with opacity-20 in assign mode; Actionable nodes highlighted with emerald ring; npm run typecheck passes","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Added assign mode data flow to WorkflowGraph and GraphNodeCard with proper visual differentiation. All gates pass.","closed_at":"2026-02-24T02:11:52Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"ca4509e28f164107029341136dede24517d670c92e56ce72760aec7627235527","created_at":"2026-02-24T01:42: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-gb0.2","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"## Evidence\n- workflow-graph.tsx: Added assignMode?: boolean to WorkflowGraphProps (line 31)\n- workflow-graph.tsx: Added isAssignMode: assignMode to node data (line 116)\n- graph-node-card.tsx: Added isAssignMode?: boolean to GraphNodeData (line 38)\n- graph-node-card.tsx: Conditional styling for assign mode (lines 117-120)\n - isAssignMode \u0026\u0026 !isActionable: opacity-20 (dims non-ready nodes)\n - isAssignMode \u0026\u0026 isActionable: ring-2 ring-emerald-400/50 (highlights ready nodes)\n- npm run typecheck: PASS\n- npm run lint: PASS (0 errors)\n- npm run test: PASS (31/31)\n\n## Files Changed\n- MODIFIED: src/components/shared/workflow-graph.tsx\n- MODIFIED: src/components/graph/graph-node-card.tsx","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 mode to WorkflowGraph + GraphNodeCard","updated_at":"2026-02-24T02:11:52Z","waiters":"","wisp_type":"","work_type":"mutex"} @@ -439,6 +443,7 @@ {"acceptance_criteria":"ViewType removes swarm; VALID_VIEWS removes swarm; Left panel removes swarm entry; Mobile nav removes swarm tab; npm run typecheck, lint, test pass","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Removed swarm view from navigation across all components and updated tests. All gates pass.","closed_at":"2026-02-24T02:11:59Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"0bf894def5cec06893c6d1d15a50458974915ca99cfd17f3837653c8db8bdcf2","created_at":"2026-02-24T01:42: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-gb0.8","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"## Evidence\n- use-url-state.ts: ViewType removes 'swarm' (line 6)\n- use-url-state.ts: VALID_VIEWS removes 'swarm' (line 46)\n- left-panel.tsx: views array removes swarm entry (lines 187-190)\n- mobile-nav.tsx: tabs array removes swarm tab (lines 6-9)\n- unified-shell.tsx: Removed dead view === 'swarm' branches\n- swarm-mission-picker.tsx: Changed setView('swarm') to setView('graph')\n- Updated tests for swarm fallback behavior\n- npm run typecheck: PASS\n- npm run lint: PASS (0 errors)\n- npm run test: PASS (31/31)\n\n## Files Changed\n- MODIFIED: src/hooks/use-url-state.ts\n- MODIFIED: src/components/shared/left-panel.tsx\n- MODIFIED: src/components/shared/mobile-nav.tsx\n- MODIFIED: src/components/shared/unified-shell.tsx\n- MODIFIED: src/components/swarm/swarm-mission-picker.tsx\n- MODIFIED: tests/hooks/url-state-integration.test.ts\n- MODIFIED: tests/components/shared/top-bar.test.tsx\n- MODIFIED: tests/components/shared/mobile-nav.test.tsx","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":"Remove swarm view from navigation","updated_at":"2026-02-24T02:11:59Z","waiters":"","wisp_type":"","work_type":"mutex"} {"acceptance_criteria":"Color palette with presets + custom picker, icon/emoji selector, live preview in inspector, suggested capabilities, duplicate/clone feature, archetype cards show icon/emoji","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Completed full archetype customization: color palette (30 presets), icon/emoji selector (40 emojis), capability autocomplete (30 suggestions), live preview, clone functionality, icon field support in all display components. All verification gates pass.","closed_at":"2026-02-26T04:01:05Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"eab91d6249aa43e9e6f8c0885bc476e42b9d17d60a26f2f8cf255f94b02c4a59","created_at":"2026-02-26T03:26:35Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Enable users to fully customize their archetypes with color presets, icons/emojis, and better UX","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-gv7","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"Completed: color palette with 30 presets, icon/emoji selector with 40 emojis, suggested capabilities with autocomplete, live preview, clone functionality, updated all display components to use icon field. All verification gates pass.","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 Archetype Customization","updated_at":"2026-02-26T04:01:05Z","waiters":"","wisp_type":"","work_type":"mutex"} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Old test bead","closed_at":"2026-03-02T06:35:14Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"ae28ed72ac9799b7b4dce806bbaa0033e83ce60e3495d03df1d5eae9a2dc9a3e","created_at":"2026-02-21T20:28: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-hhy","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":"closed","target":"","timeout_ns":0,"title":"Testing another flow","updated_at":"2026-03-02T06:35: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":"bac42d51bcaa19c4dfbc5d2e3b98a2e26dd7720afc483ffff4b13c420ae5d4dc","created_at":"2026-03-02T22:00:44Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\\n- Bead ID: beadboard-c70.2\\n- Parent: beadboard-c70\\n- Dependencies: beadboard-c70.1\\n\\nTASK CONTRACT\\n- Goal: Make project template usage clear for global vs repo-local skill installs.\\n- Success Criteria:\\n - SKILL.md explains project template as source template and optional target-repo copy\\n - scripts optionally support external project context file path (if needed)\\n- Scope:\\n - docs + contract tests\\n- Out of Scope:\\n - UI integration changes\\n\\nVERIFICATION REQUIREMENTS\\n- Required commands: npm run typecheck, npm run lint, npm run test","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-i0q","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":"Global skill project-context contract (project.md optional path model)","updated_at":"2026-03-02T22:00:44Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"All existing canonical memory nodes have source bead relations and evidence_ids/plan_refs metadata; help docs require provenance capture.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Canonical memory provenance linked to historical beads and help/memory updated","closed_at":"2026-03-02T00:54:56Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"dca0bf2efdbf8f386504ed0c7473105b39e0471986abd0f6ea621aac7d191504","created_at":"2026-03-02T00:53:19Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Strengthen memory retrieval for fresh agents by relating canonical memory nodes to source closed beads/plans and adding explicit evidence metadata fields.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-i4c","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Completed provenance upgrade: all 7 canonical memory beads now link to source closed beads and include metadata keys evidence_ids + plan_refs. Updated help/memory docs to require provenance capture and provenance checks in task-start workflow.","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 provenance links and evidence metadata to canonical memory nodes","updated_at":"2026-03-02T00:54:56Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"Both manuals include mandatory post-close memory review cadence and provenance relation commands/requirements.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"AGENTS manuals now enforce regular memory additions and provenance relations","closed_at":"2026-03-02T00:57:15Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"94801679101f97c806f8bada08cbf366d258173ce388dafbb4135a3bfec22b49","created_at":"2026-03-02T00:56:31Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Update root and beadboard AGENTS manuals to require recurring memory additions and explicit provenance relation/metadata rules for canonical memory nodes.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-ij8","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Updated both AGENTS manuals: added mandatory post-close memory review cadence, provenance relation commands, required evidence_ids/plan_refs metadata, and fresh-agent provenance validation steps.","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":"Enforce regular memory contribution + provenance relations in AGENTS manuals","updated_at":"2026-03-02T00:57:15Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"WorkflowGraphProps includes assignMode?: boolean; GraphNodeData includes isAssignMode?: boolean; When isAssignMode=true and !isActionable: node has opacity-20; When isAssignMode=true and isActionable: node has ring-2 ring-emerald-400/50 shadow-[0_0_24px_rgba(16,185,129,0.2)]; 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":"dd64afe3fa8c5aebaa14f15c73385a964cf584eed523b103825eecfe2e8257bc","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-j3u","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"## TASK CONTEXT\n- Bead ID: beadboard-j3u\n- Title: Add assign mode data flow to WorkflowGraph + GraphNodeCard\n- Parent/Epic: beadboard-uui (Unify Graph + Swarm into Single Enhanced Graph View)\n- Dependencies (must be done first): None\n\n## GOAL\nEnable visual differentiation of actionable vs non-actionable nodes when assign mode is active. This provides the visual foundation for the 'Assign' toggle functionality.\n\n## SUCCESS CRITERIA\n- WorkflowGraphProps interface includes assignMode?: boolean\n- GraphNodeData interface includes isAssignMode?: boolean\n- In WorkflowGraphInner, pass isAssignMode: assignMode to each node's data\n- In GraphNodeCard, when data.isAssignMode is true:\n - If !data.isActionable: add opacity-20 class (extra dimming)\n - If data.isActionable: add ring-2 ring-emerald-400/50 shadow-[0_0_24px_rgba(16,185,129,0.2)] (highlight ring)\n- npm run typecheck passes\n\n## SCOPE\n- Modify src/components/shared/workflow-graph.tsx:\n - Add assignMode?: boolean to WorkflowGraphProps (line 24-31)\n - Pass assignMode to WorkflowGraphInner\n - In flowModel useMemo, add isAssignMode: assignMode to each node's data (line 154-175)\n- Modify src/components/graph/graph-node-card.tsx:\n - Add isAssignMode?: boolean to GraphNodeData interface\n - Add conditional styling based on isAssignMode \u0026\u0026 isActionable\n\n## OUT OF SCOPE\n- SmartDag changes (beadboard-5sr)\n- AssignmentPanel component (beadboard-d4n)\n- UnifiedShell wiring (beadboard-cm8)\n\n## IMPLEMENTATION NOTES\nThe visual treatment should:\n1. Non-actionable nodes in assign mode: fade them out so user focuses on ready nodes\n2. Actionable nodes in assign mode: glowing emerald ring to draw attention\n3. Preserve existing styling for non-assign mode\n\n## VERIFICATION REQUIREMENTS\n- Required commands:\n - npm run typecheck\n- Manual verification:\n - When assignMode=true, actionable nodes have green ring\n - When assignMode=true, non-actionable nodes are dimmed\n - When assignMode=false, existing styling preserved","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":"Add assign mode data flow to WorkflowGraph + GraphNodeCard","updated_at":"2026-02-24T01:40:31Z","waiters":"","wisp_type":"","work_type":"mutex"} diff --git a/.beads/backup/labels.jsonl b/.beads/backup/labels.jsonl index dbc89cf..1ced78a 100644 --- a/.beads/backup/labels.jsonl +++ b/.beads/backup/labels.jsonl @@ -596,6 +596,9 @@ {"issue_id":"bb-zenchantlive","label":"role:architect"} {"issue_id":"bb-zzr","label":"gt:agent"} {"issue_id":"bb-zzr","label":"swarm:test-swarm-1"} +{"issue_id":"beadboard-05a","label":"decision"} +{"issue_id":"beadboard-05a","label":"installation"} +{"issue_id":"beadboard-05a","label":"skills"} {"issue_id":"beadboard-116","label":"mem-canonical"} {"issue_id":"beadboard-116","label":"mem-hard"} {"issue_id":"beadboard-116","label":"memory"} @@ -691,9 +694,15 @@ {"issue_id":"beadboard-btn.1","label":"documentation"} {"issue_id":"beadboard-btn.1","label":"memory"} {"issue_id":"beadboard-btn.1","label":"skills"} +{"issue_id":"beadboard-btt","label":"installation"} +{"issue_id":"beadboard-btt","label":"skills"} {"issue_id":"beadboard-c08","label":"agent:architect"} {"issue_id":"beadboard-c08","label":"agent:system-architect"} {"issue_id":"beadboard-c08","label":"status:documenting"} +{"issue_id":"beadboard-c70","label":"agents"} +{"issue_id":"beadboard-c70","label":"documentation"} +{"issue_id":"beadboard-c70","label":"installation"} +{"issue_id":"beadboard-c70","label":"skills"} {"issue_id":"beadboard-d2x","label":"--json"} {"issue_id":"beadboard-dc0","label":"mem-canonical"} {"issue_id":"beadboard-dc0","label":"mem-soft"} @@ -719,6 +728,10 @@ {"issue_id":"beadboard-fld","label":"memory"} {"issue_id":"beadboard-fld","label":"memory-anchor"} {"issue_id":"beadboard-fld","label":"memory-ux"} +{"issue_id":"beadboard-frf","label":"gt:agent"} +{"issue_id":"beadboard-frf","label":"role:orchestrator"} +{"issue_id":"beadboard-i0q","label":"documentation"} +{"issue_id":"beadboard-i0q","label":"skills"} {"issue_id":"beadboard-i4c","label":"memory"} {"issue_id":"beadboard-i4c","label":"memory-provenance"} {"issue_id":"beadboard-ij8","label":"docs"}