diff --git a/.beads/backup/backup_state.json b/.beads/backup/backup_state.json index da3fb55..492b0f4 100644 --- a/.beads/backup/backup_state.json +++ b/.beads/backup/backup_state.json @@ -1,13 +1,13 @@ { - "last_dolt_commit": "ibo7fvdsrna5bquiga2tkcq8420ibne7", + "last_dolt_commit": "8hknvrjtm14u5bk4qg9p9cqqrvvlsijv", "last_event_id": 0, - "timestamp": "2026-03-04T00:08:14.5456044Z", + "timestamp": "2026-03-04T00:49:05.8174962Z", "counts": { - "issues": 538, - "events": 869, + "issues": 540, + "events": 882, "comments": 12, - "dependencies": 747, - "labels": 913, + "dependencies": 748, + "labels": 919, "config": 14 } } \ No newline at end of file diff --git a/.beads/backup/dependencies.jsonl b/.beads/backup/dependencies.jsonl index 25f739f..6a963e1 100644 --- a/.beads/backup/dependencies.jsonl +++ b/.beads/backup/dependencies.jsonl @@ -715,6 +715,7 @@ {"created_at":"2026-03-02T15:07:05Z","created_by":"ZenchantLive","depends_on_id":"beadboard-2fo","issue_id":"beadboard-u4i","type":"blocks"} {"created_at":"2026-03-02T15:06:48Z","created_by":"ZenchantLive","depends_on_id":"beadboard-c70","issue_id":"beadboard-u4i","type":"relates-to"} {"created_at":"2026-03-02T15:07:03Z","created_by":"ZenchantLive","depends_on_id":"beadboard-nrb","issue_id":"beadboard-u4i","type":"blocks"} +{"created_at":"2026-03-03T16:13:51Z","created_by":"ZenchantLive","depends_on_id":"beadboard-wk8","issue_id":"beadboard-wk8.1","type":"parent-child"} {"created_at":"2026-03-02T19:29:39Z","created_by":"ZenchantLive","depends_on_id":"beadboard-cyk","issue_id":"beadboard-x1y","type":"relates-to"} {"created_at":"2026-03-02T19:29:39Z","created_by":"ZenchantLive","depends_on_id":"beadboard-om4","issue_id":"beadboard-x1y","type":"relates-to"} {"created_at":"2026-03-02T19:29:39Z","created_by":"ZenchantLive","depends_on_id":"beadboard-x6f","issue_id":"beadboard-x1y","type":"relates-to"} diff --git a/.beads/backup/events.jsonl b/.beads/backup/events.jsonl index e14f1e1..4292ff2 100644 --- a/.beads/backup/events.jsonl +++ b/.beads/backup/events.jsonl @@ -867,3 +867,16 @@ {"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T21:57:30Z","event_type":"updated","id":872,"issue_id":"beadboard-mmd.1","new_value":"{\"notes\":\"Implemented backend-aware status diagnostics:\\n- Added bd.backend JSON object: sqliteLegacyDb/sqliteMigratedDb/doltRepo\\n- Replaced ambiguous text line `.beads DB` with `SQLite Legacy DB`, `SQLite Migrated DB`, and `Dolt Repo`\\n- Updated launcher runtime/status text tests for new fields and labels\\n\\nVerification evidence (2026-03-03):\\n- node --import tsx --test tests/scripts/beadboard-launcher-runtime.test.ts (pass)\\n- node --import tsx --test tests/scripts/beadboard-launcher-status-text.test.ts (pass)\\n- npm run typecheck (pass)\\n- npm run lint (pass: 0 errors, 22 warnings)\\n- npm run test (pass)\\n\\nMemory review: no new reusable memory.\"}","old_value":"{\"id\":\"beadboard-mmd.1\",\"title\":\"Clarify backend diagnostics in status output\",\"description\":\"TASK CONTEXT\\\\n- Parent/Epic: beadboard-mmd\\\\n\\\\nTASK CONTRACT\\\\n- Goal: replace ambiguous '.beads DB' status with backend-aware diagnostics.\\\\n- Success Criteria:\\\\n - text status shows sqlite legacy file, sqlite migrated file, dolt repo presence\\\\n - json status includes backend diagnostics object\\\\n - tests validate new fields/labels\\\\n- Scope:\\\\n - install/beadboard.mjs\\\\n - tests/scripts/beadboard-launcher-runtime.test.ts\\\\n - tests/scripts/beadboard-launcher-status-text.test.ts\\\\n- Out of Scope:\\\\n - altering bd storage implementation\\\\n\\\\nVERIFICATION REQUIREMENTS\\\\n- node --import tsx --test tests/scripts/beadboard-launcher-runtime.test.ts\\\\n- node --import tsx --test tests/scripts/beadboard-launcher-status-text.test.ts\\\\n- npm run typecheck\\\\n- npm run lint\\\\n- npm run test\",\"status\":\"in_progress\",\"priority\":1,\"issue_type\":\"task\",\"assignee\":\"beadboard-1kt\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-03T05:45:40Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-03T05:46:09Z\"}"} {"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T21:58:01Z","event_type":"closed","id":873,"issue_id":"beadboard-mmd.1","new_value":"Completed backend-aware status diagnostics and verification gates","old_value":""} {"actor":"ZenchantLive","comment":null,"created_at":"2026-03-02T21:58:01Z","event_type":"closed","id":874,"issue_id":"beadboard-mmd","new_value":"all steps complete","old_value":""} +{"actor":"zenchantlive","comment":null,"created_at":"2026-03-03T16:13:33Z","event_type":"closed","id":875,"issue_id":"beadboard-c70","new_value":"{\"status\":\"closed\"}","old_value":"{\"id\":\"beadboard-c70\",\"title\":\"[EPIC] BeadBoard Installation + Discovery Contract for Driver Skill\",\"description\":\"TASK CONTEXT\\\\n- Bead ID: auto\\\\n- Parent: none\\\\n- Dependencies: none\\\\n\\\\nTASK CONTRACT\\\\n- Goal: Make beadboard-driver reliably detect BeadBoard installation and provide clear install/remediation UX for both agents and humans.\\\\n- Success Criteria:\\\\n - Skill docs include explicit BeadBoard identity and GitHub link\\\\n - Driver scripts produce deterministic install guidance when BeadBoard tooling is missing\\\\n - Global vs repo-local usage model is documented and testable\\\\n- Scope:\\\\n - Installation checks and remediation messages\\\\n - Global package/distribution strategy decision\\\\n - Optional project template contract for global skills\\\\n- Out of Scope:\\\\n - Full package publish implementation unless split into child beads\\\\n\\\\nIMPLEMENTATION CONSTRAINTS\\\\n- Preserve existing bd as source-of-truth workflow semantics\\\\n- Keep user-facing copy simple and explicit\\\\n\\\\nVERIFICATION REQUIREMENTS\\\\n- Required commands: npm run typecheck, npm run lint, npm run test\",\"notes\":\"Completed beadboard-i0q. Remaining epic child: beadboard-05a (global package/distribution strategy decision).\",\"status\":\"in_progress\",\"priority\":1,\"issue_type\":\"epic\",\"assignee\":\"beadboard-axe\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-02T21:59:02Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-02T23:16:38Z\"}"} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-03T16:13:44Z","event_type":"created","id":876,"issue_id":"beadboard-wk8","new_value":"","old_value":""} +{"actor":"ZenchantLive","comment":"Added label: cli","created_at":"2026-03-03T16:13:44Z","event_type":"label_added","id":877,"issue_id":"beadboard-wk8","new_value":null,"old_value":null} +{"actor":"ZenchantLive","comment":"Added label: docs","created_at":"2026-03-03T16:13:44Z","event_type":"label_added","id":878,"issue_id":"beadboard-wk8","new_value":null,"old_value":null} +{"actor":"ZenchantLive","comment":"Added label: dolt","created_at":"2026-03-03T16:13:44Z","event_type":"label_added","id":879,"issue_id":"beadboard-wk8","new_value":null,"old_value":null} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-03T16:13:51Z","event_type":"created","id":880,"issue_id":"beadboard-wk8.1","new_value":"","old_value":""} +{"actor":"ZenchantLive","comment":"Added label: cli","created_at":"2026-03-03T16:13:51Z","event_type":"label_added","id":881,"issue_id":"beadboard-wk8.1","new_value":null,"old_value":null} +{"actor":"ZenchantLive","comment":"Added label: docs","created_at":"2026-03-03T16:13:51Z","event_type":"label_added","id":882,"issue_id":"beadboard-wk8.1","new_value":null,"old_value":null} +{"actor":"ZenchantLive","comment":"Added label: dolt","created_at":"2026-03-03T16:13:51Z","event_type":"label_added","id":883,"issue_id":"beadboard-wk8.1","new_value":null,"old_value":null} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-03T16:13:56Z","event_type":"status_changed","id":884,"issue_id":"beadboard-wk8.1","new_value":"{\"assignee\":\"beadboard-1kt\",\"status\":\"in_progress\"}","old_value":"{\"id\":\"beadboard-wk8.1\",\"title\":\"Add start guidance + --dolt path\",\"description\":\"Scope:\\n- install/beadboard.mjs start command behavior and messaging\\n- launcher tests for start guidance and --dolt behavior\\n- README launcher docs\\nOut of Scope:\\n- modifying bd tool behavior\\nSuccess Criteria:\\n- beadboard start prints guidance to run bd dolt start in project folder and points to beadboard start --dolt\\n- beadboard start --dolt attempts bd dolt start in CWD before app start\\n- tests cover both behaviors\\n- README includes this guidance\",\"status\":\"open\",\"priority\":1,\"issue_type\":\"task\",\"assignee\":\"beadboard-1kt\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-04T00:13:52Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-04T00:13:52Z\"}"} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-03T16:18:43Z","event_type":"updated","id":885,"issue_id":"beadboard-wk8.1","new_value":"{\"notes\":\"Implemented startup UX + Dolt bootstrap integration:\\n- Added launcher flag parsing for --dolt\\n- beadboard start now prints explicit guidance: run `bd dolt start` in project folder, or use `beadboard start --dolt`\\n- Implemented `start --dolt` to invoke `bd dolt start` in current working directory before BeadBoard startup\\n- Added BB_START_NOOP path for deterministic launcher tests\\n- Updated CLI help text to show `start [--dolt]`\\n- Updated README launcher docs with startup note and one-command flow\\n\\nTDD evidence:\\n- RED: node --import tsx --test tests/scripts/beadboard-launcher.test.ts (hung/cancelled before implementation due real start path)\\n- GREEN: node --import tsx --test tests/scripts/beadboard-launcher.test.ts (pass)\\n- GREEN: node --import tsx --test tests/cli/beadboard-help-output.test.ts (pass)\\n\\nVerification evidence (2026-03-03):\\n- npm run typecheck (pass)\\n- npm run lint (pass, 0 errors / 21 warnings in unrelated files)\\n- npm run test (pass)\\n\\nMemory review: no new reusable memory.\"}","old_value":"{\"id\":\"beadboard-wk8.1\",\"title\":\"Add start guidance + --dolt path\",\"description\":\"Scope:\\n- install/beadboard.mjs start command behavior and messaging\\n- launcher tests for start guidance and --dolt behavior\\n- README launcher docs\\nOut of Scope:\\n- modifying bd tool behavior\\nSuccess Criteria:\\n- beadboard start prints guidance to run bd dolt start in project folder and points to beadboard start --dolt\\n- beadboard start --dolt attempts bd dolt start in CWD before app start\\n- tests cover both behaviors\\n- README includes this guidance\",\"status\":\"in_progress\",\"priority\":1,\"issue_type\":\"task\",\"assignee\":\"beadboard-1kt\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-04T00:13:52Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-04T00:13:56Z\"}"} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-03T16:18:43Z","event_type":"closed","id":886,"issue_id":"beadboard-wk8.1","new_value":"Added start guidance and --dolt combined startup flow with tests/docs","old_value":""} +{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-03T16:18:43Z","event_type":"closed","id":887,"issue_id":"beadboard-wk8","new_value":"all steps complete","old_value":""} diff --git a/.beads/backup/issues.jsonl b/.beads/backup/issues.jsonl index ebf25c4..da8b2fb 100644 --- a/.beads/backup/issues.jsonl +++ b/.beads/backup/issues.jsonl @@ -438,7 +438,7 @@ {"acceptance_criteria":"","actor":"","agent_state":"","assignee":"beadboard-frf","await_id":"","await_type":"","close_reason":"Install/discovery contract and human-facing SKILL.md positioning are implemented and verified.","closed_at":"2026-03-02T22:09:48Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"a8f57ddd9897be3e26cb697cb5c8358dd6707c3716184bcb959c067701b30700","created_at":"2026-03-02T22:00:41Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\\n- Bead ID: beadboard-c70.1\\n- Parent: beadboard-c70\\n- Dependencies: none\\n\\nTASK CONTRACT\\n- Goal: Define and implement deterministic install/discovery checks for beadboard-driver scripts.\\n- Success Criteria:\\n - session-preflight and diagnose-env return explicit BeadBoard install guidance with GitHub link\\n - Contract tests cover missing-tool remediation output\\n- Scope:\\n - bd command discovery\\n - bb path resolution behavior\\n - remediation copy\\n- Out of Scope:\\n - package publishing\\n\\nVERIFICATION REQUIREMENTS\\n- Required commands: npm run typecheck, npm run lint, npm run test","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-btt","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Rewrote skills/beadboard-driver/SKILL.md in stronger product+manual voice (manifesto/outcomes/proof/runbook), with explicit BeadBoard identity and GitHub install path. Added install confidence section and 'use-this-when' reference mapping. Install/discovery remediation copy is present in scripts/session-preflight.mjs and scripts/diagnose-env.mjs. Verification: node skills/beadboard-driver/tests/run-tests.mjs (pass), npm run typecheck (pass), npm run lint (0 errors, 22 warnings).","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Driver install check contract (bd+bb discovery + remediation UX)","updated_at":"2026-03-02T22:09:48Z","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":"88c7e66cefd5e6473a73219be1ccb52302aa16c3b3dfe79186aed518051154da","created_at":"2026-03-02T23:06:22Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\\n- Parent: beadboard-c70 / beadboard-05a\\n\\nTASK CONTRACT\\n- Goal: Keep driver detection-only and emit platform-specific install remediation.\\n- Success Criteria:\\n - session-preflight and diagnose-env output per-platform install hints\\n - docs clearly separate installer vs skill responsibilities\\n- Scope: skills/beadboard-driver scripts + references\\n- Out of Scope: installer execution from skill\\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-bzc","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":"Driver detection alignment: install remediation by platform","updated_at":"2026-03-02T23:16:16Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":"sysarchitect-01","await_id":"","await_type":"","close_reason":"","closed_at":"2026-02-21T05:03:50Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"28d5443e989a71f0e7d9401694808fac30965cdf14414649ed256d1a1ec514c7","created_at":"2026-02-21T04:01:08Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-c08","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"closed","target":"","timeout_ns":0,"title":"Analyze Legacy System","updated_at":"2026-02-21T05:03:50Z","waiters":"","wisp_type":"","work_type":"mutex"} -{"acceptance_criteria":"","actor":"","agent_state":"","assignee":"beadboard-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":"48b68bfe217bdda9d6db9cb4de0c280fa3fd2f005056aac422092919aa7c8198","created_at":"2026-03-02T21:59:02Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\\n- Bead ID: auto\\n- Parent: none\\n- Dependencies: none\\n\\nTASK CONTRACT\\n- Goal: Make beadboard-driver reliably detect BeadBoard installation and provide clear install/remediation UX for both agents and humans.\\n- Success Criteria:\\n - Skill docs include explicit BeadBoard identity and GitHub link\\n - Driver scripts produce deterministic install guidance when BeadBoard tooling is missing\\n - Global vs repo-local usage model is documented and testable\\n- Scope:\\n - Installation checks and remediation messages\\n - Global package/distribution strategy decision\\n - Optional project template contract for global skills\\n- Out of Scope:\\n - Full package publish implementation unless split into child beads\\n\\nIMPLEMENTATION CONSTRAINTS\\n- Preserve existing bd as source-of-truth workflow semantics\\n- Keep user-facing copy simple and explicit\\n\\nVERIFICATION REQUIREMENTS\\n- Required commands: npm run typecheck, npm run lint, npm run test","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-c70","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"Completed beadboard-i0q. Remaining epic child: beadboard-05a (global package/distribution strategy decision).","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"in_progress","target":"","timeout_ns":0,"title":"[EPIC] BeadBoard Installation + Discovery Contract for Driver Skill","updated_at":"2026-03-02T23:16:38Z","waiters":"","wisp_type":"","work_type":""} +{"acceptance_criteria":"","actor":"","agent_state":"","assignee":"beadboard-axe","await_id":"","await_type":"","close_reason":"","closed_at":"2026-03-04T00:13:35Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"48b68bfe217bdda9d6db9cb4de0c280fa3fd2f005056aac422092919aa7c8198","created_at":"2026-03-02T21:59:02Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\\n- Bead ID: auto\\n- Parent: none\\n- Dependencies: none\\n\\nTASK CONTRACT\\n- Goal: Make beadboard-driver reliably detect BeadBoard installation and provide clear install/remediation UX for both agents and humans.\\n- Success Criteria:\\n - Skill docs include explicit BeadBoard identity and GitHub link\\n - Driver scripts produce deterministic install guidance when BeadBoard tooling is missing\\n - Global vs repo-local usage model is documented and testable\\n- Scope:\\n - Installation checks and remediation messages\\n - Global package/distribution strategy decision\\n - Optional project template contract for global skills\\n- Out of Scope:\\n - Full package publish implementation unless split into child beads\\n\\nIMPLEMENTATION CONSTRAINTS\\n- Preserve existing bd as source-of-truth workflow semantics\\n- Keep user-facing copy simple and explicit\\n\\nVERIFICATION REQUIREMENTS\\n- Required commands: npm run typecheck, npm run lint, npm run test","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-c70","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"Completed beadboard-i0q. Remaining epic child: beadboard-05a (global package/distribution strategy decision).","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"[EPIC] BeadBoard Installation + Discovery Contract for Driver Skill","updated_at":"2026-03-04T00:13:35Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"1dafbb5c4d9daaa58832c82f8e6970f25243e6a66cef0243c4b200f216d94e49","created_at":"2026-03-01T23:37:59Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"When a comment is added via 'bd comments add' (or the ThreadDrawer POST), the JSONL file is mutated but the Chokidar watcher does not broadcast an SSE event. Users have to manually refresh to see new comments. The watcher snapshot diff likely only diffs top-level issue fields (status, title, etc.) and does not detect the comments array changing. Fix should: (1) detect comment-count changes in the snapshot diff, (2) emit an SSE activity/change event so subscribed clients re-fetch and display the new comment without a full page refresh.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-cc8","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"open","target":"","timeout_ns":0,"title":"SSE watcher misses comment additions — no live refresh on bd comment add","updated_at":"2026-03-01T23:37:59Z","waiters":"","wisp_type":"","work_type":""} {"acceptance_criteria":"File created: src/hooks/use-graph-analysis.ts; Hook exports GraphAnalysis interface with: graphModel, signalById, cycleNodeIdSet, actionableNodeIds, blockerTooltipMap, blockerAnalysis, chainNodeIds; Hook takes (issues, projectRoot, selectedId) parameters; npm run typecheck passes","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"9ae1d444b1c2ed81d0d6df2a8b2243b2e0a873454df1964b7c2711172025fc05","created_at":"2026-02-24T01:37:13Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-ck0","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"## TASK CONTEXT\n- Bead ID: beadboard-ck0\n- Title: Create useGraphAnalysis hook\n- Parent/Epic: beadboard-uui (Unify Graph + Swarm into Single Enhanced Graph View)\n- Dependencies (must be done first): None\n\n## GOAL\nExtract duplicated graph computation logic from workflow-graph.tsx (lines 73-135) and dependency-graph-page.tsx (lines 327-433) into a reusable hook. This consolidates the graph analysis logic that is currently duplicated across two files.\n\n## SUCCESS CRITERIA\n- File created: src/hooks/use-graph-analysis.ts (~100 lines)\n- Hook exports GraphAnalysis interface with: graphModel, signalById, cycleNodeIdSet, actionableNodeIds, blockerTooltipMap, blockerAnalysis, chainNodeIds\n- Hook takes (issues: BeadIssue[], projectRoot: string, selectedId: string | null | undefined) parameters\n- Uses existing buildGraphModel from ../../lib/graph\n- Uses analyzeBlockedChain, detectDependencyCycles from ../../lib/graph-view\n- npm run typecheck passes\n\n## SCOPE\n- Create new hook file at src/hooks/use-graph-analysis.ts\n- Export GraphAnalysis interface\n- Use useMemo for all computed values\n- Document each computed field with JSDoc comments\n\n## OUT OF SCOPE\n- Modifying existing components (that happens in beadboard-5sr)\n- Adding new graph analysis features\n- Changes to buildGraphModel or graph-view functions\n\n## IMPLEMENTATION NOTES\nThe hook should compute:\n1. graphModel: Result of buildGraphModel(issues, { projectKey: projectRoot })\n2. signalById: Map of issue.id -\u003e { blockedBy: number, blocks: number }\n3. cycleNodeIdSet: Set of node IDs that are part of dependency cycles\n4. actionableNodeIds: Set of node IDs that have no open blockers (ready to work)\n5. blockerTooltipMap: Map of issue.id -\u003e string[] of blocker descriptions\n6. blockerAnalysis: Result of analyzeBlockedChain for selectedId (null if no selection)\n7. chainNodeIds: Set of selectedId + all blocker node IDs\n\n## VERIFICATION REQUIREMENTS\n- Required commands:\n - npm run typecheck\n- Required artifacts:\n - Screenshot of new hook file structure","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"tombstone","target":"","timeout_ns":0,"title":"Create useGraphAnalysis hook","updated_at":"2026-02-24T01:40:31Z","waiters":"","wisp_type":"","work_type":"mutex"} {"acceptance_criteria":"UnifiedShell has assignMode and selectedAssignIssue state; SmartDag receives onAssignModeChange and onSelectedIssueChange callbacks; When view===graph \u0026\u0026 assignMode, right panel renders AssignmentPanel; Otherwise right panel renders ContextualRightPanel; Remove if (view === 'swarm') block and SwarmWorkspace import; npm run typecheck, lint, test all pass","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"a8729938cc2c763ba0878950a5ccf14deb1fa8aee16ec8d951678f37bb3d29c5","created_at":"2026-02-24T01:37:47Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-cm8","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"tombstone","target":"","timeout_ns":0,"title":"Wire assign mode into UnifiedShell","updated_at":"2026-02-24T01:40:31Z","waiters":"","wisp_type":"","work_type":"mutex"} @@ -515,6 +515,8 @@ {"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-1kt","await_id":"","await_type":"","close_reason":"all steps complete","closed_at":"2026-03-04T00:18:44Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"0b486fc806c0c1f179221cb99eaff85e54cab3ebad9539cd116a73979bb3a075","created_at":"2026-03-04T00:13:45Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Scope:\n- beadboard launcher startup UX and docs for Dolt readiness\nOut of Scope:\n- changing bd storage backend internals\nSuccess Criteria:\n- beadboard start prints clear guidance about bd dolt start and project folder\n- beadboard start --dolt starts Dolt (if available) then starts BeadBoard dev server\n- README launcher command docs include both flows","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-wk8","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] Start Command Dolt Bootstrapping","updated_at":"2026-03-04T00:18:44Z","waiters":"","wisp_type":"","work_type":""} +{"acceptance_criteria":"","actor":"","agent_state":"","assignee":"beadboard-1kt","await_id":"","await_type":"","close_reason":"Added start guidance and --dolt combined startup flow with tests/docs","closed_at":"2026-03-04T00:18:44Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"d092992e1f85245f73738d27d7d1a25d782d17d21ce46695368670e8d286a4d9","created_at":"2026-03-04T00:13:52Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Scope:\n- install/beadboard.mjs start command behavior and messaging\n- launcher tests for start guidance and --dolt behavior\n- README launcher docs\nOut of Scope:\n- modifying bd tool behavior\nSuccess Criteria:\n- beadboard start prints guidance to run bd dolt start in project folder and points to beadboard start --dolt\n- beadboard start --dolt attempts bd dolt start in CWD before app start\n- tests cover both behaviors\n- README includes this guidance","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-wk8.1","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Implemented startup UX + Dolt bootstrap integration:\n- Added launcher flag parsing for --dolt\n- beadboard start now prints explicit guidance: run `bd dolt start` in project folder, or use `beadboard start --dolt`\n- Implemented `start --dolt` to invoke `bd dolt start` in current working directory before BeadBoard startup\n- Added BB_START_NOOP path for deterministic launcher tests\n- Updated CLI help text to show `start [--dolt]`\n- Updated README launcher docs with startup note and one-command flow\n\nTDD evidence:\n- RED: node --import tsx --test tests/scripts/beadboard-launcher.test.ts (hung/cancelled before implementation due real start path)\n- GREEN: node --import tsx --test tests/scripts/beadboard-launcher.test.ts (pass)\n- GREEN: node --import tsx --test tests/cli/beadboard-help-output.test.ts (pass)\n\nVerification evidence (2026-03-03):\n- npm run typecheck (pass)\n- npm run lint (pass, 0 errors / 21 warnings in unrelated files)\n- npm run test (pass)\n\nMemory 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":"Add start guidance + --dolt path","updated_at":"2026-03-04T00:18:44Z","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 ed754d6..6b8e5fd 100644 --- a/.beads/backup/labels.jsonl +++ b/.beads/backup/labels.jsonl @@ -890,6 +890,12 @@ {"issue_id":"beadboard-vyt","label":"cli"} {"issue_id":"beadboard-vyt","label":"installation"} {"issue_id":"beadboard-vyt","label":"runtime"} +{"issue_id":"beadboard-wk8","label":"cli"} +{"issue_id":"beadboard-wk8","label":"docs"} +{"issue_id":"beadboard-wk8","label":"dolt"} +{"issue_id":"beadboard-wk8.1","label":"cli"} +{"issue_id":"beadboard-wk8.1","label":"docs"} +{"issue_id":"beadboard-wk8.1","label":"dolt"} {"issue_id":"beadboard-x1y","label":"bug"} {"issue_id":"beadboard-x1y","label":"frontend"} {"issue_id":"beadboard-x3l","label":"template:release"}