bd: backup 2026-03-02 03:43
This commit is contained in:
parent
e33017622a
commit
d3a2c9417a
4 changed files with 31 additions and 10 deletions
|
|
@ -1,13 +1,13 @@
|
|||
{
|
||||
"last_dolt_commit": "67cmftgk44glannsfe5800o22t5bl1pf",
|
||||
"last_dolt_commit": "g142lsuiis8qq4chgsajik70j5fu8ogk",
|
||||
"last_event_id": 0,
|
||||
"timestamp": "2026-03-02T03:27:49.684184Z",
|
||||
"timestamp": "2026-03-02T03:43:18.3597895Z",
|
||||
"counts": {
|
||||
"issues": 451,
|
||||
"events": 249,
|
||||
"issues": 452,
|
||||
"events": 267,
|
||||
"comments": 2,
|
||||
"dependencies": 603,
|
||||
"labels": 680,
|
||||
"labels": 682,
|
||||
"config": 14
|
||||
}
|
||||
}
|
||||
|
|
@ -247,3 +247,21 @@
|
|||
{"actor":"ZenchantLive","comment":"Added label: roadmap","created_at":"2026-03-01T18:31:50Z","event_type":"label_added","id":247,"issue_id":"beadboard-4vr","new_value":null,"old_value":null}
|
||||
{"actor":"ZenchantLive","comment":"Added label: planning","created_at":"2026-03-01T18:31:50Z","event_type":"label_added","id":248,"issue_id":"beadboard-4vr","new_value":null,"old_value":null}
|
||||
{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-01T19:24:41Z","event_type":"status_changed","id":249,"issue_id":"beadboard-x3l.1","new_value":"{\"notes\":\"Starting TDD: lift useSessionFeed/livenessMap to UnifiedShell\",\"status\":\"in_progress\"}","old_value":"{\"id\":\"beadboard-x3l.1\",\"title\":\"Move useSessionFeed/livenessMap up to UnifiedShell\",\"description\":\"TASK CONTEXT\\n- Bead ID: beadboard-x3l.1\\n- Title: Move useSessionFeed/livenessMap up to UnifiedShell\\n- Parent/Epic: beadboard-x3l\\n- Dependencies (must be done first): none (first in phase)\\n\\nTASK CONTRACT\\n- Goal: useSessionFeed is currently only called in sessions-page.tsx (deprecated route). Call it in UnifiedShell and make livenessMap available as a prop to SocialCard and SmartDag.\\n- Success Criteria:\\n - useSessionFeed(projectRoot) called in UnifiedShell\\n - livenessMap: Record\\u003cstring, string\\u003e available in UnifiedShell scope\\n - livenessMap passed down to SocialPage and SmartDag as a prop (even if they don't use it yet — that is beadboard-x3l.2 and beadboard-x3l.3)\\n - No duplicate SSE connections opened (verify useSessionFeed does not re-subscribe on re-render)\\n - npm run typecheck passes\\n- Scope:\\n - src/components/shared/unified-shell.tsx — add useSessionFeed call\\n - src/hooks/use-session-feed.ts — read to understand return shape before using\\n - src/components/social/social-page.tsx — add livenessMap prop (pass through to cards later)\\n - src/components/graph/smart-dag.tsx — add livenessMap prop (use in x3l.3)\\n- Out of Scope:\\n - Rendering agent avatars yet (beadboard-x3l.2, x3l.3)\\n - Removing useSessionFeed from sessions-page.tsx (leave it, legacy route)\\n\\nIMPLEMENTATION CONSTRAINTS\\n- Preserve existing backend/API contracts unless explicitly stated otherwise.\\n- Reuse shared components and logic; avoid one-off forks.\\n- Keep changes targeted and minimal for this bead.\\n\\nVERIFICATION REQUIREMENTS\\n- Required commands:\\n - npm run typecheck\\n - npm run lint\\n - npm run test\\n- Report any remaining risks and follow-up beads explicitly.\",\"status\":\"open\",\"priority\":1,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-02-28T22:34:43Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-02-28T22:34:43Z\"}"}
|
||||
{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-01T19:33:39Z","event_type":"updated","id":250,"issue_id":"beadboard-x3l.1","new_value":"{\"notes\":\"DONE: Added useSessionFeed to UnifiedShell, livenessMap wired to SmartDag/SocialPage/LeftPanel. Typecheck clean. 131/133 tests pass (2 pre-existing failures in url-state-integration unrelated to this change).\"}","old_value":"{\"id\":\"beadboard-x3l.1\",\"title\":\"Move useSessionFeed/livenessMap up to UnifiedShell\",\"description\":\"TASK CONTEXT\\n- Bead ID: beadboard-x3l.1\\n- Title: Move useSessionFeed/livenessMap up to UnifiedShell\\n- Parent/Epic: beadboard-x3l\\n- Dependencies (must be done first): none (first in phase)\\n\\nTASK CONTRACT\\n- Goal: useSessionFeed is currently only called in sessions-page.tsx (deprecated route). Call it in UnifiedShell and make livenessMap available as a prop to SocialCard and SmartDag.\\n- Success Criteria:\\n - useSessionFeed(projectRoot) called in UnifiedShell\\n - livenessMap: Record\\u003cstring, string\\u003e available in UnifiedShell scope\\n - livenessMap passed down to SocialPage and SmartDag as a prop (even if they don't use it yet — that is beadboard-x3l.2 and beadboard-x3l.3)\\n - No duplicate SSE connections opened (verify useSessionFeed does not re-subscribe on re-render)\\n - npm run typecheck passes\\n- Scope:\\n - src/components/shared/unified-shell.tsx — add useSessionFeed call\\n - src/hooks/use-session-feed.ts — read to understand return shape before using\\n - src/components/social/social-page.tsx — add livenessMap prop (pass through to cards later)\\n - src/components/graph/smart-dag.tsx — add livenessMap prop (use in x3l.3)\\n- Out of Scope:\\n - Rendering agent avatars yet (beadboard-x3l.2, x3l.3)\\n - Removing useSessionFeed from sessions-page.tsx (leave it, legacy route)\\n\\nIMPLEMENTATION CONSTRAINTS\\n- Preserve existing backend/API contracts unless explicitly stated otherwise.\\n- Reuse shared components and logic; avoid one-off forks.\\n- Keep changes targeted and minimal for this bead.\\n\\nVERIFICATION REQUIREMENTS\\n- Required commands:\\n - npm run typecheck\\n - npm run lint\\n - npm run test\\n- Report any remaining risks and follow-up beads explicitly.\",\"notes\":\"Starting TDD: lift useSessionFeed/livenessMap to UnifiedShell\",\"status\":\"in_progress\",\"priority\":1,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-02-28T22:34:43Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-02T03:24:40Z\"}"}
|
||||
{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-01T19:33:46Z","event_type":"closed","id":251,"issue_id":"beadboard-x3l.1","new_value":"useSessionFeed lifted to UnifiedShell; livenessMap+agentStats wired to SmartDag, SocialPage, LeftPanel props. Typecheck clean, tests 131/133 (2 pre-existing).","old_value":""}
|
||||
{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-01T19:34:22Z","event_type":"status_changed","id":252,"issue_id":"beadboard-x3l.3","new_value":"{\"status\":\"in_progress\"}","old_value":"{\"id\":\"beadboard-x3l.3\",\"title\":\"Render agent avatar on graph nodes with stuck-agent pulse\",\"description\":\"TASK CONTEXT\\n- Bead ID: beadboard-x3l.3\\n- Title: Render agent avatar on graph nodes with stuck-agent pulse\\n- Parent/Epic: beadboard-x3l\\n- Dependencies (must be done first): beadboard-x3l.1\\n\\nTASK CONTRACT\\n- Goal: Active graph nodes should show the assigned agent's avatar. Nodes whose agent is in a 'stuck' liveness state should display a pulsing warning treatment so the operator can spot problems at a glance in the DAG view.\\n- Success Criteria:\\n - Graph node card renders a small agent avatar when issue.assignee is present in livenessMap\\n - Stuck agents (livenessMap value === 'stuck') show a CSS pulse/ring animation on the node border\\n - Non-assigned nodes are visually unchanged\\n - npm run typecheck passes\\n- Scope:\\n - src/components/graph/smart-dag.tsx or the node card component it renders — add livenessMap prop and avatar/pulse render\\n - Read SmartDag to find where individual node UI is rendered before editing\\n- Out of Scope:\\n - SocialCard presence (beadboard-x3l.2)\\n - Graph layout or DAG structure changes\\n\\nIMPLEMENTATION CONSTRAINTS\\n- Preserve existing backend/API contracts unless explicitly stated otherwise.\\n- Reuse shared components and logic; avoid one-off forks.\\n- Keep changes targeted and minimal for this bead.\\n\\nVERIFICATION REQUIREMENTS\\n- Required commands:\\n - npm run typecheck\\n - npm run lint\\n - npm run test\\n- Report any remaining risks and follow-up beads explicitly.\",\"status\":\"open\",\"priority\":1,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-02-28T22:34:43Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-02-28T22:34:43Z\"}"}
|
||||
{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-01T19:34:38Z","event_type":"status_changed","id":253,"issue_id":"beadboard-x3l.2","new_value":"{\"status\":\"in_progress\"}","old_value":"{\"id\":\"beadboard-x3l.2\",\"title\":\"Render agent avatar and liveness dot on SocialCard\",\"description\":\"TASK CONTEXT\\n- Bead ID: beadboard-x3l.2\\n- Title: Render agent avatar and liveness dot on SocialCard\\n- Parent/Epic: beadboard-x3l\\n- Dependencies (must be done first): beadboard-x3l.1\\n\\nTASK CONTRACT\\n- Goal: Each SocialCard for an assigned task should show the assigned agent's avatar and a liveness dot (active/stale/stuck) using livenessMap from the shell.\\n- Success Criteria:\\n - SocialCard receives livenessMap: Record\\u003cstring, string\\u003e prop\\n - If issue.assignee exists and is in livenessMap, renders AgentAvatar component with liveness indicator\\n - Liveness states: 'active' (green dot), 'stale' (amber dot), 'stuck' (red pulse)\\n - Cards without an assignee show no avatar — no empty avatar placeholder\\n - npm run typecheck passes\\n- Scope:\\n - src/components/social/social-card.tsx — add livenessMap prop and avatar render\\n - src/components/social/social-page.tsx — thread livenessMap through to each SocialCard\\n - Check if AgentAvatar component exists (grep src/ for AgentAvatar) and use it; if not, render a simple initials circle\\n- Out of Scope:\\n - Graph node agent presence (beadboard-x3l.3)\\n - Inline assign affordance (Phase 3, beadboard-8ij.2)\\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.\",\"status\":\"open\",\"priority\":1,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-02-28T22:34:43Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-02-28T22:34:43Z\"}"}
|
||||
{"actor":"zenchantlive","comment":null,"created_at":"2026-03-01T19:34:54Z","event_type":"status_changed","id":254,"issue_id":"beadboard-x3l.4","new_value":"{\"status\":\"in_progress\"}","old_value":"{\"id\":\"beadboard-x3l.4\",\"title\":\"Replace LeftPanel footer with live workspace stats\",\"description\":\"TASK CONTEXT\\n- Bead ID: beadboard-x3l.4\\n- Title: Replace LeftPanel footer with live workspace stats\\n- Parent/Epic: beadboard-x3l\\n- Dependencies (must be done first): beadboard-x3l.1\\n\\nTASK CONTRACT\\n- Goal: The LeftPanel footer currently shows a hardcoded identity string. Replace it with live stats: number of active agents and number of tasks currently in motion, derived from livenessMap and the live issues array.\\n- Success Criteria:\\n - Footer shows 'N agents active, M tasks in motion' with real counts\\n - Counts update reactively when SSE pushes changes\\n - No hardcoded identity text remains in LeftPanel footer\\n - npm run typecheck passes\\n- Scope:\\n - src/components/shared/left-panel.tsx — update footer section\\n - LeftPanel already receives issues prop — use it for task count\\n - livenessMap passed from UnifiedShell (add to LeftPanelProps if not present)\\n- Out of Scope:\\n - TopBar identity input (beadboard-0fi.1)\\n - Changing LeftPanel navigation or epic tree\\n\\nIMPLEMENTATION CONSTRAINTS\\n- Preserve existing backend/API contracts unless explicitly stated otherwise.\\n- Reuse shared components and logic; avoid one-off forks.\\n- Keep changes targeted and minimal for this bead.\\n\\nVERIFICATION REQUIREMENTS\\n- Required commands:\\n - npm run typecheck\\n - npm run lint\\n - npm run test\\n- Report any remaining risks and follow-up beads explicitly.\",\"status\":\"open\",\"priority\":2,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-02-28T22:34:43Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-02-28T22:34:43Z\"}"}
|
||||
{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-01T19:35:08Z","event_type":"status_changed","id":255,"issue_id":"beadboard-x3l.4","new_value":"{\"status\":\"in_progress\"}","old_value":"{\"id\":\"beadboard-x3l.4\",\"title\":\"Replace LeftPanel footer with live workspace stats\",\"description\":\"TASK CONTEXT\\n- Bead ID: beadboard-x3l.4\\n- Title: Replace LeftPanel footer with live workspace stats\\n- Parent/Epic: beadboard-x3l\\n- Dependencies (must be done first): beadboard-x3l.1\\n\\nTASK CONTRACT\\n- Goal: The LeftPanel footer currently shows a hardcoded identity string. Replace it with live stats: number of active agents and number of tasks currently in motion, derived from livenessMap and the live issues array.\\n- Success Criteria:\\n - Footer shows 'N agents active, M tasks in motion' with real counts\\n - Counts update reactively when SSE pushes changes\\n - No hardcoded identity text remains in LeftPanel footer\\n - npm run typecheck passes\\n- Scope:\\n - src/components/shared/left-panel.tsx — update footer section\\n - LeftPanel already receives issues prop — use it for task count\\n - livenessMap passed from UnifiedShell (add to LeftPanelProps if not present)\\n- Out of Scope:\\n - TopBar identity input (beadboard-0fi.1)\\n - Changing LeftPanel navigation or epic tree\\n\\nIMPLEMENTATION CONSTRAINTS\\n- Preserve existing backend/API contracts unless explicitly stated otherwise.\\n- Reuse shared components and logic; avoid one-off forks.\\n- Keep changes targeted and minimal for this bead.\\n\\nVERIFICATION REQUIREMENTS\\n- Required commands:\\n - npm run typecheck\\n - npm run lint\\n - npm run test\\n- Report any remaining risks and follow-up beads explicitly.\",\"status\":\"in_progress\",\"priority\":2,\"issue_type\":\"task\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-02-28T22:34:43Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-02T03:34:55Z\"}"}
|
||||
{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-01T19:35:43Z","event_type":"status_changed","id":256,"issue_id":"beadboard-x3l","new_value":"{\"notes\":\"Orchestrating Phase 4: x3l.1 closed, x3l.2/3/4 dispatched as parallel agents.\",\"status\":\"in_progress\"}","old_value":"{\"id\":\"beadboard-x3l\",\"title\":\"Phase 4: Agent Presence\",\"description\":\"TASK CONTEXT\\n- Bead ID: (auto)\\n- Title: Phase 4: Agent Presence\\n- Parent/Epic: none (phase epic)\\n- Dependencies (must be done first): beadboard-0fi (Phase 2 — actor identity in shell)\\n\\nTASK CONTRACT\\n- Goal: Move livenessMap from the deprecated SessionsHeader up to UnifiedShell and surface live agent state on both Social cards and Graph nodes, so an operator can see which agents are active and what they are working on within 5 seconds of opening the app.\\n- Success Criteria:\\n - useSessionFeed called in UnifiedShell, livenessMap available at shell level\\n - SocialCard shows agent avatar and liveness dot for the assigned agent\\n - Graph nodes show agent avatar with pulse animation for stuck agents\\n - LeftPanel footer replaced with live workspace stats (N agents active, M tasks in motion)\\n - npm run typecheck \\u0026\\u0026 npm run lint \\u0026\\u0026 npm run test all pass\\n- Scope:\\n - UnifiedShell livenessMap lift (src/hooks/use-session-feed.ts already exists)\\n - SocialCard agent presence UI\\n - SmartDag/graph node agent presence UI\\n - LeftPanel footer stats\\n- Out of Scope:\\n - Creating new API endpoints (liveness data already flows via SSE)\\n - Agent detail right panel (covered in Phase 1)\\n\\nIMPLEMENTATION CONSTRAINTS\\n- Preserve existing backend/API contracts unless explicitly stated otherwise.\\n- Reuse shared components and logic; avoid one-off forks.\\n- Keep changes targeted and minimal for this bead.\\n\\nVERIFICATION REQUIREMENTS\\n- Required commands:\\n - npm run typecheck\\n - npm run lint\\n - npm run test\\n- Report any remaining risks and follow-up beads explicitly.\",\"status\":\"open\",\"priority\":1,\"issue_type\":\"epic\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-02-28T22:29:51Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-02-28T22:29:51Z\"}"}
|
||||
{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-01T19:38:22Z","event_type":"closed","id":257,"issue_id":"beadboard-x3l.4","new_value":"Replaced hardcoded Alex Chen/Lead Ops footer with WorkspaceStatsFooter showing live agent count and in-motion task count. Added 4 tests to left-panel.test.tsx. typecheck+lint+test all pass (2 pre-existing url-state failures excluded).","old_value":""}
|
||||
{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-01T19:38:29Z","event_type":"created","id":258,"issue_id":"beadboard-rnk","new_value":"","old_value":""}
|
||||
{"actor":"ZenchantLive","comment":"Added label: gt:agent","created_at":"2026-03-01T19:38:29Z","event_type":"label_added","id":259,"issue_id":"beadboard-rnk","new_value":null,"old_value":null}
|
||||
{"actor":"ZenchantLive","comment":"Added label: role:orchestrator","created_at":"2026-03-01T19:38:29Z","event_type":"label_added","id":260,"issue_id":"beadboard-rnk","new_value":null,"old_value":null}
|
||||
{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-01T19:38:33Z","event_type":"updated","id":261,"issue_id":"beadboard-x3l","new_value":"{\"assignee\":\"beadboard-rnk\",\"notes\":\"Orchestrator agent beadboard-rnk claimed this epic. x3l.1 closed, x3l.2/3/4 dispatched as parallel sub-agents.\"}","old_value":"{\"id\":\"beadboard-x3l\",\"title\":\"Phase 4: Agent Presence\",\"description\":\"TASK CONTEXT\\n- Bead ID: (auto)\\n- Title: Phase 4: Agent Presence\\n- Parent/Epic: none (phase epic)\\n- Dependencies (must be done first): beadboard-0fi (Phase 2 — actor identity in shell)\\n\\nTASK CONTRACT\\n- Goal: Move livenessMap from the deprecated SessionsHeader up to UnifiedShell and surface live agent state on both Social cards and Graph nodes, so an operator can see which agents are active and what they are working on within 5 seconds of opening the app.\\n- Success Criteria:\\n - useSessionFeed called in UnifiedShell, livenessMap available at shell level\\n - SocialCard shows agent avatar and liveness dot for the assigned agent\\n - Graph nodes show agent avatar with pulse animation for stuck agents\\n - LeftPanel footer replaced with live workspace stats (N agents active, M tasks in motion)\\n - npm run typecheck \\u0026\\u0026 npm run lint \\u0026\\u0026 npm run test all pass\\n- Scope:\\n - UnifiedShell livenessMap lift (src/hooks/use-session-feed.ts already exists)\\n - SocialCard agent presence UI\\n - SmartDag/graph node agent presence UI\\n - LeftPanel footer stats\\n- Out of Scope:\\n - Creating new API endpoints (liveness data already flows via SSE)\\n - Agent detail right panel (covered in Phase 1)\\n\\nIMPLEMENTATION CONSTRAINTS\\n- Preserve existing backend/API contracts unless explicitly stated otherwise.\\n- Reuse shared components and logic; avoid one-off forks.\\n- Keep changes targeted and minimal for this bead.\\n\\nVERIFICATION REQUIREMENTS\\n- Required commands:\\n - npm run typecheck\\n - npm run lint\\n - npm run test\\n- Report any remaining risks and follow-up beads explicitly.\",\"notes\":\"Orchestrating Phase 4: x3l.1 closed, x3l.2/3/4 dispatched as parallel agents.\",\"status\":\"in_progress\",\"priority\":1,\"issue_type\":\"epic\",\"owner\":\"jordanlive121@gmail.com\",\"created_at\":\"2026-02-28T22:29:51Z\",\"created_by\":\"ZenchantLive\",\"updated_at\":\"2026-03-02T03:35:42Z\"}"}
|
||||
{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-01T19:38:44Z","event_type":"closed","id":262,"issue_id":"beadboard-x3l.4","new_value":"LeftPanel footer replaced with WorkspaceStatsFooter showing live agent count + in-motion tasks from livenessMap/agentStats. Hardcoded Alex Chen removed. Typecheck clean, 10/10 left-panel tests pass.","old_value":""}
|
||||
{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-01T19:40:04Z","event_type":"closed","id":263,"issue_id":"beadboard-x3l.3","new_value":"Implemented: AgentAvatar overlay on graph nodes with stuck-agent pulse animation. Added livenessMap propagation SmartDag→WorkflowGraph→GraphNodeCard. 10 new tests all pass. typecheck+lint (0 errors)+test (only pre-existing 2 failures in url-state-integration) verified.","old_value":""}
|
||||
{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-01T19:40:26Z","event_type":"closed","id":264,"issue_id":"beadboard-x3l.3","new_value":"AgentAvatar overlay added to GraphNodeCard (bottom-right, sm size) with liveness→status mapping. WorkflowGraph and SmartDag wired. 10 new tests in graph-node-liveness.test.ts. Typecheck clean, no regressions.","old_value":""}
|
||||
{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-01T19:41:50Z","event_type":"closed","id":265,"issue_id":"beadboard-x3l.2","new_value":"mapLiveness helper exported, livenessMap prop added to SocialCard and SocialPage, assignee AgentAvatar rendered in card header when liveness present. 9/9 tests pass, typecheck clean, lint 0 errors.","old_value":""}
|
||||
{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-01T19:41:51Z","event_type":"closed","id":266,"issue_id":"beadboard-x3l","new_value":"all steps complete","old_value":""}
|
||||
{"actor":"ZenchantLive","comment":null,"created_at":"2026-03-01T19:42:15Z","event_type":"closed","id":267,"issue_id":"beadboard-x3l.2","new_value":"AgentAvatar rendered in SocialCard header when assignee in livenessMap. mapLiveness helper exported. SocialPage passes livenessMap to cards. 9 new tests in social-card-liveness.test.ts. Typecheck clean, no regressions.","old_value":""}
|
||||
|
|
|
|||
|
|
@ -431,14 +431,15 @@
|
|||
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Added taskId and swarmId to ContextualRightPanelProps. UnifiedShell now passes both. TypeScript clean. Stubs ready for r1i.2 and r1i.3.","closed_at":"2026-02-28T21:55:18Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"3ef20d3633b6b730d2be311b235b917e037bd189fa15aad32e4eab5cc7ca53b4","created_at":"2026-02-28T21:44:20Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: beadboard-r1i.1\n- Title: Extend ContextualRightPanel props and thread taskId/swarmId from UnifiedShell\n- Parent/Epic: beadboard-r1i\n- Dependencies: none (first in phase)\n\nTASK CONTRACT\n- Goal: Add taskId and swarmId to ContextualRightPanelProps and pass them from UnifiedShell, so child tasks can implement per-branch rendering. No visible change yet — stubs only.\n- Success Criteria:\n - ContextualRightPanelProps includes taskId?: string | null and swarmId?: string | null\n - UnifiedShell passes both params to \u003cContextualRightPanel\u003e\n - TypeScript compiles clean (npm run typecheck passes)\n - Existing epicId branch and ActivityPanel fallback continue working\n- Scope:\n - src/components/activity/contextual-right-panel.tsx — props interface only\n - src/components/shared/unified-shell.tsx — pass taskId, swarmId to ContextualRightPanel call (~line 162)\n- Out of Scope:\n - Implementing the actual task or swarm branch content (that is r1i.2, r1i.3)\n - Adding agentId (no agent detail view planned for this phase)\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-r1i.1","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":0,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Extend ContextualRightPanel props and thread taskId/swarmId from shell","updated_at":"2026-02-28T21:55:18Z","waiters":"","wisp_type":"","work_type":""}
|
||||
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"TaskId branch added to ContextualRightPanel: ThreadDrawer in embedded mode renders task thread and issue metadata when taskId is set. No new typecheck errors.","closed_at":"2026-02-28T22:57:02Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"74cfd55061e51e0650d1de80be05f566293b27fb3b0657a2fcd5139353680776","created_at":"2026-02-28T21:53:57Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: beadboard-r1i.2\n- Title: Implement task branch in ContextualRightPanel (?task=X)\n- Parent/Epic: beadboard-r1i\n- Dependencies: beadboard-r1i.1 (taskId prop must exist on ContextualRightPanel)\n\nTASK CONTRACT\n- Goal: When a task is selected (taskId is set), the right panel shows the task thread and issue metadata using ThreadDrawer in embedded mode.\n- Success Criteria:\n - Selecting any task card opens right panel showing that task's thread (comments, events)\n - ThreadDrawer renders in embedded mode (no modal/overlay behaviour)\n - Issue title, status badge, and thread items are visible in the right panel\n - Deselecting the task (clearing taskId) returns right panel to ActivityPanel global feed\n - npm run typecheck passes\n- Scope:\n - src/components/activity/contextual-right-panel.tsx — add taskId branch before the ActivityPanel fallback\n - ThreadDrawer already exists at src/components/shared/thread-drawer.tsx with embedded prop\n - Use ThreadDrawer with: embedded=true, isOpen=true, issue from issues array, projectRoot\n- Out of Scope:\n - Agent assignment controls in the right panel (Phase 3)\n - Creating a new component — reuse ThreadDrawer embedded mode\n - Modifying ThreadDrawer itself\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-r1i.2","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":0,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Implement task branch in ContextualRightPanel (?task=X)","updated_at":"2026-02-28T22:57:02Z","waiters":"","wisp_type":"","work_type":""}
|
||||
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"SwarmId branch added via SwarmIdBranch inner component (hooks-safe): MissionInspector renders with useSwarmList for title lookup. assignedAgents wired to swarm.agents (TODO: populate from agent-registry). No new typecheck errors.","closed_at":"2026-02-28T22:57:02Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"0df7a8334f864d76d49b9a9cee494425371e6487079465a3019470ff277007ca","created_at":"2026-02-28T21:54:08Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: beadboard-r1i.3\n- Title: Implement swarm branch in ContextualRightPanel (?swarm=X)\n- Parent/Epic: beadboard-r1i\n- Dependencies: beadboard-r1i.1 (swarmId prop must exist on ContextualRightPanel)\n\nTASK CONTRACT\n- Goal: When a swarm is selected (swarmId is set), the right panel shows MissionInspector with that swarm's topology, agent roster, and mission status.\n- Success Criteria:\n - Navigating to ?swarm=X renders MissionInspector in the right panel\n - MissionInspector receives correct missionId, missionTitle, projectRoot, assignedAgents\n - Existing epicId and task branches are unaffected\n - npm run typecheck passes\n- Scope:\n - src/components/activity/contextual-right-panel.tsx — add swarmId branch\n - MissionInspector at src/components/mission/mission-inspector.tsx (props: missionId, missionTitle, projectRoot, assignedAgents, onClose, onAssign)\n - Resolve assignedAgents: check useSwarmList hook or /api/agents — use whatever UnifiedShell already has available\n - onClose: clear swarmId from URL state; onAssign: call /api/mission/assign\n- Out of Scope:\n - Building a new swarm inspector UI — MissionInspector already exists\n - Graph swarm overlay highlighting (Phase 3)\n\nIMPLEMENTATION CONSTRAINTS\n- Preserve existing backend/API contracts unless explicitly stated otherwise.\n- Reuse shared components and logic; avoid one-off forks.\n- Keep changes targeted and minimal for this bead.\n\nVERIFICATION REQUIREMENTS\n- Required commands:\n - npm run typecheck\n - npm run lint\n - npm run test\n- Report any remaining risks and follow-up beads explicitly.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-r1i.3","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":0,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Implement swarm branch in ContextualRightPanel (?swarm=X)","updated_at":"2026-02-28T22:57:02Z","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":"f3fd2e66f7e34039954ee1a1697e3af1d6a040797dc882261600a87e477a772f","created_at":"2026-03-02T03:38:27Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"Main Claude Code session acting as orchestrator for Phase 4 (beadboard-x3l) and related epics. Responsible for planning, dispatching parallel agents, and integration verification.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-rnk","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":0,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"open","target":"","timeout_ns":0,"title":"Agent: claude-orchestrator","updated_at":"2026-03-02T03:38:27Z","waiters":"","wisp_type":"","work_type":""}
|
||||
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Recreating as proper children of Phase 0 epic with correct naming","closed_at":"2026-02-28T21:02:57Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"d17805f0481b485f2e4b35b96ad1ad0633bc21989a9db4622fb7270e3945aefd","created_at":"2026-02-28T20:59:48Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"The views array in LeftPanel and the tabs array in MobileNav both only have Social and Graph. Activity is a valid view but unreachable from navigation.\n\nFile 1: src/components/shared/left-panel.tsx\nLocation: views array (~line 188)\nChange:\n const views: Array\u003c{ id: ViewType; label: string }\u003e = [\n { id: 'social', label: 'Social' },\n { id: 'graph', label: 'Graph' },\n { id: 'activity', label: 'Activity' }, // add this\n ];\n\nFile 2: src/components/shared/mobile-nav.tsx\nLocation: tabs array (~line 6)\nChange: Add Activity tab and replace Unicode glyphs with Lucide icons:\n import { LayoutList, Share2, Activity } from 'lucide-react';\n const tabs = [\n { id: 'social', label: 'Social', icon: \u003cLayoutList className='h-5 w-5' /\u003e },\n { id: 'graph', label: 'Graph', icon: \u003cShare2 className='h-5 w-5' /\u003e },\n { id: 'activity', label: 'Activity', icon: \u003cActivity className='h-5 w-5' /\u003e },\n ];\nAlso add aria-label={tab.label} to each tab button, and update render to use {tab.icon} JSX (not string).\n\nCheck mobile-nav.tsx current icon rendering before changing - confirm the tab type and render pattern.\n\nAcceptance: Left panel and mobile nav both show three tabs (Social, Graph, Activity). Mobile nav icons are Lucide SVGs with aria-labels.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-t83","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":0,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"P0.3: Add Activity tab to LeftPanel and MobileNav","updated_at":"2026-02-28T21:02:57Z","waiters":"","wisp_type":"","work_type":""}
|
||||
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"3763e0c47b3c3d6a4bd7e3ac46608778454e56437df140bdd9d09185198cd7d0","created_at":"2026-02-24T01:36:39Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-uui","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"## Goal\nMerge the duplicate graph implementations (?view=graph, ?view=swarm, and /graph page) into one enhanced graph view with two modes:\n- Analysis mode (default): Full dependency DAG with progressive disclosure\n- Assign mode (toggled): DAG highlights ready nodes, right panel shows assignment controls\n\n## Problem\nBeadBoard has two views (`?view=graph` and `?view=swarm`) that both render the same `WorkflowGraph` DAG component, creating duplication. The standalone `/graph` page (`DependencyGraphPage`) has rich dependency analysis features (hop depth, focus workspace, cycle detection, flow strip) that are stranded -- the shell's `?view=graph` is a bare 49-line wrapper (`SmartDag`) with none of them.\n\n## Success Criteria\n- ?view=graph shows enhanced DAG with all dependency analysis features\n- 'Assign' toggle enables task assignment workflow\n- ?view=swarm deprecated (falls back to default view)\n- Archetypes/Templates accessible from assign mode right panel\n- All implementation steps completed\n- npm run typecheck, lint, test all pass\n\n## Scope\n- SmartDag rewrite with progressive disclosure + tabs + assign mode\n- AssignmentPanel component for assign mode\n- useGraphAnalysis hook extraction\n- Swarm view removal from navigation\n- Delete deprecated swarm files\n\n## Out of Scope\n- Backend API changes (use existing /api/swarm/prep)\n- New archetypes/templates features\n- Mobile-specific layouts\n\n## Reference\nPRD: docs/prd/unified-graph-view.md","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"tombstone","target":"","timeout_ns":0,"title":"Unify Graph + Swarm into Single Enhanced Graph View","updated_at":"2026-02-24T01:40:52Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Cleaning up test bead","closed_at":"2026-02-21T21:16:00Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"f09f1a0a8263bb776250a97189934101bb7629cc7ef72bab18cf0b8ce5bfbeef","created_at":"2026-02-21T20:59:15Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-uuo","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":2,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"closed","target":"","timeout_ns":0,"title":"SSE Test Bead","updated_at":"2026-02-21T21:16:00Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":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":"ed3b011f4a9bc3317203143aef02596ffb9c244366af3425122340b0fab4a7f0","created_at":"2026-02-28T22:29:51Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: (auto)\n- Title: Phase 4: Agent Presence\n- Parent/Epic: none (phase epic)\n- Dependencies (must be done first): beadboard-0fi (Phase 2 — actor identity in shell)\n\nTASK CONTRACT\n- Goal: Move livenessMap from the deprecated SessionsHeader up to UnifiedShell and surface live agent state on both Social cards and Graph nodes, so an operator can see which agents are active and what they are working on within 5 seconds of opening the app.\n- Success Criteria:\n - useSessionFeed called in UnifiedShell, livenessMap available at shell level\n - SocialCard shows agent avatar and liveness dot for the assigned agent\n - Graph nodes show agent avatar with pulse animation for stuck agents\n - LeftPanel footer replaced with live workspace stats (N agents active, M tasks in motion)\n - npm run typecheck \u0026\u0026 npm run lint \u0026\u0026 npm run test all pass\n- Scope:\n - UnifiedShell livenessMap lift (src/hooks/use-session-feed.ts already exists)\n - SocialCard agent presence UI\n - SmartDag/graph node agent presence UI\n - LeftPanel footer stats\n- Out of Scope:\n - Creating new API endpoints (liveness data already flows via SSE)\n - Agent detail right panel (covered in Phase 1)\n\nIMPLEMENTATION CONSTRAINTS\n- Preserve existing backend/API contracts unless explicitly stated otherwise.\n- Reuse shared components and logic; avoid one-off forks.\n- Keep changes targeted and minimal for this bead.\n\nVERIFICATION REQUIREMENTS\n- Required commands:\n - npm run typecheck\n - npm run lint\n - npm run test\n- Report any remaining risks and follow-up beads explicitly.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-x3l","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"","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":"Phase 4: Agent Presence","updated_at":"2026-02-28T22:29:51Z","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":"283080de34f820239e92ca035c82d095dd40b22268d06b688e027340a23c73db","created_at":"2026-02-28T22:34:43Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: beadboard-x3l.1\n- Title: Move useSessionFeed/livenessMap up to UnifiedShell\n- Parent/Epic: beadboard-x3l\n- Dependencies (must be done first): none (first in phase)\n\nTASK CONTRACT\n- Goal: useSessionFeed is currently only called in sessions-page.tsx (deprecated route). Call it in UnifiedShell and make livenessMap available as a prop to SocialCard and SmartDag.\n- Success Criteria:\n - useSessionFeed(projectRoot) called in UnifiedShell\n - livenessMap: Record\u003cstring, string\u003e available in UnifiedShell scope\n - livenessMap passed down to SocialPage and SmartDag as a prop (even if they don't use it yet — that is beadboard-x3l.2 and beadboard-x3l.3)\n - No duplicate SSE connections opened (verify useSessionFeed does not re-subscribe on re-render)\n - npm run typecheck passes\n- Scope:\n - src/components/shared/unified-shell.tsx — add useSessionFeed call\n - src/hooks/use-session-feed.ts — read to understand return shape before using\n - src/components/social/social-page.tsx — add livenessMap prop (pass through to cards later)\n - src/components/graph/smart-dag.tsx — add livenessMap prop (use in x3l.3)\n- Out of Scope:\n - Rendering agent avatars yet (beadboard-x3l.2, x3l.3)\n - Removing useSessionFeed from sessions-page.tsx (leave it, legacy route)\n\nIMPLEMENTATION CONSTRAINTS\n- Preserve existing backend/API contracts unless explicitly stated otherwise.\n- Reuse shared components and logic; avoid one-off forks.\n- Keep changes targeted and minimal for this bead.\n\nVERIFICATION REQUIREMENTS\n- Required commands:\n - npm run typecheck\n - npm run lint\n - npm run test\n- Report any remaining risks and follow-up beads explicitly.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-x3l.1","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"Starting TDD: lift useSessionFeed/livenessMap to UnifiedShell","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"in_progress","target":"","timeout_ns":0,"title":"Move useSessionFeed/livenessMap up to UnifiedShell","updated_at":"2026-03-02T03:24:40Z","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":"dbc5f5a54d52d9ca58c73cadc7587919775f3e00320de80bc19ef50c37e7f02c","created_at":"2026-02-28T22:34:43Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: beadboard-x3l.2\n- Title: Render agent avatar and liveness dot on SocialCard\n- Parent/Epic: beadboard-x3l\n- Dependencies (must be done first): beadboard-x3l.1\n\nTASK CONTRACT\n- Goal: Each SocialCard for an assigned task should show the assigned agent's avatar and a liveness dot (active/stale/stuck) using livenessMap from the shell.\n- Success Criteria:\n - SocialCard receives livenessMap: Record\u003cstring, string\u003e prop\n - If issue.assignee exists and is in livenessMap, renders AgentAvatar component with liveness indicator\n - Liveness states: 'active' (green dot), 'stale' (amber dot), 'stuck' (red pulse)\n - Cards without an assignee show no avatar — no empty avatar placeholder\n - npm run typecheck passes\n- Scope:\n - src/components/social/social-card.tsx — add livenessMap prop and avatar render\n - src/components/social/social-page.tsx — thread livenessMap through to each SocialCard\n - Check if AgentAvatar component exists (grep src/ for AgentAvatar) and use it; if not, render a simple initials circle\n- Out of Scope:\n - Graph node agent presence (beadboard-x3l.3)\n - Inline assign affordance (Phase 3, beadboard-8ij.2)\n\nIMPLEMENTATION CONSTRAINTS\n- Preserve existing backend/API contracts unless explicitly stated otherwise.\n- Reuse shared components and logic; avoid one-off forks.\n- Keep changes targeted and minimal for this bead.\n\nVERIFICATION REQUIREMENTS\n- Required commands:\n - npm run typecheck\n - npm run lint\n - npm run test\n- Report any remaining risks and follow-up beads explicitly.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-x3l.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":"Render agent avatar and liveness dot on SocialCard","updated_at":"2026-02-28T22:34:43Z","waiters":"","wisp_type":"","work_type":""}
|
||||
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"fac32fa6621d7e7c923dc4d894046adade762c4dd1924e7b697dea7dcbc410cb","created_at":"2026-02-28T22:34:43Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: beadboard-x3l.3\n- Title: Render agent avatar on graph nodes with stuck-agent pulse\n- Parent/Epic: beadboard-x3l\n- Dependencies (must be done first): beadboard-x3l.1\n\nTASK CONTRACT\n- Goal: Active graph nodes should show the assigned agent's avatar. Nodes whose agent is in a 'stuck' liveness state should display a pulsing warning treatment so the operator can spot problems at a glance in the DAG view.\n- Success Criteria:\n - Graph node card renders a small agent avatar when issue.assignee is present in livenessMap\n - Stuck agents (livenessMap value === 'stuck') show a CSS pulse/ring animation on the node border\n - Non-assigned nodes are visually unchanged\n - npm run typecheck passes\n- Scope:\n - src/components/graph/smart-dag.tsx or the node card component it renders — add livenessMap prop and avatar/pulse render\n - Read SmartDag to find where individual node UI is rendered before editing\n- Out of Scope:\n - SocialCard presence (beadboard-x3l.2)\n - Graph layout or DAG structure changes\n\nIMPLEMENTATION CONSTRAINTS\n- Preserve existing backend/API contracts unless explicitly stated otherwise.\n- Reuse shared components and logic; avoid one-off forks.\n- Keep changes targeted and minimal for this bead.\n\nVERIFICATION REQUIREMENTS\n- Required commands:\n - npm run typecheck\n - npm run lint\n - npm run test\n- Report any remaining risks and follow-up beads explicitly.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-x3l.3","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"open","target":"","timeout_ns":0,"title":"Render agent avatar on graph nodes with stuck-agent pulse","updated_at":"2026-02-28T22:34:43Z","waiters":"","wisp_type":"","work_type":""}
|
||||
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"24edd6f97db15701b4c156021112e907eda6bb9b8370a7c0b24efb571f351a50","created_at":"2026-02-28T22:34:43Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: beadboard-x3l.4\n- Title: Replace LeftPanel footer with live workspace stats\n- Parent/Epic: beadboard-x3l\n- Dependencies (must be done first): beadboard-x3l.1\n\nTASK CONTRACT\n- Goal: The LeftPanel footer currently shows a hardcoded identity string. Replace it with live stats: number of active agents and number of tasks currently in motion, derived from livenessMap and the live issues array.\n- Success Criteria:\n - Footer shows 'N agents active, M tasks in motion' with real counts\n - Counts update reactively when SSE pushes changes\n - No hardcoded identity text remains in LeftPanel footer\n - npm run typecheck passes\n- Scope:\n - src/components/shared/left-panel.tsx — update footer section\n - LeftPanel already receives issues prop — use it for task count\n - livenessMap passed from UnifiedShell (add to LeftPanelProps if not present)\n- Out of Scope:\n - TopBar identity input (beadboard-0fi.1)\n - Changing LeftPanel navigation or epic tree\n\nIMPLEMENTATION CONSTRAINTS\n- Preserve existing backend/API contracts unless explicitly stated otherwise.\n- Reuse shared components and logic; avoid one-off forks.\n- Keep changes targeted and minimal for this bead.\n\nVERIFICATION REQUIREMENTS\n- Required commands:\n - npm run typecheck\n - npm run lint\n - npm run test\n- Report any remaining risks and follow-up beads explicitly.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-x3l.4","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":2,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"open","target":"","timeout_ns":0,"title":"Replace LeftPanel footer with live workspace stats","updated_at":"2026-02-28T22:34:43Z","waiters":"","wisp_type":"","work_type":""}
|
||||
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":"beadboard-rnk","await_id":"","await_type":"","close_reason":"all steps complete","closed_at":"2026-03-02T03:41:48Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"ed3b011f4a9bc3317203143aef02596ffb9c244366af3425122340b0fab4a7f0","created_at":"2026-02-28T22:29:51Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: (auto)\n- Title: Phase 4: Agent Presence\n- Parent/Epic: none (phase epic)\n- Dependencies (must be done first): beadboard-0fi (Phase 2 — actor identity in shell)\n\nTASK CONTRACT\n- Goal: Move livenessMap from the deprecated SessionsHeader up to UnifiedShell and surface live agent state on both Social cards and Graph nodes, so an operator can see which agents are active and what they are working on within 5 seconds of opening the app.\n- Success Criteria:\n - useSessionFeed called in UnifiedShell, livenessMap available at shell level\n - SocialCard shows agent avatar and liveness dot for the assigned agent\n - Graph nodes show agent avatar with pulse animation for stuck agents\n - LeftPanel footer replaced with live workspace stats (N agents active, M tasks in motion)\n - npm run typecheck \u0026\u0026 npm run lint \u0026\u0026 npm run test all pass\n- Scope:\n - UnifiedShell livenessMap lift (src/hooks/use-session-feed.ts already exists)\n - SocialCard agent presence UI\n - SmartDag/graph node agent presence UI\n - LeftPanel footer stats\n- Out of Scope:\n - Creating new API endpoints (liveness data already flows via SSE)\n - Agent detail right panel (covered in Phase 1)\n\nIMPLEMENTATION CONSTRAINTS\n- Preserve existing backend/API contracts unless explicitly stated otherwise.\n- Reuse shared components and logic; avoid one-off forks.\n- Keep changes targeted and minimal for this bead.\n\nVERIFICATION REQUIREMENTS\n- Required commands:\n - npm run typecheck\n - npm run lint\n - npm run test\n- Report any remaining risks and follow-up beads explicitly.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-x3l","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"Orchestrator agent beadboard-rnk claimed this epic. x3l.1 closed, x3l.2/3/4 dispatched as parallel sub-agents.","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Phase 4: Agent Presence","updated_at":"2026-03-02T03:41:48Z","waiters":"","wisp_type":"","work_type":""}
|
||||
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"useSessionFeed lifted to UnifiedShell; livenessMap+agentStats wired to SmartDag, SocialPage, LeftPanel props. Typecheck clean, tests 131/133 (2 pre-existing).","closed_at":"2026-03-02T03:33:45Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"283080de34f820239e92ca035c82d095dd40b22268d06b688e027340a23c73db","created_at":"2026-02-28T22:34:43Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: beadboard-x3l.1\n- Title: Move useSessionFeed/livenessMap up to UnifiedShell\n- Parent/Epic: beadboard-x3l\n- Dependencies (must be done first): none (first in phase)\n\nTASK CONTRACT\n- Goal: useSessionFeed is currently only called in sessions-page.tsx (deprecated route). Call it in UnifiedShell and make livenessMap available as a prop to SocialCard and SmartDag.\n- Success Criteria:\n - useSessionFeed(projectRoot) called in UnifiedShell\n - livenessMap: Record\u003cstring, string\u003e available in UnifiedShell scope\n - livenessMap passed down to SocialPage and SmartDag as a prop (even if they don't use it yet — that is beadboard-x3l.2 and beadboard-x3l.3)\n - No duplicate SSE connections opened (verify useSessionFeed does not re-subscribe on re-render)\n - npm run typecheck passes\n- Scope:\n - src/components/shared/unified-shell.tsx — add useSessionFeed call\n - src/hooks/use-session-feed.ts — read to understand return shape before using\n - src/components/social/social-page.tsx — add livenessMap prop (pass through to cards later)\n - src/components/graph/smart-dag.tsx — add livenessMap prop (use in x3l.3)\n- Out of Scope:\n - Rendering agent avatars yet (beadboard-x3l.2, x3l.3)\n - Removing useSessionFeed from sessions-page.tsx (leave it, legacy route)\n\nIMPLEMENTATION CONSTRAINTS\n- Preserve existing backend/API contracts unless explicitly stated otherwise.\n- Reuse shared components and logic; avoid one-off forks.\n- Keep changes targeted and minimal for this bead.\n\nVERIFICATION REQUIREMENTS\n- Required commands:\n - npm run typecheck\n - npm run lint\n - npm run test\n- Report any remaining risks and follow-up beads explicitly.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-x3l.1","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"DONE: Added useSessionFeed to UnifiedShell, livenessMap wired to SmartDag/SocialPage/LeftPanel. Typecheck clean. 131/133 tests pass (2 pre-existing failures in url-state-integration unrelated to this change).","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Move useSessionFeed/livenessMap up to UnifiedShell","updated_at":"2026-03-02T03:33:45Z","waiters":"","wisp_type":"","work_type":""}
|
||||
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"AgentAvatar rendered in SocialCard header when assignee in livenessMap. mapLiveness helper exported. SocialPage passes livenessMap to cards. 9 new tests in social-card-liveness.test.ts. Typecheck clean, no regressions.","closed_at":"2026-03-02T03:42:14Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"dbc5f5a54d52d9ca58c73cadc7587919775f3e00320de80bc19ef50c37e7f02c","created_at":"2026-02-28T22:34:43Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: beadboard-x3l.2\n- Title: Render agent avatar and liveness dot on SocialCard\n- Parent/Epic: beadboard-x3l\n- Dependencies (must be done first): beadboard-x3l.1\n\nTASK CONTRACT\n- Goal: Each SocialCard for an assigned task should show the assigned agent's avatar and a liveness dot (active/stale/stuck) using livenessMap from the shell.\n- Success Criteria:\n - SocialCard receives livenessMap: Record\u003cstring, string\u003e prop\n - If issue.assignee exists and is in livenessMap, renders AgentAvatar component with liveness indicator\n - Liveness states: 'active' (green dot), 'stale' (amber dot), 'stuck' (red pulse)\n - Cards without an assignee show no avatar — no empty avatar placeholder\n - npm run typecheck passes\n- Scope:\n - src/components/social/social-card.tsx — add livenessMap prop and avatar render\n - src/components/social/social-page.tsx — thread livenessMap through to each SocialCard\n - Check if AgentAvatar component exists (grep src/ for AgentAvatar) and use it; if not, render a simple initials circle\n- Out of Scope:\n - Graph node agent presence (beadboard-x3l.3)\n - Inline assign affordance (Phase 3, beadboard-8ij.2)\n\nIMPLEMENTATION CONSTRAINTS\n- Preserve existing backend/API contracts unless explicitly stated otherwise.\n- Reuse shared components and logic; avoid one-off forks.\n- Keep changes targeted and minimal for this bead.\n\nVERIFICATION REQUIREMENTS\n- Required commands:\n - npm run typecheck\n - npm run lint\n - npm run test\n- Report any remaining risks and follow-up beads explicitly.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-x3l.2","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Render agent avatar and liveness dot on SocialCard","updated_at":"2026-03-02T03:42:14Z","waiters":"","wisp_type":"","work_type":""}
|
||||
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"AgentAvatar overlay added to GraphNodeCard (bottom-right, sm size) with liveness→status mapping. WorkflowGraph and SmartDag wired. 10 new tests in graph-node-liveness.test.ts. Typecheck clean, no regressions.","closed_at":"2026-03-02T03:40:24Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"fac32fa6621d7e7c923dc4d894046adade762c4dd1924e7b697dea7dcbc410cb","created_at":"2026-02-28T22:34:43Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: beadboard-x3l.3\n- Title: Render agent avatar on graph nodes with stuck-agent pulse\n- Parent/Epic: beadboard-x3l\n- Dependencies (must be done first): beadboard-x3l.1\n\nTASK CONTRACT\n- Goal: Active graph nodes should show the assigned agent's avatar. Nodes whose agent is in a 'stuck' liveness state should display a pulsing warning treatment so the operator can spot problems at a glance in the DAG view.\n- Success Criteria:\n - Graph node card renders a small agent avatar when issue.assignee is present in livenessMap\n - Stuck agents (livenessMap value === 'stuck') show a CSS pulse/ring animation on the node border\n - Non-assigned nodes are visually unchanged\n - npm run typecheck passes\n- Scope:\n - src/components/graph/smart-dag.tsx or the node card component it renders — add livenessMap prop and avatar/pulse render\n - Read SmartDag to find where individual node UI is rendered before editing\n- Out of Scope:\n - SocialCard presence (beadboard-x3l.2)\n - Graph layout or DAG structure changes\n\nIMPLEMENTATION CONSTRAINTS\n- Preserve existing backend/API contracts unless explicitly stated otherwise.\n- Reuse shared components and logic; avoid one-off forks.\n- Keep changes targeted and minimal for this bead.\n\nVERIFICATION REQUIREMENTS\n- Required commands:\n - npm run typecheck\n - npm run lint\n - npm run test\n- Report any remaining risks and follow-up beads explicitly.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-x3l.3","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Render agent avatar on graph nodes with stuck-agent pulse","updated_at":"2026-03-02T03:40:24Z","waiters":"","wisp_type":"","work_type":""}
|
||||
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"LeftPanel footer replaced with WorkspaceStatsFooter showing live agent count + in-motion tasks from livenessMap/agentStats. Hardcoded Alex Chen removed. Typecheck clean, 10/10 left-panel tests pass.","closed_at":"2026-03-02T03:38:44Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"24edd6f97db15701b4c156021112e907eda6bb9b8370a7c0b24efb571f351a50","created_at":"2026-02-28T22:34:43Z","created_by":"ZenchantLive","crystallizes":0,"defer_until":null,"description":"TASK CONTEXT\n- Bead ID: beadboard-x3l.4\n- Title: Replace LeftPanel footer with live workspace stats\n- Parent/Epic: beadboard-x3l\n- Dependencies (must be done first): beadboard-x3l.1\n\nTASK CONTRACT\n- Goal: The LeftPanel footer currently shows a hardcoded identity string. Replace it with live stats: number of active agents and number of tasks currently in motion, derived from livenessMap and the live issues array.\n- Success Criteria:\n - Footer shows 'N agents active, M tasks in motion' with real counts\n - Counts update reactively when SSE pushes changes\n - No hardcoded identity text remains in LeftPanel footer\n - npm run typecheck passes\n- Scope:\n - src/components/shared/left-panel.tsx — update footer section\n - LeftPanel already receives issues prop — use it for task count\n - livenessMap passed from UnifiedShell (add to LeftPanelProps if not present)\n- Out of Scope:\n - TopBar identity input (beadboard-0fi.1)\n - Changing LeftPanel navigation or epic tree\n\nIMPLEMENTATION CONSTRAINTS\n- Preserve existing backend/API contracts unless explicitly stated otherwise.\n- Reuse shared components and logic; avoid one-off forks.\n- Keep changes targeted and minimal for this bead.\n\nVERIFICATION REQUIREMENTS\n- Required commands:\n - npm run typecheck\n - npm run lint\n - npm run test\n- Report any remaining risks and follow-up beads explicitly.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-x3l.4","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":2,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Replace LeftPanel footer with live workspace stats","updated_at":"2026-03-02T03:38:44Z","waiters":"","wisp_type":"","work_type":""}
|
||||
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"","closed_at":null,"closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"6cd918a6dbca1854922993c92bc5f72d714552caf1c37c060a05be31ce8f69b1","created_at":"2026-02-23T04:45:06Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-xte","is_template":0,"issue_type":"epic","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":0,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"open","target":"","timeout_ns":0,"title":"DAG Views UX Overhaul (Macro/Micro Contexts)","updated_at":"2026-02-23T04:45:06Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
{"acceptance_criteria":"","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Completed: Fixed cross-view nav with atomic buildUrlParams URL updates. Commit c246cea.","closed_at":"2026-03-02T02:26:54Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"8015948e8e8d959e6203745d7a69b65a4740667bbc3186513d301c0d628c3804","created_at":"2026-03-02T02:25:46Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"Fixed cross-view navigation between Social and Graph views. GitBranch button on social cards navigates to graph with graphTab=flow (Dependencies/DAG tab). Columns2 button on DAG nodes navigates to Social view. Fixed stale closure bug by using single buildUrlParams() -\u003e router.push() for atomic multi-param URL updates instead of sequential setState calls. Scope: social-card.tsx, smart-dag.tsx, graph-node-card.tsx, use-url-state.ts. Success Criteria: Cross-view buttons navigate correctly without race conditions.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-y8k","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":1,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":"","source_system":"","spec_id":"","status":"closed","target":"","timeout_ns":0,"title":"Fix cross-view navigation: Social \u003c-\u003e Graph with atomic URL params","updated_at":"2026-03-02T02:26:54Z","waiters":"","wisp_type":"","work_type":""}
|
||||
{"acceptance_criteria":"When working on an epic, skill reads the template:XXX label, looks up the template definition, and uses team composition to spawn appropriate agents","actor":"","agent_state":"","assignee":null,"await_id":"","await_type":"","close_reason":"Already captured in bb-buff.4 as template label integration concept","closed_at":"2026-02-28T01:45:54Z","closed_by_session":"","compacted_at":null,"compacted_at_commit":null,"compaction_level":0,"content_hash":"107d4555390dfcb6ecbc1918e2c920939802b71cf298e7c294b6a1e664ce6b51","created_at":"2026-02-28T01:44:45Z","created_by":"zenchantlive","crystallizes":0,"defer_until":null,"description":"When the skill spawns work on an epic, it should:\\n1. Check for labels starting with 'template:'\\n2. Look up the template from /api/swarm/templates\\n3. Use the team composition (archetype counts) to determine how many agents to spawn\\n4. Follow the protoFormula workflow\\n\\nThis allows the user to assign templates to epics in the UI, and the skill will automatically understand what team is needed when asked to work on that epic.","design":"","due_at":null,"ephemeral":0,"estimated_minutes":null,"event_kind":"","external_ref":null,"hook_bead":"","id":"beadboard-y95","is_template":0,"issue_type":"task","last_activity":null,"metadata":"{}","mol_type":"","notes":"","original_size":null,"owner":"jordanlive121@gmail.com","payload":"","pinned":0,"priority":2,"quality_score":null,"rig":"","role_bead":"","role_type":"","sender":"","source_repo":".","source_system":"","spec_id":null,"status":"closed","target":"","timeout_ns":0,"title":"Skill should read template labels from epics","updated_at":"2026-02-28T01:45:54Z","waiters":"","wisp_type":"","work_type":"mutex"}
|
||||
|
|
|
|||
|
|
@ -670,6 +670,8 @@
|
|||
{"issue_id":"beadboard-nq9","label":"memory"}
|
||||
{"issue_id":"beadboard-nq9","label":"memory-anchor"}
|
||||
{"issue_id":"beadboard-nq9","label":"memory-workflow"}
|
||||
{"issue_id":"beadboard-rnk","label":"gt:agent"}
|
||||
{"issue_id":"beadboard-rnk","label":"role:orchestrator"}
|
||||
{"issue_id":"beadboard-x3l","label":"template:release"}
|
||||
{"issue_id":"beadboard-yad","label":"agent:coder"}
|
||||
{"issue_id":"beadboard-yz6","label":"memory"}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue