chore: create orchestrator backlog — 4 epics, 27 beads

Epic 1: Core Reliability (P0) — beadboard-0cf
  9 children: chat projection, persistence, async subprocess, context mgmt,
  integration tests, + existing bugs (sen, 4v7, 28z, bnx)

Epic 2: Orchestrator UX (P1) — beadboard-1zb
  9 children: onboarding, plan visibility, BLOCKED notification, graph launch,
  chat expand, stop/restart, retry, settings, + silent failures (cho)

Epic 3: Agent Visibility (P1) — beadboard-7gx
  3 children: activity detail, graph presence, direct worker communication

Epic 4: Dolt History Integration (P2) — beadboard-6rp
  6 children: session replay, rollback, session history, review surface,
  audit trail, cost visibility

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
zenchantlive 2026-03-25 20:19:52 -05:00
parent 2125431ab8
commit 5d2e147ca9

View file

@ -1,3 +1,10 @@
{"id":"beadboard-d40","title":"Add stop worker and restart orchestrator buttons","description":"No way to stop a stuck worker or restart a dead orchestrator from the UI. User currently has to refresh the page. Add per-worker stop button and orchestrator restart button.","status":"open","priority":0,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T01:18:50Z","created_by":"zenchantlive","updated_at":"2026-03-26T01:18:50Z","labels":["orchestrator"],"dependencies":[{"issue_id":"beadboard-d40","depends_on_id":"beadboard-1zb","type":"relates-to","created_at":"2026-03-25T20:19:32Z","created_by":"zenchantlive","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0}
{"id":"beadboard-z9p","title":"Add BLOCKED notification that can't be missed","description":"When an agent sends a BLOCKED message, it shows up in the event stream but there's no notification. Need a visible indicator — badge, banner, or red highlight — that grabs attention even if user is on another view.","status":"open","priority":0,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T01:18:49Z","created_by":"zenchantlive","updated_at":"2026-03-26T01:18:49Z","labels":["contrib:open","orchestrator"],"dependencies":[{"issue_id":"beadboard-z9p","depends_on_id":"beadboard-1zb","type":"relates-to","created_at":"2026-03-25T20:19:30Z","created_by":"zenchantlive","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0}
{"id":"beadboard-9w2","title":"Add onboarding / suggested prompts to empty orchestrator panel","description":"New users see an empty chat with a placeholder. Add suggested prompts like 'Work on the top priority bug', 'Show me what needs doing', 'Spawn a feature-dev team for X'. Show what the orchestrator can do.","status":"open","priority":0,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T01:18:48Z","created_by":"zenchantlive","updated_at":"2026-03-26T01:18:48Z","labels":["contrib:open","orchestrator"],"dependencies":[{"issue_id":"beadboard-9w2","depends_on_id":"beadboard-1zb","type":"relates-to","created_at":"2026-03-25T20:19:30Z","created_by":"zenchantlive","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0}
{"id":"beadboard-6em","title":"Replace execFileSync with async subprocess calls","description":"bb-spawn-worker.ts, bb-bead-crud.ts, bb-worker-results.ts use execFileSync('bd', ...) which blocks the Node.js event loop. Replace with execFile (async). If bd hangs, the entire server currently freezes.","status":"open","priority":0,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T01:16:37Z","created_by":"zenchantlive","updated_at":"2026-03-26T01:16:37Z","labels":["contrib:open","orchestrator"],"dependencies":[{"issue_id":"beadboard-6em","depends_on_id":"beadboard-0cf","type":"relates-to","created_at":"2026-03-25T20:19:25Z","created_by":"zenchantlive","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0}
{"id":"beadboard-26n","title":"Replace event-based chat with real conversation turns","description":"orchestrator-chat.ts reconstructs conversation by string-matching event titles. Replace with first-class conversation turn storage. Fixes double-reply (beadboard-sen), 40-event cap, and string-matching fragility.","status":"open","priority":0,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T01:16:36Z","created_by":"zenchantlive","updated_at":"2026-03-26T01:16:36Z","labels":["contrib:open","orchestrator"],"dependencies":[{"issue_id":"beadboard-26n","depends_on_id":"beadboard-0cf","type":"relates-to","created_at":"2026-03-25T20:19:24Z","created_by":"zenchantlive","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0}
{"id":"beadboard-7da","title":"Persist orchestrator state to disk","description":"All orchestrator state (workers, events, sessions) is in-memory and dies on page refresh. Write events.jsonl + workers.jsonl to .beadboard/runtime/ on every state change. Read on startup.","status":"open","priority":0,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T01:16:36Z","created_by":"zenchantlive","updated_at":"2026-03-26T01:16:36Z","labels":["orchestrator"],"dependencies":[{"issue_id":"beadboard-7da","depends_on_id":"beadboard-0cf","type":"relates-to","created_at":"2026-03-25T20:19:25Z","created_by":"zenchantlive","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0}
{"id":"beadboard-0cf","title":"Epic: Orchestrator Core Reliability","status":"open","priority":0,"issue_type":"epic","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T00:49:05Z","created_by":"zenchantlive","updated_at":"2026-03-26T00:49:05Z","labels":["epic","orchestrator"],"dependencies":[{"issue_id":"beadboard-0cf","depends_on_id":"beadboard-26n","type":"relates-to","created_at":"2026-03-25T20:19:24Z","created_by":"zenchantlive","metadata":"{}"},{"issue_id":"beadboard-0cf","depends_on_id":"beadboard-28z","type":"relates-to","created_at":"2026-03-25T20:19:27Z","created_by":"zenchantlive","metadata":"{}"},{"issue_id":"beadboard-0cf","depends_on_id":"beadboard-4v7","type":"relates-to","created_at":"2026-03-25T20:19:27Z","created_by":"zenchantlive","metadata":"{}"},{"issue_id":"beadboard-0cf","depends_on_id":"beadboard-5tz","type":"relates-to","created_at":"2026-03-25T20:19:25Z","created_by":"zenchantlive","metadata":"{}"},{"issue_id":"beadboard-0cf","depends_on_id":"beadboard-6em","type":"relates-to","created_at":"2026-03-25T20:19:25Z","created_by":"zenchantlive","metadata":"{}"},{"issue_id":"beadboard-0cf","depends_on_id":"beadboard-7da","type":"relates-to","created_at":"2026-03-25T20:19:25Z","created_by":"zenchantlive","metadata":"{}"},{"issue_id":"beadboard-0cf","depends_on_id":"beadboard-bnx","type":"relates-to","created_at":"2026-03-25T20:19:28Z","created_by":"zenchantlive","metadata":"{}"},{"issue_id":"beadboard-0cf","depends_on_id":"beadboard-sen","type":"relates-to","created_at":"2026-03-25T20:19:26Z","created_by":"zenchantlive","metadata":"{}"},{"issue_id":"beadboard-0cf","depends_on_id":"beadboard-zbz","type":"relates-to","created_at":"2026-03-25T20:19:26Z","created_by":"zenchantlive","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0}
{"id":"bb-ui2.29","title":"bb-ui2.29: Activity View - ActivityPanel with agent roster + timeline","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","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.","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.","status":"closed","priority":0,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-02-16T17:54:58Z","created_by":"zenchantlive","updated_at":"2026-02-17T20:49:42Z","closed_at":"2026-02-17T20:47:43Z","dependencies":[{"issue_id":"bb-ui2.29","depends_on_id":"bb-ui2","type":"parent-child","created_at":"2026-02-16T17:54:58Z","created_by":"zenchantlive","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0}
{"id":"bb-atf","title":"Agent: swarm-view-integrator","status":"open","priority":0,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-02-16T07:28:33Z","created_by":"zenchantlive","updated_at":"2026-02-16T07:28:46Z","labels":["gt:agent","role:ui"],"agent_state":"working","last_activity":"2026-02-16T07:28:46Z","dependency_count":0,"dependent_count":0,"comment_count":0}
{"id":"bb-z6s","title":"Agent: social-view-integrator","status":"open","priority":0,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-02-16T07:28:32Z","created_by":"zenchantlive","updated_at":"2026-02-16T07:28:46Z","labels":["gt:agent","role:ui"],"agent_state":"working","last_activity":"2026-02-16T07:28:46Z","dependency_count":0,"dependent_count":0,"comment_count":0}
@ -93,6 +100,19 @@
{"id":"bb-92d.4","title":"Implement JSONL parser with defaults and malformed-line tolerance","description":"Parse one JSON object per line, skip blank/malformed lines, apply default status/type/priority, preserve priority=0, and filter tombstones by default.","acceptance_criteria":"Parser tests cover malformed lines, defaults, and tombstone behavior.","status":"closed","priority":0,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-02-12T01:11:44Z","created_by":"zenchantlive","updated_at":"2026-02-12T01:26:37Z","closed_at":"2026-02-12T01:26:37Z","close_reason":"Implemented JSONL parser with schema defaults, malformed-line tolerance, and tombstone filtering options.","labels":["jsonl","parser"],"dependencies":[{"issue_id":"bb-92d.4","depends_on_id":"bb-92d","type":"parent-child","created_at":"2026-02-12T01:11:44Z","created_by":"zenchantlive","metadata":"{}"},{"issue_id":"bb-92d.4","depends_on_id":"bb-92d.3","type":"blocks","created_at":"2026-02-12T01:12:26Z","created_by":"zenchantlive","metadata":"{}"}],"dependency_count":1,"dependent_count":1,"comment_count":0}
{"id":"bb-92d.1","title":"Bootstrap Next.js 15 + React 19 + TypeScript strict","description":"Initialize project scaffold with strict TypeScript, App Router baseline, and repeatable scripts for lint/typecheck/test in PowerShell.","acceptance_criteria":"npm install and dev startup work on Windows; strict type checking enabled.","status":"closed","priority":0,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-02-12T01:11:42Z","created_by":"zenchantlive","updated_at":"2026-02-12T01:23:14Z","closed_at":"2026-02-12T01:23:14Z","close_reason":"Bootstrapped Next.js 15 + React 19 + strict TypeScript; install/typecheck/dev startup verified on Windows.","labels":["foundation","nextjs"],"dependencies":[{"issue_id":"bb-92d.1","depends_on_id":"bb-92d","type":"parent-child","created_at":"2026-02-12T01:11:42Z","created_by":"zenchantlive","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0}
{"id":"bb-92d","title":"Foundation and Read/Write Boundary","description":"Establish the Windows-native Next.js foundation, canonical Beads schema handling, and strict data boundaries: read from JSONL, write only via bd.exe. This epic defines the non-negotiable invariants that all later work must preserve.","acceptance_criteria":"App boots on Windows, schema/parser contracts exist, and no direct issues.jsonl write path exists in code.","status":"closed","priority":0,"issue_type":"epic","owner":"jordanlive121@gmail.com","created_at":"2026-02-12T01:11:41Z","created_by":"zenchantlive","updated_at":"2026-02-12T01:28:28Z","closed_at":"2026-02-12T01:28:28Z","close_reason":"Completed foundation milestone: bootstrap, licensing/docs, schema contracts, parser, windows path normalization, and write-boundary guardrails.","labels":["beadboard","foundation","windows"],"dependency_count":0,"dependent_count":3,"comment_count":0}
{"id":"beadboard-a7y","title":"Add cost / token visibility per session","description":"Each worker burns API credits with no visibility. Add a token/cost counter per orchestrator session so users know what they're spending.","status":"open","priority":1,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T01:19:02Z","created_by":"zenchantlive","updated_at":"2026-03-26T01:19:02Z","labels":["orchestrator"],"dependencies":[{"issue_id":"beadboard-a7y","depends_on_id":"beadboard-6rp","type":"relates-to","created_at":"2026-03-25T20:19:39Z","created_by":"zenchantlive","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0}
{"id":"beadboard-86s","title":"Add output review surface — see what changed","description":"When an agent finishes, show what actually changed: Dolt diff of bead state, files modified, evidence provided. A review surface before you trust the output.","status":"open","priority":1,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T01:19:01Z","created_by":"zenchantlive","updated_at":"2026-03-26T01:19:01Z","labels":["contrib:open","dolt","orchestrator"],"dependencies":[{"issue_id":"beadboard-86s","depends_on_id":"beadboard-6rp","type":"relates-to","created_at":"2026-03-25T20:19:38Z","created_by":"zenchantlive","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0}
{"id":"beadboard-0n9","title":"Add rollback of agent work via Dolt","description":"Agent screwed up? Roll back to the Dolt commit before the session started. Undo everything it did to the bead state in one action.","status":"open","priority":1,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T01:19:00Z","created_by":"zenchantlive","updated_at":"2026-03-26T01:19:00Z","labels":["dolt","orchestrator"],"dependencies":[{"issue_id":"beadboard-0n9","depends_on_id":"beadboard-6rp","type":"relates-to","created_at":"2026-03-25T20:19:37Z","created_by":"zenchantlive","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0}
{"id":"beadboard-pkn","title":"Surface session history from Dolt log","description":"Dolt commits ARE the session log. Surface 'yesterday at 3pm, Engineer 01 closed beadboard-sen, updated 3 beads' from bd dolt log. Gives session history for free.","status":"open","priority":1,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T01:19:00Z","created_by":"zenchantlive","updated_at":"2026-03-26T01:19:00Z","labels":["dolt","orchestrator"],"dependencies":[{"issue_id":"beadboard-pkn","depends_on_id":"beadboard-6rp","type":"relates-to","created_at":"2026-03-25T20:19:38Z","created_by":"zenchantlive","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0}
{"id":"beadboard-1lv","title":"Add session replay via Dolt diffs","description":"Every agent action is a Dolt mutation. Diff the state before and after an agent session to see exactly what it did to the beads database. Surface this as a 'session diff' view.","status":"open","priority":1,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T01:18:59Z","created_by":"zenchantlive","updated_at":"2026-03-26T01:18:59Z","labels":["dolt","orchestrator"],"dependencies":[{"issue_id":"beadboard-1lv","depends_on_id":"beadboard-6rp","type":"relates-to","created_at":"2026-03-25T20:19:37Z","created_by":"zenchantlive","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0}
{"id":"beadboard-zor","title":"Show real agent activity detail — files, commands, progress","description":"Currently shows 'Engineer 01 working' with no detail. Surface what the agent is actually doing: which file they're editing, what command they ran, meaningful progress updates instead of a black box.","status":"open","priority":1,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T01:18:55Z","created_by":"zenchantlive","updated_at":"2026-03-26T01:18:55Z","labels":["orchestrator"],"dependencies":[{"issue_id":"beadboard-zor","depends_on_id":"beadboard-7gx","type":"relates-to","created_at":"2026-03-25T20:19:36Z","created_by":"zenchantlive","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0}
{"id":"beadboard-3ee","title":"Add retry failed workers","description":"When a worker fails, the bead is still open but there's no way to retry. Add retry button or command that spawns a fresh worker on the same bead.","status":"open","priority":1,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T01:18:51Z","created_by":"zenchantlive","updated_at":"2026-03-26T01:18:51Z","labels":["contrib:open","orchestrator"],"dependencies":[{"issue_id":"beadboard-3ee","depends_on_id":"beadboard-1zb","type":"relates-to","created_at":"2026-03-25T20:19:32Z","created_by":"zenchantlive","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0}
{"id":"beadboard-zs7","title":"Add launch-from-graph entry point","description":"Rocket button only exists on social cards. The graph view shows dependency structure — that's where you'd naturally want to say 'work on this subtree' or 'unblock this chain'. Add orchestrator launch from graph nodes.","status":"open","priority":1,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T01:18:49Z","created_by":"zenchantlive","updated_at":"2026-03-26T01:18:49Z","labels":["orchestrator"],"dependencies":[{"issue_id":"beadboard-zs7","depends_on_id":"beadboard-1zb","type":"relates-to","created_at":"2026-03-25T20:19:31Z","created_by":"zenchantlive","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0}
{"id":"beadboard-apo","title":"Add plan visibility — show template pipeline and what's next","description":"When orchestrator uses a template, show the pipeline: architect first, then engineers, then reviewer, then tester. Show which step is active, what's coming next, what's done.","status":"open","priority":1,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T01:18:48Z","created_by":"zenchantlive","updated_at":"2026-03-26T01:18:48Z","labels":["orchestrator"],"dependencies":[{"issue_id":"beadboard-apo","depends_on_id":"beadboard-1zb","type":"relates-to","created_at":"2026-03-25T20:19:30Z","created_by":"zenchantlive","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0}
{"id":"beadboard-zbz","title":"Add orchestrator integration tests","description":"Zero tests exist for any orchestrator code. Write 5-10 integration tests covering: session creation, prompt flow, worker spawn, worker completion, worker failure.","status":"open","priority":1,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T01:16:38Z","created_by":"zenchantlive","updated_at":"2026-03-26T01:16:38Z","labels":["contrib:open","orchestrator"],"dependencies":[{"issue_id":"beadboard-zbz","depends_on_id":"beadboard-0cf","type":"relates-to","created_at":"2026-03-25T20:19:26Z","created_by":"zenchantlive","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0}
{"id":"beadboard-5tz","title":"Add context window management for orchestrator","description":"System prompt includes ALL active tasks as JSON. On a project with 50+ beads this eats the context window. Need truncation strategy, relevance filtering, or summarization.","status":"open","priority":1,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T01:16:37Z","created_by":"zenchantlive","updated_at":"2026-03-26T01:16:37Z","labels":["orchestrator"],"dependencies":[{"issue_id":"beadboard-5tz","depends_on_id":"beadboard-0cf","type":"relates-to","created_at":"2026-03-25T20:19:25Z","created_by":"zenchantlive","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0}
{"id":"beadboard-1zb","title":"Epic: Orchestrator UX","status":"open","priority":1,"issue_type":"epic","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T00:49:06Z","created_by":"zenchantlive","updated_at":"2026-03-26T00:49:06Z","labels":["epic","orchestrator"],"dependencies":[{"issue_id":"beadboard-1zb","depends_on_id":"beadboard-3ee","type":"relates-to","created_at":"2026-03-25T20:19:32Z","created_by":"zenchantlive","metadata":"{}"},{"issue_id":"beadboard-1zb","depends_on_id":"beadboard-9w2","type":"relates-to","created_at":"2026-03-25T20:19:30Z","created_by":"zenchantlive","metadata":"{}"},{"issue_id":"beadboard-1zb","depends_on_id":"beadboard-apo","type":"relates-to","created_at":"2026-03-25T20:19:30Z","created_by":"zenchantlive","metadata":"{}"},{"issue_id":"beadboard-1zb","depends_on_id":"beadboard-cho","type":"relates-to","created_at":"2026-03-25T20:19:33Z","created_by":"zenchantlive","metadata":"{}"},{"issue_id":"beadboard-1zb","depends_on_id":"beadboard-d40","type":"relates-to","created_at":"2026-03-25T20:19:32Z","created_by":"zenchantlive","metadata":"{}"},{"issue_id":"beadboard-1zb","depends_on_id":"beadboard-jwf","type":"relates-to","created_at":"2026-03-25T20:19:33Z","created_by":"zenchantlive","metadata":"{}"},{"issue_id":"beadboard-1zb","depends_on_id":"beadboard-wp2","type":"relates-to","created_at":"2026-03-25T20:19:31Z","created_by":"zenchantlive","metadata":"{}"},{"issue_id":"beadboard-1zb","depends_on_id":"beadboard-z9p","type":"relates-to","created_at":"2026-03-25T20:19:30Z","created_by":"zenchantlive","metadata":"{}"},{"issue_id":"beadboard-1zb","depends_on_id":"beadboard-zs7","type":"relates-to","created_at":"2026-03-25T20:19:31Z","created_by":"zenchantlive","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0}
{"id":"beadboard-7gx","title":"Epic: Agent Visibility","status":"open","priority":1,"issue_type":"epic","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T00:49:06Z","created_by":"zenchantlive","updated_at":"2026-03-26T00:49:06Z","labels":["epic","orchestrator"],"dependencies":[{"issue_id":"beadboard-7gx","depends_on_id":"beadboard-j83","type":"relates-to","created_at":"2026-03-25T20:19:36Z","created_by":"zenchantlive","metadata":"{}"},{"issue_id":"beadboard-7gx","depends_on_id":"beadboard-oth","type":"relates-to","created_at":"2026-03-25T20:19:36Z","created_by":"zenchantlive","metadata":"{}"},{"issue_id":"beadboard-7gx","depends_on_id":"beadboard-zor","type":"relates-to","created_at":"2026-03-25T20:19:36Z","created_by":"zenchantlive","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0}
{"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","dependencies":[{"issue_id":"bb-ui2.36","depends_on_id":"bb-ui2","type":"parent-child","created_at":"2026-02-16T23:33:15Z","created_by":"zenchantlive","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0}
{"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","dependencies":[{"issue_id":"bb-ui2.35","depends_on_id":"bb-ui2","type":"parent-child","created_at":"2026-02-16T23:02:29Z","created_by":"zenchantlive","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0}
{"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","dependencies":[{"issue_id":"bb-ui2.34","depends_on_id":"bb-ui2","type":"parent-child","created_at":"2026-02-16T23:02:25Z","created_by":"zenchantlive","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0}
@ -262,11 +282,17 @@
{"id":"bb-6aj.4","title":"Implement aggregate project issue context model","description":"Define normalized project identity payload attached to every issue for cross-project Kanban, timeline, and session views.","acceptance_criteria":"Aggregated read output always includes stable project metadata.","status":"closed","priority":1,"issue_type":"task","assignee":"zenchantlive","owner":"jordanlive121@gmail.com","created_at":"2026-02-12T01:11:52Z","created_by":"zenchantlive","updated_at":"2026-02-12T03:45:22Z","closed_at":"2026-02-12T03:45:22Z","close_reason":"Added project context model and attached to read issues.","labels":["aggregation","data-model"],"dependencies":[{"issue_id":"bb-6aj.4","depends_on_id":"bb-6aj","type":"parent-child","created_at":"2026-02-12T01:11:52Z","created_by":"zenchantlive","metadata":"{}"},{"issue_id":"bb-6aj.4","depends_on_id":"bb-6aj.2","type":"blocks","created_at":"2026-02-12T01:12:28Z","created_by":"zenchantlive","metadata":"{}"}],"dependency_count":1,"dependent_count":0,"comment_count":0}
{"id":"bb-92d.4.1","title":"Add parser tests for priority=0, tombstone filtering, and dependency parsing","description":"Create focused tests that protect parser behavior for critical edge cases and dependency structures used by graph/timeline views.","acceptance_criteria":"Tests fail before implementation and pass after parser is complete.","status":"closed","priority":1,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-02-12T01:11:45Z","created_by":"zenchantlive","updated_at":"2026-02-12T01:26:37Z","closed_at":"2026-02-12T01:26:37Z","close_reason":"Added parser behavior tests for defaults, malformed lines, tombstones, and priority=0.","labels":["parser","tests"],"dependencies":[{"issue_id":"bb-92d.4.1","depends_on_id":"bb-92d.4","type":"parent-child","created_at":"2026-02-12T01:11:45Z","created_by":"zenchantlive","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0}
{"id":"bb-92d.2","title":"Add MIT license and baseline repository docs","description":"Add LICENSE and baseline docs that state Windows-native support, read/write boundaries, and required runtime dependencies.","acceptance_criteria":"MIT license present and docs describe core architecture constraints.","status":"closed","priority":1,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-02-12T01:11:43Z","created_by":"zenchantlive","updated_at":"2026-02-12T01:23:51Z","closed_at":"2026-02-12T01:23:51Z","close_reason":"Added MIT license and baseline repository documentation with architecture boundary rules.","labels":["docs","license"],"dependencies":[{"issue_id":"bb-92d.2","depends_on_id":"bb-92d","type":"parent-child","created_at":"2026-02-12T01:11:43Z","created_by":"zenchantlive","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0}
{"id":"beadboard-28z","title":"Bug: unbounded event array in embedded-daemon","description":"EmbeddedPiDaemon stores RuntimeConsoleEvents in an array per project with no eviction policy. A long-running server accumulates events without bound, leading to memory growth. Add a cap (e.g. 1000 events) with oldest-first eviction.","status":"open","priority":2,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-25T00:03:11Z","created_by":"zenchantlive","updated_at":"2026-03-25T00:03:11Z","labels":["bug","contrib:open","orchestrator"],"dependency_count":0,"dependent_count":0,"comment_count":0}
{"id":"beadboard-bnx","title":"Cleanup: remove hardcoded clawdbot path from pi-runtime-detection","description":"pi-runtime-detection.ts line 50 has a hardcoded fallback path '/home/clawdbot/npm-global/lib/node_modules/@mariozechner/pi-coding-agent' — a WSL-specific remnant from dev. It's inert by default (allowLinkedPi=false) but should be removed before shipping to external users.","status":"open","priority":2,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-25T00:03:08Z","created_by":"zenchantlive","updated_at":"2026-03-25T00:03:08Z","labels":["cleanup","contrib:open","orchestrator"],"dependency_count":0,"dependent_count":0,"comment_count":0}
{"id":"beadboard-4v7","title":"Bug: session race condition in pi-daemon-adapter","description":"getOrCreateSession in pi-daemon-adapter.ts is not async-safe. If two prompts arrive before the first Pi SDK session resolves, both hit the creation branch and two sessions get created. The second overwrites the first in activeSessions map, leaking the first session. Fix: add a session creation lock/promise cache per project root.","status":"open","priority":2,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-25T00:03:04Z","created_by":"zenchantlive","updated_at":"2026-03-25T00:03:04Z","labels":["bug","orchestrator"],"dependency_count":0,"dependent_count":0,"comment_count":0}
{"id":"beadboard-cho","title":"Bug: silent failures in orchestrator UX","description":"Launch failure, bootstrap failure on mount, and prompt fetch failures are all silently caught with empty catch blocks. User sees nothing happen when things fail. Surface errors via runtime console events or error state in the UI. Key locations: unified-shell.tsx bootstrapRuntime catch, handleAskOrchestrator catch, orchestrator-panel.tsx submit catch.","status":"open","priority":2,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-25T00:03:01Z","created_by":"zenchantlive","updated_at":"2026-03-25T00:03:01Z","labels":["bug","contrib:open","orchestrator"],"dependency_count":0,"dependent_count":0,"comment_count":0}
{"id":"beadboard-sen","title":"Bug: orchestrator double-reply rendering","description":"pi-daemon-adapter.ts emits both text_delta and text_done as 'Orchestrator Reply' events, causing every assistant message to appear twice in the chat UI. The text_done handler re-emits the full concatenated text that was already streamed via deltas. Fix: suppress the duplicate text_done emission or deduplicate by content hash.","status":"open","priority":2,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-25T00:02:58Z","created_by":"zenchantlive","updated_at":"2026-03-25T00:02:58Z","labels":["bug","contrib:open","orchestrator"],"dependency_count":0,"dependent_count":0,"comment_count":0}
{"id":"beadboard-eno","title":"Add Dolt audit trail to activity view","description":"Surface Dolt version history in the activity view. Who changed what bead, when, with what mutation. Full audit trail from data that already exists.","status":"open","priority":2,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T01:19:01Z","created_by":"zenchantlive","updated_at":"2026-03-26T01:19:01Z","labels":["dolt","orchestrator"],"dependencies":[{"issue_id":"beadboard-eno","depends_on_id":"beadboard-6rp","type":"relates-to","created_at":"2026-03-25T20:19:39Z","created_by":"zenchantlive","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0}
{"id":"beadboard-j83","title":"Add agent presence on graph nodes","description":"The DAG graph shows task dependencies but not which agents are working on which nodes. Add agent avatars/indicators on graph nodes so you can SEE work flowing through the dependency graph.","status":"open","priority":2,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T01:18:56Z","created_by":"zenchantlive","updated_at":"2026-03-26T01:18:56Z","labels":["orchestrator"],"dependencies":[{"issue_id":"beadboard-j83","depends_on_id":"beadboard-7gx","type":"relates-to","created_at":"2026-03-25T20:19:36Z","created_by":"zenchantlive","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0}
{"id":"beadboard-oth","title":"Add direct communication with specific workers","description":"Can only talk to the orchestrator. Sometimes you want to give instructions directly to Engineer 01. Add ability to address specific workers or open a direct channel.","status":"open","priority":2,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T01:18:56Z","created_by":"zenchantlive","updated_at":"2026-03-26T01:18:56Z","labels":["orchestrator"],"dependencies":[{"issue_id":"beadboard-oth","depends_on_id":"beadboard-7gx","type":"relates-to","created_at":"2026-03-25T20:19:36Z","created_by":"zenchantlive","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0}
{"id":"beadboard-jwf","title":"Add orchestrator settings surface","description":"No configuration surface at all. Need: model selection, API key management, max concurrent workers, template preferences. Could be a settings panel or orchestrator commands.","status":"open","priority":2,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T01:18:51Z","created_by":"zenchantlive","updated_at":"2026-03-26T01:18:51Z","labels":["orchestrator"],"dependencies":[{"issue_id":"beadboard-jwf","depends_on_id":"beadboard-1zb","type":"relates-to","created_at":"2026-03-25T20:19:33Z","created_by":"zenchantlive","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0}
{"id":"beadboard-wp2","title":"Add chat panel expand / fullscreen mode","description":"The orchestrator chat is a left sidebar — too cramped for the primary interface. Add ability to expand to wider panel or fullscreen mode for complex conversations.","status":"open","priority":2,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T01:18:50Z","created_by":"zenchantlive","updated_at":"2026-03-26T01:18:50Z","labels":["contrib:open","orchestrator"],"dependencies":[{"issue_id":"beadboard-wp2","depends_on_id":"beadboard-1zb","type":"relates-to","created_at":"2026-03-25T20:19:31Z","created_by":"zenchantlive","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0}
{"id":"beadboard-6rp","title":"Epic: Dolt History Integration","status":"open","priority":2,"issue_type":"epic","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T00:49:07Z","created_by":"zenchantlive","updated_at":"2026-03-26T00:49:07Z","labels":["epic","orchestrator"],"dependencies":[{"issue_id":"beadboard-6rp","depends_on_id":"beadboard-0n9","type":"relates-to","created_at":"2026-03-25T20:19:37Z","created_by":"zenchantlive","metadata":"{}"},{"issue_id":"beadboard-6rp","depends_on_id":"beadboard-1lv","type":"relates-to","created_at":"2026-03-25T20:19:37Z","created_by":"zenchantlive","metadata":"{}"},{"issue_id":"beadboard-6rp","depends_on_id":"beadboard-86s","type":"relates-to","created_at":"2026-03-25T20:19:38Z","created_by":"zenchantlive","metadata":"{}"},{"issue_id":"beadboard-6rp","depends_on_id":"beadboard-a7y","type":"relates-to","created_at":"2026-03-25T20:19:39Z","created_by":"zenchantlive","metadata":"{}"},{"issue_id":"beadboard-6rp","depends_on_id":"beadboard-eno","type":"relates-to","created_at":"2026-03-25T20:19:39Z","created_by":"zenchantlive","metadata":"{}"},{"issue_id":"beadboard-6rp","depends_on_id":"beadboard-pkn","type":"relates-to","created_at":"2026-03-25T20:19:38Z","created_by":"zenchantlive","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0}
{"id":"beadboard-28z","title":"Bug: unbounded event array in embedded-daemon","description":"EmbeddedPiDaemon stores RuntimeConsoleEvents in an array per project with no eviction policy. A long-running server accumulates events without bound, leading to memory growth. Add a cap (e.g. 1000 events) with oldest-first eviction.","status":"open","priority":2,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-25T00:03:11Z","created_by":"zenchantlive","updated_at":"2026-03-25T00:03:11Z","labels":["bug","contrib:open","orchestrator"],"dependencies":[{"issue_id":"beadboard-28z","depends_on_id":"beadboard-0cf","type":"relates-to","created_at":"2026-03-25T20:19:27Z","created_by":"zenchantlive","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0}
{"id":"beadboard-bnx","title":"Cleanup: remove hardcoded clawdbot path from pi-runtime-detection","description":"pi-runtime-detection.ts line 50 has a hardcoded fallback path '/home/clawdbot/npm-global/lib/node_modules/@mariozechner/pi-coding-agent' — a WSL-specific remnant from dev. It's inert by default (allowLinkedPi=false) but should be removed before shipping to external users.","status":"open","priority":2,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-25T00:03:08Z","created_by":"zenchantlive","updated_at":"2026-03-25T00:03:08Z","labels":["cleanup","contrib:open","orchestrator"],"dependencies":[{"issue_id":"beadboard-bnx","depends_on_id":"beadboard-0cf","type":"relates-to","created_at":"2026-03-25T20:19:28Z","created_by":"zenchantlive","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0}
{"id":"beadboard-4v7","title":"Bug: session race condition in pi-daemon-adapter","description":"getOrCreateSession in pi-daemon-adapter.ts is not async-safe. If two prompts arrive before the first Pi SDK session resolves, both hit the creation branch and two sessions get created. The second overwrites the first in activeSessions map, leaking the first session. Fix: add a session creation lock/promise cache per project root.","status":"open","priority":2,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-25T00:03:04Z","created_by":"zenchantlive","updated_at":"2026-03-25T00:03:04Z","labels":["bug","orchestrator"],"dependencies":[{"issue_id":"beadboard-4v7","depends_on_id":"beadboard-0cf","type":"relates-to","created_at":"2026-03-25T20:19:27Z","created_by":"zenchantlive","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0}
{"id":"beadboard-cho","title":"Bug: silent failures in orchestrator UX","description":"Launch failure, bootstrap failure on mount, and prompt fetch failures are all silently caught with empty catch blocks. User sees nothing happen when things fail. Surface errors via runtime console events or error state in the UI. Key locations: unified-shell.tsx bootstrapRuntime catch, handleAskOrchestrator catch, orchestrator-panel.tsx submit catch.","status":"open","priority":2,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-25T00:03:01Z","created_by":"zenchantlive","updated_at":"2026-03-25T00:03:01Z","labels":["bug","contrib:open","orchestrator"],"dependencies":[{"issue_id":"beadboard-cho","depends_on_id":"beadboard-1zb","type":"relates-to","created_at":"2026-03-25T20:19:33Z","created_by":"zenchantlive","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0}
{"id":"beadboard-sen","title":"Bug: orchestrator double-reply rendering","description":"pi-daemon-adapter.ts emits both text_delta and text_done as 'Orchestrator Reply' events, causing every assistant message to appear twice in the chat UI. The text_done handler re-emits the full concatenated text that was already streamed via deltas. Fix: suppress the duplicate text_done emission or deduplicate by content hash.","status":"open","priority":2,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-25T00:02:58Z","created_by":"zenchantlive","updated_at":"2026-03-25T00:02:58Z","labels":["bug","contrib:open","orchestrator"],"dependencies":[{"issue_id":"beadboard-sen","depends_on_id":"beadboard-0cf","type":"relates-to","created_at":"2026-03-25T20:19:26Z","created_by":"zenchantlive","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0}
{"id":"bb-1d1","title":"test-swarm-2","status":"open","priority":2,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-02-16T07:56:22Z","created_by":"zenchantlive","updated_at":"2026-02-16T07:56:22Z","labels":["gt:agent","swarm:test-swarm-1"],"dependency_count":0,"dependent_count":0,"comment_count":0}
{"id":"bb-zzr","title":"test-swarm-3","status":"open","priority":2,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-02-16T07:56:22Z","created_by":"zenchantlive","updated_at":"2026-02-16T07:56:22Z","labels":["gt:agent","swarm:test-swarm-1"],"dependency_count":0,"dependent_count":0,"comment_count":0}
{"id":"bb-5pw","title":"test-swarm-1","status":"open","priority":2,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-02-16T07:56:16Z","created_by":"zenchantlive","updated_at":"2026-02-16T07:56:16Z","labels":["gt:agent","swarm:test-swarm-1"],"dependency_count":0,"dependent_count":0,"comment_count":0}