bd: backup 2026-03-02 06:59
This commit is contained in:
parent
835018c183
commit
35b4089620
5 changed files with 101 additions and 21 deletions
|
|
@ -1,13 +1,13 @@
|
|||
{
|
||||
"last_dolt_commit": "2u6glml5hl89t9n43o5auj14p7v5060v",
|
||||
"last_dolt_commit": "dqt82ukodi99qlgo1oaia0l2bem67kgo",
|
||||
"last_event_id": 0,
|
||||
"timestamp": "2026-03-02T06:43:55.7174961Z",
|
||||
"timestamp": "2026-03-02T06:59:01.7459907Z",
|
||||
"counts": {
|
||||
"issues": 473,
|
||||
"events": 437,
|
||||
"issues": 480,
|
||||
"events": 480,
|
||||
"comments": 12,
|
||||
"dependencies": 639,
|
||||
"labels": 733,
|
||||
"dependencies": 648,
|
||||
"labels": 754,
|
||||
"config": 14
|
||||
}
|
||||
}
|
||||
|
|
@ -441,9 +441,12 @@
|
|||
{"created_at":"2026-02-24T01:38:23Z","created_by":"zenchantlive","depends_on_id":"beadboard-60s","issue_id":"beadboard-12l","type":"blocks"}
|
||||
{"created_at":"2026-02-24T01:38:23Z","created_by":"zenchantlive","depends_on_id":"beadboard-cm8","issue_id":"beadboard-12l","type":"blocks"}
|
||||
{"created_at":"2026-02-24T01:38:07Z","created_by":"zenchantlive","depends_on_id":"beadboard-uui","issue_id":"beadboard-12l","type":"parent"}
|
||||
{"created_at":"2026-03-01T22:56:05Z","created_by":"zenchantlive","depends_on_id":"beadboard-dc0","issue_id":"beadboard-1bg","type":"relates-to"}
|
||||
{"created_at":"2026-03-01T22:28:38Z","created_by":"zenchantlive","depends_on_id":"beadboard-1bg","issue_id":"beadboard-1bg.1","type":"parent-child"}
|
||||
{"created_at":"2026-03-01T22:28:50Z","created_by":"zenchantlive","depends_on_id":"beadboard-1bg","issue_id":"beadboard-1bg.2","type":"parent-child"}
|
||||
{"created_at":"2026-03-01T22:50:54Z","created_by":"zenchantlive","depends_on_id":"beadboard-1bg.1","issue_id":"beadboard-1bg.2","type":"blocks"}
|
||||
{"created_at":"2026-03-01T22:29:00Z","created_by":"zenchantlive","depends_on_id":"beadboard-1bg","issue_id":"beadboard-1bg.3","type":"parent-child"}
|
||||
{"created_at":"2026-03-01T22:50:54Z","created_by":"zenchantlive","depends_on_id":"beadboard-1bg.1","issue_id":"beadboard-1bg.3","type":"blocks"}
|
||||
{"created_at":"2026-03-01T22:29:10Z","created_by":"zenchantlive","depends_on_id":"beadboard-1bg","issue_id":"beadboard-1bg.4","type":"parent-child"}
|
||||
{"created_at":"2026-03-01T22:30:38Z","created_by":"zenchantlive","depends_on_id":"beadboard-1bg.3","issue_id":"beadboard-1bg.4","type":"blocks"}
|
||||
{"created_at":"2026-03-01T22:29:35Z","created_by":"zenchantlive","depends_on_id":"beadboard-1bg","issue_id":"beadboard-1bg.5","type":"parent-child"}
|
||||
|
|
@ -512,6 +515,7 @@
|
|||
{"created_at":"2026-03-01T18:28:53Z","created_by":"zenchantlive","depends_on_id":"beadboard-e6w","issue_id":"beadboard-6wv","type":"relates-to"}
|
||||
{"created_at":"2026-03-01T18:28:26Z","created_by":"zenchantlive","depends_on_id":"beadboard-mdo","issue_id":"beadboard-6wv","type":"relates-to"}
|
||||
{"created_at":"2026-03-01T16:39:59Z","created_by":"ZenchantLive","depends_on_id":"beadboard-60a","issue_id":"beadboard-76p","type":"relates-to"}
|
||||
{"created_at":"2026-03-01T22:56:04Z","created_by":"zenchantlive","depends_on_id":"beadboard-dc0","issue_id":"beadboard-76p","type":"relates-to"}
|
||||
{"created_at":"2026-03-01T18:28:25Z","created_by":"zenchantlive","depends_on_id":"beadboard-mdo","issue_id":"beadboard-76p","type":"relates-to"}
|
||||
{"created_at":"2026-03-01T16:40:01Z","created_by":"ZenchantLive","depends_on_id":"beadboard-zas","issue_id":"beadboard-76p","type":"relates-to"}
|
||||
{"created_at":"2026-02-21T18:52:32Z","created_by":"zenchantlive","depends_on_id":"beadboard-7jp","issue_id":"beadboard-7jp.1","type":"parent-child"}
|
||||
|
|
@ -565,6 +569,8 @@
|
|||
{"created_at":"2026-02-28T14:39:47Z","created_by":"ZenchantLive","depends_on_id":"beadboard-d2x","issue_id":"beadboard-d2x.2","type":"parent-child"}
|
||||
{"created_at":"2026-02-28T14:39:56Z","created_by":"ZenchantLive","depends_on_id":"beadboard-d2x.1","issue_id":"beadboard-d2x.2","type":"blocks"}
|
||||
{"created_at":"2026-02-24T01:38:07Z","created_by":"zenchantlive","depends_on_id":"beadboard-uui","issue_id":"beadboard-d4n","type":"parent"}
|
||||
{"created_at":"2026-03-01T22:56:05Z","created_by":"zenchantlive","depends_on_id":"beadboard-1bg","issue_id":"beadboard-dc0","type":"relates-to"}
|
||||
{"created_at":"2026-03-01T22:56:04Z","created_by":"zenchantlive","depends_on_id":"beadboard-76p","issue_id":"beadboard-dc0","type":"relates-to"}
|
||||
{"created_at":"2026-03-01T18:26:26Z","created_by":"zenchantlive","depends_on_id":"beadboard-6wv","issue_id":"beadboard-dud","type":"blocks"}
|
||||
{"created_at":"2026-03-01T18:28:52Z","created_by":"zenchantlive","depends_on_id":"beadboard-e6w","issue_id":"beadboard-dud","type":"relates-to"}
|
||||
{"created_at":"2026-03-01T16:54:03Z","created_by":"ZenchantLive","depends_on_id":"bb-u6f.3","issue_id":"beadboard-duo","type":"relates-to"}
|
||||
|
|
@ -608,6 +614,9 @@
|
|||
{"created_at":"2026-03-01T18:28:26Z","created_by":"zenchantlive","depends_on_id":"beadboard-6wv","issue_id":"beadboard-mdo","type":"relates-to"}
|
||||
{"created_at":"2026-03-01T18:28:25Z","created_by":"zenchantlive","depends_on_id":"beadboard-76p","issue_id":"beadboard-mdo","type":"relates-to"}
|
||||
{"created_at":"2026-03-01T18:28:26Z","created_by":"zenchantlive","depends_on_id":"beadboard-y8k","issue_id":"beadboard-mdo","type":"relates-to"}
|
||||
{"created_at":"2026-03-01T22:50:04Z","created_by":"zenchantlive","depends_on_id":"beadboard-n1h","issue_id":"beadboard-n1h.1","type":"parent-child"}
|
||||
{"created_at":"2026-03-01T22:50:15Z","created_by":"zenchantlive","depends_on_id":"beadboard-n1h","issue_id":"beadboard-n1h.2","type":"parent-child"}
|
||||
{"created_at":"2026-03-01T22:50:29Z","created_by":"zenchantlive","depends_on_id":"beadboard-n1h","issue_id":"beadboard-n1h.3","type":"parent-child"}
|
||||
{"created_at":"2026-03-01T16:39:57Z","created_by":"ZenchantLive","depends_on_id":"beadboard-116","issue_id":"beadboard-nq9","type":"relates-to"}
|
||||
{"created_at":"2026-03-01T16:54:00Z","created_by":"ZenchantLive","depends_on_id":"beadboard-60a","issue_id":"beadboard-r1i","type":"relates-to"}
|
||||
{"created_at":"2026-03-01T16:53:59Z","created_by":"ZenchantLive","depends_on_id":"beadboard-dvp","issue_id":"beadboard-r1i","type":"relates-to"}
|
||||
|
|
|
|||
|
|
@ -435,3 +435,46 @@
|
|||
{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T22:42:30Z","event_type":"closed","id":439,"issue_id":"bb-18e.8","new_value":"Old backlog","old_value":""}
|
||||
{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T22:42:30Z","event_type":"closed","id":440,"issue_id":"bb-18e.9","new_value":"Old backlog","old_value":""}
|
||||
{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T22:42:31Z","event_type":"closed","id":441,"issue_id":"bb-18e.10","new_value":"Old backlog","old_value":""}
|
||||
{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T22:46:44Z","event_type":"closed","id":442,"issue_id":"bb-buff.3.6","new_value":"Old backlog - closed","old_value":""}
|
||||
{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T22:47:02Z","event_type":"closed","id":443,"issue_id":"bb-2mx","new_value":"Old backlog","old_value":""}
|
||||
{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T22:47:17Z","event_type":"closed","id":444,"issue_id":"bb-6bx.1","new_value":"{\"status\":\"closed\"}","old_value":"{\"id\":\"bb-6bx.1\",\"title\":\"bb-6bx.2: ZFC State Machine Integration\",\"description\":\"PROMPT: IMPLEMENT ZFC-compliant lifecycle wrapper in 'src/lib/agent-registry.ts'.\\n1. DEFINE: updateAgentState(agentId, state) strictly typed to: [idle, spawning, running, working, stuck, done, stopped, dead].\\n2. WIRE: Auto-trigger 'stuck' state in tools/bb.ts global catch block when process.exitCode !== 0.\\n3. MEASURABLE RESULT: 'bd agent show \\u003cid\\u003e --json' reflects the exact state transition after a simulated CLI failure.\",\"status\":\"open\",\"priority\":1,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-02-14T21:56:28Z\",\"created_by\":\"zenchantlive\",\"updated_at\":\"2026-02-14T21:56:28Z\",\"work_type\":\"mutex\"}"}
|
||||
{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T22:47:41Z","event_type":"closed","id":445,"issue_id":"bb-ui2.22","new_value":"Old polish item","old_value":""}
|
||||
{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T22:48:06Z","event_type":"closed","id":446,"issue_id":"bb-ui2.36","new_value":"{\"status\":\"closed\"}","old_value":"{\"id\":\"bb-ui2.36\",\"title\":\"Fix zod dependency conflict for eslint\",\"acceptance_criteria\":\"npm run lint executes without ERR_PACKAGE_PATH_NOT_EXPORTED error. zod version is compatible with both @remotion/zod-types and eslint-plugin-react-hooks dependencies.\",\"status\":\"open\",\"priority\":1,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-02-16T23:33:15Z\",\"created_by\":\"zenchantlive\",\"updated_at\":\"2026-02-16T23:33:15Z\",\"work_type\":\"mutex\"}"}
|
||||
{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T22:48:14Z","event_type":"closed","id":447,"issue_id":"bb-ui2.35","new_value":"{\"status\":\"closed\"}","old_value":"{\"id\":\"bb-ui2.35\",\"title\":\"Graph View Filtering - Handle swarm and task URL params\",\"acceptance_criteria\":\"Graph view reads swarm and task params from URL. When swarm=xxx, graph filters/hides non-swarm nodes or highlights swarm nodes. When task=xxx, graph centers on that node. Combining view=graph with other params works correctly. npm run typecheck \\u0026\\u0026 npm run lint pass.\",\"notes\":\"REOPENED - CODE REVERTED\\n\\nFailures documented:\\n1. Made graph filtering changes without visual verification\\n2. Did not confirm swarm highlighting works\\n3. Did not confirm task centering works\\n\\nCurrent state: Code reverted to original.\",\"status\":\"open\",\"priority\":1,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-02-16T23:02:29Z\",\"created_by\":\"zenchantlive\",\"updated_at\":\"2026-02-17T03:37:53Z\",\"work_type\":\"mutex\"}"}
|
||||
{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T22:48:19Z","event_type":"closed","id":448,"issue_id":"bb-ui2.34","new_value":"{\"status\":\"closed\"}","old_value":"{\"id\":\"bb-ui2.34\",\"title\":\"Swarm Card Deep Links - Wire up jump icons to URL state\",\"acceptance_criteria\":\"SwarmCard Graph icon navigates to /?view=graph\\u0026swarm={id} with swarm nodes highlighted. SwarmCard Timeline icon navigates to /?view=activity\\u0026swarm={id}. URL updates without page reload. npm run typecheck \\u0026\\u0026 npm run lint pass.\",\"notes\":\"REOPENED - CODE REVERTED\\n\\nFailures documented:\\n1. Did not properly wire up handlers\\n2. No browser verification of deep links\\n3. Changed component signatures without testing integration\\n\\nCurrent state: Code reverted to original.\",\"status\":\"open\",\"priority\":1,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-02-16T23:02:25Z\",\"created_by\":\"zenchantlive\",\"updated_at\":\"2026-02-17T03:37:52Z\",\"work_type\":\"mutex\"}"}
|
||||
{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T22:48:25Z","event_type":"closed","id":449,"issue_id":"bb-ui2.33","new_value":"{\"status\":\"closed\"}","old_value":"{\"id\":\"bb-ui2.33\",\"title\":\"Social Card Deep Links - Wire up jump icons to URL state\",\"acceptance_criteria\":\"SocialCard onJumpToGraph icon navigates to /?view=graph\\u0026task={id}. SocialCard onJumpToKanban icon navigates to legacy kanban or is removed if kanban deprecated. URL updates without page reload. Right panel state preserved appropriately. npm run typecheck \\u0026\\u0026 npm run lint pass.\",\"notes\":\"REOPENED - CODE REVERTED\\n\\nFailures documented:\\n1. Incorrectly removed Kanban icon from SocialCard\\n2. Changed component interface without requirements\\n3. Did not verify deep links work in browser\\n4. Assumed typecheck passing = feature working\\n\\nCurrent state: Code reverted to original. Needs proper implementation with verification.\",\"status\":\"open\",\"priority\":1,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-02-16T23:02:21Z\",\"created_by\":\"zenchantlive\",\"updated_at\":\"2026-02-17T03:37:50Z\",\"work_type\":\"mutex\"}"}
|
||||
{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T22:48:34Z","event_type":"closed","id":450,"issue_id":"bb-ui2.32","new_value":"{\"status\":\"closed\"}","old_value":"{\"id\":\"bb-ui2.32\",\"title\":\"bb-ui2.32: Mobile 4-Tab Navigation - Add Activity tab\",\"description\":\"1) GOAL: Add 4th tab (Activity) to mobile bottom navigation.\\n\\n2) CURRENT: MobileNav has 3 tabs for Social/Graph/Swarm.\\n\\n3) ADD: Fourth tab for Activity view. - Icon: Activity/Clock icon - Label: Activity - Navigates to: /?view=activity\\n\\n4) FILE: src/components/shared/mobile-nav.tsx\\n\\n5) DEPENDS ON: bb-ui2.27 (Mobile Navigation), bb-ui2.29 (ActivityPanel)\\n\\n6) VERIFICATION: npm run typecheck \\u0026\\u0026 npm run lint\",\"acceptance_criteria\":\"MobileNav updated to 4 tabs: Social, Graph, Swarm, Activity. Activity tab navigates to view=activity. Visual styling consistent with other tabs. npm run typecheck \\u0026\\u0026 npm run lint pass.\",\"status\":\"open\",\"priority\":1,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-02-16T17:56:09Z\",\"created_by\":\"zenchantlive\",\"updated_at\":\"2026-02-16T17:56:09Z\",\"work_type\":\"mutex\"}"}
|
||||
{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T22:48:40Z","event_type":"closed","id":451,"issue_id":"bb-ui2.30","new_value":"{\"status\":\"closed\"}","old_value":"{\"id\":\"bb-ui2.30\",\"title\":\"bb-ui2.30: Activity Deep Linking - Agent filtering from cards\",\"description\":\"1) GOAL: Enable deep linking from agent icons on cards to Activity panel filtered by that agent.\\n\\n2) PLAN: Update useUrlState to add agent param. Add onAgentClick to SocialCard/SwarmCard. Wire agent icon click to setView('activity') + setAgentId(). ActivityPanel reads agent param and filters.\\n\\n3) URL: /?view=activity\\u0026agent=bb-xyz\\n\\n4) DEPENDS ON: bb-ui2.29 (ActivityPanel), bb-ui2.11 (SocialCard), bb-ui2.16 (SwarmCard)\\n\\n5) VERIFICATION: npm run typecheck \\u0026\\u0026 npm run lint\",\"acceptance_criteria\":\"Clicking agent icon on SocialCard/SwarmCard navigates to Activity view with that agent selected. URL includes agent param. Right panel filters to show only that agent's activity. Show all button clears filter. npm run typecheck \\u0026\\u0026 npm run lint pass.\",\"status\":\"open\",\"priority\":1,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-02-16T17:55:26Z\",\"created_by\":\"zenchantlive\",\"updated_at\":\"2026-02-16T17:55:26Z\",\"work_type\":\"mutex\"}"}
|
||||
{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T22:48:47Z","event_type":"closed","id":452,"issue_id":"bb-ui2.24","new_value":"{\"status\":\"closed\"}","old_value":"{\"id\":\"bb-ui2.24\",\"title\":\"5.3 Screenshots: Capture all views at all breakpoints\",\"description\":\"1) GOAL\\nCapture comprehensive screenshots for all views at all breakpoints as visual evidence.\\n\\n2) PLAN\\n1. Set up Playwright screenshot capture\\n2. Capture Social view at 390px, 768px, 1440px\\n3. Capture Swarm view at 390px, 768px, 1440px\\n4. Capture Graph view at 390px, 768px, 1440px\\n5. Capture shell overview at full width\\n6. Organize in artifacts/ directory\\n\\n3) SCREENSHOTS REQUIRED\\n- artifacts/social-390.png\\n- artifacts/social-768.png\\n- artifacts/social-1440.png\\n- artifacts/swarm-390.png\\n- artifacts/swarm-768.png\\n- artifacts/swarm-1440.png\\n- artifacts/graph-390.png\\n- artifacts/graph-768.png\\n- artifacts/graph-1440.png\\n- artifacts/shell-overview.png\\n\\n4) ACCEPTANCE CRITERIA\\n- All 10 screenshots captured\\n- Screenshots show realistic data\\n- Screenshots stored in artifacts/\\n- npm run typecheck \\u0026\\u0026 npm run lint pass\\n\\n5) FILES\\n- scripts/capture-screenshots.mjs (or use Playwright)\\n\\n6) SKILLS\\n- verification-before-completion\\n- linus-beads-discipline\\n\\n7) VERIFICATION\\nls -la artifacts/*.png\",\"acceptance_criteria\":\"All 10 screenshots captured and stored in artifacts/; typecheck+lint pass\",\"status\":\"open\",\"priority\":1,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-02-16T02:53:41Z\",\"created_by\":\"zenchantlive\",\"updated_at\":\"2026-02-16T02:53:41Z\",\"work_type\":\"mutex\"}"}
|
||||
{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T22:48:53Z","event_type":"closed","id":453,"issue_id":"bb-ui2.25","new_value":"{\"status\":\"closed\"}","old_value":"{\"id\":\"bb-ui2.25\",\"title\":\"5.4 Final Gates: Run all verification and close epic\",\"description\":\"1) GOAL\\nRun final verification gates and prepare epic for closure.\\n\\n2) PLAN\\n1. Run npm run typecheck\\n2. Run npm run lint\\n3. Run npm run test\\n4. Verify all screenshots exist\\n5. Test all 3 views in browser\\n6. Update epic notes with summary\\n7. Run bd sync\\n\\n3) FINAL CHECKLIST\\n- [ ] npm run typecheck: 0 errors\\n- [ ] npm run lint: 0 errors\\n- [ ] npm run test: all pass\\n- [ ] Social view renders correctly\\n- [ ] Swarm view renders correctly\\n- [ ] Graph view renders correctly\\n- [ ] URL state works\\n- [ ] Responsive works\\n- [ ] Screenshots captured\\n\\n4) ACCEPTANCE CRITERIA\\n- All quality gates pass\\n- All views functional\\n- Epic ready for closure\\n- bd sync completed\\n\\n5) FILES\\n- Update bb-ui2 epic notes with final summary\\n\\n6) SKILLS\\n- verification-before-completion\\n- linus-beads-discipline\\n\\n7) VERIFICATION\\nnpm run typecheck \\u0026\\u0026 npm run lint \\u0026\\u0026 npm run test\\nbd show bb-ui2\",\"acceptance_criteria\":\"All gates pass; all views functional; epic ready for closure\",\"status\":\"open\",\"priority\":1,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-02-16T02:53:47Z\",\"created_by\":\"zenchantlive\",\"updated_at\":\"2026-02-16T02:53:47Z\",\"work_type\":\"mutex\"}"}
|
||||
{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T22:48:59Z","event_type":"closed","id":454,"issue_id":"bb-ui2.23","new_value":"{\"status\":\"closed\"}","old_value":"{\"id\":\"bb-ui2.23\",\"title\":\"5.2 Mobile Polish: Verify mobile experience\",\"description\":\"1) GOAL\\nPolish mobile experience ensuring all interactions work correctly on small screens.\\n\\n2) PLAN\\n1. Test all views at 390px width\\n2. Verify drawer interactions\\n3. Test touch interactions\\n4. Check keyboard doesn't overlap content\\n5. Fix any mobile-specific issues\\n\\n3) MOBILE CHECKLIST\\n- Left panel: accessible via hamburger menu\\n- Right panel: full-screen drawer\\n- Cards: readable without horizontal scroll\\n- Thread: scrollable in drawer\\n- View tabs: accessible\\n- Touch: tap targets 44px minimum\\n\\n4) ACCEPTANCE CRITERIA\\n- All views work at 390px width\\n- Drawer opens/closes smoothly\\n- No horizontal overflow\\n- Touch targets meet accessibility standards\\n- npm run typecheck \\u0026\\u0026 npm run lint pass\\n\\n5) FILES\\n- Various (fix mobile issues as found)\\n\\n6) SKILLS\\n- verification-before-completion\\n- linus-beads-discipline\\n\\n7) VERIFICATION\\nnpm run typecheck \\u0026\\u0026 npm run lint\\nScreenshots: artifacts/mobile-390-{social,swarm,graph}.png\",\"acceptance_criteria\":\"All views work on mobile; drawer smooth; no overflow; touch accessible; typecheck+lint pass\",\"status\":\"open\",\"priority\":1,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-02-16T02:53:07Z\",\"created_by\":\"zenchantlive\",\"updated_at\":\"2026-02-16T02:53:07Z\",\"work_type\":\"mutex\"}"}
|
||||
{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T22:49:44Z","event_type":"created","id":455,"issue_id":"beadboard-n1h","new_value":"","old_value":""}
|
||||
{"actor":"zenchantlive","comment":"Added label: quality","created_at":"2026-03-01T22:49:44Z","event_type":"label_added","id":456,"issue_id":"beadboard-n1h","new_value":null,"old_value":null}
|
||||
{"actor":"zenchantlive","comment":"Added label: testing","created_at":"2026-03-01T22:49:44Z","event_type":"label_added","id":457,"issue_id":"beadboard-n1h","new_value":null,"old_value":null}
|
||||
{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T22:50:04Z","event_type":"created","id":458,"issue_id":"beadboard-n1h.1","new_value":"","old_value":""}
|
||||
{"actor":"zenchantlive","comment":"Added label: quality","created_at":"2026-03-01T22:50:04Z","event_type":"label_added","id":459,"issue_id":"beadboard-n1h.1","new_value":null,"old_value":null}
|
||||
{"actor":"zenchantlive","comment":"Added label: testing","created_at":"2026-03-01T22:50:04Z","event_type":"label_added","id":460,"issue_id":"beadboard-n1h.1","new_value":null,"old_value":null}
|
||||
{"actor":"zenchantlive","comment":"Added label: unit-tests","created_at":"2026-03-01T22:50:05Z","event_type":"label_added","id":461,"issue_id":"beadboard-n1h.1","new_value":null,"old_value":null}
|
||||
{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T22:50:15Z","event_type":"created","id":462,"issue_id":"beadboard-n1h.2","new_value":"","old_value":""}
|
||||
{"actor":"zenchantlive","comment":"Added label: quality","created_at":"2026-03-01T22:50:15Z","event_type":"label_added","id":463,"issue_id":"beadboard-n1h.2","new_value":null,"old_value":null}
|
||||
{"actor":"zenchantlive","comment":"Added label: testing","created_at":"2026-03-01T22:50:16Z","event_type":"label_added","id":464,"issue_id":"beadboard-n1h.2","new_value":null,"old_value":null}
|
||||
{"actor":"zenchantlive","comment":"Added label: integration","created_at":"2026-03-01T22:50:16Z","event_type":"label_added","id":465,"issue_id":"beadboard-n1h.2","new_value":null,"old_value":null}
|
||||
{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T22:50:29Z","event_type":"created","id":466,"issue_id":"beadboard-n1h.3","new_value":"","old_value":""}
|
||||
{"actor":"zenchantlive","comment":"Added label: quality","created_at":"2026-03-01T22:50:29Z","event_type":"label_added","id":467,"issue_id":"beadboard-n1h.3","new_value":null,"old_value":null}
|
||||
{"actor":"zenchantlive","comment":"Added label: testing","created_at":"2026-03-01T22:50:29Z","event_type":"label_added","id":468,"issue_id":"beadboard-n1h.3","new_value":null,"old_value":null}
|
||||
{"actor":"zenchantlive","comment":"Added label: performance","created_at":"2026-03-01T22:50:29Z","event_type":"label_added","id":469,"issue_id":"beadboard-n1h.3","new_value":null,"old_value":null}
|
||||
{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T22:50:36Z","event_type":"closed","id":470,"issue_id":"bb-18e","new_value":"Children closed - old backlog","old_value":""}
|
||||
{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T22:54:58Z","event_type":"created","id":471,"issue_id":"beadboard-jq5","new_value":"","old_value":""}
|
||||
{"actor":"zenchantlive","comment":"Added label: backend","created_at":"2026-03-01T22:54:58Z","event_type":"label_added","id":472,"issue_id":"beadboard-jq5","new_value":null,"old_value":null}
|
||||
{"actor":"zenchantlive","comment":"Added label: frontend","created_at":"2026-03-01T22:54:58Z","event_type":"label_added","id":473,"issue_id":"beadboard-jq5","new_value":null,"old_value":null}
|
||||
{"actor":"zenchantlive","comment":"Added label: project-scope","created_at":"2026-03-01T22:54:58Z","event_type":"label_added","id":474,"issue_id":"beadboard-jq5","new_value":null,"old_value":null}
|
||||
{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T22:55:17Z","event_type":"created","id":475,"issue_id":"beadboard-2e6","new_value":"","old_value":""}
|
||||
{"actor":"zenchantlive","comment":"Added label: ux","created_at":"2026-03-01T22:55:17Z","event_type":"label_added","id":476,"issue_id":"beadboard-2e6","new_value":null,"old_value":null}
|
||||
{"actor":"zenchantlive","comment":"Added label: critique","created_at":"2026-03-01T22:55:17Z","event_type":"label_added","id":477,"issue_id":"beadboard-2e6","new_value":null,"old_value":null}
|
||||
{"actor":"zenchantlive","comment":"Added label: frontend","created_at":"2026-03-01T22:55:17Z","event_type":"label_added","id":478,"issue_id":"beadboard-2e6","new_value":null,"old_value":null}
|
||||
{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T22:55:56Z","event_type":"created","id":479,"issue_id":"beadboard-dc0","new_value":"","old_value":""}
|
||||
{"actor":"zenchantlive","comment":"Added label: mem-canonical","created_at":"2026-03-01T22:55:56Z","event_type":"label_added","id":480,"issue_id":"beadboard-dc0","new_value":null,"old_value":null}
|
||||
{"actor":"zenchantlive","comment":"Added label: mem-soft","created_at":"2026-03-01T22:55:56Z","event_type":"label_added","id":481,"issue_id":"beadboard-dc0","new_value":null,"old_value":null}
|
||||
{"actor":"zenchantlive","comment":"Added label: memory","created_at":"2026-03-01T22:55:56Z","event_type":"label_added","id":482,"issue_id":"beadboard-dc0","new_value":null,"old_value":null}
|
||||
{"actor":"zenchantlive","comment":"Added label: memory-arch","created_at":"2026-03-01T22:55:56Z","event_type":"label_added","id":483,"issue_id":"beadboard-dc0","new_value":null,"old_value":null}
|
||||
{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T22:56:47Z","event_type":"updated","id":484,"issue_id":"beadboard-6iq","new_value":"{\"notes\":\"Memory review: no new reusable memory.\"}","old_value":"{\"id\":\"beadboard-6iq\",\"title\":\"[MEMORY][UI][HARD] Extract human-readable names from raw data fields\",\"description\":\"Scope: Any place that displays agent/user names from bead data\\\\nOut of Scope: Displaying raw IDs in debug/metadata views\\\\nRule: Never use bead.assignee directly for display - it contains the bead ID (e.g., beadboard-xyz), not the agent name. Always extract via: 1) title matching \\\"Agent: \\u003cname\\u003e\\\" pattern, 2) labels with \\\"agent:\\\" prefix, 3) fallback to raw value only if extraction fails.\\\\nRationale: Raw data fields often contain system identifiers, not human-readable content. Extract before display.\\\\nFailure Mode: Agent avatars show bead IDs like \\\"beadboard-abc\\\" instead of actual names.\",\"status\":\"open\",\"priority\":1,\"issue_type\":\"decision\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-03-02T05:40:48Z\",\"created_by\":\"zenchantlive\",\"updated_at\":\"2026-03-02T05:40:48Z\"}"}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
{"acceptance_criteria":"No white-screen/runtime errors; graph edges and labels visible; cards/panels follow new hierarchy; no overflow regressions; Playwright evidence captured.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Superseded by bb-b4j phased epic tree (foundation -\u003e shared -\u003e kanban/graph -\u003e guards -\u003e verification).","closed_at":"2026-02-13T18:24:52Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"67b8683eee99a0bba8a7bbb2c8fdd1103572716632df0e6b16772687844c669f","created_at":"2026-02-13T17:54:32Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Implement phase A-D UI polish pass on existing pages using global tokens and scoped component styling. Keep business logic unchanged. Ensure graph edge visibility and relation labels remain readable. Ensure mobile containment and scrolling behavior are correct.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-0h7","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"closed","target":"","timeout_ns":0,"title":"Implement aero-chrome UI polish on workflow explorer pages","updated_at":"2026-02-13T18:24:52Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"- Graph clarity backlog is explicitly captured and linked to future implementation beads.\n- No accidental scope leakage into current Kanban pass.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":"2026-02-28T17:59:50Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"f035829f9b1c6142dc96515c1c802391cd3978598a2b55361ef7e318ba9b6abb","created_at":"2026-02-13T03:45:41Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Objective:\nTrack graph-focused clarity enhancements that are explicitly out of current Kanban execution scope.\n\nScope:\n- Dependency graph comprehension aids\n- anomaly communication for cycle/deadlock scenarios\n- future AI explanation hooks for dependency understanding\n\nOut of scope for immediate execution:\n- Kanban UI polish currently underway in bb-1es\n\nPlanning note:\nThis epic stays pending until current Kanban actionability epic reaches acceptance.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-18e","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"Backlog epic for graph-specific clarity work discussed after bb-1es.\nPost-Kanban gate enforced: bb-18e depends on bb-1es completion. Child bb-18e.1 is also explicitly blocked by bb-1es to prevent scope bleed before Kanban pass completes.\nExecution sequence added: (1) bb-18e.2 edge labels/contrast + bb-18e.3 direction hints + bb-18e.1 cycle card, (2) bb-18e.4 edge toggles + bb-18e.6 centered focus, (3) bb-18e.5 external blockers + bb-18e.7 progressive details + bb-18e.10 risk tinting, (4) bb-18e.8 keyboard nav + bb-18e.9 URL state, (5) bb-18e.11 AI explanation scaffold (deferred).","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":"\"graph-focused","updated_at":"2026-03-02T04:16:18Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"- Graph clarity backlog is explicitly captured and linked to future implementation beads.\n- No accidental scope leakage into current Kanban pass.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Children closed - old backlog","closed_at":"2026-03-02T06:50:36Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"f035829f9b1c6142dc96515c1c802391cd3978598a2b55361ef7e318ba9b6abb","created_at":"2026-02-13T03:45:41Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Objective:\nTrack graph-focused clarity enhancements that are explicitly out of current Kanban execution scope.\n\nScope:\n- Dependency graph comprehension aids\n- anomaly communication for cycle/deadlock scenarios\n- future AI explanation hooks for dependency understanding\n\nOut of scope for immediate execution:\n- Kanban UI polish currently underway in bb-1es\n\nPlanning note:\nThis epic stays pending until current Kanban actionability epic reaches acceptance.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-18e","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"Backlog epic for graph-specific clarity work discussed after bb-1es.\nPost-Kanban gate enforced: bb-18e depends on bb-1es completion. Child bb-18e.1 is also explicitly blocked by bb-1es to prevent scope bleed before Kanban pass completes.\nExecution sequence added: (1) bb-18e.2 edge labels/contrast + bb-18e.3 direction hints + bb-18e.1 cycle card, (2) bb-18e.4 edge toggles + bb-18e.6 centered focus, (3) bb-18e.5 external blockers + bb-18e.7 progressive details + bb-18e.10 risk tinting, (4) bb-18e.8 keyboard nav + bb-18e.9 URL state, (5) bb-18e.11 AI explanation scaffold (deferred).","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":"\"graph-focused","updated_at":"2026-03-02T06:50:36Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"- Cycle warning card appears only when cycles are present.\n- Card provides actionable cycle navigation.\n- Language is plain and explains user impact.\n- Tests cover empty and non-empty cycle states.\n- Typecheck and graph guards pass.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Old backlog","closed_at":"2026-03-02T06:42:27Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"c20347b48fee9f7ae3e7e0d47793129da30fcf4d22bac210d219abba5d7a87a5","created_at":"2026-02-13T03:46:01Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Goal:\nWhen dependency cycles exist, show an explicit cycle warning card so users understand why work may be deadlocked.\n\nProblem:\nCycle states are hard to infer from dense node/edge layouts, leading to confusion (“why can’t this move?”).\n\nBehavior contract:\n- Show warning card only when cycle analysis is non-empty.\n- Card includes:\n - cycle count\n - affected bead ids (compact list)\n - click-to-focus action for each cycle group\n - plain language explanation of impact (“tasks in this loop cannot fully unblock each other without breaking the cycle”).\n- Visual style: warning but not alarmist (amber/red subtle).\n\nImplementation tasks:\n1) Build compact cycle summary model from existing detection output.\n2) Add warning card component above graph viewport.\n3) Wire click handlers to focus selected cycle nodes.\n4) Add tests for no-cycle and multi-cycle rendering behavior.\n\nOut of scope:\n- Automatic cycle resolution suggestions.\n- Mutation/write automation.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-18e.1","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"This is the #19 idea captured as an explicit implementation bead.\nDepends on existing cycle analysis primitives already implemented.","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":2,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"closed","target":"","timeout_ns":0,"title":"Add cycle warning card with focus actions in graph view","updated_at":"2026-03-02T06:42:27Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"- Higher downstream impact gets stronger but subtle visual signal.\n- Does not overpower status/selection color language.\n- Works with existing legend semantics.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Old backlog","closed_at":"2026-03-02T06:42:31Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"39b9d7b5ad73f351f3082b3498f8a342a20c1f2d6f44413ec1e81ecd0b9a461e","created_at":"2026-02-13T04:21:22Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Add subtle risk tinting based on downstream impact count to highlight high-blast-radius tasks.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-18e.10","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Use restrained styling; no heavy borders.","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":2,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"closed","target":"","timeout_ns":0,"title":"Add downstream-impact risk tinting","updated_at":"2026-03-02T06:42:31Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"- Data contract for AI explanation input is defined.\n- UI placeholder state exists but feature-flagged/off by default.\n- No network/model dependency in this bead.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":"2026-02-13T07:35:59Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"13aa5c16dca7a7a355008e45c45efbb68d68574ec85ce08d0cfaa12d1c5ab810","created_at":"2026-02-13T04:21:22Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Prepare integration scaffold for later AI explanation in dependency view (why blocked / next steps), without shipping model calls yet.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-18e.11","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Deferred feature: implement only scaffolding and interfaces.","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":3,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"closed","target":"","timeout_ns":0,"title":"AI dependency explanation scaffold (deferred)","updated_at":"2026-02-13T07:35:59Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
|
|
@ -26,7 +26,7 @@
|
|||
{"acceptance_criteria":"Performance report exists with methodology and observed timings.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Old - will redo with beadboard prefix","closed_at":"2026-03-02T06:41:48Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"064a06462940786e4be572fc5001d0a9602200fc64d215d6f42b13b4cc270540","created_at":"2026-02-12T01:12:18Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Measure parse latency and update propagation using realistic sample sizes and document outcomes.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-29x.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":2,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"closed","target":"","timeout_ns":0,"title":"Record parser and realtime performance baseline against PRD targets","updated_at":"2026-03-02T06:41:48Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"Runbook documents startup, troubleshooting, and boundary rules.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Old - will redo with beadboard prefix","closed_at":"2026-03-02T06:41:50Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"4da266ce4f9591ca46909d68725c4bd842eb4036995ae29ad2460de5cfe99c70","created_at":"2026-02-12T01:12:19Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Write architecture docs covering scanner policy, bd bridge behavior, and consistency guardrails for future maintainers.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-29x.4","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":2,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"closed","target":"","timeout_ns":0,"title":"Document operational runbook and boundary rationale","updated_at":"2026-03-02T06:41:50Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"A written execution-grade plan exists for this epic and all child task descriptions are updated with concrete implementation details, dependencies, and testable acceptance criteria.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Old - will redo with beadboard prefix","closed_at":"2026-03-02T06:41:51Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"b3b645a3aa9eaa587445737d54e3038e7d744016e26f979d993b0040e1892a6e","created_at":"2026-02-12T04:09:42Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Design/discovery gate for bb-29x before further implementation.\n\nMust capture:\n- Product intent and user outcomes for this epic\n- Explicit architecture decisions and tradeoffs\n- API/data contracts and edge cases\n- Windows-specific constraints and path/process assumptions\n- Test strategy and verification commands\n- Non-goals and out-of-scope boundaries\n\nCompletion rule:\nDo not start new implementation tasks in this epic until this gate is closed with agreed decisions.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-29x.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":null,"status":"closed","target":"","timeout_ns":0,"title":"Epic Design Gate: scope, decisions, and acceptance contract","updated_at":"2026-03-02T06:41:51Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":"bb-1xj","await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"8937e2456e90ca9b90bdfeeaf0cfc86ee158f124a8d29275e70ed4615ef812aa","created_at":"2026-02-14T08:16:24Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Perform exhaustive verification of the snapshot diffing logic in src/lib/snapshot-differ.ts. While the core O(N) algorithm is implemented and handles basic transitions, we must stress-test the engine against complex real-world scenarios to ensure the 'Tale of the Project' remains perfectly accurate. Scope includes: (1) High-frequency update bursts (multiple saves within 50ms), (2) Massive batch mutations where 50+ beads are updated in a single sync, (3) Complex state permutations like simultaneous status and dependency changes, and (4) Resiliency testing against transient file-locks or malformed JSONL lines during the diffing window.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-2mx","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"REOPENING for end-to-end verification. Unit tests done, but need to verify /timeline page works and real-time updates flow through.","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"open","target":"","timeout_ns":0,"title":"Deep validation and edge-case testing of Snapshot Diffing engine","updated_at":"2026-02-14T23:32:45Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":"bb-1xj","await_id":"","await_type":"","close_reason":"Old backlog","closed_at":"2026-03-02T06:47:02Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"8937e2456e90ca9b90bdfeeaf0cfc86ee158f124a8d29275e70ed4615ef812aa","created_at":"2026-02-14T08:16:24Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Perform exhaustive verification of the snapshot diffing logic in src/lib/snapshot-differ.ts. While the core O(N) algorithm is implemented and handles basic transitions, we must stress-test the engine against complex real-world scenarios to ensure the 'Tale of the Project' remains perfectly accurate. Scope includes: (1) High-frequency update bursts (multiple saves within 50ms), (2) Massive batch mutations where 50+ beads are updated in a single sync, (3) Complex state permutations like simultaneous status and dependency changes, and (4) Resiliency testing against transient file-locks or malformed JSONL lines during the diffing window.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-2mx","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"REOPENING for end-to-end verification. Unit tests done, but need to verify /timeline page works and real-time updates flow through.","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":"Deep validation and edge-case testing of Snapshot Diffing engine","updated_at":"2026-03-02T06:47:02Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"All 3 views render in unified shell; earthy-dark tokens applied globally; URL state preserves selection across views; Responsive behavior (sidebar/drawer) works correctly; Old pages accessible as reference; npm run typecheck passes; npm run lint passes; npm run test passes; Screenshots captured for all 3 views at 390px, 768px, 1440px breakpoints","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":"272902b205985b916c73f93557a1bd8a230893cabdfd046e43b765e429ffdf8a","created_at":"2026-02-16T02:29:47Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"EPIC: Replace fragmented 4-page layout with unified 3-panel shell at /.\n\nPROBLEM:\nBeadBoard has 4 fragmented pages (/, /graph, /sessions, /timeline) with no shared navigation, inconsistent design language, and users cannot supervise multi-agent teams in one cohesive experience.\n\nSOLUTION:\nSingle unified shell at / with 3 views:\n- Social: Task activity feed with blocks/unlocks\n- Graph: Dependency visualization (migrate existing)\n- Swarm: Team health dashboard\n\nAll views share the same card-grid + sidebar-detail pattern.\n\nKEY DECISIONS (Immutable):\n1. Routing: Single page at / with client tabs\n2. Views: 3 tabs (Social, Graph, Swarm)\n3. Detail pattern: Right sidebar (desktop), drawer (mobile)\n4. Visual style: shadcn/ui + earthy-dark tokens\n5. Tailwind: Stay on v3\n6. Old pages: Copy page.tsx to page-old.tsx for reference\n7. Card pattern: Same base for Social and Swarm\n8. Threads: In detail strip for both views\n9. Agent presence: Embedded in swarm cards\n10. Swarm sorting: Health (default), Activity, Progress, Name\n\nSKILLS REQUIRED (Non-Negotiable):\n- verification-before-completion\n- test-driven-development\n- beadboard-driver\n- linus-beads-discipline\n\nPHASES:\nPhase 0: Design Foundation (3 beads, parallel)\nPhase 1: Shell Layout (6 beads, sequential deps)\nPhase 2: Social View (5 beads, sequential deps)\nPhase 3: Swarm View (4 beads, sequential deps)\nPhase 4: Graph Migration (3 beads, sequential deps)\nPhase 5: Polish (4 beads, parallel, depends on all above)\n\nTotal: 19 implementation beads","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-2sr","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"tombstone","target":"","timeout_ns":0,"title":"Unified UX - Earthy Dark Shell with Social/Graph/Swarm Views","updated_at":"2026-02-16T02:41:08Z","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":"a4af42a51198a8c89040adbca8adacdf891ff38f9ab3b844e34a6d490bc763b6","created_at":"2026-02-16T06:12:53Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-3dv","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":"tombstone","target":"","timeout_ns":0,"title":"Agent: rightpanel-builder","updated_at":"2026-02-24T03:35:56Z","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":"445adee9fd2026c1370c5eac1b859479a2666169de925933075c506ae9d5ee30","created_at":"2026-02-16T06:43:58Z","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-3ha","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":"tombstone","target":"","timeout_ns":0,"title":"Agent: sessions-integrator","updated_at":"2026-02-24T03:35:55Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
|
|
@ -51,7 +51,7 @@
|
|||
{"acceptance_criteria":"Users can manage registry projects entirely from UI and immediately use newly added project roots in scope selection.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"project-manager-panel-shipped","closed_at":"2026-02-13T06:33:04Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"4e4a8259d2fe27f843787ea8538e5550fab048166f6974886a077f35d8865b5a","created_at":"2026-02-13T05:41:13Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Build a user-facing project manager panel backed by /api/projects.\\n\\nFeatures:\\n- list registered projects with normalized display path\\n- add project path with validation feedback\\n- remove project with confirm affordance\\n- clearly indicate current selected project\\n- mobile-safe layout and keyboard accessibility","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-6aj.8","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"2026-02-13 completed: implemented registry manager panel in shared ProjectScopeControls component with list/add/remove flows backed by /api/projects; includes validation/error messaging, active-scope indication, and mobile-safe controls. Integrated into src/components/kanban/kanban-page.tsx and src/components/graph/dependency-graph-page.tsx.","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"closed","target":"","timeout_ns":0,"title":"Project manager panel (list/add/remove registry roots)","updated_at":"2026-02-13T06:33:04Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"Users can discover projects via scanner and import them into registry without leaving the app.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"scanner-discover-import-ux-shipped","closed_at":"2026-02-13T06:33:33Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"f35d3e8a3d8e9eb4963dcc8797cdc776d3b2a594b1e764c0e96d122abbb3a859","created_at":"2026-02-13T05:41:30Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Expose scanner workflow in UI using /api/scan.\\n\\nFeatures:\\n- run default scan (profile + registry roots)\\n- optional full-drive scan behind explicit advanced control\\n- show discovered roots with source metadata and deduped list\\n- one-click import selected discoveries to registry\\n- loading/timeout/error states with plain-language messaging","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-6aj.9","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"2026-02-13 completed: scanner UX added to ProjectScopeControls using /api/scan with mode controls (safe roots/full-drive), scan stats, deduped discovery list, and one-click import to registry via /api/projects POST. Loading/error states surfaced in-panel.\n2026-02-13 post-close hardening: scanner now requires .beads/issues.jsonl or .beads/issues.jsonl.new and adds deny rules for tool/cache/worktree noise (directory names: .agents/.kimi/.gemini/.zenflow/worktrees/appdata + name prefixes beadboard-read-, beadboard-watch-, skills- + go/pkg/mod fragment). Added regression coverage in tests/lib/scanner.test.ts.","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":"Scanner UX (discover/import projects from safe roots)","updated_at":"2026-02-13T07:17:33Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"RESTART: Messy hierarchy and poor descriptive detail. Replacing with a disciplined, prompt-based plan.","closed_at":"2026-02-14T21:58:10Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"748972b0955ed5df6c2138926adf43cc4ac0c24bc0dc349c516b3b54143bb088","created_at":"2026-02-14T21:39:30Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Refactor activity-lease to use native bd wisps and wire the 'stuck/dead' states into the backend logic.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-6bx","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"PROMOTED TO EPIC: Resiliency \u0026 Telemetry Layer. Focus: Wisp-native heartbeats and ZFC state machine integration.","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":"Resiliency Layer: Wisp Heartbeats and State Machine Wiring","updated_at":"2026-02-14T21:58:10Z","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":"67649567d9d1ca9264889109997020133abe4335a5d65dd5286adc1594b14cbc","created_at":"2026-02-14T21:56:28Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"PROMPT: IMPLEMENT ZFC-compliant lifecycle wrapper in 'src/lib/agent-registry.ts'.\n1. DEFINE: updateAgentState(agentId, state) strictly typed to: [idle, spawning, running, working, stuck, done, stopped, dead].\n2. WIRE: Auto-trigger 'stuck' state in tools/bb.ts global catch block when process.exitCode !== 0.\n3. MEASURABLE RESULT: 'bd agent show \u003cid\u003e --json' reflects the exact state transition after a simulated CLI failure.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-6bx.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":null,"status":"open","target":"","timeout_ns":0,"title":"bb-6bx.2: ZFC State Machine Integration","updated_at":"2026-02-14T21:56:28Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":"2026-03-02T06:47:18Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"67649567d9d1ca9264889109997020133abe4335a5d65dd5286adc1594b14cbc","created_at":"2026-02-14T21:56:28Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"PROMPT: IMPLEMENT ZFC-compliant lifecycle wrapper in 'src/lib/agent-registry.ts'.\n1. DEFINE: updateAgentState(agentId, state) strictly typed to: [idle, spawning, running, working, stuck, done, stopped, dead].\n2. WIRE: Auto-trigger 'stuck' state in tools/bb.ts global catch block when process.exitCode !== 0.\n3. MEASURABLE RESULT: 'bd agent show \u003cid\u003e --json' reflects the exact state transition after a simulated CLI failure.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-6bx.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":null,"status":"closed","target":"","timeout_ns":0,"title":"bb-6bx.2: ZFC State Machine Integration","updated_at":"2026-03-02T06:47:18Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Deleted: created before plan approval","closed_at":"2026-02-14T17:45:03Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"f8dc4853b8518cae471eccc6eb5c24feede16bca1522bf13e601dd5f916bf317","created_at":"2026-02-14T17:44:01Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Implement the bb-init tool with --adopt and --non-interactive support, and the bb agent heartbeat command.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-6d5","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":"CLI Surface: bb-init (Non-Interactive) and Heartbeat Command","updated_at":"2026-02-14T17:45:03Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"buildSocialCards function created in src/lib/social-cards.ts; SocialCard interface defined; Correctly transforms BeadIssue to SocialCard; Includes blocked-by/blocking relationships; Includes agent liveness; Unit tests pass; npm run typecheck passes; npm run lint passes; npm run test 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":"400f96d00100d9ed4e6646347d68830713977567c7b8a72e410f3013ced6f0fa","created_at":"2026-02-16T02:36:32Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"GOAL:\nCreate a data transformation layer that converts BeadIssue objects into SocialCard objects for the Social view.\n\nPROBLEM:\nThe Social view needs cards that show:\n- Task ID and title\n- Blocked-by (UNLOCKS) with status\n- Blocking (BLOCKS) with status\n- Assigned agents with liveness\n- Last activity message\n- Epic context\n\nWe need to transform raw BeadIssue data into this format efficiently.\n\nACCEPTANCE CRITERIA:\n1. buildSocialCards function created in src/lib/social-cards.ts\n2. Returns array of SocialCard objects\n3. Correctly computes blocked-by and blocking relationships\n4. Includes agent liveness from registry\n5. Includes last activity from activity feed\n6. Unit tests for transformation logic\n7. npm run typecheck passes\n8. npm run lint passes\n9. npm run test passes\n\nIMPLEMENTATION STEPS:\n1. Create src/lib/social-cards.ts\n2. Define SocialCard interface\n3. Implement buildSocialCards function\n4. Integrate with agent-registry for liveness\n5. Integrate with activity for last message\n6. Write unit tests\n\nFILES TO CREATE:\n- src/lib/social-cards.ts\n- tests/lib/social-cards.test.ts\n\nINTERFACE:\n\n```typescript\ninterface SocialCard {\n id: string; // Task ID\n title: string;\n status: 'ready' | 'in_progress' | 'blocked' | 'closed';\n priority: number;\n \n // Blocks/Unlocks\n blockedBy: {\n id: string;\n title: string;\n status: string;\n }[];\n blocking: {\n id: string;\n title: string;\n status: string;\n }[];\n \n // Agents\n assignee: string | null;\n agents: {\n id: string;\n liveness: AgentLiveness;\n }[];\n \n // Activity\n lastActivity: {\n message: string;\n author: string;\n timestamp: string;\n } | null;\n \n // Metadata\n epicId: string | null;\n updatedAt: string;\n}\n\nfunction buildSocialCards(\n issues: BeadIssue[],\n options?: {\n agentLiveness?: Record\u003cstring, AgentLiveness\u003e;\n recentActivity?: Map\u003cstring, ActivityEvent\u003e;\n }\n): SocialCard[];\n```\n\nREUSE:\n- src/lib/agent-sessions.ts (patterns for aggregation)\n- src/lib/activity.ts (for last activity)\n\nSKILLS TO USE:\n- verification-before-completion\n- test-driven-development\n- linus-beads-discipline\n\nDEPENDENCIES:\n- Uses existing: agent-registry, activity\n\nVERIFICATION:\n```bash\nnpm run typecheck\nnpm run lint\nnpm run test\n```\n\nEVIDENCE TO CAPTURE:\n- Test output showing transformation works\n- npm run typecheck output","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-6hb","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":"2.1 Social Card Data Builder: Transform issues into SocialCard data","updated_at":"2026-02-16T02:41:08Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"releaseAgentReservation normalizes scope before lookup; all agent-reservations tests pass; npm run typecheck \u0026\u0026 npm run lint \u0026\u0026 npm run test all pass","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Fixed scope normalization bug in releaseAgentReservation; added --test-force-exit to hanging tests; agent-reservations tests pass","closed_at":"2026-02-14T20:13:55Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"71e54417dfba270565c61ffb6a9a8d70d152b1a6071b0e2fb8cbff85e508fe34","created_at":"2026-02-14T20:02:54Z","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-79b","is_template":0,"issue_type":"bug","last_activity":null,"metadata":"{}","mol_type":"","notes":"VERIFICATION EVIDENCE:\n- node --import tsx --test tests/lib/agent-reservations.test.ts: 3/3 pass\n- npm run typecheck: pass\n- npm run lint: 1 warning (pre-existing, unrelated)\n\nFILES CHANGED:\n- src/lib/agent-reservations.ts: Added normalizePath(scope) on line 410 before scope lookup\n- tests/api/events-route.test.ts: Added test.afterEach to stop watchers\n- package.json: Added --test-force-exit to watcher.test.ts and events-route.test.ts\n\nROOT CAUSE: releaseAgentReservation compared raw scope against normalized scopes stored in reservations. This caused lookup to fail on Windows paths where normalization lowercases and converts backslashes.\n\nNOTE: This file (agent-reservations.ts) will remain custom even after bb-1y7 consolidation since bd has no path-based reservations concept.","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":"Fix scope normalization in releaseAgentReservation","updated_at":"2026-02-14T20:18:54Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
|
|
@ -120,7 +120,7 @@
|
|||
{"acceptance_criteria":"Sessions hub draws and updates working-agent-to-task mission links with fallback behavior and verified test/evidence outputs.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"IMPLEMENTED: Data layer for Active Mission Pathing. Added getAgentActiveMissions(), getActiveMissionCount(), getMissionsByAgent() functions. Tests pass. Note: Visual layer requires API changes to avoid node: import chain in client components.","closed_at":"2026-02-15T21:50:04Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"86b63cb3ac62d3dddc1890dc675180ab44046482f09db475154ce4e7d7534089","created_at":"2026-02-14T22:05:46Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Render active mission pathing between working agent and task card being modified.\n\nImplementation requirements\n1) Determine mapping source for working agent -\u003e active task id.\n2) Draw visual link/path indicator in Sessions hub.\n3) Keep performance acceptable under multiple active agents.\n4) Provide fallback for missing/ambiguous mapping.\n\nEvidence\n- integration test for mapping/render updates.\n- screenshot/capture evidence for linked/unlinked states.\n\nFiles\n- src/components/sessions/sessions-page.tsx\n- src/components/sessions/session-task-feed.tsx\n- src/hooks/use-session-feed.ts\n- tests/components/sessions/*\r\n","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-buff.3.3","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"IMPLEMENTATION COMPLETE:\n\n**Data Layer Added:**\n- getAgentActiveMissions(feed, agentId) - returns tasks owned by agent\n- getActiveMissionCount(feed, agentId) - returns count\n- getMissionsByAgent(feed) - groups all missions by agent\n\n**Note on Visual Layer:**\n- The UI import chain (sessions-page → agent-sessions → agent-registry → bridge → node:child_process) breaks Next.js webpack because client components can't use node: imports\n- The data functions are exported and work - can be used via API layer in future\n\n**Tests:** 8/8 PASS\n\n**Verification:**\n- typecheck: PASS\n- tests: 8/8 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":"Active Mission Pathing","updated_at":"2026-02-15T21:50:04Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"Hub colors agents by role (ui=blue, graph=green, orchestrator=purple, agent=gray) with accessible contrast; tests and screenshots included","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Agent stations display role-based color coding: ui=blue border, graph=green border, orchestrator=purple border, default=gray border. Tests pass, gates pass.","closed_at":"2026-02-15T21:27:38Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"c4e4663f89f691b09db3b6ef5899af1165a6d3e541da40a4d9a039bff44705bb","created_at":"2026-02-15T06:35:31Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Implement role-based visual distinction in Sessions Hub.\n\nWhy this exists\n- bb-buff.2.1 added role fingerprinting (ui, graph, orchestrator, etc.)\n- Currently roles are data only, not visually surfaced\n- Color coding helps quickly identify agent types in the hub\n\nImplementation requirements\n1) Map agent roles to distinct colors: ui=blue, graph=green, orchestrator=purple, agent=gray\n2) Apply color to AgentStation avatar or border\n3) Ensure WCAG contrast requirements\n4) Support extensible role list\n\nFiles: src/components/sessions/sessions-header.tsx or agent-station.tsx","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-buff.3.4","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Role colors implemented: ui=blue, graph=green, orchestrator=purple, default=gray. Applied to agent avatar border. Tests: agent-station-logic.test.ts updated and passing. Gates: typecheck, lint, test 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":"Role-Based Color Coding","updated_at":"2026-02-15T21:27:38Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"Hub displays aggregate health per swarm (All Active=green, Needs Attention=yellow, Degraded=red, Offline=gray) with test evidence","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Swarm containers display aggregate health status (active/warning/critical/offline) with visual dot indicator and color-coded status text. Removed @ts-ignore from tests.","closed_at":"2026-02-15T21:26:07Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"1e6e252cae461b00dc8ea2d31165f28678430d367358ca3b8fa8014cef6aba68","created_at":"2026-02-15T06:35:37Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Display aggregate health status per swarm container.\n\nWhy this exists\n- bb-buff.1.x added liveness/telemetry tracking\n- bb-buff.3.1 adds swarm grouping\n- Need to show swarm-level health at a glance\n\nImplementation requirements\n1) Calculate swarm health from member agents: all active=green, any stuck=yellow, any dead=red, all dead=gray\n2) Render status badge on swarm container header\n3) Keep non-intrusive but visible\n\nFiles: src/components/sessions/sessions-header.tsx","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-buff.3.5","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Swarm health aggregate displayed on swarm containers. Uses getSwarmHealth() to show active/warning/critical/offline status with colored dot indicator.","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":"Swarm Health Aggregate","updated_at":"2026-02-15T21:26:07Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"UNDECIDED: Group agents by rig/machine - decision pending after seeing 3.1 swarm grouping implementation. If implemented: show rig label as group identifier in header.","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":"9f66442344b7b20d26826f75cfe651618236e66439f9c902ca019573950ffb70","created_at":"2026-02-15T06:35:39Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"UNDECIDED: Group agents by machine/rig in Sessions header.\n\nWhy this exists\n- bb-buff.2.1 added rig fingerprinting (machine identifier)\n- Need to evaluate if rig grouping adds value after seeing 3.1\n\nNote\nThis bead captures the capability but priority is pending.\nDecision will be made after 3.1 implementation.\n\nIf implemented:\n1) Query agents by rig label\n2) Group AgentStations by rig\n3) Show rig label as group identifier","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-buff.3.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":2,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"open","target":"","timeout_ns":0,"title":"Rig-Based Grouping (Undecided)","updated_at":"2026-02-15T06:35:56Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"UNDECIDED: Group agents by rig/machine - decision pending after seeing 3.1 swarm grouping implementation. If implemented: show rig label as group identifier in header.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Old backlog - closed","closed_at":"2026-03-02T06:46:45Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"9f66442344b7b20d26826f75cfe651618236e66439f9c902ca019573950ffb70","created_at":"2026-02-15T06:35:39Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"UNDECIDED: Group agents by machine/rig in Sessions header.\n\nWhy this exists\n- bb-buff.2.1 added rig fingerprinting (machine identifier)\n- Need to evaluate if rig grouping adds value after seeing 3.1\n\nNote\nThis bead captures the capability but priority is pending.\nDecision will be made after 3.1 implementation.\n\nIf implemented:\n1) Query agents by rig label\n2) Group AgentStations by rig\n3) Show rig label as group identifier","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-buff.3.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":2,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"closed","target":"","timeout_ns":0,"title":"Rig-Based Grouping (Undecided)","updated_at":"2026-03-02T06:46:45Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"Skill package is fully aligned to bb-buff runtime model across SKILL.md, references, scripts, and tests; no legacy command drift remains; migration guidance is explicit for other agents.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Replaced by beadboard-1bg with updated structure following bead-prompting.md format","closed_at":"2026-03-02T06:31:40Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"03e69df3317185b4c8c6dde8b4814e622f673a6c06eda708881a73841b4a91d1","created_at":"2026-02-14T23:04:08Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Skill and runbook alignment track for the Agent System Overhaul (`bb-buff`).\n\nWhy this sub-epic exists\n- The current beadboard-driver skill still references legacy activity-lease flow and does not fully reflect current/future Wisps + ZFC + Swarm contracts.\n- Skill behavior spans many files (SKILL.md, references, scripts, and tests) and needs structured migration, not ad-hoc edits.\n\nScope\n1) Rewrite the main skill contract to match `bb-buff` architecture outcomes.\n2) Update reference docs (`command-matrix`, `session-lifecycle`, `failure-modes`) to remove legacy drift.\n3) Align helper scripts with new non-interactive runtime contract and diagnostics.\n4) Expand test coverage for skill-local and repo-level skill tests.\n5) Produce a migration note so other agents can safely adopt v4 behavior.\n\nPrimary files\n- skills/beadboard-driver/SKILL.md\n- skills/beadboard-driver/references/command-matrix.md\n- skills/beadboard-driver/references/session-lifecycle.md\n- skills/beadboard-driver/references/failure-modes.md\n- skills/beadboard-driver/scripts/session-preflight.mjs\n- skills/beadboard-driver/scripts/readiness-report.mjs\n- skills/beadboard-driver/scripts/lib/driver-lib.mjs\n- skills/beadboard-driver/tests/*\n- tests/skills/beadboard-driver/*\n\nOut of scope\n- No direct runtime implementation inside this sub-epic; this is skill/docs/scripts/tests alignment.\r\n","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-buff.4","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"## Template Label Integration (Future)\n\nWhen the skill spawns work on an epic, it should:\n1. Check for labels starting with 'template:' (e.g., template:bug-fix, template:investigation)\n2. Look up the template definition from /api/swarm/templates\n3. Use the team composition (archetype counts) to determine how many agents to spawn\n4. Follow the protoFormula workflow\n\nThis allows the user to assign templates to epics in the UI, and the skill will automatically understand what team is needed when asked to work on that epic.\n\nExample:\n- Epic has label: template:investigation\n- Skill reads this, looks up 'investigation' template which has {investigator: 1, tester: 1}\n- Skill spawns with 1 investigator + 1 tester agents","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":2,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"closed","target":"","timeout_ns":0,"title":"Skill and Runbook Alignment (Beadboard Driver v4)","updated_at":"2026-03-02T06:31:40Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"SKILL.md v4 reflects bb-buff semantics with no legacy drift, includes swarm/state examples, and documents compatibility delta from prior version.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Replaced by beadboard-1bg","closed_at":"2026-03-02T06:34:28Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"15d069b37ea2aec5c22aa4d8d5664230d43ee066d0292da3fed5d44102472d77","created_at":"2026-02-14T23:04:17Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"\"Rewrite","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-buff.4.1","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Replaced by beadboard-1bg","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":"Core Skill Rewrite: beadboard-driver SKILL.md v4","updated_at":"2026-03-02T06:34:28Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"All reference docs are v4-consistent, command-accurate, and remediation-complete for new runtime semantics.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Replaced by beadboard-1bg","closed_at":"2026-03-02T06:34:33Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"828f8e48e759bbe5309f929ef96d4f994f4e54b266762666b771bc867f0b0a66","created_at":"2026-02-14T23:04:23Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Refactor skill reference docs to match v4 contract and remove command drift.\n\nRequired updates\n1) `references/command-matrix.md`\n- remove deprecated entries,\n- categorize commands by phase (bootstrap, coordination, state, closeout),\n- annotate required/optional arguments and JSON envelopes.\n2) `references/session-lifecycle.md`\n- add swarm-aware and role-routing-aware lifecycle steps,\n- include handoff and blocker obligations for multi-agent sessions.\n3) `references/failure-modes.md`\n- add new failure classes (state mismatch, swarm resolution failure, role fanout empty set, telemetry unavailable fallback),\n- add deterministic remediation steps.\n\nCross-check\n- reference docs must align with SKILL.md v4 and script behavior.\n\nFiles\n- skills/beadboard-driver/references/command-matrix.md\n- skills/beadboard-driver/references/session-lifecycle.md\n- skills/beadboard-driver/references/failure-modes.md\r\n","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-buff.4.2","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Replaced by beadboard-1bg","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":"Reference Pack Rewrite: command matrix, lifecycle, failure modes","updated_at":"2026-03-02T06:34:33Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
|
|
@ -268,22 +268,22 @@
|
|||
{"acceptance_criteria":"shadcn initialized; base components installed; typecheck+lint+dev pass","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Completed by shadcn-installer: shadcn/ui initialized with 9 base components (button, card, badge, avatar, input, scroll-area, separator, tooltip, dropdown-menu). components.json created, typecheck and lint pass.","closed_at":"2026-02-16T04:05:04Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"4ef6426ecbaa7e8700424a9f35bfaf51e239f41ea6820f646754f840fcf74ade","created_at":"2026-02-16T02:44:13Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"1) GOAL\nInitialize shadcn/ui in the project and install the base component set needed for the unified shell.\n\n2) PLAN\n1. Run npx shadcn@latest init with earthy-dark theme preference\n2. Install required components: button, card, badge, avatar, input, scroll-area, separator, tooltip, dropdown-menu\n3. Verify components.json is created correctly\n4. Check that all components are in src/components/ui/\n5. Run verification gates\n\n3) COMPONENTS TO INSTALL\n- button: Primary actions\n- card: Card containers\n- badge: Status badges\n- avatar: Agent avatars\n- input: Search/filter inputs\n- scroll-area: Scrollable containers\n- separator: Visual dividers\n- tooltip: Hover information\n- dropdown-menu: Sorting and filtering options\n\n4) ACCEPTANCE CRITERIA\n- components.json exists at project root\n- All 9 components installed in src/components/ui/\n- npm run typecheck \u0026\u0026 npm run lint \u0026\u0026 npm run dev pass\n- No breaking changes to existing components\n\n5) FILES\n- components.json (NEW)\n- src/components/ui/button.tsx\n- src/components/ui/card.tsx\n- src/components/ui/badge.tsx\n- src/components/ui/avatar.tsx\n- src/components/ui/input.tsx\n- src/components/ui/scroll-area.tsx\n- src/components/ui/separator.tsx\n- src/components/ui/tooltip.tsx\n- src/components/ui/dropdown-menu.tsx\n\n6) SKILLS (use in tandem)\n- verification-before-completion\n- linus-beads-discipline\n- shadcn-ui (PRIMARY: follow shadcn patterns for init and component installation)\n- beadboard-driver\n\n7) VERIFICATION\nnpm run typecheck \u0026\u0026 npm run lint \u0026\u0026 npm run dev\nls src/components/ui/","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-ui2.2","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Claimed by shadcn-installer: Initializing shadcn/ui and installing base components","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"closed","target":"","timeout_ns":0,"title":"0.2 shadcn/ui Setup: Initialize and install components","updated_at":"2026-02-16T04:05:04Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"Graph integrated into shell; tabs work; ReactFlow renders; typecheck+lint pass","actor":"","agent_state":"","assignee":"bb-54x","await_id":"","await_type":"","close_reason":"Graph integrated into unified shell: created src/components/graph/graph-view.tsx with Flow/Overview tabs, modified src/components/shared/unified-shell.tsx to render GraphView when view=graph, wired taskId to selectedId and graphTab to URL state. Verification: typecheck passes for modified files, lint clean (0 errors), tests pass.","closed_at":"2026-02-16T07:11:54Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"8549117fd46403c35dfa72b32ed64422788efd33030c5495e1415ef2ace14a72","created_at":"2026-02-16T02:52:21Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"1) GOAL\nIntegrate extracted graph component into unified shell as the Graph view tab.\n\n2) PLAN\n1. Import GraphCanvas from bb-ui2.19\n2. Create GraphPage wrapper for shell\n3. Add Flow/Overview tab switching\n4. Handle visibility:hidden for ReactFlow\n5. Wire selection to URL state (taskId)\n6. Test at multiple breakpoints\n\n3) TABS\n- Flow: Focused view on selected task + dependencies\n- Overview: All tasks visible\n\n4) ACCEPTANCE CRITERIA\n- GraphPage in src/components/graph/graph-page.tsx (NEW shell version)\n- Flow/Overview tabs work\n- ReactFlow renders correctly when tab activated\n- Selection syncs with URL state\n- npm run typecheck \u0026\u0026 npm run lint pass\n\n5) FILES\n- src/components/graph/graph-page.tsx (NEW for shell)\n\n6) SKILLS\n- verification-before-completion\n- linus-beads-discipline\n\n7) VERIFICATION\nnpm run typecheck \u0026\u0026 npm run lint","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-ui2.20","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"VERIFIED: npm run typecheck passes for modified files (graph-view.tsx, unified-shell.tsx). Existing errors in social-card.tsx and swarm-card.test.tsx are pre-existing. npm run lint: 0 errors, 1 warning (unused import). npm run test: all pass. Graph integrated with Flow/Overview tabs, taskId→selectedId, graphTab URL state wired.","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":"4.2 Graph Tab: Integrate graph into unified shell","updated_at":"2026-02-16T07:11:54Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"fitView works on tab switch; no resize issues; typecheck+lint pass","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Fixed: Removed translateExtent limit from WorkflowGraph, allowing unlimited panning to all graph nodes. Users can now pan freely to see all nodes regardless of graph size.","closed_at":"2026-02-16T07:24:28Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"c2105453ac07dfd24ef8d6ba61598be7d62d3c41a34e6d7609a78ccf4c4df5c3","created_at":"2026-02-16T02:52:26Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"1) GOAL\nEnsure ReactFlow correctly sizes when switching to Graph tab from other views.\n\n2) PROBLEM\nReactFlow uses ResizeObserver. When tab is hidden via display:none, dimensions drop to 0. Switching back doesn't auto-recalculate.\n\n3) PLAN\n1. Implement visibility:hidden pattern for hidden tabs\n2. Add useEffect to call fitView() on tab activation\n3. Add delay to ensure DOM is ready\n4. Test rapid tab switching\n\n4) ACCEPTANCE CRITERIA\n- Hidden tabs use visibility:hidden + position:absolute\n- fitView() called on tab activation with 100ms delay\n- Rapid tab switching doesn't cause layout issues\n- npm run typecheck \u0026\u0026 npm run lint pass\n\n5) FILES\n- src/app/page.tsx (modify UnifiedShell)\n- src/components/graph/graph-canvas.tsx (add fitView trigger)\n\n6) SKILLS\n- verification-before-completion\n- linus-beads-discipline\n\n7) VERIFICATION\nnpm run typecheck \u0026\u0026 npm run lint\nTest: Switch between Social → Graph → Swarm → Graph rapidly","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-ui2.21","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":"4.3 fitView Fix: Fix ReactFlow resize on tab switch","updated_at":"2026-02-16T07:24:28Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"All URL patterns verified; back/forward works; invalid params handled; typecheck+lint+test 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":"4d2ed69658cc9807c0706173a1d0d18870f8f87643e8e577421f73c46fb942f6","created_at":"2026-02-16T02:53:02Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"1) GOAL\nVerify all URL permutations correctly restore view state on page load and navigation.\n\n2) PLAN\n1. Test all view combinations with URL params\n2. Test back/forward browser navigation\n3. Test direct link open\n4. Test invalid params (fall back to defaults)\n5. Document verified URL patterns\n\n3) URL PATTERNS TO TEST\n/?view=social\n/?view=social\u0026task=bb-buff.1\u0026panel=open\n/?view=swarm\u0026swarm=bb-buff\n/?view=graph\u0026task=bb-buff.1\u0026graphTab=flow\n/?view=graph\u0026graphTab=overview\n/?task=invalid-id (should clear)\n/?view=invalid (should default to social)\n\n4) ACCEPTANCE CRITERIA\n- All valid URL patterns restore correct state\n- Invalid params fall back gracefully\n- Back/forward navigation works\n- Direct links work for sharing\n- npm run typecheck \u0026\u0026 npm run lint pass\n\n5) FILES\n- Tests in tests/hooks/url-state-integration.test.ts\n\n6) SKILLS\n- verification-before-completion\n- test-driven-development\n- linus-beads-discipline\n\n7) VERIFICATION\nnpm run typecheck \u0026\u0026 npm run lint \u0026\u0026 npm run test\nManual: Test all URL patterns in browser","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-ui2.22","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"REOPENED - INCOMPLETE\n\nFailures documented:\n1. Confused test coverage with feature verification\n2. Did not manually test any URL patterns in browser\n3. Did not verify card click → URL update → content change flow\n4. Prematurely closed before confirming functionality\n\nCurrent state: Needs actual browser verification, not just unit tests.","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"open","target":"","timeout_ns":0,"title":"5.1 Deep Links: Verify URL state restoration","updated_at":"2026-02-17T03:37:55Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"All views work on mobile; drawer smooth; no overflow; touch accessible; typecheck+lint 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":"d5790802fb06abbea6d2ce96be1d4ee9f86dadb39c753974d8f03d8225cd4cc2","created_at":"2026-02-16T02:53:07Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"1) GOAL\nPolish mobile experience ensuring all interactions work correctly on small screens.\n\n2) PLAN\n1. Test all views at 390px width\n2. Verify drawer interactions\n3. Test touch interactions\n4. Check keyboard doesn't overlap content\n5. Fix any mobile-specific issues\n\n3) MOBILE CHECKLIST\n- Left panel: accessible via hamburger menu\n- Right panel: full-screen drawer\n- Cards: readable without horizontal scroll\n- Thread: scrollable in drawer\n- View tabs: accessible\n- Touch: tap targets 44px minimum\n\n4) ACCEPTANCE CRITERIA\n- All views work at 390px width\n- Drawer opens/closes smoothly\n- No horizontal overflow\n- Touch targets meet accessibility standards\n- npm run typecheck \u0026\u0026 npm run lint pass\n\n5) FILES\n- Various (fix mobile issues as found)\n\n6) SKILLS\n- verification-before-completion\n- linus-beads-discipline\n\n7) VERIFICATION\nnpm run typecheck \u0026\u0026 npm run lint\nScreenshots: artifacts/mobile-390-{social,swarm,graph}.png","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-ui2.23","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"open","target":"","timeout_ns":0,"title":"5.2 Mobile Polish: Verify mobile experience","updated_at":"2026-02-16T02:53:07Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"All 10 screenshots captured and stored in artifacts/; typecheck+lint 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":"757414d65a5b0e30ae5f1bd7c4122cfbcf66fa128a7e82b1d4266d0f63d95cea","created_at":"2026-02-16T02:53:41Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"1) GOAL\nCapture comprehensive screenshots for all views at all breakpoints as visual evidence.\n\n2) PLAN\n1. Set up Playwright screenshot capture\n2. Capture Social view at 390px, 768px, 1440px\n3. Capture Swarm view at 390px, 768px, 1440px\n4. Capture Graph view at 390px, 768px, 1440px\n5. Capture shell overview at full width\n6. Organize in artifacts/ directory\n\n3) SCREENSHOTS REQUIRED\n- artifacts/social-390.png\n- artifacts/social-768.png\n- artifacts/social-1440.png\n- artifacts/swarm-390.png\n- artifacts/swarm-768.png\n- artifacts/swarm-1440.png\n- artifacts/graph-390.png\n- artifacts/graph-768.png\n- artifacts/graph-1440.png\n- artifacts/shell-overview.png\n\n4) ACCEPTANCE CRITERIA\n- All 10 screenshots captured\n- Screenshots show realistic data\n- Screenshots stored in artifacts/\n- npm run typecheck \u0026\u0026 npm run lint pass\n\n5) FILES\n- scripts/capture-screenshots.mjs (or use Playwright)\n\n6) SKILLS\n- verification-before-completion\n- linus-beads-discipline\n\n7) VERIFICATION\nls -la artifacts/*.png","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-ui2.24","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"open","target":"","timeout_ns":0,"title":"5.3 Screenshots: Capture all views at all breakpoints","updated_at":"2026-02-16T02:53:41Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"All gates pass; all views functional; epic ready for closure","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":"0eebe084f69eca372d952ffcc49d20883efde27f2aa63f041304b622c50cd150","created_at":"2026-02-16T02:53:47Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"1) GOAL\nRun final verification gates and prepare epic for closure.\n\n2) PLAN\n1. Run npm run typecheck\n2. Run npm run lint\n3. Run npm run test\n4. Verify all screenshots exist\n5. Test all 3 views in browser\n6. Update epic notes with summary\n7. Run bd sync\n\n3) FINAL CHECKLIST\n- [ ] npm run typecheck: 0 errors\n- [ ] npm run lint: 0 errors\n- [ ] npm run test: all pass\n- [ ] Social view renders correctly\n- [ ] Swarm view renders correctly\n- [ ] Graph view renders correctly\n- [ ] URL state works\n- [ ] Responsive works\n- [ ] Screenshots captured\n\n4) ACCEPTANCE CRITERIA\n- All quality gates pass\n- All views functional\n- Epic ready for closure\n- bd sync completed\n\n5) FILES\n- Update bb-ui2 epic notes with final summary\n\n6) SKILLS\n- verification-before-completion\n- linus-beads-discipline\n\n7) VERIFICATION\nnpm run typecheck \u0026\u0026 npm run lint \u0026\u0026 npm run test\nbd show bb-ui2","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-ui2.25","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"open","target":"","timeout_ns":0,"title":"5.4 Final Gates: Run all verification and close epic","updated_at":"2026-02-16T02:53:47Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"All URL patterns verified; back/forward works; invalid params handled; typecheck+lint+test pass","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Old polish item","closed_at":"2026-03-02T06:47:41Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"4d2ed69658cc9807c0706173a1d0d18870f8f87643e8e577421f73c46fb942f6","created_at":"2026-02-16T02:53:02Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"1) GOAL\nVerify all URL permutations correctly restore view state on page load and navigation.\n\n2) PLAN\n1. Test all view combinations with URL params\n2. Test back/forward browser navigation\n3. Test direct link open\n4. Test invalid params (fall back to defaults)\n5. Document verified URL patterns\n\n3) URL PATTERNS TO TEST\n/?view=social\n/?view=social\u0026task=bb-buff.1\u0026panel=open\n/?view=swarm\u0026swarm=bb-buff\n/?view=graph\u0026task=bb-buff.1\u0026graphTab=flow\n/?view=graph\u0026graphTab=overview\n/?task=invalid-id (should clear)\n/?view=invalid (should default to social)\n\n4) ACCEPTANCE CRITERIA\n- All valid URL patterns restore correct state\n- Invalid params fall back gracefully\n- Back/forward navigation works\n- Direct links work for sharing\n- npm run typecheck \u0026\u0026 npm run lint pass\n\n5) FILES\n- Tests in tests/hooks/url-state-integration.test.ts\n\n6) SKILLS\n- verification-before-completion\n- test-driven-development\n- linus-beads-discipline\n\n7) VERIFICATION\nnpm run typecheck \u0026\u0026 npm run lint \u0026\u0026 npm run test\nManual: Test all URL patterns in browser","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-ui2.22","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"REOPENED - INCOMPLETE\n\nFailures documented:\n1. Confused test coverage with feature verification\n2. Did not manually test any URL patterns in browser\n3. Did not verify card click → URL update → content change flow\n4. Prematurely closed before confirming functionality\n\nCurrent state: Needs actual browser verification, not just unit tests.","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"closed","target":"","timeout_ns":0,"title":"5.1 Deep Links: Verify URL state restoration","updated_at":"2026-03-02T06:47:41Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"All views work on mobile; drawer smooth; no overflow; touch accessible; typecheck+lint pass","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":"2026-03-02T06:49:00Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"d5790802fb06abbea6d2ce96be1d4ee9f86dadb39c753974d8f03d8225cd4cc2","created_at":"2026-02-16T02:53:07Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"1) GOAL\nPolish mobile experience ensuring all interactions work correctly on small screens.\n\n2) PLAN\n1. Test all views at 390px width\n2. Verify drawer interactions\n3. Test touch interactions\n4. Check keyboard doesn't overlap content\n5. Fix any mobile-specific issues\n\n3) MOBILE CHECKLIST\n- Left panel: accessible via hamburger menu\n- Right panel: full-screen drawer\n- Cards: readable without horizontal scroll\n- Thread: scrollable in drawer\n- View tabs: accessible\n- Touch: tap targets 44px minimum\n\n4) ACCEPTANCE CRITERIA\n- All views work at 390px width\n- Drawer opens/closes smoothly\n- No horizontal overflow\n- Touch targets meet accessibility standards\n- npm run typecheck \u0026\u0026 npm run lint pass\n\n5) FILES\n- Various (fix mobile issues as found)\n\n6) SKILLS\n- verification-before-completion\n- linus-beads-discipline\n\n7) VERIFICATION\nnpm run typecheck \u0026\u0026 npm run lint\nScreenshots: artifacts/mobile-390-{social,swarm,graph}.png","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-ui2.23","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":"5.2 Mobile Polish: Verify mobile experience","updated_at":"2026-03-02T06:49:00Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"All 10 screenshots captured and stored in artifacts/; typecheck+lint pass","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":"2026-03-02T06:48:47Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"757414d65a5b0e30ae5f1bd7c4122cfbcf66fa128a7e82b1d4266d0f63d95cea","created_at":"2026-02-16T02:53:41Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"1) GOAL\nCapture comprehensive screenshots for all views at all breakpoints as visual evidence.\n\n2) PLAN\n1. Set up Playwright screenshot capture\n2. Capture Social view at 390px, 768px, 1440px\n3. Capture Swarm view at 390px, 768px, 1440px\n4. Capture Graph view at 390px, 768px, 1440px\n5. Capture shell overview at full width\n6. Organize in artifacts/ directory\n\n3) SCREENSHOTS REQUIRED\n- artifacts/social-390.png\n- artifacts/social-768.png\n- artifacts/social-1440.png\n- artifacts/swarm-390.png\n- artifacts/swarm-768.png\n- artifacts/swarm-1440.png\n- artifacts/graph-390.png\n- artifacts/graph-768.png\n- artifacts/graph-1440.png\n- artifacts/shell-overview.png\n\n4) ACCEPTANCE CRITERIA\n- All 10 screenshots captured\n- Screenshots show realistic data\n- Screenshots stored in artifacts/\n- npm run typecheck \u0026\u0026 npm run lint pass\n\n5) FILES\n- scripts/capture-screenshots.mjs (or use Playwright)\n\n6) SKILLS\n- verification-before-completion\n- linus-beads-discipline\n\n7) VERIFICATION\nls -la artifacts/*.png","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-ui2.24","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":"5.3 Screenshots: Capture all views at all breakpoints","updated_at":"2026-03-02T06:48:47Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"All gates pass; all views functional; epic ready for closure","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":"2026-03-02T06:48:54Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"0eebe084f69eca372d952ffcc49d20883efde27f2aa63f041304b622c50cd150","created_at":"2026-02-16T02:53:47Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"1) GOAL\nRun final verification gates and prepare epic for closure.\n\n2) PLAN\n1. Run npm run typecheck\n2. Run npm run lint\n3. Run npm run test\n4. Verify all screenshots exist\n5. Test all 3 views in browser\n6. Update epic notes with summary\n7. Run bd sync\n\n3) FINAL CHECKLIST\n- [ ] npm run typecheck: 0 errors\n- [ ] npm run lint: 0 errors\n- [ ] npm run test: all pass\n- [ ] Social view renders correctly\n- [ ] Swarm view renders correctly\n- [ ] Graph view renders correctly\n- [ ] URL state works\n- [ ] Responsive works\n- [ ] Screenshots captured\n\n4) ACCEPTANCE CRITERIA\n- All quality gates pass\n- All views functional\n- Epic ready for closure\n- bd sync completed\n\n5) FILES\n- Update bb-ui2 epic notes with final summary\n\n6) SKILLS\n- verification-before-completion\n- linus-beads-discipline\n\n7) VERIFICATION\nnpm run typecheck \u0026\u0026 npm run lint \u0026\u0026 npm run test\nbd show bb-ui2","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-ui2.25","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":"5.4 Final Gates: Run all verification and close epic","updated_at":"2026-03-02T06:48:54Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Resizable sidebar panels implemented with drag handles, localStorage persistence, and collapsible sections.","closed_at":"2026-02-26T05:46:10Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"8acada106f498d6ff181c6d33cebe5bd280d171c773a88065e60b307a380d6d3","created_at":"2026-02-16T06:13:13Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Add resizable panel functionality to LeftPanel and RightPanel with constraints.\n\nSCOPE:\n- Add drag handle between Left/Middle panels\n- Add drag handle between Middle/Right panels\n- Left panel: min 10rem, max 30% viewport width\n- Right panel: min 15rem, max 30% viewport width\n- Persist widths in localStorage\n- Touch-friendly on mobile (min 44px touch target)\n- Visual affordance (subtle handle + hover state)\n\nACCEPTANCE CRITERIA:\n- Drag handles render between panels\n- Mouse/touch drag adjusts panel width\n- Width constraints enforced (min/max)\n- Panel widths persist across page reload\n- Middle panel always flexible (1fr)\n- No layout shift/jank during resize\n- Typecheck, lint, tests pass\n\nOUT OF SCOPE:\n- Vertical resizing\n- Collapse/expand animations (later)\n- Keyboard shortcuts for resize\n\nDEPENDENCIES:\n- Blocked by: bb-ui2.5 (UnifiedShell), bb-ui2.7 (LeftPanel), bb-ui2.8 (RightPanel)\n- Blocks: bb-ui2.9 (Responsive)\n\nVERIFICATION:\n- npm run typecheck\n- npm run lint \n- npm run test\n- Manual drag test on desktop\n- Touch test on mobile/tablet","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-ui2.26","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Implemented: use-panel-resize hook with localStorage persistence, ResizeHandle component with hover affordance, dynamic grid columns in UnifiedShell, collapsible sections in AssignmentPanel. All 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":"1.7 Resizable Panels: Add drag handles for left/right panel width adjustment","updated_at":"2026-02-26T05:46:10Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":"bb-22l","await_id":"","await_type":"","close_reason":"Mobile navigation complete: hamburger menu added to TopBar (mobile/tablet), bottom tab bar (MobileNav) added. Both use useUrlState for view switching.","closed_at":"2026-02-16T06:57:44Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"607d1b88e01b7f71b25370090c879a112df7294a72c39812c741c353e419cf6e","created_at":"2026-02-16T06:43:01Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Implement mobile navigation: hamburger menu to access left panel, bottom tab bar for view switching (Social/Graph/Swarm). Currently on mobile the left panel is hidden with no way to access it, and view switching requires top tabs which are hard to reach on mobile.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-ui2.27","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Claimed by mobile-nav-builder (bb-22l). Starting mobile navigation: hamburger + bottom tabs.","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":"Mobile Navigation: Hamburger + Bottom Tabs","updated_at":"2026-02-16T06:57:44Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":"bb-3ha","await_id":"","await_type":"","close_reason":"DEFERRED: Sessions view requires API route refactoring (node:child_process can't be bundled in client). Sessions still accessible via /sessions page. Can revisit via API route later.","closed_at":"2026-02-16T06:57:48Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"1ab8508b7b944bf9c21b08c63dbed01a81c54eb07b15363cfb461cbc424f154f","created_at":"2026-02-16T06:43:11Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Add agent sessions view to the unified shell so users can monitor live agent sessions. This should integrate as a view option in the shell (e.g., 4th tab or accessible from hamburger menu), replacing or alongside Social/Graph/Swarm views.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-ui2.28","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Claimed by sessions-integrator (bb-3ha). Starting sessions access from shell.","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":"Sessions Access from Shell","updated_at":"2026-02-16T06:57:48Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"ActivityPanel created at src/components/activity/activity-panel.tsx. Top 30% shows agent roster with status (active/stale/stuck/dead). Bottom shows chronological activity feed. Real-time updates via existing SSE. All gt:agent beads displayed. npm run typecheck \u0026\u0026 npm run lint pass.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":"2026-02-17T20:47:43Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"35cdc5c5a5b9d7370655ff2d10a54f36e7c58d8c66e99f663dfbc9b29c33f731","created_at":"2026-02-16T17:54:58Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"1) GOAL: Create Activity view for right panel replacing /timeline. Shows agent roster (top 30%) and activity feed (bottom).\n\n2) PLAN: Read existing timeline infrastructure from src/lib/activity.ts. Create ActivityPanel component. Agent roster shows all gt:agent beads with derived status. Activity feed shows chronological events.\n\n3) DATA: Agent roster from gt:agent labeled issues. Activity from existing activity system.\n\n4) COMPONENT: src/components/activity/activity-panel.tsx\n\n5) VERIFICATION: npm run typecheck \u0026\u0026 npm run lint","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-ui2.29","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"ActivityPanel created at src/components/activity/activity-panel.tsx. Top 30% shows agent roster with status (active/stale/stuck/dead). Bottom shows chronological activity feed. Real-time updates via existing SSE. All gt:agent beads displayed. Typecheck passes. Lint has pre-existing zod issue.","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":"bb-ui2.29: Activity View - ActivityPanel with agent roster + timeline","updated_at":"2026-02-17T20:49:42Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"All 5 primitives created; tests pass; typecheck+lint+test pass","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Completed by primitive-builder: BaseCard, AgentAvatar, StatusBadge shared components created with typecheck, lint, and test passing","closed_at":"2026-02-16T04:09:57Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"56cd4fbee77d8b58ab73e8c0579a1c80c42890526b65fb5cf3382ce7e5d1713a","created_at":"2026-02-16T02:44:19Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"1) GOAL\nCreate reusable primitive components that will be shared across Social, Swarm, and Graph views, using shadcn/ui as the foundation.\n\n2) PLAN\n1. Create BaseCard component wrapping shadcn Card with consistent padding and hover states\n2. Create AgentAvatar with liveness glow indicator using shadcn Avatar\n3. Create ProgressBar for task completion visualization\n4. Create ViewJumpIcons for navigation shortcuts\n5. Create LastActivity for timestamp display\n6. Write unit tests for each primitive\n7. Run verification gates\n\n3) COMPONENT SPECIFICATIONS\nBaseCard:\n- Wraps shadcn Card with consistent padding and hover states\n- Props: children, onClick, selected\n- Use shadcn Card, CardContent patterns\n\nAgentAvatar:\n- Uses shadcn Avatar component\n- Shows agent initials or icon\n- Glow border based on liveness (active/stale/stuck/dead)\n- Props: agentId, liveness, size\n\nProgressBar:\n- Horizontal bar with percentage fill\n- Color based on progress level\n- Props: completed, total\n\nViewJumpIcons:\n- Icon buttons for quick navigation\n- [≡] thread, [◊] graph, [≋] swarm\n- Props: taskId, swarmId\n\nLastActivity:\n- Human-readable time ago\n- Icon based on event type\n- Props: timestamp, message\n\n4) ACCEPTANCE CRITERIA\n- All 5 primitives created in src/components/shared/\n- Unit tests in tests/components/shared/\n- npm run typecheck \u0026\u0026 npm run lint \u0026\u0026 npm run test pass\n\n5) FILES\n- src/components/shared/base-card.tsx\n- src/components/shared/agent-avatar.tsx\n- src/components/shared/progress-bar.tsx\n- src/components/shared/view-jump-icons.tsx\n- src/components/shared/last-activity.tsx\n- tests/components/shared/base-card.test.tsx\n- tests/components/shared/agent-avatar.test.tsx\n- tests/components/shared/progress-bar.test.tsx\n- tests/components/shared/view-jump-icons.test.tsx\n- tests/components/shared/last-activity.test.tsx\n\n6) SKILLS (use in tandem)\n- verification-before-completion\n- test-driven-development\n- linus-beads-discipline\n- shadcn-ui (PRIMARY: use shadcn Card, Avatar patterns)\n- beadboard-driver\n\n7) VERIFICATION\nnpm run typecheck \u0026\u0026 npm run lint \u0026\u0026 npm run test","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-ui2.3","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Claimed by primitive-builder: Creating BaseCard, AgentAvatar, StatusBadge shared components","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"closed","target":"","timeout_ns":0,"title":"0.3 Base Primitives: Shared UI components","updated_at":"2026-02-16T04:09:57Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"Clicking agent icon on SocialCard/SwarmCard navigates to Activity view with that agent selected. URL includes agent param. Right panel filters to show only that agent's activity. Show all button clears filter. npm run typecheck \u0026\u0026 npm run lint 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":"bb758d91585d7d75ce14bacece60e9f42b49b878119fd32937260adf3f0dd6ad","created_at":"2026-02-16T17:55:26Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"1) GOAL: Enable deep linking from agent icons on cards to Activity panel filtered by that agent.\n\n2) PLAN: Update useUrlState to add agent param. Add onAgentClick to SocialCard/SwarmCard. Wire agent icon click to setView('activity') + setAgentId(). ActivityPanel reads agent param and filters.\n\n3) URL: /?view=activity\u0026agent=bb-xyz\n\n4) DEPENDS ON: bb-ui2.29 (ActivityPanel), bb-ui2.11 (SocialCard), bb-ui2.16 (SwarmCard)\n\n5) VERIFICATION: npm run typecheck \u0026\u0026 npm run lint","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-ui2.30","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"open","target":"","timeout_ns":0,"title":"bb-ui2.30: Activity Deep Linking - Agent filtering from cards","updated_at":"2026-02-16T17:55:26Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"Clicking agent icon on SocialCard/SwarmCard navigates to Activity view with that agent selected. URL includes agent param. Right panel filters to show only that agent's activity. Show all button clears filter. npm run typecheck \u0026\u0026 npm run lint pass.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":"2026-03-02T06:48:40Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"bb758d91585d7d75ce14bacece60e9f42b49b878119fd32937260adf3f0dd6ad","created_at":"2026-02-16T17:55:26Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"1) GOAL: Enable deep linking from agent icons on cards to Activity panel filtered by that agent.\n\n2) PLAN: Update useUrlState to add agent param. Add onAgentClick to SocialCard/SwarmCard. Wire agent icon click to setView('activity') + setAgentId(). ActivityPanel reads agent param and filters.\n\n3) URL: /?view=activity\u0026agent=bb-xyz\n\n4) DEPENDS ON: bb-ui2.29 (ActivityPanel), bb-ui2.11 (SocialCard), bb-ui2.16 (SwarmCard)\n\n5) VERIFICATION: npm run typecheck \u0026\u0026 npm run lint","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-ui2.30","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":"bb-ui2.30: Activity Deep Linking - Agent filtering from cards","updated_at":"2026-03-02T06:48:40Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"ThreadDrawer component created. Slides from right edge of middle area (24rem). Opens when card selected in Social/Swarm views. Shows task header, thread/comments, compose area. Desktop: 24rem drawer. Tablet: slide-over. Mobile: full-screen bottom sheet. npm run typecheck \u0026\u0026 npm run lint pass.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"ThreadDrawer created at src/components/shared/thread-drawer.tsx - 24rem drawer slides from right edge of middle area. Header with ID/title/close X, ThreadView with sample data, compose input. Wired into UnifiedShell with drawer URL param. typecheck passes.","closed_at":"2026-02-16T18:17:45Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"06dcab19e81e2f807f88291549206254346b5eca39c106de3758a66bfbcdbc5e","created_at":"2026-02-16T17:55:55Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"1) GOAL: Create thread drawer that appears when clicking a card. Different from right panel - this is specifically for conversation/thread.\n\n2) BEHAVIOR: - Desktop: 24rem drawer slides from right edge of middle area - Tablet: slide-over - Mobile: full-screen bottom sheet\n\n3) SECTIONS: - Header: ID, title, close X - Thread: comments + events - Compose: add comment input\n\n4) COMPONENT: src/components/shared/thread-drawer.tsx\n\n5) INTEGRATION: UnifiedShell renders ThreadDrawer when taskId or swarmId is set AND drawer=open\n\n6) DEPENDS ON: bb-ui2.13 (Thread View)\n\n7) VERIFICATION: npm run typecheck \u0026\u0026 npm run lint","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-ui2.31","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"ThreadDrawer created at src/components/shared/thread-drawer.tsx. 24rem drawer slides from right edge of middle. Header with ID/title/close, ThreadView with sample data, compose input. Wired into UnifiedShell. typecheck passes.","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":"bb-ui2.31: Thread Drawer - Card detail slide-out panel","updated_at":"2026-02-16T18:17:45Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"MobileNav updated to 4 tabs: Social, Graph, Swarm, Activity. Activity tab navigates to view=activity. Visual styling consistent with other tabs. npm run typecheck \u0026\u0026 npm run lint 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":"98a88e93240e5b92d436fd3d3c6f44bbf59a6b53307d24ad8b36e3efae675994","created_at":"2026-02-16T17:56:09Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"1) GOAL: Add 4th tab (Activity) to mobile bottom navigation.\n\n2) CURRENT: MobileNav has 3 tabs for Social/Graph/Swarm.\n\n3) ADD: Fourth tab for Activity view. - Icon: Activity/Clock icon - Label: Activity - Navigates to: /?view=activity\n\n4) FILE: src/components/shared/mobile-nav.tsx\n\n5) DEPENDS ON: bb-ui2.27 (Mobile Navigation), bb-ui2.29 (ActivityPanel)\n\n6) VERIFICATION: npm run typecheck \u0026\u0026 npm run lint","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-ui2.32","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"open","target":"","timeout_ns":0,"title":"bb-ui2.32: Mobile 4-Tab Navigation - Add Activity tab","updated_at":"2026-02-16T17:56:09Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"SocialCard onJumpToGraph icon navigates to /?view=graph\u0026task={id}. SocialCard onJumpToKanban icon navigates to legacy kanban or is removed if kanban deprecated. URL updates without page reload. Right panel state preserved appropriately. npm run typecheck \u0026\u0026 npm run lint 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":"6a90099771ef050aa4d2dfed1bc2712160d6919dc9fc4047572972523232159c","created_at":"2026-02-16T23:02: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-ui2.33","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"REOPENED - CODE REVERTED\n\nFailures documented:\n1. Incorrectly removed Kanban icon from SocialCard\n2. Changed component interface without requirements\n3. Did not verify deep links work in browser\n4. Assumed typecheck passing = feature working\n\nCurrent state: Code reverted to original. Needs proper implementation with verification.","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"open","target":"","timeout_ns":0,"title":"Social Card Deep Links - Wire up jump icons to URL state","updated_at":"2026-02-17T03:37:50Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"SwarmCard Graph icon navigates to /?view=graph\u0026swarm={id} with swarm nodes highlighted. SwarmCard Timeline icon navigates to /?view=activity\u0026swarm={id}. URL updates without page reload. npm run typecheck \u0026\u0026 npm run lint 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":"f626c87c4e65a8b5e81544bb7116456f9a79dbfb56e3d3e6c211fa3f7f15f031","created_at":"2026-02-16T23:02:25Z","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-ui2.34","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"REOPENED - CODE REVERTED\n\nFailures documented:\n1. Did not properly wire up handlers\n2. No browser verification of deep links\n3. Changed component signatures without testing integration\n\nCurrent state: Code reverted to original.","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"open","target":"","timeout_ns":0,"title":"Swarm Card Deep Links - Wire up jump icons to URL state","updated_at":"2026-02-17T03:37:52Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"Graph view reads swarm and task params from URL. When swarm=xxx, graph filters/hides non-swarm nodes or highlights swarm nodes. When task=xxx, graph centers on that node. Combining view=graph with other params works correctly. npm run typecheck \u0026\u0026 npm run lint 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":"e71b6b6b699c4267a0650fe9d09330832ee51ee5028679b30228a5b02df7a534","created_at":"2026-02-16T23:02:29Z","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-ui2.35","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"REOPENED - CODE REVERTED\n\nFailures documented:\n1. Made graph filtering changes without visual verification\n2. Did not confirm swarm highlighting works\n3. Did not confirm task centering works\n\nCurrent state: Code reverted to original.","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"open","target":"","timeout_ns":0,"title":"Graph View Filtering - Handle swarm and task URL params","updated_at":"2026-02-17T03:37:53Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"npm run lint executes without ERR_PACKAGE_PATH_NOT_EXPORTED error. zod version is compatible with both @remotion/zod-types and eslint-plugin-react-hooks dependencies.","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":"a78680a2bb4ab992cc9cca9c126230d2270c0f5aeb19d4aa0a6e1727144bffa6","created_at":"2026-02-16T23:33: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":"bb-ui2.36","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"open","target":"","timeout_ns":0,"title":"Fix zod dependency conflict for eslint","updated_at":"2026-02-16T23:33:15Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"MobileNav updated to 4 tabs: Social, Graph, Swarm, Activity. Activity tab navigates to view=activity. Visual styling consistent with other tabs. npm run typecheck \u0026\u0026 npm run lint pass.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":"2026-03-02T06:48:35Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"98a88e93240e5b92d436fd3d3c6f44bbf59a6b53307d24ad8b36e3efae675994","created_at":"2026-02-16T17:56:09Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"1) GOAL: Add 4th tab (Activity) to mobile bottom navigation.\n\n2) CURRENT: MobileNav has 3 tabs for Social/Graph/Swarm.\n\n3) ADD: Fourth tab for Activity view. - Icon: Activity/Clock icon - Label: Activity - Navigates to: /?view=activity\n\n4) FILE: src/components/shared/mobile-nav.tsx\n\n5) DEPENDS ON: bb-ui2.27 (Mobile Navigation), bb-ui2.29 (ActivityPanel)\n\n6) VERIFICATION: npm run typecheck \u0026\u0026 npm run lint","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-ui2.32","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":"bb-ui2.32: Mobile 4-Tab Navigation - Add Activity tab","updated_at":"2026-03-02T06:48:35Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"SocialCard onJumpToGraph icon navigates to /?view=graph\u0026task={id}. SocialCard onJumpToKanban icon navigates to legacy kanban or is removed if kanban deprecated. URL updates without page reload. Right panel state preserved appropriately. npm run typecheck \u0026\u0026 npm run lint pass.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":"2026-03-02T06:48:26Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"6a90099771ef050aa4d2dfed1bc2712160d6919dc9fc4047572972523232159c","created_at":"2026-02-16T23:02: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-ui2.33","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"REOPENED - CODE REVERTED\n\nFailures documented:\n1. Incorrectly removed Kanban icon from SocialCard\n2. Changed component interface without requirements\n3. Did not verify deep links work in browser\n4. Assumed typecheck passing = feature working\n\nCurrent state: Code reverted to original. Needs proper implementation with verification.","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":"Social Card Deep Links - Wire up jump icons to URL state","updated_at":"2026-03-02T06:48:26Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"SwarmCard Graph icon navigates to /?view=graph\u0026swarm={id} with swarm nodes highlighted. SwarmCard Timeline icon navigates to /?view=activity\u0026swarm={id}. URL updates without page reload. npm run typecheck \u0026\u0026 npm run lint pass.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":"2026-03-02T06:48:20Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"f626c87c4e65a8b5e81544bb7116456f9a79dbfb56e3d3e6c211fa3f7f15f031","created_at":"2026-02-16T23:02:25Z","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-ui2.34","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"REOPENED - CODE REVERTED\n\nFailures documented:\n1. Did not properly wire up handlers\n2. No browser verification of deep links\n3. Changed component signatures without testing integration\n\nCurrent state: Code reverted to original.","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":"Swarm Card Deep Links - Wire up jump icons to URL state","updated_at":"2026-03-02T06:48:20Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"Graph view reads swarm and task params from URL. When swarm=xxx, graph filters/hides non-swarm nodes or highlights swarm nodes. When task=xxx, graph centers on that node. Combining view=graph with other params works correctly. npm run typecheck \u0026\u0026 npm run lint pass.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":"2026-03-02T06:48:14Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"e71b6b6b699c4267a0650fe9d09330832ee51ee5028679b30228a5b02df7a534","created_at":"2026-02-16T23:02:29Z","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-ui2.35","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"REOPENED - CODE REVERTED\n\nFailures documented:\n1. Made graph filtering changes without visual verification\n2. Did not confirm swarm highlighting works\n3. Did not confirm task centering works\n\nCurrent state: Code reverted to original.","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":"Graph View Filtering - Handle swarm and task URL params","updated_at":"2026-03-02T06:48:14Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"npm run lint executes without ERR_PACKAGE_PATH_NOT_EXPORTED error. zod version is compatible with both @remotion/zod-types and eslint-plugin-react-hooks dependencies.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":"2026-03-02T06:48:06Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"a78680a2bb4ab992cc9cca9c126230d2270c0f5aeb19d4aa0a6e1727144bffa6","created_at":"2026-02-16T23:33: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":"bb-ui2.36","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":"Fix zod dependency conflict for eslint","updated_at":"2026-03-02T06:48:06Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"useUrlState hook created; URL is SSOT; tests pass; typecheck+lint+test pass","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Completed by url-state-engineer: useUrlState hook created with parseUrlState/buildUrlParams helpers, 18 unit tests covering all state transitions, typecheck+lint+test all pass","closed_at":"2026-02-16T04:05:38Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"5c0664439b8992bb6e92bc9d2e61e9fd0fe3f1bc504b8a8f24a8ae6634d9dcb9","created_at":"2026-02-16T02:44:54Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"1) GOAL\nCreate a React hook that synchronizes UI state with URL search parameters, making the URL the single source of truth for view state.\n\n2) PLAN\n1. Define UrlState interface with all state fields\n2. Create useUrlState hook using Next.js useSearchParams and useRouter\n3. Implement getter/setter pairs for each state field\n4. Ensure URL updates via router.push (no local state drift)\n5. Handle invalid/missing params with defaults\n6. Write comprehensive unit tests\n7. Run verification gates\n\n3) INTERFACE\ninterface UrlState {\n view: 'social' | 'graph' | 'swarm';\n setView: (v: 'social' | 'graph' | 'swarm') =\u003e void;\n taskId: string | null;\n setTaskId: (id: string | null) =\u003e void;\n swarmId: string | null;\n setSwarmId: (id: string | null) =\u003e void;\n panel: 'open' | 'closed';\n togglePanel: () =\u003e void;\n graphTab: 'flow' | 'overview';\n setGraphTab: (tab: 'flow' | 'overview') =\u003e void;\n clearSelection: () =\u003e void;\n}\n\n4) URL PATTERNS\n/?view=social\n/?view=social\u0026task=bb-buff.1\u0026panel=open\n/?view=swarm\u0026swarm=bb-buff\n/?view=graph\u0026task=bb-buff.1\u0026graphTab=flow\n\n5) ACCEPTANCE CRITERIA\n- useUrlState hook in src/hooks/use-url-state.ts\n- URL is single source of truth (no useState for view state)\n- Unit tests cover all state transitions\n- npm run typecheck \u0026\u0026 npm run lint \u0026\u0026 npm run test pass\n\n6) FILES\n- src/hooks/use-url-state.ts\n- tests/hooks/use-url-state.test.ts\n\n7) SKILLS (use in tandem)\n- verification-before-completion\n- test-driven-development\n- linus-beads-discipline\n- beadboard-driver\n\n8) VERIFICATION\nnpm run typecheck \u0026\u0026 npm run lint \u0026\u0026 npm run test","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-ui2.4","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"TDD completed: failing test first, then implementation. Created src/hooks/use-url-state.ts with parseUrlState, buildUrlParams, useUrlState. Tests import from module directly. All 22 tests pass. typecheck, lint, test all pass.","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"closed","target":"","timeout_ns":0,"title":"1.1 URL State Hook: URL as single source of truth","updated_at":"2026-02-16T04:05:38Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"UnifiedShell replaces page.tsx; 3-panel grid works; typecheck+lint pass","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"MINIMAL IMPLEMENTATION COMPLETE: UnifiedShell renders 3-panel layout (13rem | 1fr | 17rem). Page.tsx replaced with UnifiedShell + server-side data fetching preserved. TDD cycle verified (RED→GREEN). All gates pass: typecheck ✓, lint ✓ (5 warnings expected), test ✓. Old page.tsx backed up to page-old.tsx. Ready for phase 1.3-1.5 (TopBar/LeftPanel/RightPanel implementation).","closed_at":"2026-02-16T05:53:25Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"57645b5a9a45492a5d97646889a94408dde1c944f8ac77006c9f693099ac6315","created_at":"2026-02-16T02:45:00Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"1) GOAL\nCreate the main unified shell layout component that replaces the current page.tsx with a 3-panel grid layout supporting view switching.\n\n2) PLAN\n1. Copy current src/app/page.tsx to src/app/page-old.tsx for reference\n2. Create UnifiedShell component with CSS Grid layout\n3. Implement view switching based on URL state\n4. Create placeholder content areas for each panel\n5. Wire up TopBar, LeftPanel, RightPanel when they exist\n6. Run verification gates\n\n3) LAYOUT STRUCTURE\nCSS Grid:\n- TOP BAR: 3rem fixed height\n- MAIN AREA: grid with [13rem | 1fr | 17rem]\n\nGrid Template:\n```\n┌─────────────────────────────────────────┐\n│ TOP BAR (3rem) │\n├──────────┬──────────────┬───────────────┤\n│ LEFT │ MIDDLE │ RIGHT │\n│ 13rem │ flex-1 │ 17rem │\n│ Panel │ Content │ Panel │\n└──────────┴──────────────┴───────────────┘\n```\n\n4) VIEW ROUTING\n- view=social → SocialPage in middle\n- view=graph → GraphPage in middle\n- view=swarm → SwarmPage in middle\n\n5) ACCEPTANCE CRITERIA\n- src/app/page.tsx replaced with UnifiedShell\n- Old page.tsx saved as page-old.tsx\n- CSS Grid: 13rem | 1fr | 17rem renders correctly\n- View tabs switch content\n- npm run typecheck \u0026\u0026 npm run lint pass\n\n6) FILES\n- src/app/page.tsx (REPLACE)\n- src/app/page-old.tsx (COPY of current)\n- src/components/shared/unified-shell.tsx\n\n7) SKILLS (use in tandem)\n- verification-before-completion\n- linus-beads-discipline\n- beadboard-driver\n- shadcn-ui (use shadcn Card patterns for panels)\n\n8) VERIFICATION\nnpm run typecheck \u0026\u0026 npm run lint\nVisual: http://localhost:3000 shows 3-panel layout","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-ui2.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":null,"status":"closed","target":"","timeout_ns":0,"title":"1.2 UnifiedShell: Main page layout with 3-panel grid","updated_at":"2026-02-16T05:53:25Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"TopBar created with tabs; active state works; typecheck+lint pass","actor":"","agent_state":"","assignee":"bb-5am","await_id":"","await_type":"","close_reason":"TopBar created with view tabs (Social/Graph/Swarm), active states (bold + green underline), filter/search inputs, wired to useUrlState. All verification gates pass: typecheck, lint (0 errors), test (6 passing).","closed_at":"2026-02-16T06:34:14Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"260155299e1b1b5be1694d44cb9d2a439ea53e6b20931fcdec56c2af9b7f244d","created_at":"2026-02-16T02:45:05Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"1) GOAL\nCreate the top navigation bar component with view tabs and global controls.\n\n2) PLAN\n1. Create TopBar component in src/components/shared/top-bar.tsx\n2. Implement three view tabs: Social, Graph, Swarm\n3. Add active state indicator for current view\n4. Add placeholder filter/search inputs\n5. Wire tab clicks to useUrlState.setView\n6. Run verification gates\n\n3) LAYOUT\n```\n┌─────────────────────────────────────────────────────────┐\n│ [Social] [Graph] [Swarm] │ [🔍 filter] [⚙ settings] │\n└─────────────────────────────────────────────────────────┘\n```\n\nTab Active State:\n- Active tab: bold text, accent color underline\n- Inactive: muted text, no underline\n- Hover: secondary color\n\n4) ACCEPTANCE CRITERIA\n- TopBar component in src/components/shared/top-bar.tsx\n- Three tabs: Social, Graph, Swarm with active indicator\n- Tab clicks update URL view param\n- Filter/search inputs present (placeholder)\n- npm run typecheck \u0026\u0026 npm run lint pass\n\n5) FILES\n- src/components/shared/top-bar.tsx\n\n6) SKILLS\n- verification-before-completion\n- linus-beads-discipline\n\n7) VERIFICATION\nnpm run typecheck \u0026\u0026 npm run lint\nVisual: TopBar renders with tabs","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"bb-ui2.6","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Wired TopBar into UnifiedShell. TopBar created with view tabs, active states, filter input, settings button. Tests pass, typecheck passes, lint passes (5 warnings expected).","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":"1.3 TopBar: View tabs and global controls","updated_at":"2026-02-16T06:34:14Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
|
|
@ -332,6 +332,7 @@
|
|||
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"a74acda56962e24b7690896e4592acd1497b802f3c33057fd9c9a7322c6324f1","created_at":"2026-03-02T06:30:20Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: beadboard-1bg.8\n- Parent: beadboard-1bg\n- Dependencies: beadboard-1bg.1, beadboard-1bg.2, beadboard-1bg.3, beadboard-1bg.4, beadboard-1bg.5, beadboard-1bg.6, beadboard-1bg.7\n\nTASK CONTRACT\n- Goal: Rewrite skill.md as entry point, manual, and TOC\n- Success Criteria:\n - skill.md points to all reference docs\n - Acts as selling point for users\n - TOC for entire skill\n- Scope:\n - Complete rewrite of skill.md\n - Pointers to scripts, references, project.md\n- Out of Scope:\n - Implementation details\n\nIMPLEMENTATION CONSTRAINTS\n- skill.md in skills/beadboard-driver/\n\nVERIFICATION REQUIREMENTS\n- Required commands: npm run typecheck, npm run lint","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-1bg.8","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"open","target":"","timeout_ns":0,"title":"Core Skill Rewrite: skill.md v4","updated_at":"2026-03-02T06:35:44Z","waiters":"","wisp_type":"","work_type":""}
|
||||
{"acceptance_criteria":"Graph has layout-shape controls; switching changes dagre rank direction and node/edge orientation; typecheck and lint pass.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Added true DAG shape controls (direction + density) so users can change graph form instead of only zooming viewport.","closed_at":"2026-03-02T06:32:57Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"9895aa89d25d7f3aa684c92377b31d91ccc4527d724309f95961cd98aec637a8","created_at":"2026-03-02T06:30:35Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Scope: let users change DAG shape so nodes are not forced into a long horizontal line. Implement layout direction toggle (Horizontal/Vertical) and compact spacing option in WorkflowGraph controls.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-1d7","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Implemented layout-shape controls in src/components/shared/workflow-graph.tsx: Horizontal/Vertical direction toggle, Compact/Normal density toggle, and retained Fit action. Layout now re-runs dagre with rankdir + spacing settings and updates node source/target port orientation.\nVerification: npm run typecheck =\u003e PASS. npm run lint =\u003e PASS with existing warnings (19 warnings, 0 errors). Memory review: no new reusable memory.","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Graph: add layout shape controls (not zoom)","updated_at":"2026-03-02T06:32:57Z","waiters":"","wisp_type":"","work_type":""}
|
||||
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Old test bead","closed_at":"2026-03-02T06:35:14Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"de16ff14799deec70c5d7d6460cbb45b8172a6a030fca033103eb2bf03f3132f","created_at":"2026-02-21T20:27:30Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-1sc","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":0,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"closed","target":"","timeout_ns":0,"title":"Testing SSE Flow","updated_at":"2026-03-02T06:35:14Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"8a628c9041dfe616f541513cd8f2a21080368e8fe78d4711b3725e4d4718e28a","created_at":"2026-03-02T06:55:18Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Parent: None (top-level epic)\n- Dependencies: None\n\nTASK CONTRACT\n- Goal: Perform comprehensive UX critique and fix continuity issues across views\n- Success Criteria:\n - All views are consistent\n - No confusing navigation patterns\n- Scope:\n - Analyze current UI for issues\n - Fix Graph view (tasks/dependencies tabs confusion)\n - Fix any other UX problems found\n- Out of Scope:\n - Adding new features\n\nIMPLEMENTATION CONSTRAINTS\n- Follow bead-prompting.md format\n- Use brainstorming skill before implementation\n- Document all UX issues found\n\nVERIFICATION REQUIREMENTS\n- Required commands: npm run typecheck, npm run lint, npm run test","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-2e6","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":2,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"open","target":"","timeout_ns":0,"title":"[BRAINSTORM] UX Continuity and Critique","updated_at":"2026-03-02T06:55:18Z","waiters":"","wisp_type":"","work_type":""}
|
||||
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"657bd72a18f1253a55fb518a8bc81650e522478f2680dbcda1e6cfad0c31545f","created_at":"2026-02-19T21:27:39Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Swarm molecule orchestrating epic bb-ui2.\n\nEpic: bb-ui2\nCoordinator: ","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-2on","is_template":0,"issue_type":"molecule","last_activity":null,"metadata":"{}","mol_type":"swarm","notes":"","original_size":null,"owner":"","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"open","target":"","timeout_ns":0,"title":"Swarm: Unified UX - Earthy Dark Shell with Social/Graph/Swarm Views","updated_at":"2026-02-19T21:27:39Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Fixed: removed shell layer from runBdCommand. Now uses spawn(bd, args, {shell:false}) directly — args array is verbatim, no quoting issues on Windows or Linux.","closed_at":"2026-03-02T04:38:51Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"0deb8e2899d4a3230895444ff99fefff1b658bbf2ee6cb2c776e54c52e48d3a3","created_at":"2026-03-02T03:58:40Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"When adding a long comment via bd comment, only the first word is stored/displayed. Reproduced: zenchant added a full comment to beadboard-d2x.1 but only 'we' was persisted. Likely a shell quoting or argument parsing issue in the bd comment command or its JSON serialization. Investigate bd comment --help and the API route at src/app/api/beads/comment/route.ts and src/lib/mutations.ts comment handler.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-2qo","is_template":0,"issue_type":"bug","last_activity":null,"metadata":"{}","mol_type":"","notes":"Root cause: Next.js server runs on Windows (process.platform=win32). buildShellCommand wrapped text in double quotes, but Node.js spawn adds another quoting layer on top, mangling the inner quotes. cmd.exe received 'this as first arg instead of 'this is a multi word comment'. Fix: removed shell entirely. execShellCommand replaced with execDirectCommand which uses spawn(executable, args, {shell:false}) — args array passed verbatim to OS, no quoting layer needed. Verified: API call with text='this is a multi word comment after the fix' now stores full text. Gates: typecheck clean, 29/31 tests pass (2 pre-existing url-state failures unrelated).","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: bd comments truncates content after first word","updated_at":"2026-03-02T04:38:51Z","waiters":"","wisp_type":"","work_type":""}
|
||||
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Not doing today - just reviewing bead setup","closed_at":"2026-03-02T05:44:56Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"6d0e239ddfcc6aad2a5ba4b8ca969d57d389113db0e7b8405cd457061a84e042","created_at":"2026-03-02T05:44:05Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Rewrites beadboard-driver SKILL.md to v4 contract","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-2qy","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":"Agent: skill-rewriter","updated_at":"2026-03-02T05:44:56Z","waiters":"","wisp_type":"","work_type":""}
|
||||
|
|
@ -367,7 +368,7 @@
|
|||
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"TopBar now receives totalTasks, criticalAlerts, busyCount from live issues array in unified-shell.tsx","closed_at":"2026-02-28T21:42:49Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"6e8513805497f6db649d9e40df79780d2f0247a63945737b8f8f4bc8714d6581","created_at":"2026-02-28T21:07:28Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TopBar metric tiles always show 0 because UnifiedShell passes no props. The live issues array is available in scope.\n\nFile: src/components/shared/unified-shell.tsx (TopBar call)\n\nChange: compute from issues and pass props:\n \u003cTopBar\n totalTasks={issues.filter(i =\u003e i.issue_type !== 'epic').length}\n criticalAlerts={issues.filter(i =\u003e i.status === 'blocked').length}\n busyCount={issues.filter(i =\u003e i.status === 'in_progress').length}\n idleCount={0}\n /\u003e\n\nFirst check top-bar.tsx prop types to confirm field names match.\nidleCount=0 explicitly until Phase 4 wires the liveness map.\n\nAcceptance: TopBar shows real blocked count and in-progress count. Values update when SSE pushes changes.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-68k.5","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":0,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Wire TopBar metric tiles from live issue data","updated_at":"2026-02-28T21:42:49Z","waiters":"","wisp_type":"","work_type":""}
|
||||
{"acceptance_criteria":"Success Criteria: (1) At least 2 viable UI directions documented; (2) Recommended direction includes data model, interaction flow, and provenance handling; (3) Risks and open questions explicitly listed.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"1af1626d9b81a84b67e018476beaa1f3b4620dea1302960ee5f4dd4bb5959731","created_at":"2026-03-02T02:31:42Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Scope:\n- Design a Memory View in the frontend where users can browse, filter, inspect, and apply canonical memory nodes.\n- Define information architecture, interaction model, data requirements, and quality/provenance indicators.\n- Produce 2-3 design options with tradeoffs and a recommended direction.\n\nOut of Scope:\n- Implementing production UI/components/routes.\n- Finalizing backend contracts beyond design-level proposals.\n\nPrompt:\nDesign a user-facing Memory View that makes stored memories understandable and actionable for fresh agents and humans. Optimize for discoverability, provenance clarity, and low-noise workflows.\n","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-6cc","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"open","target":"","timeout_ns":0,"title":"[epic][brainstorm] Memory View UX and Interaction Model","updated_at":"2026-03-02T02:31:42Z","waiters":"","wisp_type":"","work_type":""}
|
||||
{"acceptance_criteria":"Given a stale update bug, when triage starts, then parity, read path, and watcher inputs are explicitly checked before implementation.\nVerification command(s): bd show \u003cissue-id\u003e; npm run test -- tests/lib/watcher.test.ts","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Ratified canonical memory","closed_at":"2026-03-02T00:40:02Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"bbe1ec504fa93a449a6213ddddb3855247c8db34af65a6960198b0582a738558","created_at":"2026-03-02T00:40:01Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Scope: Bug triage and remediation for stale state, watcher, and refresh failures.\nOut of Scope: Non-state-related cosmetic bugs.\nRule: Verify source-of-truth parity first, then inspect read paths and watcher inputs before patching symptoms.\nRationale: Prevents superficial fixes that hide core data flow faults.\nFailure Mode: Repeated regressions when stale-state root cause remains unresolved.\n","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-6fv","is_template":0,"issue_type":"decision","last_activity":null,"metadata":"{\"domain\":\"memory-reliability\",\"effective_date\":\"2026-03-02\",\"evidence_ids\":\"beadboard-03r,beadboard-8rg,bb-xtu,bb-tpc.3\",\"memory_strength\":\"hard\",\"memory_version\":1,\"owner\":\"team\",\"plan_refs\":\"docs/plans/2026-02-28-bd-only-coordination-migration-plan.md\",\"superseded_by\":null,\"supersedes\":null}","mol_type":"","notes":"Provenance linked: beadboard-03r, beadboard-8rg, bb-xtu, bb-tpc.3","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"[MEMORY][RELIABILITY][HARD] Triage stale-state bugs via parity and watcher checks","updated_at":"2026-03-02T00:54:05Z","waiters":"","wisp_type":"","work_type":""}
|
||||
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"78ad8a33d92c1e57d271739ec31350ecdfbdaa6177bbf49b93f1ab948e52bb8c","created_at":"2026-03-02T05:40:48Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Scope: Any place that displays agent/user names from bead data\\nOut of Scope: Displaying raw IDs in debug/metadata views\\nRule: Never use bead.assignee directly for display - it contains the bead ID (e.g., beadboard-xyz), not the agent name. Always extract via: 1) title matching \"Agent: \u003cname\u003e\" pattern, 2) labels with \"agent:\" prefix, 3) fallback to raw value only if extraction fails.\\nRationale: Raw data fields often contain system identifiers, not human-readable content. Extract before display.\\nFailure Mode: Agent avatars show bead IDs like \"beadboard-abc\" instead of actual names.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-6iq","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":"open","target":"","timeout_ns":0,"title":"[MEMORY][UI][HARD] Extract human-readable names from raw data fields","updated_at":"2026-03-02T05:40: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":"78ad8a33d92c1e57d271739ec31350ecdfbdaa6177bbf49b93f1ab948e52bb8c","created_at":"2026-03-02T05:40:48Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Scope: Any place that displays agent/user names from bead data\\nOut of Scope: Displaying raw IDs in debug/metadata views\\nRule: Never use bead.assignee directly for display - it contains the bead ID (e.g., beadboard-xyz), not the agent name. Always extract via: 1) title matching \"Agent: \u003cname\u003e\" pattern, 2) labels with \"agent:\" prefix, 3) fallback to raw value only if extraction fails.\\nRationale: Raw data fields often contain system identifiers, not human-readable content. Extract before display.\\nFailure Mode: Agent avatars show bead IDs like \"beadboard-abc\" instead of actual names.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-6iq","is_template":0,"issue_type":"decision","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":"open","target":"","timeout_ns":0,"title":"[MEMORY][UI][HARD] Extract human-readable names from raw data fields","updated_at":"2026-03-02T06:56:48Z","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:15Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"bf5c6b303e055cbf850699726821e46ad1c082a5c64a38b31804f44957545abe","created_at":"2026-02-21T19:53:05Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-6lq","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":0,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"closed","target":"","timeout_ns":0,"title":"Testing CURL","updated_at":"2026-03-02T06:35:15Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Completed: All subtasks done. Full UX consolidation shipped on feat/themev2. Commits c246cea, a0787f8, 114bb18.","closed_at":"2026-03-02T02:26:57Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"f0b9984371281432490f8180b6afae032bb52dcd16d44c5d95c3e13831c63aaa","created_at":"2026-03-02T02:25:18Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Epic covering the full UX rework that removed the broken LaunchSwarmDialog (formula-based), rewired all Rocket/Launch Swarm buttons to use the working archetype-based AssignmentPanel, added cross-view navigation between Social and Graph, and introduced TelemetryStrip minimized sidebar. Scope: TopBar, LeftPanel, DAG nodes, social cards, unified-shell wiring, TelemetryStrip component. Out of Scope: New archetype templates, backend changes. Success Criteria: All Rocket buttons open AssignmentPanel, cross-view nav works atomically, TelemetryStrip shows real activity events with minimize/restore.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-6wv","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"UX Consolidation: Launch Swarm + Telemetry Strip + Cross-View Navigation","updated_at":"2026-03-02T02:26:57Z","waiters":"","wisp_type":"","work_type":""}
|
||||
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"test","closed_at":"2026-02-21T21:21:14Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"3270adeb60c4f28981bd6ec8bc489b081cdc7d7ea53369481f1f7d9f20f1b879","created_at":"2026-02-21T21:21:12Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-6xd","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":2,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"closed","target":"","timeout_ns":0,"title":"Realtime Test","updated_at":"2026-02-21T21:21:14Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
|
|
@ -415,6 +416,7 @@
|
|||
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":"beadboard-zqt","await_id":"","await_type":"","close_reason":"BlockedTriageModal created with inline archetype picker, blocker chain display, uses deriveBlockedIds for accurate blocked computation","closed_at":"2026-03-02T05:23:10Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"6b010a323057be0a0775a6ffad94245171691c21cf59b0e0721c753032087b1b","created_at":"2026-02-28T22:39:47Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: beadboard-d2x.1\n- Title: Build BlockedTriageModal with inline ArchetypePicker\n- Parent/Epic: beadboard-d2x\n- Dependencies (must be done first): beadboard-8ij.1 (useArchetypePicker hook)\n\nTASK CONTRACT\n- Goal: Build a modal component that lists all blocked tasks with their full blocker chain context and allows the operator to assign an archetype agent to each blocked task inline without dismissing the modal.\n- Success Criteria:\n - BlockedTriageModal renders a list of all issues where status === 'blocked'\n - Each row shows: task title, task ID, blocker chain (use buildBlockedByTree from src/lib if it exists, or derive from issue.dependencies)\n - Each row has an inline ArchetypePicker (useArchetypePicker hook from beadboard-8ij.1) that assigns and then collapses without closing the modal\n - Modal is scrollable if blocked list is long\n - Modal closes via Escape key or close button\n - npm run typecheck passes\n- Scope:\n - src/components/shared/blocked-triage-modal.tsx (new file)\n - Use shadcn Dialog primitive (already in components/ui/) for the modal shell\n - Use useArchetypePicker hook for each row's assignment action\n - Search src/lib/ for buildBlockedByTree or equivalent before writing blocker-chain logic from scratch\n- Out of Scope:\n - Wiring modal open/close to TopBar (beadboard-d2x.2)\n - Changing how issues are marked blocked\n\nIMPLEMENTATION CONSTRAINTS\n- Preserve existing backend/API contracts unless explicitly stated otherwise.\n- Reuse shared components and logic; avoid one-off forks.\n- Keep changes targeted and minimal for this bead.\n\nVERIFICATION REQUIREMENTS\n- Required commands:\n - npm run typecheck\n - npm run lint\n - npm run test\n- Report any remaining risks and follow-up beads explicitly.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-d2x.1","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"BlockedTriageModal created at src/components/shared/blocked-triage-modal.tsx. Uses deriveBlockedIds (exported in Task 1) and buildBlockedByTree for blocker chain. Inline archetype picker per row. 12 tests pass. Typecheck passes (pre-existing error in unrelated file). Lint passes.","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":2,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Build BlockedTriageModal with inline ArchetypePicker","updated_at":"2026-03-02T05:23:10Z","waiters":"","wisp_type":"","work_type":""}
|
||||
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":"beadboard-zqt","await_id":"","await_type":"","close_reason":"TopBar blocked button now opens BlockedTriageModal instead of toggling URL","closed_at":"2026-03-02T05:23:02Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"93c0c0ce899172851d9d6422d3a21859f3df78de06e8c56c6326fe3d28441e81","created_at":"2026-02-28T22:39:47Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: beadboard-d2x.2\n- Title: Reroute TopBar blocked button to open BlockedTriageModal\n- Parent/Epic: beadboard-d2x\n- Dependencies (must be done first): beadboard-d2x.1\n\nTASK CONTRACT\n- Goal: The TopBar 'Blocked Items' button currently toggles a URL param (blockedOnly). Replace this with a modal open trigger that opens BlockedTriageModal, keeping the blockedOnly filter wired from Phase 0 for the social feed but making the primary triage action the modal.\n- Success Criteria:\n - Clicking 'Blocked Items' in TopBar opens BlockedTriageModal\n - BlockedTriageModal receives issues and projectRoot from UnifiedShell\n - Existing blockedOnly URL toggle in TopBar is either removed or made secondary (decide when reading the component — do not break Phase 0 work)\n - npm run typecheck passes\n- Scope:\n - src/components/shared/top-bar.tsx — change blocked button handler\n - src/components/shared/unified-shell.tsx — add modal open state, pass to TopBar and BlockedTriageModal\n- Out of Scope:\n - Changing BlockedTriageModal internals (beadboard-d2x.1)\n - Phase 0 blockedOnly social feed filter\n\nIMPLEMENTATION CONSTRAINTS\n- Preserve existing backend/API contracts unless explicitly stated otherwise.\n- Reuse shared components and logic; avoid one-off forks.\n- Keep changes targeted and minimal for this bead.\n\nVERIFICATION REQUIREMENTS\n- Required commands:\n - npm run typecheck\n - npm run lint\n - npm run test\n- Report any remaining risks and follow-up beads explicitly.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-d2x.2","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"TopBar blocked button now opens BlockedTriageModal. UnifiedShell manages modal state. Typecheck passes (pre-existing errors), lint 0 errors, tests pass (2 pre-existing failures).","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":2,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Reroute TopBar blocked button to open BlockedTriageModal","updated_at":"2026-03-02T05:23:02Z","waiters":"","wisp_type":"","work_type":""}
|
||||
{"acceptance_criteria":"File created: src/components/graph/assignment-panel.tsx; Archetypes/Templates buttons open inspector modals; Task assignment section shows selected issue details; Archetype picker dropdown populated from useArchetypes; Prep Task for Swarm button calls /api/swarm/prep; Condensed squad roster shows active agents; npm run typecheck passes","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"6125f57d0c2fc09352deb2de82632197bccfb2fc6e320d50e5c4f53baf58c645","created_at":"2026-02-24T01:37:40Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-d4n","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"tombstone","target":"","timeout_ns":0,"title":"Create AssignmentPanel component","updated_at":"2026-02-24T01:40:31Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"18092277e4c739700dc673d3c5a5d4b6348065b4dc5d92674800a32a7c699711","created_at":"2026-03-02T06:55:56Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Scope: When creating or rewriting skills for beadboard\\nOut of Scope: Specific implementation details\\nRule: A complete skill should have:\\n1. skill.md - Entry point, manual, TOC, pointers to scripts\\n2. references/ - Detailed docs for each system (memory, coord, sessions, archetypes, etc)\\n3. scripts/ - Self-healing tools (on-demand, referenced by skill.md)\\n4. project.md - Template that agents fill with env-specific workarounds\\n5. tests/ - Skill-local and repo-level tests\\n\\nRationale: This structure allows agents to understand the full system while keeping skill.md readable as a selling point/manual.\\n\\nFailure Mode: Skills that dump everything into one file become unreadable and hard to maintain.\\n\\nEvidence: beadboard-1bg (skill v4 rewrite)","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-dc0","is_template":0,"issue_type":"decision","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":"[MEMORY][ARCH][SOFT] Skill Structure: Entry Point + References + Scripts + Tests + project.md","updated_at":"2026-03-02T06:55:56Z","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:13Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"6c33dd19c5fab28ffb3ec7fed3b423630107c24616fda2ff2234fadd30cf2069","created_at":"2026-02-21T20:30:26Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-dp2","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":0,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"closed","target":"","timeout_ns":0,"title":"Testing from curl","updated_at":"2026-03-02T06:35:13Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Completed: Unified-shell wired as central panel state coordinator. Commit c246cea.","closed_at":"2026-03-02T02:26:56Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"85f32a2db061ff92c0a3c65e4a21b94666aaba59367a94ceb90274c406fa2333","created_at":"2026-03-02T02:26:17Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Wired unified-shell.tsx as the central coordinator for all panel state: assignMode, taskId, lastTaskId, lastAssignMode, isNonTelemetry detection. All panel-switching flows (rocket, conversation, telemetry, minimize, social-view rocket) route through unified-shell handlers. handleSocialRocket, handleMinimize, handleNodeTelemetry etc. Scope: unified-shell.tsx. Success Criteria: Single source of truth for right panel state, no state desync across views.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-dud","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Wire unified-shell as central state coordinator for panel modes","updated_at":"2026-03-02T02:26:56Z","waiters":"","wisp_type":"","work_type":""}
|
||||
{"acceptance_criteria":"Given newly introduced UI copy, when reviewed, then wording is concise and unambiguous for first-time users.\nVerification command(s): npm run lint; targeted UI review in changed components","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Ratified canonical memory","closed_at":"2026-03-02T00:40:01Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"211674ee3309e1029490d7490617c2b5a29ed26507221e66dd15f83664657869","created_at":"2026-03-02T00:40:00Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Scope: UI copy in labels, controls, and status messaging.\nOut of Scope: Internal comments and engineering-only diagnostics.\nRule: Use simple user-facing language and explicit status words.\nRationale: Reduces ambiguity and onboarding friction.\nFailure Mode: Dense or vague copy increases mistakes and support load.\n","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-duo","is_template":0,"issue_type":"decision","last_activity":null,"metadata":"{\"domain\":\"memory-ux\",\"effective_date\":\"2026-03-02\",\"evidence_ids\":\"beadboard-68k.4,beadboard-68k.2,bb-u6f.3\",\"memory_strength\":\"soft\",\"memory_version\":1,\"owner\":\"team\",\"plan_refs\":\"docs/plans/2026-02-16-social-view-redesign-plan.md,docs/plans/2026-02-15-unified-ux-prd.md\",\"superseded_by\":null,\"supersedes\":null}","mol_type":"","notes":"Provenance linked: beadboard-68k.4, beadboard-68k.2, bb-u6f.3","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"[MEMORY][UX][SOFT] User-facing copy must stay simple and explicit","updated_at":"2026-03-02T00:54:03Z","waiters":"","wisp_type":"","work_type":""}
|
||||
|
|
@ -439,9 +441,14 @@
|
|||
{"acceptance_criteria":"Both manuals include mandatory post-close memory review cadence and provenance relation commands/requirements.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"AGENTS manuals now enforce regular memory additions and provenance relations","closed_at":"2026-03-02T00:57:15Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"94801679101f97c806f8bada08cbf366d258173ce388dafbb4135a3bfec22b49","created_at":"2026-03-02T00:56:31Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Update root and beadboard AGENTS manuals to require recurring memory additions and explicit provenance relation/metadata rules for canonical memory nodes.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-ij8","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Updated both AGENTS manuals: added mandatory post-close memory review cadence, provenance relation commands, required evidence_ids/plan_refs metadata, and fresh-agent provenance validation steps.","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Enforce regular memory contribution + provenance relations in AGENTS manuals","updated_at":"2026-03-02T00:57:15Z","waiters":"","wisp_type":"","work_type":""}
|
||||
{"acceptance_criteria":"WorkflowGraphProps includes assignMode?: boolean; GraphNodeData includes isAssignMode?: boolean; When isAssignMode=true and !isActionable: node has opacity-20; When isAssignMode=true and isActionable: node has ring-2 ring-emerald-400/50 shadow-[0_0_24px_rgba(16,185,129,0.2)]; npm run typecheck passes","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"dd64afe3fa8c5aebaa14f15c73385a964cf584eed523b103825eecfe2e8257bc","created_at":"2026-02-24T01:37:40Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-j3u","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"## TASK CONTEXT\n- Bead ID: beadboard-j3u\n- Title: Add assign mode data flow to WorkflowGraph + GraphNodeCard\n- Parent/Epic: beadboard-uui (Unify Graph + Swarm into Single Enhanced Graph View)\n- Dependencies (must be done first): None\n\n## GOAL\nEnable visual differentiation of actionable vs non-actionable nodes when assign mode is active. This provides the visual foundation for the 'Assign' toggle functionality.\n\n## SUCCESS CRITERIA\n- WorkflowGraphProps interface includes assignMode?: boolean\n- GraphNodeData interface includes isAssignMode?: boolean\n- In WorkflowGraphInner, pass isAssignMode: assignMode to each node's data\n- In GraphNodeCard, when data.isAssignMode is true:\n - If !data.isActionable: add opacity-20 class (extra dimming)\n - If data.isActionable: add ring-2 ring-emerald-400/50 shadow-[0_0_24px_rgba(16,185,129,0.2)] (highlight ring)\n- npm run typecheck passes\n\n## SCOPE\n- Modify src/components/shared/workflow-graph.tsx:\n - Add assignMode?: boolean to WorkflowGraphProps (line 24-31)\n - Pass assignMode to WorkflowGraphInner\n - In flowModel useMemo, add isAssignMode: assignMode to each node's data (line 154-175)\n- Modify src/components/graph/graph-node-card.tsx:\n - Add isAssignMode?: boolean to GraphNodeData interface\n - Add conditional styling based on isAssignMode \u0026\u0026 isActionable\n\n## OUT OF SCOPE\n- SmartDag changes (beadboard-5sr)\n- AssignmentPanel component (beadboard-d4n)\n- UnifiedShell wiring (beadboard-cm8)\n\n## IMPLEMENTATION NOTES\nThe visual treatment should:\n1. Non-actionable nodes in assign mode: fade them out so user focuses on ready nodes\n2. Actionable nodes in assign mode: glowing emerald ring to draw attention\n3. Preserve existing styling for non-assign mode\n\n## VERIFICATION REQUIREMENTS\n- Required commands:\n - npm run typecheck\n- Manual verification:\n - When assignMode=true, actionable nodes have green ring\n - When assignMode=true, non-actionable nodes are dimmed\n - When assignMode=false, existing styling preserved","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"tombstone","target":"","timeout_ns":0,"title":"Add assign mode data flow to WorkflowGraph + GraphNodeCard","updated_at":"2026-02-24T01:40:31Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"help/memory folder exists with workflow docs; both AGENTS manuals reference and enforce memory workflow commands and schema.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Memory workflow docs and AGENTS integration added","closed_at":"2026-03-02T00:46:38Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"8542172d8d6c8ac3d885d5d13059206681e450bdb5f0891ae91b825c5f612abd","created_at":"2026-03-02T00:45:20Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Add critical operational docs for the bd-native memory system under help/memory and update root+beadboard AGENTS.md with explicit memory workflow protocol and command patterns.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-jgy","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Added help/memory index+workflow+query+schema docs; updated AGENTS.md with mandatory Native Memory Workflow section and command contracts.","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Document memory workflow in help/memory and AGENTS manuals","updated_at":"2026-03-02T00:46:38Z","waiters":"","wisp_type":"","work_type":""}
|
||||
{"acceptance_criteria":"","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":"9fe86aa036a7b313a7f621eadba09b9ae51b0b5f743e39d3af44f0a00849fcd4","created_at":"2026-03-02T06:54:58Z","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: Add back the project scope system with UI for switching between projects\n- Success Criteria:\n - Users can switch projects from UI\n - Project registry persists\n- Scope:\n - Backend: project registry, project switching logic\n - Frontend: project switcher UI component\n- Out of Scope:\n - Agent-specific project detection (agents know their project)\n\nIMPLEMENTATION CONSTRAINTS\n- Follow bead-prompting.md format\n- Use brainstorming skill before implementation\n- Reuse existing project-scope.ts patterns\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-jq5","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":"[BRAINSTORM] Project Scope System - UI and Backend","updated_at":"2026-03-02T06:54:58Z","waiters":"","wisp_type":"","work_type":""}
|
||||
{"acceptance_criteria":"User can assign archetypes to tasks via graph nodes and sidebar. Shows assigned archetype badges on nodes. Shows Needs Agent / Pre-assigned / Active Workers sections in sidebar.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Epic complete. Users can now assign archetypes to tasks via graph nodes (dropdown with archetype selection) and sidebar (Needs Agent section with quick assign). Shows archetype badges on nodes. AssignmentPanel shows three sections: Needs Agent, Pre-assigned, and Squad Roster (active workers scoped to epic).","closed_at":"2026-02-24T08:12:02Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"c92148b19bcb16a4c63bfa35b0a534867a3fc85ecb7f79a6443ae8524f0efc4f","created_at":"2026-02-24T04:14:38Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-lgi","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"## Final Fix: Single Archetype Per Task\n\n### Design Decision\nAfter discussion, we determined that bd (bead) is designed for ONE agent\narchetype per task - clear ownership model.\n\n### Implementation\n- handleAssignAgent now removes existing agent: labels before adding new one\n- Calls DELETE first, then POST\n- Optimistic UI reflects single archetype constraint\n- Reassigning still works (click different archetype to replace)\n\n### Test Coverage\n- 5 new tests in graph-node-single-archetype.test.tsx\n\n### Commit\n211e503 - feat(graph): enforce single archetype per task","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"closed","target":"","timeout_ns":0,"title":"Assign Archetypes to Tasks - UI System","updated_at":"2026-02-25T01:05:17Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"SSE refresh test complete - bead should appear and disappear without page reload","closed_at":"2026-02-21T20:50:23Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"e7bc06d037451c7ce09c7f8809077e907db3b57b82cad71b4520b1b165b177cc","created_at":"2026-02-21T20:49:59Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Testing that SSE events trigger UI refresh without manual page reload. This bead will be closed immediately after creation.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-m4f","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":3,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"closed","target":"","timeout_ns":0,"title":"Test Bead - SSE Refresh Verification","updated_at":"2026-02-21T20:50:23Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"Given a multi-param URL update, when the code is reviewed, then it must use a single buildUrlParams then router.push call, not sequential setX() calls.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Ratified canonical memory","closed_at":"2026-03-02T02:28:25Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"3b834ed2860e79b1560932a39726c0e89b1830b64e4c1684115aeb8cc2897f54","created_at":"2026-03-02T02:28:17Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Scope: Any code that updates multiple URL search params (view, taskId, assignMode, graphTab, etc.) in sequence. Out of Scope: Single-param updates. Rule: Never call multiple sequential setX() functions that each rebuild the URL from the same stale searchParams snapshot. Instead, use a single buildUrlParams() call to construct all params atomically, then one router.push(). Rationale: Each setX() reads the current searchParams at call time; if two run in the same tick, the second overwrites the first changes. Failure Mode: Params silently dropped, e.g. view changes but taskId reverts to previous value.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-mdo","is_template":0,"issue_type":"decision","last_activity":null,"metadata":"{\"domain\":\"memory-arch\",\"effective_date\":\"2026-03-02\",\"evidence_ids\":\"beadboard-y8k\",\"memory_strength\":\"hard\",\"memory_version\":1,\"owner\":\"team\",\"plan_refs\":\"\",\"superseded_by\":null,\"supersedes\":null}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"[MEMORY][ARCH][HARD] Atomic URL param updates to avoid stale closure races","updated_at":"2026-03-02T02:28:25Z","waiters":"","wisp_type":"","work_type":""}
|
||||
{"acceptance_criteria":"","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":"3f141a037b52de0cc681e41306734997b6a1f7ba63a8a2a3447ea0a5ed8ecb2f","created_at":"2026-03-02T06:49:45Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Parent: None (top-level epic)\n- Dependencies: None yet\n\nTASK CONTRACT\n- Goal: Establish verification confidence through tests and performance baselines\n- Success Criteria:\n - Tests pass before any feature is closed\n - Performance baselines documented\n- Scope:\n - Unit tests for core libs\n - API integration tests\n - Performance baselines\n - Verification gates\n- Out of Scope:\n - Feature implementation\n\nIMPLEMENTATION CONSTRAINTS\n- Tests in tests/ directory\n- Follow TDD workflow\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-n1h","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"open","target":"","timeout_ns":0,"title":"[EPIC] Quality Gates and Testing","updated_at":"2026-03-02T06:49:45Z","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":"98e46be01e4890e7f8ca7f00fa3832dd6d2afa7abeccca9434c8c8feb75603ea","created_at":"2026-03-02T06:50:05Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: beadboard-n1h.1\n- Parent: beadboard-n1h\n- Dependencies: None\n\nTASK CONTRACT\n- Goal: Implement unit tests for core libraries\n- Success Criteria:\n - Parser tests pass\n - Pathing tests pass\n - Scanner tests pass\n- Scope:\n - src/lib/parser.ts\n - src/lib/pathing.ts\n - src/lib/scanner.ts\n- Out of Scope:\n - Integration tests\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-n1h.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":"Unit Tests: Core Libraries","updated_at":"2026-03-02T06:50:05Z","waiters":"","wisp_type":"","work_type":""}
|
||||
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"47a25adabd198dfe5fda0a4e4341e21dac6baae1ee24c5e28b00a58b75061edd","created_at":"2026-03-02T06:50:16Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: beadboard-n1h.2\n- Parent: beadboard-n1h\n- Dependencies: None\n\nTASK CONTRACT\n- Goal: Implement API integration tests\n- Success Criteria:\n - Read route tests pass\n - Mutate route tests pass\n - SSE route tests pass\n- Scope:\n - /api/beads/read\n - /api/beads/create, update, close\n - /api/events (SSE)\n- Out of Scope:\n - Unit tests\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-n1h.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":"API Integration Tests","updated_at":"2026-03-02T06:50: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":"3d4c511082e1c8049f03bb2aad006525275fc1d9c2a680a11cae1fd007d1a839","created_at":"2026-03-02T06:50:29Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: beadboard-n1h.3\n- Parent: beadboard-n1h\n- Dependencies: None\n\nTASK CONTRACT\n- Goal: Record performance baselines\n- Success Criteria:\n - Parser baseline captured\n - Realtime baseline captured\n- Scope:\n - Parser performance\n - SSE/realtime performance\n- Out of Scope:\n - Full optimization\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-n1h.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":2,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"open","target":"","timeout_ns":0,"title":"Performance Baselines","updated_at":"2026-03-02T06:50:29Z","waiters":"","wisp_type":"","work_type":""}
|
||||
{"acceptance_criteria":"Canonical workflow memories are related to this anchor via bd dep relate.","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"5da123dbdad6d8b1b981104fad944679e17fff64a82cbdeabe118169df3ed468","created_at":"2026-03-02T00:39:16Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Domain anchor for execution process constraints, verification gates, and delivery discipline.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-nq9","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"open","target":"","timeout_ns":0,"title":"[MEMORY-ANCHOR] Workflow Protocol","updated_at":"2026-03-02T00:39:16Z","waiters":"","wisp_type":"","work_type":""}
|
||||
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":"2026-02-27T01:33:44Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"78b8b49cd1224c2a66dd49a452abbe6f6fce3e8fd4347cc8c84e2322c5226003","created_at":"2026-02-21T20:52:19Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-o6s","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":3,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"closed","target":"","timeout_ns":0,"title":"Test Bead 2 - SSE Check","updated_at":"2026-02-27T01:33:44Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Closed","closed_at":"2026-03-01T22:24:56Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"4f88d13043a1b0f19dfd4804d0b7b181b0317e0a2826b62354e2d45acb3b1a39","created_at":"2026-03-01T22:24:50Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"# Dolt Database Organization \u0026 PATH Troubleshooting\r\n\r\nOrganized scattered CLI `.txt` help texts into `beadboard/help/cli/` and added explicit workflow guides in `beadboard/help/workflows` for checking recently closed beads (`bd query`) and using the new `bd vc` dolt database features.\r\n\r\n**Issues Encountered \u0026 Resolved:**\r\n1. User accidentally ran `dolt init` in root rather than running commands in the actual DB directory (`.beads/dolt/beadboard/`). The empty root DB was pushed to DoltHub.\r\n2. We navigated correctly to `.beads/dolt/beadboard/` and ran `dolt push -f origin main` to forcefully overwrite the empty database on DoltHub with the actual issue history.\r\n3. The installed `bd` binary (`0.49.6`) was out of date. User ran the remote update script to `0.57.0`.\r\n4. The updated `bd` directory (`C:\\Users\\Zenchant\\AppData\\Local\\Programs\\bd`) was not on the system `PATH`. We programmatically updated the `$env:Path` in the registry and the active session.\r\n5. `bd 0.57.0` does not bundle the `dolt` binary anymore. The `bd ready` command was throwing a \"Dolt server unreachable... dolt is not installed\" error.\r\n6. We resolved this by downloading the official Dolt windows release archive, extracting `dolt.exe`, and placing it alongside `bd.exe` in the `bd` data directory. The `bd ready` command now successfully auto-starts the Dolt server.\r\n","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-qq2","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":2,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Dolt Migration and PATH Fixes","updated_at":"2026-03-01T22:24:56Z","waiters":"","wisp_type":"","work_type":""}
|
||||
|
|
|
|||
|
|
@ -635,6 +635,9 @@
|
|||
{"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-2e6","label":"critique"}
|
||||
{"issue_id":"beadboard-2e6","label":"frontend"}
|
||||
{"issue_id":"beadboard-2e6","label":"ux"}
|
||||
{"issue_id":"beadboard-2qy","label":"gt:agent"}
|
||||
{"issue_id":"beadboard-2qy","label":"role:ui"}
|
||||
{"issue_id":"beadboard-4vr","label":"brainstorm"}
|
||||
|
|
@ -686,6 +689,10 @@
|
|||
{"issue_id":"beadboard-c08","label":"agent:system-architect"}
|
||||
{"issue_id":"beadboard-c08","label":"status:documenting"}
|
||||
{"issue_id":"beadboard-d2x","label":"--json"}
|
||||
{"issue_id":"beadboard-dc0","label":"mem-canonical"}
|
||||
{"issue_id":"beadboard-dc0","label":"mem-soft"}
|
||||
{"issue_id":"beadboard-dc0","label":"memory"}
|
||||
{"issue_id":"beadboard-dc0","label":"memory-arch"}
|
||||
{"issue_id":"beadboard-duo","label":"mem-canonical"}
|
||||
{"issue_id":"beadboard-duo","label":"mem-soft"}
|
||||
{"issue_id":"beadboard-duo","label":"memory"}
|
||||
|
|
@ -712,10 +719,24 @@
|
|||
{"issue_id":"beadboard-ij8","label":"memory"}
|
||||
{"issue_id":"beadboard-jgy","label":"docs"}
|
||||
{"issue_id":"beadboard-jgy","label":"memory"}
|
||||
{"issue_id":"beadboard-jq5","label":"backend"}
|
||||
{"issue_id":"beadboard-jq5","label":"frontend"}
|
||||
{"issue_id":"beadboard-jq5","label":"project-scope"}
|
||||
{"issue_id":"beadboard-mdo","label":"mem-canonical"}
|
||||
{"issue_id":"beadboard-mdo","label":"mem-hard"}
|
||||
{"issue_id":"beadboard-mdo","label":"memory"}
|
||||
{"issue_id":"beadboard-mdo","label":"memory-arch"}
|
||||
{"issue_id":"beadboard-n1h","label":"quality"}
|
||||
{"issue_id":"beadboard-n1h","label":"testing"}
|
||||
{"issue_id":"beadboard-n1h.1","label":"quality"}
|
||||
{"issue_id":"beadboard-n1h.1","label":"testing"}
|
||||
{"issue_id":"beadboard-n1h.1","label":"unit-tests"}
|
||||
{"issue_id":"beadboard-n1h.2","label":"integration"}
|
||||
{"issue_id":"beadboard-n1h.2","label":"quality"}
|
||||
{"issue_id":"beadboard-n1h.2","label":"testing"}
|
||||
{"issue_id":"beadboard-n1h.3","label":"performance"}
|
||||
{"issue_id":"beadboard-n1h.3","label":"quality"}
|
||||
{"issue_id":"beadboard-n1h.3","label":"testing"}
|
||||
{"issue_id":"beadboard-nq9","label":"memory"}
|
||||
{"issue_id":"beadboard-nq9","label":"memory-anchor"}
|
||||
{"issue_id":"beadboard-nq9","label":"memory-workflow"}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue