diff --git a/.beads/backup/backup_state.json b/.beads/backup/backup_state.json index d5ca1cd..18b6d92 100644 --- a/.beads/backup/backup_state.json +++ b/.beads/backup/backup_state.json @@ -1,13 +1,13 @@ { - "last_dolt_commit": "7cpidanl0tmjlf1e69ikqpc3d8guvl5u", + "last_dolt_commit": "n42k8j0kao4jer50h607e3kf6nhbj3ea", "last_event_id": 0, - "timestamp": "2026-03-03T03:44:22.466163074Z", + "timestamp": "2026-03-03T05:03:56.3109154Z", "counts": { - "issues": 524, - "events": 733, + "issues": 527, + "events": 787, "comments": 12, "dependencies": 742, - "labels": 872, + "labels": 879, "config": 14 } } \ No newline at end of file diff --git a/.beads/backup/events.jsonl b/.beads/backup/events.jsonl index 499b15f..467a0c5 100644 --- a/.beads/backup/events.jsonl +++ b/.beads/backup/events.jsonl @@ -731,3 +731,57 @@ {"actor":"ZenchantLive","comment":"Added label: memory-agent-ops","created_at":"2026-03-02T19:38:49Z","event_type":"label_added","id":735,"issue_id":"beadboard-9xb","new_value":null,"old_value":null} {"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T19:39:04Z","event_type":"updated","id":736,"issue_id":"beadboard-9xb","new_value":"{\"notes\":\"Created from live user correction on 2026-03-02: scope for this agent is beadboard-05a; beadboard-txj is assigned elsewhere. Applied immediately by redirecting NEXT_SESSION_PROMPT work back to 05a.\"}","old_value":"{\"id\":\"beadboard-9xb\",\"title\":\"[MEMORY][AGENT-OPS][SOFT] Respect user-assigned scope in multi-agent sessions\",\"description\":\"Scope: Sessions where multiple agents are active and the user clarifies ownership boundaries.\\\\nOut of Scope: Single-agent sessions with no explicit ownership split.\\\\nRule: If the user states a bead is owned by another agent, immediately stop work on that bead and continue only on the user-assigned scope.\\\\nRationale: Prevents duplicate/conflicting work and keeps coordination clean.\\\\nFailure Mode: Parallel agents overwrite each other or create handoff confusion.\",\"status\":\"open\",\"priority\":1,\"issue_type\":\"decision\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-03T03:38:50Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-03T03:38:50Z\"}"} {"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T19:39:04Z","event_type":"closed","id":737,"issue_id":"beadboard-9xb","new_value":"Ratified canonical memory from user correction to preserve multi-agent scope discipline.","old_value":""} +{"actor":"zenchantlive","comment":null,"created_at":"2026-03-02T19:45:28Z","event_type":"updated","id":738,"issue_id":"beadboard-txj.1","new_value":"{\"notes\":\"Transitive Reduction implemented via BFS path search. Test coverage added in graph-view.test.ts. bun run lint/typecheck/test passed cleanly.\"}","old_value":"{\"id\":\"beadboard-txj.1\",\"title\":\"Implement graph transitive reduction algorithm\",\"description\":\"Scope: Write a robust algorithm that processes DAG nodes to identify transitive (redundant) edges across paths.\\\\nOut of scope: UI rendering.\\\\nSuccess Criteria: Takes nodes and edges, returns map of edges indicating if they are transitive or direct.\",\"status\":\"in_progress\",\"priority\":0,\"issue_type\":\"task\",\"assignee\":\"beadboard-8bs\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-03T03:36:09Z\",\"created_by\":\"zenchantlive\",\"updated_at\":\"2026-03-03T03:37:58Z\"}"} +{"actor":"zenchantlive","comment":null,"created_at":"2026-03-02T19:45:28Z","event_type":"closed","id":739,"issue_id":"beadboard-txj.1","new_value":"Core calculation algorithm implemented successfully.","old_value":""} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T19:45:29Z","event_type":"status_changed","id":740,"issue_id":"beadboard-05a.1.1","new_value":"{\"assignee\":\"beadboard-ojo\",\"status\":\"in_progress\"}","old_value":"{\"id\":\"beadboard-05a.1.1\",\"title\":\"Installer Contract ADR\",\"description\":\"Write ADR for unified installer system and command contracts.\",\"status\":\"open\",\"priority\":1,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-02T23:14:57Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-02T23:14:57Z\"}"} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T19:45:29Z","event_type":"status_changed","id":741,"issue_id":"beadboard-05a.1.2","new_value":"{\"assignee\":\"beadboard-ojo\",\"status\":\"in_progress\"}","old_value":"{\"id\":\"beadboard-05a.1.2\",\"title\":\"Manifest Schema + Validation\",\"description\":\"Define install/manifest contract and add validation tests.\",\"status\":\"open\",\"priority\":1,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-02T23:15:00Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-02T23:15:00Z\"}"} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T19:47:15Z","event_type":"status_changed","id":742,"issue_id":"beadboard-05a.1","new_value":"{\"assignee\":\"beadboard-ojo\",\"status\":\"in_progress\"}","old_value":"{\"id\":\"beadboard-05a.1\",\"title\":\"Installer Contract: canonical manifest + shared semantics\",\"description\":\"Goal: Define canonical installer manifest schema and shared install semantics for all wrappers.\",\"status\":\"open\",\"priority\":1,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-02T23:14:55Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-02T23:14:55Z\"}"} +{"actor":"zenchantlive","comment":null,"created_at":"2026-03-02T19:48:25Z","event_type":"status_changed","id":743,"issue_id":"beadboard-txj.2","new_value":"{\"assignee\":\"beadboard-8bs\",\"status\":\"in_progress\"}","old_value":"{\"id\":\"beadboard-txj.2\",\"title\":\"Apply Status Colors and Transitive Context to Graph Edges\",\"description\":\"Scope: Update ReactFlow Edge generation in workflow-graph.tsx, dependency-graph-page.tsx, and specialized-agent-dag.tsx.\\\\nOut of scope: Algorithm calculation.\\\\nSuccess Criteria: Critical/in-progress edges glow bright amber. Standard direct edges are blue/slate. Transitive edges are dimmed/dashed dark gray.\",\"status\":\"open\",\"priority\":0,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-03T03:36:41Z\",\"created_by\":\"zenchantlive\",\"updated_at\":\"2026-03-03T03:36:41Z\"}"} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T19:49:18Z","event_type":"updated","id":744,"issue_id":"beadboard-05a.1.2","new_value":"{\"notes\":\"Added canonical installer manifest contract + validator in src/lib/install-manifest.ts and regression coverage in tests/lib/install-manifest.test.ts. Added new test file to explicit npm test enumeration in package.json. TDD evidence: node --import tsx --test tests/lib/install-manifest.test.ts failed first with Cannot find module '../../src/lib/install-manifest'; then passed 4/4 after implementation. Repo gates: npm run typecheck (pass), npm run lint (pass with 22 existing warnings), npm run test (fails unrelated in tests/hooks/url-state-integration.test.ts: expected graphTab flow but got overview).\"}","old_value":"{\"id\":\"beadboard-05a.1.2\",\"title\":\"Manifest Schema + Validation\",\"description\":\"Define install/manifest contract and add validation tests.\",\"status\":\"in_progress\",\"priority\":1,\"issue_type\":\"task\",\"assignee\":\"beadboard-ojo\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-02T23:15:00Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-03T03:45:29Z\"}"} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T19:49:18Z","event_type":"updated","id":745,"issue_id":"beadboard-05a.1.1","new_value":"{\"notes\":\"Implemented Installer Contract ADR at docs/adr/2026-03-03-global-installer-contract-and-manifest.md defining installer.v1 schema, runtime command contract, wrapper contract, and detect-only driver boundary. Verification evidence: node --import tsx --test tests/lib/install-manifest.test.ts (red: MODULE_NOT_FOUND before implementation; green: 4/4 pass after implementation); npm run typecheck (pass); npm run lint (pass with 22 existing warnings, 0 errors); npm run test (fails in tests/hooks/url-state-integration.test.ts expecting graphTab flow but actual overview; pre-existing and outside 05a installer scope).\"}","old_value":"{\"id\":\"beadboard-05a.1.1\",\"title\":\"Installer Contract ADR\",\"description\":\"Write ADR for unified installer system and command contracts.\",\"status\":\"in_progress\",\"priority\":1,\"issue_type\":\"task\",\"assignee\":\"beadboard-ojo\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-02T23:14:57Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-03T03:45:29Z\"}"} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T19:49:19Z","event_type":"closed","id":746,"issue_id":"beadboard-05a.1.2","new_value":"Manifest schema + validation delivered with test coverage and canonical installer.v1 contract.","old_value":""} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T19:49:19Z","event_type":"closed","id":747,"issue_id":"beadboard-05a.1.1","new_value":"ADR completed and aligned to installer.v1 contract for downstream wrapper/launcher work.","old_value":""} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T19:49:29Z","event_type":"updated","id":748,"issue_id":"beadboard-05a.1","new_value":"{\"notes\":\"Completed contract foundation by closing beadboard-05a.1.1 (ADR) and beadboard-05a.1.2 (manifest schema + validator + tests). Evidence: node --import tsx --test tests/lib/install-manifest.test.ts (red then green 4/4); npm run typecheck (pass); npm run lint (pass with existing warnings); npm run test (fails unrelated in tests/hooks/url-state-integration.test.ts expecting flow but actual overview). Memory review: no new reusable memory from implementation itself beyond previously captured scope-discipline memory beadboard-9xb.\"}","old_value":"{\"id\":\"beadboard-05a.1\",\"title\":\"Installer Contract: canonical manifest + shared semantics\",\"description\":\"Goal: Define canonical installer manifest schema and shared install semantics for all wrappers.\",\"status\":\"in_progress\",\"priority\":1,\"issue_type\":\"task\",\"assignee\":\"beadboard-ojo\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-02T23:14:55Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-03T03:47:17Z\"}"} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T19:49:29Z","event_type":"closed","id":749,"issue_id":"beadboard-05a.1","new_value":"Installer contract phase complete; downstream wrappers/launcher/detection work unblocked.","old_value":""} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T19:51:07Z","event_type":"status_changed","id":750,"issue_id":"beadboard-05a.2","new_value":"{\"assignee\":\"beadboard-ojo\",\"status\":\"in_progress\"}","old_value":"{\"id\":\"beadboard-05a.2\",\"title\":\"Windows installer wrapper\",\"description\":\"Implement install.ps1 using canonical manifest + command shims.\",\"status\":\"open\",\"priority\":1,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-02T23:15:01Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-02T23:15:01Z\"}"} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T19:51:08Z","event_type":"status_changed","id":751,"issue_id":"beadboard-05a.3","new_value":"{\"assignee\":\"beadboard-ojo\",\"status\":\"in_progress\"}","old_value":"{\"id\":\"beadboard-05a.3\",\"title\":\"beadboard launcher (start/open/status)\",\"description\":\"Implement beadboard command lifecycle behavior.\",\"status\":\"open\",\"priority\":1,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-02T23:15:06Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-02T23:15:06Z\"}"} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T19:51:08Z","event_type":"status_changed","id":752,"issue_id":"beadboard-05a.4","new_value":"{\"assignee\":\"beadboard-ojo\",\"status\":\"in_progress\"}","old_value":"{\"id\":\"beadboard-05a.4\",\"title\":\"Linux/mac installer wrapper\",\"description\":\"Implement install.sh using canonical manifest + command shims.\",\"status\":\"open\",\"priority\":1,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-02T23:15:08Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-02T23:15:08Z\"}"} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T19:51:08Z","event_type":"status_changed","id":753,"issue_id":"beadboard-05a.5","new_value":"{\"assignee\":\"beadboard-ojo\",\"status\":\"in_progress\"}","old_value":"{\"id\":\"beadboard-05a.5\",\"title\":\"Driver detection alignment\",\"description\":\"Update skill detection scripts to emit platform-specific install remediation.\",\"status\":\"open\",\"priority\":1,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-02T23:15:10Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-02T23:15:10Z\"}"} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T19:56:36Z","event_type":"status_changed","id":754,"issue_id":"beadboard-05a.2.1","new_value":"{\"assignee\":\"beadboard-ojo\",\"status\":\"in_progress\"}","old_value":"{\"id\":\"beadboard-05a.2.1\",\"title\":\"Windows one-liner + PATH contract\",\"description\":\"Implement PowerShell bootstrap and deterministic PATH guidance.\",\"status\":\"open\",\"priority\":1,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-02T23:15:04Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-02T23:15:04Z\"}"} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T19:56:40Z","event_type":"status_changed","id":755,"issue_id":"beadboard-05a.6","new_value":"{\"assignee\":\"beadboard-ojo\",\"status\":\"in_progress\"}","old_value":"{\"id\":\"beadboard-05a.6\",\"title\":\"Installer CI + smoke tests\",\"description\":\"Add install/reinstall/failure smoke tests for win/linux/mac and CI jobs.\",\"status\":\"open\",\"priority\":1,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-02T23:15:12Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-02T23:15:12Z\"}"} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T19:56:41Z","event_type":"status_changed","id":756,"issue_id":"beadboard-05a.7","new_value":"{\"assignee\":\"beadboard-ojo\",\"status\":\"in_progress\"}","old_value":"{\"id\":\"beadboard-05a.7\",\"title\":\"Installer docs + operator quickstart\",\"description\":\"Publish one-liner docs and command behavior docs aligned with shipped behavior.\",\"status\":\"open\",\"priority\":1,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-02T23:15:15Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-02T23:15:15Z\"}"} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T19:58:29Z","event_type":"updated","id":757,"issue_id":"beadboard-05a.2.1","new_value":"{\"notes\":\"Implemented Windows one-liner + PATH contract in install/install.ps1. Script now installs bb.cmd and beadboard.cmd into %USERPROFILE%\\\\.beadboard\\\\bin and prints PATH update instruction. Supports BB_INSTALL_HOME override for deterministic testing.\"}","old_value":"{\"id\":\"beadboard-05a.2.1\",\"title\":\"Windows one-liner + PATH contract\",\"description\":\"Implement PowerShell bootstrap and deterministic PATH guidance.\",\"status\":\"in_progress\",\"priority\":1,\"issue_type\":\"task\",\"assignee\":\"beadboard-ojo\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-02T23:15:04Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-03T03:56:37Z\"}"} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T19:58:30Z","event_type":"closed","id":758,"issue_id":"beadboard-05a.2.1","new_value":"Windows one-liner and PATH contract shipped via install.ps1.","old_value":""} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T19:58:32Z","event_type":"updated","id":759,"issue_id":"beadboard-05a.2","new_value":"{\"notes\":\"Implemented Windows installer wrapper at install/install.ps1 using canonical installer.v1 semantics. Wrapper provisions both bb and beadboard shims; bb shim executes tools/bb.ts via npx tsx. Evidence: node --import tsx --test tests/scripts/install-wrappers-contract.test.ts (pass 2/2).\"}","old_value":"{\"id\":\"beadboard-05a.2\",\"title\":\"Windows installer wrapper\",\"description\":\"Implement install.ps1 using canonical manifest + command shims.\",\"status\":\"in_progress\",\"priority\":1,\"issue_type\":\"task\",\"assignee\":\"beadboard-ojo\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-02T23:15:01Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-03T03:51:08Z\"}"} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T19:58:32Z","event_type":"closed","id":760,"issue_id":"beadboard-05a.2","new_value":"Windows installer wrapper implemented with canonical shim behavior.","old_value":""} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T19:58:34Z","event_type":"updated","id":761,"issue_id":"beadboard-05a.3","new_value":"{\"notes\":\"Implemented launcher command at install/beadboard.mjs supporting beadboard start/open/status. status probes localhost with JSON output; open supports BB_OPEN_NOOP for testability; start runs npm run dev in repo root. Evidence: node --import tsx --test tests/scripts/beadboard-launcher.test.ts (pass 2/2).\"}","old_value":"{\"id\":\"beadboard-05a.3\",\"title\":\"beadboard launcher (start/open/status)\",\"description\":\"Implement beadboard command lifecycle behavior.\",\"status\":\"in_progress\",\"priority\":1,\"issue_type\":\"task\",\"assignee\":\"beadboard-ojo\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-02T23:15:06Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-03T03:51:08Z\"}"} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T19:58:34Z","event_type":"closed","id":762,"issue_id":"beadboard-05a.3","new_value":"beadboard launcher start/open/status behavior implemented and tested.","old_value":""} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T19:58:36Z","event_type":"updated","id":763,"issue_id":"beadboard-05a.4","new_value":"{\"notes\":\"Implemented Linux/mac installer wrapper at install/install.sh. Wrapper provisions ~/.beadboard/bin/beadboard and ~/.beadboard/bin/bb shims, supports BB_INSTALL_HOME override, and is idempotent across reinstall. Evidence: node --import tsx --test tests/scripts/install-sh-smoke.test.ts (pass 1/1).\"}","old_value":"{\"id\":\"beadboard-05a.4\",\"title\":\"Linux/mac installer wrapper\",\"description\":\"Implement install.sh using canonical manifest + command shims.\",\"status\":\"in_progress\",\"priority\":1,\"issue_type\":\"task\",\"assignee\":\"beadboard-ojo\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-02T23:15:08Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-03T03:51:09Z\"}"} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T19:58:37Z","event_type":"closed","id":764,"issue_id":"beadboard-05a.4","new_value":"Linux/mac installer wrapper implemented with install/reinstall smoke coverage.","old_value":""} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T19:58:39Z","event_type":"updated","id":765,"issue_id":"beadboard-05a.5","new_value":"{\"notes\":\"Aligned driver detection remediation to installer wrappers by updating skills/beadboard-driver/scripts/lib/driver-lib.mjs. Missing/invalid BB resolution now returns platform-specific remediation including install/install.ps1 on Windows or install/install.sh on POSIX. Evidence: node --import tsx --test tests/skills/beadboard-driver/resolve-bb.test.ts (pass 5/5).\"}","old_value":"{\"id\":\"beadboard-05a.5\",\"title\":\"Driver detection alignment\",\"description\":\"Update skill detection scripts to emit platform-specific install remediation.\",\"status\":\"in_progress\",\"priority\":1,\"issue_type\":\"task\",\"assignee\":\"beadboard-ojo\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-02T23:15:10Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-03T03:51:09Z\"}"} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T19:58:39Z","event_type":"closed","id":766,"issue_id":"beadboard-05a.5","new_value":"Driver detection now emits platform-specific installer remediation guidance.","old_value":""} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T19:58:41Z","event_type":"updated","id":767,"issue_id":"beadboard-05a.6","new_value":"{\"notes\":\"Added installer CI + smoke coverage: .github/workflows/installer-smoke.yml with ubuntu and windows jobs. Added/registered smoke tests: tests/scripts/install-wrappers-contract.test.ts, tests/scripts/install-sh-smoke.test.ts, tests/scripts/beadboard-launcher.test.ts, tests/scripts/installer-ci-contract.test.ts. Evidence: node --import tsx --test tests/scripts/installer-ci-contract.test.ts (pass 2/2), install smoke tests pass.\"}","old_value":"{\"id\":\"beadboard-05a.6\",\"title\":\"Installer CI + smoke tests\",\"description\":\"Add install/reinstall/failure smoke tests for win/linux/mac and CI jobs.\",\"status\":\"in_progress\",\"priority\":1,\"issue_type\":\"task\",\"assignee\":\"beadboard-ojo\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-02T23:15:12Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-03T03:56:41Z\"}"} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T19:58:41Z","event_type":"closed","id":768,"issue_id":"beadboard-05a.6","new_value":"Installer CI workflow and smoke test coverage added for wrappers and launcher contract.","old_value":""} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T19:58:43Z","event_type":"updated","id":769,"issue_id":"beadboard-05a.7","new_value":"{\"notes\":\"Published installer/operator quickstart in README.md: explicit one-liners for install/install.sh and install/install.ps1, shim locations, and beadboard start/open/status commands. Evidence: node --import tsx --test tests/docs/installer-quickstart-contract.test.ts (pass 2/2).\"}","old_value":"{\"id\":\"beadboard-05a.7\",\"title\":\"Installer docs + operator quickstart\",\"description\":\"Publish one-liner docs and command behavior docs aligned with shipped behavior.\",\"status\":\"in_progress\",\"priority\":1,\"issue_type\":\"task\",\"assignee\":\"beadboard-ojo\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-02T23:15:15Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-03T03:56:42Z\"}"} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T19:58:43Z","event_type":"closed","id":770,"issue_id":"beadboard-05a.7","new_value":"Installer docs and operator quickstart updated to match shipped behavior.","old_value":""} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T19:58:45Z","event_type":"closed","id":771,"issue_id":"beadboard-05a","new_value":"all steps complete","old_value":""} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T20:31:42Z","event_type":"created","id":772,"issue_id":"beadboard-1kt","new_value":"","old_value":""} +{"actor":"ZenchantLive","comment":"Added label: gt:agent","created_at":"2026-03-02T20:31:42Z","event_type":"label_added","id":773,"issue_id":"beadboard-1kt","new_value":null,"old_value":null} +{"actor":"ZenchantLive","comment":"Added label: role:orchestrator","created_at":"2026-03-02T20:31:42Z","event_type":"label_added","id":774,"issue_id":"beadboard-1kt","new_value":null,"old_value":null} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T20:32:06Z","event_type":"created","id":775,"issue_id":"beadboard-vyt","new_value":"","old_value":""} +{"actor":"ZenchantLive","comment":"Added label: installation","created_at":"2026-03-02T20:32:06Z","event_type":"label_added","id":776,"issue_id":"beadboard-vyt","new_value":null,"old_value":null} +{"actor":"ZenchantLive","comment":"Added label: cli","created_at":"2026-03-02T20:32:06Z","event_type":"label_added","id":777,"issue_id":"beadboard-vyt","new_value":null,"old_value":null} +{"actor":"ZenchantLive","comment":"Added label: runtime","created_at":"2026-03-02T20:32:06Z","event_type":"label_added","id":778,"issue_id":"beadboard-vyt","new_value":null,"old_value":null} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T20:32:12Z","event_type":"status_changed","id":779,"issue_id":"beadboard-vyt","new_value":"{\"assignee\":\"beadboard-1kt\",\"status\":\"in_progress\"}","old_value":"{\"id\":\"beadboard-vyt\",\"title\":\"Global installer runtime manager implementation\",\"description\":\"Scope: Implement npm-global-first runtime manager with migration from repo-path shims. Out of Scope: unrelated UI/test stabilization. Success Criteria: Tasks 0-8 from docs/plans/2026-03-03-global-install-runtime-manager.md implemented with verification evidence.\",\"status\":\"open\",\"priority\":1,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-03T04:32:07Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-03T04:32:07Z\"}"} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T20:33:49Z","event_type":"updated","id":780,"issue_id":"beadboard-vyt","new_value":"{\"notes\":\"Task 0 baseline (2026-03-03): npm run typecheck PASS (tsc --noEmit exit 0). npm run lint FAIL with 4 errors in .beads/fix.js/.beads/fix2.js (@typescript-eslint/no-require-imports) + 21 warnings in existing UI files. npm run test PASS across enumerated suite (0 fails).\"}","old_value":"{\"id\":\"beadboard-vyt\",\"title\":\"Global installer runtime manager implementation\",\"description\":\"Scope: Implement npm-global-first runtime manager with migration from repo-path shims. Out of Scope: unrelated UI/test stabilization. Success Criteria: Tasks 0-8 from docs/plans/2026-03-03-global-install-runtime-manager.md implemented with verification evidence.\",\"status\":\"in_progress\",\"priority\":1,\"issue_type\":\"task\",\"assignee\":\"beadboard-1kt\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-03T04:32:07Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-03T04:32:13Z\"}"} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T20:36:21Z","event_type":"updated","id":781,"issue_id":"beadboard-vyt","new_value":"{\"notes\":\"Batch 1 (Tasks 0-2) evidence: Task1 RED: node --import tsx --test tests/docs/runtime-manager-adr-contract.test.ts -\\u003e FAIL ENOENT docs/adr/2026-03-03-runtime-manager-global-install.md. Task1 GREEN: same command -\\u003e PASS (1/1). Task1 commit: a3ca82b. Task2 RED: node --import tsx --test tests/lib/runtime-manager.test.ts -\\u003e FAIL Cannot find module ../../src/lib/runtime-manager. Task2 GREEN: same command -\\u003e PASS (2/2). Task2 commit: 0f33a65. Note: stale .git/index.lock blocked one commit attempt; resolved via node skills/beadboard-driver/scripts/heal-common-issues.mjs --fix-git-index-lock --apply --project-root .\"}","old_value":"{\"id\":\"beadboard-vyt\",\"title\":\"Global installer runtime manager implementation\",\"description\":\"Scope: Implement npm-global-first runtime manager with migration from repo-path shims. Out of Scope: unrelated UI/test stabilization. Success Criteria: Tasks 0-8 from docs/plans/2026-03-03-global-install-runtime-manager.md implemented with verification evidence.\",\"notes\":\"Task 0 baseline (2026-03-03): npm run typecheck PASS (tsc --noEmit exit 0). npm run lint FAIL with 4 errors in .beads/fix.js/.beads/fix2.js (@typescript-eslint/no-require-imports) + 21 warnings in existing UI files. npm run test PASS across enumerated suite (0 fails).\",\"status\":\"in_progress\",\"priority\":1,\"issue_type\":\"task\",\"assignee\":\"beadboard-1kt\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-03T04:32:07Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-03T04:33:49Z\"}"} +{"actor":"zenchantlive","comment":null,"created_at":"2026-03-02T20:37:23Z","event_type":"updated","id":782,"issue_id":"beadboard-txj.2","new_value":"{\"notes\":\"npm run test passed. Transitive edge styling verified.\"}","old_value":"{\"id\":\"beadboard-txj.2\",\"title\":\"Apply Status Colors and Transitive Context to Graph Edges\",\"description\":\"Scope: Update ReactFlow Edge generation in workflow-graph.tsx, dependency-graph-page.tsx, and specialized-agent-dag.tsx.\\\\nOut of scope: Algorithm calculation.\\\\nSuccess Criteria: Critical/in-progress edges glow bright amber. Standard direct edges are blue/slate. Transitive edges are dimmed/dashed dark gray.\",\"status\":\"in_progress\",\"priority\":0,\"issue_type\":\"task\",\"assignee\":\"beadboard-8bs\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-03T03:36:41Z\",\"created_by\":\"zenchantlive\",\"updated_at\":\"2026-03-03T03:48:25Z\"}"} +{"actor":"zenchantlive","comment":null,"created_at":"2026-03-02T20:39:01Z","event_type":"closed","id":783,"issue_id":"beadboard-txj.2","new_value":"Transitive edges \u0026 status colors successfully implemented and tested.","old_value":""} +{"actor":"zenchantlive","comment":null,"created_at":"2026-03-02T20:43:28Z","event_type":"created","id":784,"issue_id":"beadboard-agent-anti","new_value":"","old_value":""} +{"actor":"zenchantlive","comment":"Added label: gt:agent","created_at":"2026-03-02T20:43:28Z","event_type":"label_added","id":785,"issue_id":"beadboard-agent-anti","new_value":null,"old_value":null} +{"actor":"zenchantlive","comment":"Added label: role:orchestrator","created_at":"2026-03-02T20:43:28Z","event_type":"label_added","id":786,"issue_id":"beadboard-agent-anti","new_value":null,"old_value":null} +{"actor":"zenchantlive","comment":null,"created_at":"2026-03-02T20:43:33Z","event_type":"status_changed","id":787,"issue_id":"beadboard-txj.3","new_value":"{\"assignee\":\"beadboard-agent-anti\",\"status\":\"in_progress\"}","old_value":"{\"id\":\"beadboard-txj.3\",\"title\":\"Implement Graph Focus (Selection) Interactivity\",\"description\":\"Scope: When a node is clicked, highlight inbound/outbound blockers clearly, fading out the rest of the graph.\\\\nSuccess Criteria: The critical chain of a selected task is visually obvious.\",\"status\":\"open\",\"priority\":1,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-03T03:36:42Z\",\"created_by\":\"zenchantlive\",\"updated_at\":\"2026-03-03T03:36:42Z\"}"} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T20:50:15Z","event_type":"updated","id":788,"issue_id":"beadboard-vyt","new_value":"{\"notes\":\"Batch 2-7 evidence: Task3 RED: node --import tsx --test tests/scripts/beadboard-launcher-runtime.test.ts -\\u003e FAIL missing runtimeRoot/installMode. GREEN: launcher tests pass (beadboard-launcher.test.ts + beadboard-launcher-runtime.test.ts). Commit 205f950. Task4 RED: node --import tsx --test tests/scripts/install-legacy-migration.test.ts -\\u003e FAIL assert.fail placeholder. GREEN: install-wrappers-contract/install-sh-smoke/install-legacy-migration all PASS. Commit 7945ee8. Task5 RED: node --import tsx --test tests/cli/beadboard-cli.test.ts -\\u003e FAIL missing module. GREEN: CLI tests PASS. Commit 4a98ab2. Task6 RED: resolve-bb + session-preflight tests FAIL missing npm-global remediation text. GREEN: both PASS after copy updates. Commit 8df567c. Task7 RED: installer-ci + installer-quickstart tests FAIL missing doctor command/docs text. GREEN: both PASS after CI/docs updates. Commit 6fbd632.\"}","old_value":"{\"id\":\"beadboard-vyt\",\"title\":\"Global installer runtime manager implementation\",\"description\":\"Scope: Implement npm-global-first runtime manager with migration from repo-path shims. Out of Scope: unrelated UI/test stabilization. Success Criteria: Tasks 0-8 from docs/plans/2026-03-03-global-install-runtime-manager.md implemented with verification evidence.\",\"notes\":\"Batch 1 (Tasks 0-2) evidence: Task1 RED: node --import tsx --test tests/docs/runtime-manager-adr-contract.test.ts -\\u003e FAIL ENOENT docs/adr/2026-03-03-runtime-manager-global-install.md. Task1 GREEN: same command -\\u003e PASS (1/1). Task1 commit: a3ca82b. Task2 RED: node --import tsx --test tests/lib/runtime-manager.test.ts -\\u003e FAIL Cannot find module ../../src/lib/runtime-manager. Task2 GREEN: same command -\\u003e PASS (2/2). Task2 commit: 0f33a65. Note: stale .git/index.lock blocked one commit attempt; resolved via node skills/beadboard-driver/scripts/heal-common-issues.mjs --fix-git-index-lock --apply --project-root .\",\"status\":\"in_progress\",\"priority\":1,\"issue_type\":\"task\",\"assignee\":\"beadboard-1kt\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-03T04:32:07Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-03T04:36:21Z\"}"} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T20:50:26Z","event_type":"updated","id":789,"issue_id":"beadboard-vyt","new_value":"{\"notes\":\"Task8 verification (2026-03-03): npm run typecheck PASS after CLI test typing fix. npm run lint FAIL with known pre-existing errors only in .beads/fix.js and .beads/fix2.js (no new lint errors introduced by runtime-manager changes), plus existing warnings. npm run test PASS across explicitly enumerated suite including new runtime/install/cli tests. Targeted acceptance checks PASS: tests/lib/runtime-manager.test.ts, tests/scripts/beadboard-launcher-runtime.test.ts, tests/scripts/install-legacy-migration.test.ts, tests/skills/beadboard-driver/resolve-bb.test.ts.\"}","old_value":"{\"id\":\"beadboard-vyt\",\"title\":\"Global installer runtime manager implementation\",\"description\":\"Scope: Implement npm-global-first runtime manager with migration from repo-path shims. Out of Scope: unrelated UI/test stabilization. Success Criteria: Tasks 0-8 from docs/plans/2026-03-03-global-install-runtime-manager.md implemented with verification evidence.\",\"notes\":\"Batch 2-7 evidence: Task3 RED: node --import tsx --test tests/scripts/beadboard-launcher-runtime.test.ts -\\u003e FAIL missing runtimeRoot/installMode. GREEN: launcher tests pass (beadboard-launcher.test.ts + beadboard-launcher-runtime.test.ts). Commit 205f950. Task4 RED: node --import tsx --test tests/scripts/install-legacy-migration.test.ts -\\u003e FAIL assert.fail placeholder. GREEN: install-wrappers-contract/install-sh-smoke/install-legacy-migration all PASS. Commit 7945ee8. Task5 RED: node --import tsx --test tests/cli/beadboard-cli.test.ts -\\u003e FAIL missing module. GREEN: CLI tests PASS. Commit 4a98ab2. Task6 RED: resolve-bb + session-preflight tests FAIL missing npm-global remediation text. GREEN: both PASS after copy updates. Commit 8df567c. Task7 RED: installer-ci + installer-quickstart tests FAIL missing doctor command/docs text. GREEN: both PASS after CI/docs updates. Commit 6fbd632.\",\"status\":\"in_progress\",\"priority\":1,\"issue_type\":\"task\",\"assignee\":\"beadboard-1kt\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-03T04:32:07Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-03T04:50:15Z\"}"} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T20:50:30Z","event_type":"closed","id":790,"issue_id":"beadboard-vyt","new_value":"Completed global install runtime-manager rollout plan phases 0-8 with TDD evidence, runtime metadata/shim migration, launcher runtime status, CLI doctor/update/uninstall, driver remediation alignment, and CI/docs updates.","old_value":""} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T20:50:34Z","event_type":"updated","id":791,"issue_id":"beadboard-vyt","new_value":"{\"notes\":\"Memory review: no new reusable memory.\"}","old_value":"{\"id\":\"beadboard-vyt\",\"title\":\"Global installer runtime manager implementation\",\"description\":\"Scope: Implement npm-global-first runtime manager with migration from repo-path shims. Out of Scope: unrelated UI/test stabilization. Success Criteria: Tasks 0-8 from docs/plans/2026-03-03-global-install-runtime-manager.md implemented with verification evidence.\",\"notes\":\"Task8 verification (2026-03-03): npm run typecheck PASS after CLI test typing fix. npm run lint FAIL with known pre-existing errors only in .beads/fix.js and .beads/fix2.js (no new lint errors introduced by runtime-manager changes), plus existing warnings. npm run test PASS across explicitly enumerated suite including new runtime/install/cli tests. Targeted acceptance checks PASS: tests/lib/runtime-manager.test.ts, tests/scripts/beadboard-launcher-runtime.test.ts, tests/scripts/install-legacy-migration.test.ts, tests/skills/beadboard-driver/resolve-bb.test.ts.\",\"status\":\"closed\",\"priority\":1,\"issue_type\":\"task\",\"assignee\":\"beadboard-1kt\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-03T04:32:07Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-03T04:50:31Z\",\"closed_at\":\"2026-03-03T04:50:31Z\",\"close_reason\":\"Completed global install runtime-manager rollout plan phases 0-8 with TDD evidence, runtime metadata/shim migration, launcher runtime status, CLI doctor/update/uninstall, driver remediation alignment, and CI/docs updates.\"}"} diff --git a/.beads/backup/issues.jsonl b/.beads/backup/issues.jsonl index b42d2db..5f2b338 100644 --- a/.beads/backup/issues.jsonl +++ b/.beads/backup/issues.jsonl @@ -314,17 +314,17 @@ {"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":"beadboard-axe","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":"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] Global BeadBoard Installer + Runtime Launch","updated_at":"2026-03-02T23:17:57Z","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":"b46f92514620badafbf37e267b065212fa9cd3b8c73b635d8ed33727f362f5a5","created_at":"2026-03-02T23:14:55Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Goal: Define canonical installer manifest schema and shared install semantics for all wrappers.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-05a.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":"open","target":"","timeout_ns":0,"title":"Installer Contract: canonical manifest + shared semantics","updated_at":"2026-03-02T23:14:55Z","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":"38fd5f11ddc06e444226dee9fddcec2cdd964f7da36dd9fb49e69c2a35e8f8a9","created_at":"2026-03-02T23:14:57Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Write ADR for unified installer system and command contracts.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-05a.1.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":"open","target":"","timeout_ns":0,"title":"Installer Contract ADR","updated_at":"2026-03-02T23:14:57Z","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":"8aec1c9e97497c5b12d9aabc86f9a2ee0a7b93415d7e76ead25bcb8b03022d64","created_at":"2026-03-02T23:15:00Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Define install/manifest contract and add validation tests.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-05a.1.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":"open","target":"","timeout_ns":0,"title":"Manifest Schema + Validation","updated_at":"2026-03-02T23:15:00Z","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":"ff9449234f7ee30eef4111d8cfea28460d95c7f71353cd4e1425801123bfe318","created_at":"2026-03-02T23:15:01Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Implement install.ps1 using canonical manifest + command shims.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-05a.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":"open","target":"","timeout_ns":0,"title":"Windows installer wrapper","updated_at":"2026-03-02T23:15:01Z","waiters":"","wisp_type":"","work_type":""} -{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"411bb4dfc42167c816eabe288247b4ec371bc63bab1d2606e0c85019f181a197","created_at":"2026-03-02T23:15:04Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Implement PowerShell bootstrap and deterministic PATH guidance.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-05a.2.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":"open","target":"","timeout_ns":0,"title":"Windows one-liner + PATH contract","updated_at":"2026-03-02T23:15:04Z","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":"cc1eda6140d94d7d78aa985d3f20a2b854eee3968c16f68298e0ecf44854200e","created_at":"2026-03-02T23:15:06Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Implement beadboard command lifecycle behavior.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-05a.3","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"open","target":"","timeout_ns":0,"title":"beadboard launcher (start/open/status)","updated_at":"2026-03-02T23:15:06Z","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":"d4572e801e17739a0cc0b7597c63d3e384af8a10370db53ba369002ed60e34a8","created_at":"2026-03-02T23:15:08Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Implement install.sh using canonical manifest + command shims.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-05a.4","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"open","target":"","timeout_ns":0,"title":"Linux/mac installer wrapper","updated_at":"2026-03-02T23:15:08Z","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":"c3b35eb64d6b95e5765bffa3df7c2dff769c09e3b020916ae34b72744d11434c","created_at":"2026-03-02T23:15:10Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Update skill detection scripts to emit platform-specific install remediation.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-05a.5","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"open","target":"","timeout_ns":0,"title":"Driver detection alignment","updated_at":"2026-03-02T23:15:10Z","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":"b1ba72da17155c663541ff13920c9eb98ddb2492a01c63657ac76217a226f577","created_at":"2026-03-02T23:15:12Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Add install/reinstall/failure smoke tests for win/linux/mac and CI jobs.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-05a.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":"Installer CI + smoke tests","updated_at":"2026-03-02T23:15:12Z","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":"86710347e6c6e1a11d5df55015db1ee725a1bde89bc5ff88c056b811acb283a9","created_at":"2026-03-02T23:15:15Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Publish one-liner docs and command behavior docs aligned with shipped behavior.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-05a.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":"Installer docs + operator quickstart","updated_at":"2026-03-02T23:15:15Z","waiters":"","wisp_type":"","work_type":""} +{"acceptance_criteria":"","actor":"","agent_state":"","assignee":"beadboard-axe","await_id":"","await_type":"","close_reason":"all steps complete","closed_at":"2026-03-03T03:58:44Z","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":"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] Global BeadBoard Installer + Runtime Launch","updated_at":"2026-03-03T03:58:44Z","waiters":"","wisp_type":"","work_type":""} +{"acceptance_criteria":"","actor":"","agent_state":"","assignee":"beadboard-ojo","await_id":"","await_type":"","close_reason":"Installer contract phase complete; downstream wrappers/launcher/detection work unblocked.","closed_at":"2026-03-03T03:49:29Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"b46f92514620badafbf37e267b065212fa9cd3b8c73b635d8ed33727f362f5a5","created_at":"2026-03-02T23:14:55Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Goal: Define canonical installer manifest schema and shared install semantics for all wrappers.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-05a.1","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Completed contract foundation by closing beadboard-05a.1.1 (ADR) and beadboard-05a.1.2 (manifest schema + validator + tests). Evidence: node --import tsx --test tests/lib/install-manifest.test.ts (red then green 4/4); npm run typecheck (pass); npm run lint (pass with existing warnings); npm run test (fails unrelated in tests/hooks/url-state-integration.test.ts expecting flow but actual overview). Memory review: no new reusable memory from implementation itself beyond previously captured scope-discipline memory beadboard-9xb.","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":"Installer Contract: canonical manifest + shared semantics","updated_at":"2026-03-03T03:49:29Z","waiters":"","wisp_type":"","work_type":""} +{"acceptance_criteria":"","actor":"","agent_state":"","assignee":"beadboard-ojo","await_id":"","await_type":"","close_reason":"ADR completed and aligned to installer.v1 contract for downstream wrapper/launcher work.","closed_at":"2026-03-03T03:49:18Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"38fd5f11ddc06e444226dee9fddcec2cdd964f7da36dd9fb49e69c2a35e8f8a9","created_at":"2026-03-02T23:14:57Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Write ADR for unified installer system and command contracts.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-05a.1.1","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Implemented Installer Contract ADR at docs/adr/2026-03-03-global-installer-contract-and-manifest.md defining installer.v1 schema, runtime command contract, wrapper contract, and detect-only driver boundary. Verification evidence: node --import tsx --test tests/lib/install-manifest.test.ts (red: MODULE_NOT_FOUND before implementation; green: 4/4 pass after implementation); npm run typecheck (pass); npm run lint (pass with 22 existing warnings, 0 errors); npm run test (fails in tests/hooks/url-state-integration.test.ts expecting graphTab flow but actual overview; pre-existing and outside 05a installer scope).","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":"Installer Contract ADR","updated_at":"2026-03-03T03:49:18Z","waiters":"","wisp_type":"","work_type":""} +{"acceptance_criteria":"","actor":"","agent_state":"","assignee":"beadboard-ojo","await_id":"","await_type":"","close_reason":"Manifest schema + validation delivered with test coverage and canonical installer.v1 contract.","closed_at":"2026-03-03T03:49:18Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"8aec1c9e97497c5b12d9aabc86f9a2ee0a7b93415d7e76ead25bcb8b03022d64","created_at":"2026-03-02T23:15:00Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Define install/manifest contract and add validation tests.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-05a.1.2","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Added canonical installer manifest contract + validator in src/lib/install-manifest.ts and regression coverage in tests/lib/install-manifest.test.ts. Added new test file to explicit npm test enumeration in package.json. TDD evidence: node --import tsx --test tests/lib/install-manifest.test.ts failed first with Cannot find module '../../src/lib/install-manifest'; then passed 4/4 after implementation. Repo gates: npm run typecheck (pass), npm run lint (pass with 22 existing warnings), npm run test (fails unrelated in tests/hooks/url-state-integration.test.ts: expected graphTab flow but got 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":"Manifest Schema + Validation","updated_at":"2026-03-03T03:49:18Z","waiters":"","wisp_type":"","work_type":""} +{"acceptance_criteria":"","actor":"","agent_state":"","assignee":"beadboard-ojo","await_id":"","await_type":"","close_reason":"Windows installer wrapper implemented with canonical shim behavior.","closed_at":"2026-03-03T03:58:33Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"ff9449234f7ee30eef4111d8cfea28460d95c7f71353cd4e1425801123bfe318","created_at":"2026-03-02T23:15:01Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Implement install.ps1 using canonical manifest + command shims.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-05a.2","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Implemented Windows installer wrapper at install/install.ps1 using canonical installer.v1 semantics. Wrapper provisions both bb and beadboard shims; bb shim executes tools/bb.ts via npx tsx. Evidence: node --import tsx --test tests/scripts/install-wrappers-contract.test.ts (pass 2/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":"Windows installer wrapper","updated_at":"2026-03-03T03:58:33Z","waiters":"","wisp_type":"","work_type":""} +{"acceptance_criteria":"","actor":"","agent_state":"","assignee":"beadboard-ojo","await_id":"","await_type":"","close_reason":"Windows one-liner and PATH contract shipped via install.ps1.","closed_at":"2026-03-03T03:58:30Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"411bb4dfc42167c816eabe288247b4ec371bc63bab1d2606e0c85019f181a197","created_at":"2026-03-02T23:15:04Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Implement PowerShell bootstrap and deterministic PATH guidance.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-05a.2.1","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Implemented Windows one-liner + PATH contract in install/install.ps1. Script now installs bb.cmd and beadboard.cmd into %USERPROFILE%\\.beadboard\\bin and prints PATH update instruction. Supports BB_INSTALL_HOME override for deterministic testing.","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":"Windows one-liner + PATH contract","updated_at":"2026-03-03T03:58:30Z","waiters":"","wisp_type":"","work_type":""} +{"acceptance_criteria":"","actor":"","agent_state":"","assignee":"beadboard-ojo","await_id":"","await_type":"","close_reason":"beadboard launcher start/open/status behavior implemented and tested.","closed_at":"2026-03-03T03:58:35Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"cc1eda6140d94d7d78aa985d3f20a2b854eee3968c16f68298e0ecf44854200e","created_at":"2026-03-02T23:15:06Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Implement beadboard command lifecycle behavior.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-05a.3","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Implemented launcher command at install/beadboard.mjs supporting beadboard start/open/status. status probes localhost with JSON output; open supports BB_OPEN_NOOP for testability; start runs npm run dev in repo root. Evidence: node --import tsx --test tests/scripts/beadboard-launcher.test.ts (pass 2/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":"beadboard launcher (start/open/status)","updated_at":"2026-03-03T03:58:35Z","waiters":"","wisp_type":"","work_type":""} +{"acceptance_criteria":"","actor":"","agent_state":"","assignee":"beadboard-ojo","await_id":"","await_type":"","close_reason":"Linux/mac installer wrapper implemented with install/reinstall smoke coverage.","closed_at":"2026-03-03T03:58:38Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"d4572e801e17739a0cc0b7597c63d3e384af8a10370db53ba369002ed60e34a8","created_at":"2026-03-02T23:15:08Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Implement install.sh using canonical manifest + command shims.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-05a.4","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Implemented Linux/mac installer wrapper at install/install.sh. Wrapper provisions ~/.beadboard/bin/beadboard and ~/.beadboard/bin/bb shims, supports BB_INSTALL_HOME override, and is idempotent across reinstall. Evidence: node --import tsx --test tests/scripts/install-sh-smoke.test.ts (pass 1/1).","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Linux/mac installer wrapper","updated_at":"2026-03-03T03:58:38Z","waiters":"","wisp_type":"","work_type":""} +{"acceptance_criteria":"","actor":"","agent_state":"","assignee":"beadboard-ojo","await_id":"","await_type":"","close_reason":"Driver detection now emits platform-specific installer remediation guidance.","closed_at":"2026-03-03T03:58:40Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"c3b35eb64d6b95e5765bffa3df7c2dff769c09e3b020916ae34b72744d11434c","created_at":"2026-03-02T23:15:10Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Update skill detection scripts to emit platform-specific install remediation.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-05a.5","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Aligned driver detection remediation to installer wrappers by updating skills/beadboard-driver/scripts/lib/driver-lib.mjs. Missing/invalid BB resolution now returns platform-specific remediation including install/install.ps1 on Windows or install/install.sh on POSIX. Evidence: node --import tsx --test tests/skills/beadboard-driver/resolve-bb.test.ts (pass 5/5).","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":"Driver detection alignment","updated_at":"2026-03-03T03:58:40Z","waiters":"","wisp_type":"","work_type":""} +{"acceptance_criteria":"","actor":"","agent_state":"","assignee":"beadboard-ojo","await_id":"","await_type":"","close_reason":"Installer CI workflow and smoke test coverage added for wrappers and launcher contract.","closed_at":"2026-03-03T03:58:42Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"b1ba72da17155c663541ff13920c9eb98ddb2492a01c63657ac76217a226f577","created_at":"2026-03-02T23:15:12Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Add install/reinstall/failure smoke tests for win/linux/mac and CI jobs.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-05a.6","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Added installer CI + smoke coverage: .github/workflows/installer-smoke.yml with ubuntu and windows jobs. Added/registered smoke tests: tests/scripts/install-wrappers-contract.test.ts, tests/scripts/install-sh-smoke.test.ts, tests/scripts/beadboard-launcher.test.ts, tests/scripts/installer-ci-contract.test.ts. Evidence: node --import tsx --test tests/scripts/installer-ci-contract.test.ts (pass 2/2), install smoke 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":"","status":"closed","target":"","timeout_ns":0,"title":"Installer CI + smoke tests","updated_at":"2026-03-03T03:58:42Z","waiters":"","wisp_type":"","work_type":""} +{"acceptance_criteria":"","actor":"","agent_state":"","assignee":"beadboard-ojo","await_id":"","await_type":"","close_reason":"Installer docs and operator quickstart updated to match shipped behavior.","closed_at":"2026-03-03T03:58:42Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"86710347e6c6e1a11d5df55015db1ee725a1bde89bc5ff88c056b811acb283a9","created_at":"2026-03-02T23:15:15Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Publish one-liner docs and command behavior docs aligned with shipped behavior.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-05a.7","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Published installer/operator quickstart in README.md: explicit one-liners for install/install.sh and install/install.ps1, shim locations, and beadboard start/open/status commands. Evidence: node --import tsx --test tests/docs/installer-quickstart-contract.test.ts (pass 2/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":"Installer docs + operator quickstart","updated_at":"2026-03-03T03:58:42Z","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":""} @@ -342,6 +342,7 @@ {"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":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"d4acbff573c86d33aaf8eaf9c36ddf7c9f3d6f230605262b0944bf6b8610f84c","created_at":"2026-03-03T04:31:43Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Orchestrates runtime-manager global install plan execution with TDD and verification gates.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-1kt","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-runtime-manager-orchestrator","updated_at":"2026-03-03T04:31:43Z","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":"48fb2346830c8959e18cf9490b88c8f52ff021449c8ded6c58b1dea388b6c199","created_at":"2026-03-02T23:06:16Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\\n- Parent: beadboard-c70 / beadboard-05a\\n\\nTASK CONTRACT\\n- Goal: Implement Windows installer wrapper using canonical manifest and register bb/beadboard commands.\\n- Success Criteria:\\n - one-liner compatible install.ps1\\n - bb and beadboard command shims installed globally\\n- Scope: Windows install path + PATH guidance\\n- Out of Scope: Linux/mac shell wrapper\\n\\nVERIFICATION REQUIREMENTS\\n- npm run typecheck\\n- npm run lint\\n- npm run test","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-27u","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Superseded by hierarchical execution tree under beadboard-05a.x","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":"deferred","target":"","timeout_ns":0,"title":"Windows wrapper: install.ps1 + global command shims","updated_at":"2026-03-02T23:16:16Z","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":"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":""} @@ -418,6 +419,7 @@ {"acceptance_criteria":"Templates can be applied to epics. BeadIssue gets templateId field. Template picker applies template to selected epic. Assignment panel shows template roster when epic selected.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Implemented epic-level template assignment. BeadIssue now has templateId field. Assignment panel shows Epic Template section when epic selected, with team roster. Template picker applies template to epic. Fixed all test files with new field.","closed_at":"2026-02-26T18:11:04Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"be154ecd5cc535438c43a5ca89428bcafe9fb8c308a3d7023d891b8e53504ac8","created_at":"2026-02-26T17:57:14Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Scope: Add templateId to BeadIssue type, update template picker to apply to epics, show template info in assignment panel. Out of scope: AI auto-assignment logic, multi-agent execution.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-9ce","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Added templateId to BeadIssue type. Updated assignment-panel with epic template section. Template picker now applies template to selected epic. All typecheck, lint, and tests pass.","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":2,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"closed","target":"","timeout_ns":0,"title":"Epic-Level Template Assignment","updated_at":"2026-02-26T18:11:04Z","waiters":"","wisp_type":"","work_type":"mutex"} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Ratified canonical memory from user correction to preserve multi-agent scope discipline.","closed_at":"2026-03-03T03:39:04Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"494a948a05bbffa055ea23bc070e68b75cde9ab625f4e88a2c2b1918fffa9025","created_at":"2026-03-03T03:38:50Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Scope: Sessions where multiple agents are active and the user clarifies ownership boundaries.\\nOut of Scope: Single-agent sessions with no explicit ownership split.\\nRule: If the user states a bead is owned by another agent, immediately stop work on that bead and continue only on the user-assigned scope.\\nRationale: Prevents duplicate/conflicting work and keeps coordination clean.\\nFailure Mode: Parallel agents overwrite each other or create handoff confusion.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-9xb","is_template":0,"issue_type":"decision","last_activity":null,"metadata":"{}","mol_type":"","notes":"Created from live user correction on 2026-03-02: scope for this agent is beadboard-05a; beadboard-txj is assigned elsewhere. Applied immediately by redirecting NEXT_SESSION_PROMPT work back to 05a.","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"[MEMORY][AGENT-OPS][SOFT] Respect user-assigned scope in multi-agent sessions","updated_at":"2026-03-03T03:39:04Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"When clicking Archetypes or Templates buttons, show a popup modal with list of existing items. User can select to use/edit or create new. Modal should have same styling as inspector modals.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Implemented popup modal pickers for Archetypes and Templates. Clicking the buttons now opens a modal with list of existing items, Select/Edit/Create options.","closed_at":"2026-02-26T17:47:58Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"e02327e0255e03eafc4ef4c3c4568a8f7282dd9340e74259ca40f743fb69e3dc","created_at":"2026-02-26T17:39:10Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-adr","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Created ArchetypePicker and TemplatePicker modal components. Updated assignment-panel.tsx to use picker modals instead of inline lists. Typecheck and lint pass.","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":2,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"closed","target":"","timeout_ns":0,"title":"Archetype/Template Picker Modal","updated_at":"2026-02-26T17:47:58Z","waiters":"","wisp_type":"","work_type":"mutex"} +{"acceptance_criteria":"","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":"99afab139d6203bec9e1d238e23344c3323422ef83fad813cd586963663e3cb3","created_at":"2026-03-03T04:43:29Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Scope: AI pair programmer responsible for orchestrating multi-agent tasks and executing UI/Graph features.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-agent-anti","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: Antigravity Orchestrator","updated_at":"2026-03-03T04:43:29Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"6-8 built-in templates for common scenarios, each with optimized team composition, icons, colors, descriptions explaining when to use","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Created 9 intelligent preset templates for common development workflows with optimized team compositions.","closed_at":"2026-02-26T05:19:28Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"700f2faa8ddc32644cf35a934f7ba48230e1f7252261aa8b13b51c0368b43a64","created_at":"2026-02-26T05:13:43Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Create intelligently constructed preset templates based on the 6 archetypes for common development workflows","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-agp","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Created 9 intelligent preset templates: Feature Development, Bug Fix Squad, Code Review, Greenfield Project, Release Team, Investigation Team, Refactoring Team, Full Development Squad, Standard Application. Each has optimized team composition, workflow formula, color, and icon.","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"closed","target":"","timeout_ns":0,"title":"Intelligent Preset Templates","updated_at":"2026-02-26T05:19:28Z","waiters":"","wisp_type":"","work_type":"mutex"} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Ratified from user correction: project scope is user-controlled in BeadBoard UI; agents operate within assigned repo context only.","closed_at":"2026-03-02T21:30:09Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"0c4bf40cc983e1922077da30d35d81106e8bd3ed2f7ec5c905d3e1e640024413","created_at":"2026-03-02T21:29:46Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Scope: Agent execution workflows in non-BeadBoard repos where BeadBoard is used as orchestration control plane.\\nOut of Scope: User-driven UI project switching behavior implementation details.\\nRule: Agents must not select or mutate project scope; they operate within the current repository context they are assigned. Project scope selection is exclusively a user action in the BeadBoard UI.\\nRationale: Prevents scope drift and accidental cross-project coordination errors; keeps orchestration authority with the user.\\nFailure Mode: If agents attempt to change scope, updates may appear in the wrong project context, breaking visibility and trust.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-at4","is_template":0,"issue_type":"decision","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][AGENT][HARD] Agents do not select project scope; user controls scope in BeadBoard UI","updated_at":"2026-03-02T21:30: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":"51d2e8f3603245d7b5d311edeb993c33278cb2926870356ddb79bdc4785b5f40","created_at":"2026-03-02T23:05:43Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Own global BeadBoard installer strategy and execution breakdown under beadboard-c70/beadboard-05a","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-axe","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: installer-orchestrator","updated_at":"2026-03-02T23:05:43Z","waiters":"","wisp_type":"","work_type":""} @@ -495,12 +497,13 @@ {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Recreating as proper children of Phase 0 epic with correct naming","closed_at":"2026-02-28T21:02:57Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"d17805f0481b485f2e4b35b96ad1ad0633bc21989a9db4622fb7270e3945aefd","created_at":"2026-02-28T20:59:48Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"The views array in LeftPanel and the tabs array in MobileNav both only have Social and Graph. Activity is a valid view but unreachable from navigation.\n\nFile 1: src/components/shared/left-panel.tsx\nLocation: views array (~line 188)\nChange:\n const views: Array\u003c{ id: ViewType; label: string }\u003e = [\n { id: 'social', label: 'Social' },\n { id: 'graph', label: 'Graph' },\n { id: 'activity', label: 'Activity' }, // add this\n ];\n\nFile 2: src/components/shared/mobile-nav.tsx\nLocation: tabs array (~line 6)\nChange: Add Activity tab and replace Unicode glyphs with Lucide icons:\n import { LayoutList, Share2, Activity } from 'lucide-react';\n const tabs = [\n { id: 'social', label: 'Social', icon: \u003cLayoutList className='h-5 w-5' /\u003e },\n { id: 'graph', label: 'Graph', icon: \u003cShare2 className='h-5 w-5' /\u003e },\n { id: 'activity', label: 'Activity', icon: \u003cActivity className='h-5 w-5' /\u003e },\n ];\nAlso add aria-label={tab.label} to each tab button, and update render to use {tab.icon} JSX (not string).\n\nCheck mobile-nav.tsx current icon rendering before changing - confirm the tab type and render pattern.\n\nAcceptance: Left panel and mobile nav both show three tabs (Social, Graph, Activity). Mobile nav icons are Lucide SVGs with aria-labels.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-t83","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":0,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"P0.3: Add Activity tab to LeftPanel and MobileNav","updated_at":"2026-02-28T21:02:57Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Fixed: filtered memory-anchor and brainstorm epics, added hideClosed check for epic status","closed_at":"2026-03-02T07:10:54Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"7d6965a299fa1a0f55665eb1203e1a1385b3f1b453676d145b50722be65c8c85","created_at":"2026-03-02T07:05:48Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"## Context\nEpics with zero child tasks are hidden in the left panel when hideClosed=true (the default).\n\n## Root Cause\nLine 327 in left-panel.tsx:\n\n\nThis hides ANY epic with matchedChildren=0 when filters are active. Since hideClosed defaults to true, this hides ALL epics that have no children (which is ALL epics currently since none have parent-child deps).\n\n## Fix\nChange condition to only hide if the epic HAS children but they're all filtered out:\n","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-tmj","is_template":0,"issue_type":"bug","last_activity":null,"metadata":"{}","mol_type":"","notes":"Fixed two issues in left-panel.tsx:\n1. Line 73: Filter out memory-anchor and brainstorm epics from epic list\n2. Line 327: Added check to hide closed/tombstone epics when hideClosed=true\n\nBefore: ALL epics were hidden because:\n- hideClosed defaults to true\n- No code checked epic status, only matchedChildren\n- All 0-child epics were hidden\n\nAfter:\n- Memory anchors (memory-anchor label) filtered out\n- Brainstorm epics (brainstorm label) filtered out \n- Closed/tombstone epics hidden when hideClosed=true\n- Epics with children only hidden when all children filtered\n\nVerification: npm run typecheck PASS, npm run lint PASS (warnings only), npm run test PASS (2 pre-existing failures)","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":"[BUG] Epics with no children hidden by hideClosed filter","updated_at":"2026-03-02T07:10:54Z","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":"377b5d4104ed31da8b821ae918d2d8ad5683c0a0328cf5b3e4a5f8f0488fa778","created_at":"2026-03-03T03:35:22Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Scope: Improve the Dependency Graph and Workflow Graph views to clearly indicate critical paths, differentiate between direct and indirect (transitive) blocks, and use status colors effectively. Out of scope: Other graph layouts. Success Criteria: Edges correctly reflect their dependency types visually.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-txj","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":0,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"open","target":"","timeout_ns":0,"title":"Epic: Enhanced Graph Edge Visualization","updated_at":"2026-03-03T03:35:22Z","waiters":"","wisp_type":"","work_type":""} -{"acceptance_criteria":"","actor":"","agent_state":"","assignee":"beadboard-8bs","await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"a563eaa2c8d8a9c0a243bb4c01a4cce5a8f7115faa877fb20eab12e2c7d041d2","created_at":"2026-03-03T03:36:09Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Scope: Write a robust algorithm that processes DAG nodes to identify transitive (redundant) edges across paths.\\nOut of scope: UI rendering.\\nSuccess Criteria: Takes nodes and edges, returns map of edges indicating if they are transitive or direct.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-txj.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":0,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"in_progress","target":"","timeout_ns":0,"title":"Implement graph transitive reduction algorithm","updated_at":"2026-03-03T03:37:58Z","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":"cc808e100e7509c2123748fe9dc1d30000e7bc86393c218de0b2101533a03553","created_at":"2026-03-03T03:36:41Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Scope: Update ReactFlow Edge generation in workflow-graph.tsx, dependency-graph-page.tsx, and specialized-agent-dag.tsx.\\nOut of scope: Algorithm calculation.\\nSuccess Criteria: Critical/in-progress edges glow bright amber. Standard direct edges are blue/slate. Transitive edges are dimmed/dashed dark gray.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-txj.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":0,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"open","target":"","timeout_ns":0,"title":"Apply Status Colors and Transitive Context to Graph Edges","updated_at":"2026-03-03T03:36:41Z","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":"aef161a5808c27085a8c50f34a4c620aab93c63c3a10b38ab193f3b6db9dcd92","created_at":"2026-03-03T03:36:42Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Scope: When a node is clicked, highlight inbound/outbound blockers clearly, fading out the rest of the graph.\\nSuccess Criteria: The critical chain of a selected task is visually obvious.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-txj.3","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"open","target":"","timeout_ns":0,"title":"Implement Graph Focus (Selection) Interactivity","updated_at":"2026-03-03T03:36:42Z","waiters":"","wisp_type":"","work_type":""} +{"acceptance_criteria":"","actor":"","agent_state":"","assignee":"beadboard-8bs","await_id":"","await_type":"","close_reason":"Core calculation algorithm implemented successfully.","closed_at":"2026-03-03T03:45:29Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"a563eaa2c8d8a9c0a243bb4c01a4cce5a8f7115faa877fb20eab12e2c7d041d2","created_at":"2026-03-03T03:36:09Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Scope: Write a robust algorithm that processes DAG nodes to identify transitive (redundant) edges across paths.\\nOut of scope: UI rendering.\\nSuccess Criteria: Takes nodes and edges, returns map of edges indicating if they are transitive or direct.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-txj.1","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Transitive Reduction implemented via BFS path search. Test coverage added in graph-view.test.ts. bun run lint/typecheck/test passed cleanly.","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":"Implement graph transitive reduction algorithm","updated_at":"2026-03-03T03:45:29Z","waiters":"","wisp_type":"","work_type":""} +{"acceptance_criteria":"","actor":"","agent_state":"","assignee":"beadboard-8bs","await_id":"","await_type":"","close_reason":"Transitive edges \u0026 status colors successfully implemented and tested.","closed_at":"2026-03-03T04:39:01Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"cc808e100e7509c2123748fe9dc1d30000e7bc86393c218de0b2101533a03553","created_at":"2026-03-03T03:36:41Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Scope: Update ReactFlow Edge generation in workflow-graph.tsx, dependency-graph-page.tsx, and specialized-agent-dag.tsx.\\nOut of scope: Algorithm calculation.\\nSuccess Criteria: Critical/in-progress edges glow bright amber. Standard direct edges are blue/slate. Transitive edges are dimmed/dashed dark gray.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-txj.2","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"npm run test passed. Transitive edge styling verified.","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":"Apply Status Colors and Transitive Context to Graph Edges","updated_at":"2026-03-03T04:39:01Z","waiters":"","wisp_type":"","work_type":""} +{"acceptance_criteria":"","actor":"","agent_state":"","assignee":"beadboard-agent-anti","await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"aef161a5808c27085a8c50f34a4c620aab93c63c3a10b38ab193f3b6db9dcd92","created_at":"2026-03-03T03:36:42Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Scope: When a node is clicked, highlight inbound/outbound blockers clearly, fading out the rest of the graph.\\nSuccess Criteria: The critical chain of a selected task is visually obvious.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-txj.3","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"in_progress","target":"","timeout_ns":0,"title":"Implement Graph Focus (Selection) Interactivity","updated_at":"2026-03-03T04:43:33Z","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":"4dcd31b65efe95769e88dce31f997399a2273058aa1354b9c991484eb54aaac9","created_at":"2026-03-02T23:06:25Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\\n- Parent: beadboard-c70 / beadboard-05a\\n\\nTASK CONTRACT\\n- Goal: Add installer and launcher smoke tests for Windows/Linux/mac and wire CI matrix.\\n- Success Criteria:\\n - install smoke tests per OS\\n - reinstall/idempotency + failure-mode checks\\n - CI matrix jobs for installer smoke\\n- Scope: tests and workflow config\\n- Out of Scope: enterprise installer signing pipeline\\n\\nVERIFICATION REQUIREMENTS\\n- npm run typecheck\\n- npm run lint\\n- npm run test","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-u4i","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Superseded by hierarchical execution tree under beadboard-05a.x","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":"deferred","target":"","timeout_ns":0,"title":"Installer test matrix + CI smoke coverage","updated_at":"2026-03-02T23:16:16Z","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":"3763e0c47b3c3d6a4bd7e3ac46608778454e56437df140bdd9d09185198cd7d0","created_at":"2026-02-24T01:36:39Z","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-uui","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"## 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\n- Assign mode (toggled): DAG highlights ready nodes, right panel shows assignment controls\n\n## Problem\nBeadBoard has two views (`?view=graph` and `?view=swarm`) that both render the same `WorkflowGraph` DAG component, creating duplication. The standalone `/graph` page (`DependencyGraphPage`) has rich dependency analysis features (hop depth, focus workspace, cycle detection, flow strip) that are stranded -- the shell's `?view=graph` is a bare 49-line wrapper (`SmartDag`) with none of them.\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 implementation steps completed\n- npm run typecheck, lint, 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\n\n## Out of Scope\n- Backend API changes (use existing /api/swarm/prep)\n- New archetypes/templates features\n- Mobile-specific layouts\n\n## Reference\nPRD: docs/prd/unified-graph-view.md","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":"Unify Graph + Swarm into Single Enhanced Graph View","updated_at":"2026-02-24T01:40:52Z","waiters":"","wisp_type":"","work_type":"mutex"} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Cleaning up test bead","closed_at":"2026-02-21T21:16:00Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"f09f1a0a8263bb776250a97189934101bb7629cc7ef72bab18cf0b8ce5bfbeef","created_at":"2026-02-21T20:59:15Z","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-uuo","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":2,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"closed","target":"","timeout_ns":0,"title":"SSE Test Bead","updated_at":"2026-02-21T21:16:00Z","waiters":"","wisp_type":"","work_type":"mutex"} +{"acceptance_criteria":"","actor":"","agent_state":"","assignee":"beadboard-1kt","await_id":"","await_type":"","close_reason":"Completed global install runtime-manager rollout plan phases 0-8 with TDD evidence, runtime metadata/shim migration, launcher runtime status, CLI doctor/update/uninstall, driver remediation alignment, and CI/docs updates.","closed_at":"2026-03-03T04:50:31Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"00c36e6507a319713daf83f591d5875851ad95b518812283ab8f6fb5f9c12d2f","created_at":"2026-03-03T04:32:07Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Scope: Implement npm-global-first runtime manager with migration from repo-path shims. Out of Scope: unrelated UI/test stabilization. Success Criteria: Tasks 0-8 from docs/plans/2026-03-03-global-install-runtime-manager.md implemented with verification evidence.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-vyt","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"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":"Global installer runtime manager implementation","updated_at":"2026-03-03T04:50:35Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":"beadboard-pxu","await_id":"","await_type":"","close_reason":"Fixed Hide Closed regression across left panel and graph epic chip surfaces; added selected-state invalidation and regression tests.","closed_at":"2026-03-03T03:28:11Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"f5ec7d3256c5b4e25619cfb8a4343cd917ee591889a5d2b5433210ae83d2da8e","created_at":"2026-03-03T00:04:32Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"## Context\nEpics with zero child tasks are hidden in the left panel when hideClosed=true (the default).\n\n## Root Cause\nLine 327 in left-panel.tsx filters out epics with no matched children, but since all epics have 0 children currently, they get hidden.\n\n## Notes\nNEEDS DISCUSSION: Before implementing, discuss with user - the fix affects epic visibility logic.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-x1y","is_template":0,"issue_type":"bug","last_activity":null,"metadata":"{}","mol_type":"","notes":"Root cause and fixes for Hide Closed epic leakage:\\n\\nRoot causes:\\n1) Left panel logic exempted selected epics from hide checks, so a selected closed epic (bb-u6f.7) remained visible.\\n2) Dependency graph epic chip strip was fed unfiltered epics in one path, so Hide Closed did not consistently apply in that surface.\\n3) Runtime data freshness was vulnerable to stale session state when SSE degraded; initial refresh hardening was added.\\n\\nFixes shipped:\\n- left-panel.tsx: Hide Closed now hides closed/tombstone epics even when selected.\\n- unified-shell.tsx: when hideClosed=true, selected closed epic is auto-cleared.\\n- dependency-graph-page.tsx: EpicChipStrip and selection logic now use hide-closed filtered selectableEpics.\\n- page.tsx + use-beads-subscription.ts: force-dynamic + initial silent refresh to reduce stale SSR/session reads.\\n\\nVerification evidence:\\n- node --import tsx --test tests/components/shared/left-panel-filtering.test.ts =\u003e PASS\\n- node --import tsx --test tests/components/shared/unified-shell-hide-closed-contract.test.ts =\u003e PASS\\n- node --import tsx --test tests/components/graph/dependency-graph-hide-closed-contract.test.ts =\u003e PASS\\n- npm run typecheck =\u003e PASS\\n- npm run lint =\u003e PASS (warnings only)\\n- npm run test =\u003e FAIL (pre-existing unrelated graphTab expectation in tests/hooks/url-state-integration.test.ts)\\n\\nMemory review trigger: create canonical memories for cross-surface filter invariants and selected-state invalidation under filters.","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":"[BUG] Epics with no children hidden by hideClosed filter","updated_at":"2026-03-03T03:28:11Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":"beadboard-rnk","await_id":"","await_type":"","close_reason":"Phase 4 Agent Presence complete. livenessMap lifted to UnifiedShell; agent avatars on SocialCard + graph nodes with liveness animation; LeftPanel footer shows live workspace stats. Typecheck clean, lint clean, 29/31 tests pass (2 pre-existing url-state failures).","closed_at":"2026-03-02T03:44:45Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"ed3b011f4a9bc3317203143aef02596ffb9c244366af3425122340b0fab4a7f0","created_at":"2026-02-28T22:29:51Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: (auto)\n- Title: Phase 4: Agent Presence\n- Parent/Epic: none (phase epic)\n- Dependencies (must be done first): beadboard-0fi (Phase 2 — actor identity in shell)\n\nTASK CONTRACT\n- Goal: Move livenessMap from the deprecated SessionsHeader up to UnifiedShell and surface live agent state on both Social cards and Graph nodes, so an operator can see which agents are active and what they are working on within 5 seconds of opening the app.\n- Success Criteria:\n - useSessionFeed called in UnifiedShell, livenessMap available at shell level\n - SocialCard shows agent avatar and liveness dot for the assigned agent\n - Graph nodes show agent avatar with pulse animation for stuck agents\n - LeftPanel footer replaced with live workspace stats (N agents active, M tasks in motion)\n - npm run typecheck \u0026\u0026 npm run lint \u0026\u0026 npm run test all pass\n- Scope:\n - UnifiedShell livenessMap lift (src/hooks/use-session-feed.ts already exists)\n - SocialCard agent presence UI\n - SmartDag/graph node agent presence UI\n - LeftPanel footer stats\n- Out of Scope:\n - Creating new API endpoints (liveness data already flows via SSE)\n - Agent detail right panel (covered in Phase 1)\n\nIMPLEMENTATION CONSTRAINTS\n- Preserve existing backend/API contracts unless explicitly stated otherwise.\n- Reuse shared components and logic; avoid one-off forks.\n- Keep changes targeted and minimal for this bead.\n\nVERIFICATION REQUIREMENTS\n- Required commands:\n - npm run typecheck\n - npm run lint\n - npm run test\n- Report any remaining risks and follow-up beads explicitly.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-x3l","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"Orchestrator agent beadboard-rnk claimed this epic. x3l.1 closed, x3l.2/3/4 dispatched as parallel sub-agents.","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 4: Agent Presence","updated_at":"2026-03-02T03:44:45Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"useSessionFeed lifted to UnifiedShell; livenessMap+agentStats wired to SmartDag, SocialPage, LeftPanel props. Typecheck clean, tests 131/133 (2 pre-existing).","closed_at":"2026-03-02T03:33:45Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"283080de34f820239e92ca035c82d095dd40b22268d06b688e027340a23c73db","created_at":"2026-02-28T22:34:43Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: beadboard-x3l.1\n- Title: Move useSessionFeed/livenessMap up to UnifiedShell\n- Parent/Epic: beadboard-x3l\n- Dependencies (must be done first): none (first in phase)\n\nTASK CONTRACT\n- Goal: useSessionFeed is currently only called in sessions-page.tsx (deprecated route). Call it in UnifiedShell and make livenessMap available as a prop to SocialCard and SmartDag.\n- Success Criteria:\n - useSessionFeed(projectRoot) called in UnifiedShell\n - livenessMap: Record\u003cstring, string\u003e available in UnifiedShell scope\n - livenessMap passed down to SocialPage and SmartDag as a prop (even if they don't use it yet — that is beadboard-x3l.2 and beadboard-x3l.3)\n - No duplicate SSE connections opened (verify useSessionFeed does not re-subscribe on re-render)\n - npm run typecheck passes\n- Scope:\n - src/components/shared/unified-shell.tsx — add useSessionFeed call\n - src/hooks/use-session-feed.ts — read to understand return shape before using\n - src/components/social/social-page.tsx — add livenessMap prop (pass through to cards later)\n - src/components/graph/smart-dag.tsx — add livenessMap prop (use in x3l.3)\n- Out of Scope:\n - Rendering agent avatars yet (beadboard-x3l.2, x3l.3)\n - Removing useSessionFeed from sessions-page.tsx (leave it, legacy route)\n\nIMPLEMENTATION CONSTRAINTS\n- Preserve existing backend/API contracts unless explicitly stated otherwise.\n- Reuse shared components and logic; avoid one-off forks.\n- Keep changes targeted and minimal for this bead.\n\nVERIFICATION REQUIREMENTS\n- Required commands:\n - npm run typecheck\n - npm run lint\n - npm run test\n- Report any remaining risks and follow-up beads explicitly.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-x3l.1","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"DONE: Added useSessionFeed to UnifiedShell, livenessMap wired to SmartDag/SocialPage/LeftPanel. Typecheck clean. 131/133 tests pass (2 pre-existing failures in url-state-integration unrelated to this change).","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":"Move useSessionFeed/livenessMap up to UnifiedShell","updated_at":"2026-03-02T03:33:45Z","waiters":"","wisp_type":"","work_type":""} diff --git a/.beads/backup/labels.jsonl b/.beads/backup/labels.jsonl index b6ecc73..8b568af 100644 --- a/.beads/backup/labels.jsonl +++ b/.beads/backup/labels.jsonl @@ -661,6 +661,8 @@ {"issue_id":"beadboard-1bg.8","label":"documentation"} {"issue_id":"beadboard-1bg.8","label":"skill-md"} {"issue_id":"beadboard-1bg.8","label":"skills"} +{"issue_id":"beadboard-1kt","label":"gt:agent"} +{"issue_id":"beadboard-1kt","label":"role:orchestrator"} {"issue_id":"beadboard-27u","label":"installation"} {"issue_id":"beadboard-27u","label":"windows"} {"issue_id":"beadboard-2e6","label":"critique"} @@ -718,6 +720,8 @@ {"issue_id":"beadboard-9xb","label":"mem-soft"} {"issue_id":"beadboard-9xb","label":"memory"} {"issue_id":"beadboard-9xb","label":"memory-agent-ops"} +{"issue_id":"beadboard-agent-anti","label":"gt:agent"} +{"issue_id":"beadboard-agent-anti","label":"role:orchestrator"} {"issue_id":"beadboard-at4","label":"mem-canonical"} {"issue_id":"beadboard-at4","label":"mem-hard"} {"issue_id":"beadboard-at4","label":"memory"} @@ -849,6 +853,9 @@ {"issue_id":"beadboard-u4i","label":"ci"} {"issue_id":"beadboard-u4i","label":"installation"} {"issue_id":"beadboard-u4i","label":"tests"} +{"issue_id":"beadboard-vyt","label":"cli"} +{"issue_id":"beadboard-vyt","label":"installation"} +{"issue_id":"beadboard-vyt","label":"runtime"} {"issue_id":"beadboard-x1y","label":"bug"} {"issue_id":"beadboard-x1y","label":"frontend"} {"issue_id":"beadboard-x3l","label":"template:release"}