From 5d2e147ca957f7724db5e4bc4fcc4e46a79e15bb Mon Sep 17 00:00:00 2001 From: zenchantlive Date: Wed, 25 Mar 2026 20:19:52 -0500 Subject: [PATCH 1/2] =?UTF-8?q?chore:=20create=20orchestrator=20backlog=20?= =?UTF-8?q?=E2=80=94=204=20epics,=2027=20beads?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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) --- .beads/issues.jsonl | 36 +++++++++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 5 deletions(-) diff --git a/.beads/issues.jsonl b/.beads/issues.jsonl index d51d0bd..8fd1e0e 100644 --- a/.beads/issues.jsonl +++ b/.beads/issues.jsonl @@ -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} From f0b4875c47d4fa7a4fe4d10b868a81b657bc9efe Mon Sep 17 00:00:00 2001 From: zenchantlive Date: Wed, 25 Mar 2026 23:15:36 -0500 Subject: [PATCH 2/2] chore: recreate orchestrator backlog with proper bead naming and descriptions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Deleted auto-named beads and recreated with beadboard-.x convention per AGENTS.md. Each task has a full description following the bead prompting guide: Goal, Success Criteria, Scope, Out of Scope, Verification Requirements. Epic 1 — Core Reliability (beadboard-0cf): 0cf.1: Replace event-based chat with conversation turns (P0) 0cf.2: Persist orchestrator state to disk (P0) 0cf.3: Replace execFileSync with async (P0) 0cf.4: Context window management (P1) 0cf.5: Integration tests (P1, depends on 0cf.1 + 0cf.2) Epic 2 — Orchestrator UX (beadboard-1zb): 1zb.1: Onboarding / suggested prompts (P0) 1zb.2: BLOCKED notification (P0) 1zb.3: Stop worker / restart orchestrator (P0) 1zb.4: Plan visibility / template pipeline (P1) 1zb.5: Launch from graph view (P1) 1zb.6: Retry failed workers (P1) 1zb.7: Chat panel expand / fullscreen (P2) 1zb.8: Settings surface (P2) Epic 3 — Agent Visibility (beadboard-7gx): 7gx.1: Real agent activity detail (P1) 7gx.2: Agent presence on graph nodes (P2) 7gx.3: Direct worker communication (P2) Epic 4 — Dolt History (beadboard-6rp): 6rp.1: Session replay via Dolt diffs (P1) 6rp.2: Rollback agent work (P1, depends on 6rp.1) 6rp.3: Session history from Dolt log (P1) 6rp.4: Output review surface (P1, depends on 6rp.1) 6rp.5: Dolt audit trail in activity view (P2) 6rp.6: Cost / token visibility (P1) Co-Authored-By: Claude Opus 4.6 (1M context) --- .beads/issues.jsonl | 68 ++++++++++++++++++++++++++++++--------------- 1 file changed, 45 insertions(+), 23 deletions(-) diff --git a/.beads/issues.jsonl b/.beads/issues.jsonl index 8fd1e0e..3eba109 100644 --- a/.beads/issues.jsonl +++ b/.beads/issues.jsonl @@ -1,9 +1,15 @@ -{"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-1zb.3","title":"Add stop worker and restart orchestrator buttons","description":"TASK CONTEXT\n- Bead ID: beadboard-1zb.3\n- Parent/Epic: beadboard-1zb\n- Dependencies: none\n\nTASK CONTRACT\n- Goal: Add stop worker and restart orchestrator controls to the UI.\n- Success Criteria:\n - Each active worker has a \"Stop\" button in the runtime console or agent status panel\n - Clicking stop calls workerSessionManager.terminateWorker() and updates UI\n - Orchestrator has a \"Restart\" button that kills the session and creates a fresh one\n - Stopped workers update their bead status appropriately\n- Scope:\n - runtime-console.tsx or agent-status-panel.tsx — stop buttons\n - orchestrator-panel.tsx — restart button\n - Worker session termination API\n- Out of Scope:\n - Graceful shutdown negotiation with workers\n - Auto-restart on failure\n\nVERIFICATION REQUIREMENTS\n- npm run typecheck \u0026\u0026 npm run lint \u0026\u0026 npm run test\n- Manual test: spawn worker, click stop, verify it terminates and bead updates\n","status":"open","priority":0,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T04:14:59Z","created_by":"zenchantlive","updated_at":"2026-03-26T04:14:59Z","labels":["orchestrator"],"dependency_count":0,"dependent_count":0,"comment_count":0} +{"id":"beadboard-1zb.1","title":"Add onboarding / suggested prompts to orchestrator panel","description":"TASK CONTEXT\n- Bead ID: beadboard-1zb.1\n- Parent/Epic: beadboard-1zb\n- Dependencies: none\n\nTASK CONTRACT\n- Goal: Add onboarding experience to empty orchestrator panel — suggested prompts, capability summary.\n- Success Criteria:\n - Empty orchestrator panel shows 3-5 clickable suggested prompts\n - Prompts reflect real capabilities: \"Work on the top priority bug\", \"Show me what needs doing\", \"Spawn a feature-dev team\"\n - Clicking a prompt sends it as a message\n - Prompts disappear after first message sent\n- Scope:\n - orchestrator-panel.tsx — empty state UI\n- Out of Scope:\n - Changing orchestrator behavior or system prompt\n - Tutorial or walkthrough flows\n\nVERIFICATION REQUIREMENTS\n- npm run typecheck \u0026\u0026 npm run lint \u0026\u0026 npm run test\n","status":"open","priority":0,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T04:14:58Z","created_by":"zenchantlive","updated_at":"2026-03-26T04:14:58Z","labels":["contrib:open","orchestrator"],"dependency_count":0,"dependent_count":0,"comment_count":0} +{"id":"beadboard-1zb.2","title":"Add BLOCKED notification visible across all views","description":"TASK CONTEXT\n- Bead ID: beadboard-1zb.2\n- Parent/Epic: beadboard-1zb\n- Dependencies: none\n\nTASK CONTRACT\n- Goal: Surface BLOCKED agent messages as a visible notification the user can't miss, even when on another view.\n- Success Criteria:\n - BLOCKED messages from agents trigger a visible indicator in the top bar or orchestrator tab\n - Indicator persists until the user opens the orchestrator and sees the message\n - Works across all views (social, graph, activity)\n - Clicking the indicator navigates to the orchestrator chat\n- Scope:\n - top-bar.tsx or unified-shell.tsx — notification indicator\n - embedded-daemon.ts or realtime.ts — detect BLOCKED events\n- Out of Scope:\n - Browser push notifications\n - Sound alerts\n - Email/Slack notifications\n\nVERIFICATION REQUIREMENTS\n- npm run typecheck \u0026\u0026 npm run lint \u0026\u0026 npm run test\n","status":"open","priority":0,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T04:14:58Z","created_by":"zenchantlive","updated_at":"2026-03-26T04:14:58Z","labels":["contrib:open","orchestrator"],"dependency_count":0,"dependent_count":0,"comment_count":0} +{"id":"beadboard-0cf.3","title":"Replace execFileSync with async in tool handlers","description":"TASK CONTEXT\n- Bead ID: beadboard-0cf.3\n- Parent/Epic: beadboard-0cf\n- Dependencies: none\n\nTASK CONTRACT\n- Goal: Replace all execFileSync('bd', ...) calls in TUI tool handlers with async execFile to prevent blocking the Node.js event loop.\n- Success Criteria:\n - bb-spawn-worker.ts uses async subprocess\n - bb-bead-crud.ts uses async subprocess\n - bb-worker-results.ts uses async subprocess\n - A hanging bd command no longer freezes the entire server\n- Scope:\n - src/tui/tools/bb-spawn-worker.ts\n - src/tui/tools/bb-bead-crud.ts\n - src/tui/tools/bb-worker-results.ts\n - Any other tool files using execFileSync\n- Out of Scope:\n - Changing tool interfaces or return types\n - Adding timeout handling (separate concern)\n\nVERIFICATION REQUIREMENTS\n- npm run typecheck \u0026\u0026 npm run lint \u0026\u0026 npm run test\n- grep -r \"execFileSync\" src/tui/ returns zero results\n","status":"open","priority":0,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T04:14:55Z","created_by":"zenchantlive","updated_at":"2026-03-26T04:14:55Z","labels":["contrib:open","orchestrator"],"dependency_count":0,"dependent_count":0,"comment_count":0} +{"id":"beadboard-0cf.2","title":"Persist orchestrator state to disk","description":"TASK CONTEXT\n- Bead ID: beadboard-0cf.2\n- Parent/Epic: beadboard-0cf\n- Dependencies: none\n\nTASK CONTRACT\n- Goal: Persist orchestrator state (events, workers, conversation turns) to disk so it survives page refresh and dev server restart.\n- Success Criteria:\n - Events written to .beadboard/runtime/events.jsonl on every state change\n - Worker state written to .beadboard/runtime/workers.jsonl on spawn/complete/fail\n - On server startup, state is restored from disk files\n - User can refresh the page and see the same orchestrator state\n- Scope:\n - embedded-daemon.ts — add write-through to disk\n - worker-session-manager.ts — persist worker state\n - API routes — read persisted state on init\n- Out of Scope:\n - Daemon architecture (separate process)\n - Cross-session context for the LLM itself\n\nVERIFICATION REQUIREMENTS\n- npm run typecheck \u0026\u0026 npm run lint \u0026\u0026 npm run test\n- Manual test: start orchestrator, spawn worker, refresh page, verify state restored\n","status":"open","priority":0,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T04:14:54Z","created_by":"zenchantlive","updated_at":"2026-03-26T04:14:54Z","labels":["orchestrator"],"dependencies":[{"issue_id":"beadboard-0cf.2","depends_on_id":"beadboard-0cf.5","type":"relates-to","created_at":"2026-03-25T23:15:20Z","created_by":"zenchantlive","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0} +{"id":"beadboard-0cf.1","title":"Replace event-based chat with real conversation turns","description":"TASK CONTEXT\n- Bead ID: beadboard-0cf.1\n- Title: Replace event-based chat with real conversation turns\n- Parent/Epic: beadboard-0cf (Orchestrator Core Reliability)\n- Dependencies: none\n\nTASK CONTRACT\n- Goal: Replace the string-matching event reconstruction in orchestrator-chat.ts with first-class conversation turn storage (user message, assistant response) so the chat transcript is reliable.\n- Success Criteria:\n - Orchestrator chat stores actual conversation turns, not reconstructed from event title matching\n - No double-reply rendering (fixes beadboard-sen)\n - No 40-event hard cap silently dropping older messages\n - No string-matching on \"Orchestrator Reply\" / \"Orchestrator Thinking\" titles\n - Existing SSE stream still works for runtime console events\n- Scope:\n - orchestrator-chat.ts — rewrite projection logic\n - pi-daemon-adapter.ts — emit conversation turns instead of/alongside events\n - orchestrator-panel.tsx — consume new turn model\n- Out of Scope:\n - Persistence to disk (separate bead beadboard-0cf.2)\n - Worker communication display\n - Runtime console changes\n\nVERIFICATION REQUIREMENTS\n- npm run typecheck \u0026\u0026 npm run lint \u0026\u0026 npm run test\n- Manual test: send 3+ prompts to orchestrator, verify no duplicate replies, verify scrollback works beyond 40 messages\n","status":"open","priority":0,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T04:10:59Z","created_by":"zenchantlive","updated_at":"2026-03-26T04:10:59Z","labels":["contrib:open","orchestrator"],"dependencies":[{"issue_id":"beadboard-0cf.1","depends_on_id":"beadboard-0cf.5","type":"relates-to","created_at":"2026-03-25T23:15:19Z","created_by":"zenchantlive","metadata":"{}"},{"issue_id":"beadboard-0cf.1","depends_on_id":"beadboard-sen","type":"relates-to","created_at":"2026-03-25T23:15:21Z","created_by":"zenchantlive","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0} +{"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":"closed","priority":0,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T01:18:50Z","created_by":"zenchantlive","updated_at":"2026-03-26T02:46:27Z","closed_at":"2026-03-26T02:46:27Z","close_reason":"Recreating with proper naming convention","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":"closed","priority":0,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T01:18:49Z","created_by":"zenchantlive","updated_at":"2026-03-26T02:46:26Z","closed_at":"2026-03-26T02:46:26Z","close_reason":"Recreating with proper naming convention","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":"closed","priority":0,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T01:18:48Z","created_by":"zenchantlive","updated_at":"2026-03-26T02:46:25Z","closed_at":"2026-03-26T02:46:25Z","close_reason":"Recreating with proper naming convention","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":"closed","priority":0,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T01:16:37Z","created_by":"zenchantlive","updated_at":"2026-03-26T02:46:24Z","closed_at":"2026-03-26T02:46:24Z","close_reason":"Recreating with proper naming convention","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":"closed","priority":0,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T01:16:36Z","created_by":"zenchantlive","updated_at":"2026-03-26T02:46:23Z","closed_at":"2026-03-26T02:46:23Z","close_reason":"Recreating with proper naming convention","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":"closed","priority":0,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T01:16:36Z","created_by":"zenchantlive","updated_at":"2026-03-26T02:46:24Z","closed_at":"2026-03-26T02:46:24Z","close_reason":"Recreating with proper naming convention","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} @@ -100,17 +106,28 @@ {"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-6rp.6","title":"Add cost / token visibility per session","description":"TASK CONTEXT\n- Bead ID: beadboard-6rp.6\n- Parent/Epic: beadboard-6rp\n- Dependencies: none\n\nTASK CONTRACT\n- Goal: Show token usage and estimated cost per orchestrator session so users know what they're spending.\n- Success Criteria:\n - Token counter visible in orchestrator panel header or runtime console\n - Shows total tokens used across orchestrator + all workers in this session\n - Estimated cost based on model pricing (configurable)\n - Updates in realtime as agents work\n- Scope:\n - Capture token usage from Pi SDK session events\n - Aggregate across orchestrator + worker sessions\n - Display component in orchestrator panel\n- Out of Scope:\n - Spending limits or budget enforcement\n - Historical cost tracking across sessions\n\nVERIFICATION REQUIREMENTS\n- npm run typecheck \u0026\u0026 npm run lint \u0026\u0026 npm run test\n","status":"open","priority":1,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T04:15:08Z","created_by":"zenchantlive","updated_at":"2026-03-26T04:15:08Z","labels":["orchestrator"],"dependency_count":0,"dependent_count":0,"comment_count":0} +{"id":"beadboard-6rp.3","title":"Surface session history from Dolt log","description":"TASK CONTEXT\n- Bead ID: beadboard-6rp.3\n- Parent/Epic: beadboard-6rp\n- Dependencies: none\n\nTASK CONTRACT\n- Goal: Surface session history from Dolt commit log in the orchestrator UI.\n- Success Criteria:\n - Orchestrator shows a history of past sessions derived from Dolt commits\n - Each entry shows: timestamp, which agent, what beads were affected, outcome\n - Clickable to expand into session detail\n- Scope:\n - Query bd dolt log for orchestrator-related commits\n - New history component or section in orchestrator panel\n- Out of Scope:\n - Full Dolt branch management UI\n - Cross-project history aggregation\n\nVERIFICATION REQUIREMENTS\n- npm run typecheck \u0026\u0026 npm run lint \u0026\u0026 npm run test\n","status":"open","priority":1,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T04:15:07Z","created_by":"zenchantlive","updated_at":"2026-03-26T04:15:07Z","labels":["dolt","orchestrator"],"dependency_count":0,"dependent_count":0,"comment_count":0} +{"id":"beadboard-6rp.4","title":"Add output review surface","description":"TASK CONTEXT\n- Bead ID: beadboard-6rp.4\n- Parent/Epic: beadboard-6rp\n- Dependencies: beadboard-6rp.1\n\nTASK CONTRACT\n- Goal: Add a review surface where users see what changed before trusting agent output.\n- Success Criteria:\n - When an agent closes a bead, a review card appears showing: Dolt diff, evidence text, files mentioned\n - User can approve (leave closed) or reopen the bead\n - Review queue accessible from the orchestrator panel\n- Scope:\n - Review component rendering Dolt diffs + agent evidence\n - Approve/reopen actions calling bd update\n- Out of Scope:\n - Code review (file-level diffs)\n - Automated approval rules\n\nVERIFICATION REQUIREMENTS\n- npm run typecheck \u0026\u0026 npm run lint \u0026\u0026 npm run test\n","status":"open","priority":1,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T04:15:07Z","created_by":"zenchantlive","updated_at":"2026-03-26T04:15:07Z","labels":["contrib:open","dolt","orchestrator"],"dependencies":[{"issue_id":"beadboard-6rp.4","depends_on_id":"beadboard-6rp.1","type":"relates-to","created_at":"2026-03-25T23:15:21Z","created_by":"zenchantlive","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0} +{"id":"beadboard-6rp.1","title":"Add session replay via Dolt diffs","description":"TASK CONTEXT\n- Bead ID: beadboard-6rp.1\n- Parent/Epic: beadboard-6rp\n- Dependencies: none\n\nTASK CONTRACT\n- Goal: Surface session diffs from Dolt — show exactly what an agent session changed in the beads database.\n- Success Criteria:\n - After a worker completes, can view a Dolt diff of bead state before/after the session\n - Diff shows: beads created, beads updated (with field-level changes), beads closed\n - Accessible from the agent status panel or orchestrator chat\n- Scope:\n - New util: dolt-diff.ts — query bd dolt diff for a commit range\n - Agent status panel or review component — render the diff\n- Out of Scope:\n - File-level diffs (code changes, not bead changes)\n - Interactive diff editing\n\nVERIFICATION REQUIREMENTS\n- npm run typecheck \u0026\u0026 npm run lint \u0026\u0026 npm run test\n","status":"open","priority":1,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T04:15:06Z","created_by":"zenchantlive","updated_at":"2026-03-26T04:15:06Z","labels":["dolt","orchestrator"],"dependencies":[{"issue_id":"beadboard-6rp.1","depends_on_id":"beadboard-6rp.2","type":"relates-to","created_at":"2026-03-25T23:15:20Z","created_by":"zenchantlive","metadata":"{}"},{"issue_id":"beadboard-6rp.1","depends_on_id":"beadboard-6rp.4","type":"relates-to","created_at":"2026-03-25T23:15:21Z","created_by":"zenchantlive","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0} +{"id":"beadboard-6rp.2","title":"Add rollback of agent work via Dolt","description":"TASK CONTEXT\n- Bead ID: beadboard-6rp.2\n- Parent/Epic: beadboard-6rp\n- Dependencies: beadboard-6rp.1\n\nTASK CONTRACT\n- Goal: Add ability to roll back agent work by reverting to the Dolt commit before the session started.\n- Success Criteria:\n - \"Rollback\" button on completed/failed worker sessions\n - Clicking rolls back to the Dolt commit hash recorded at session start\n - Beads return to pre-session state\n - Confirmation dialog before rollback\n- Scope:\n - Record Dolt commit hash at session start in worker state\n - Rollback action calls bd dolt checkout or equivalent\n - UI button on agent status panel\n- Out of Scope:\n - Partial rollback (only some beads)\n - Rollback of code changes (only bead state)\n\nVERIFICATION REQUIREMENTS\n- npm run typecheck \u0026\u0026 npm run lint \u0026\u0026 npm run test\n","status":"open","priority":1,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T04:15:06Z","created_by":"zenchantlive","updated_at":"2026-03-26T04:15:06Z","labels":["dolt","orchestrator"],"dependencies":[{"issue_id":"beadboard-6rp.2","depends_on_id":"beadboard-6rp.1","type":"relates-to","created_at":"2026-03-25T23:15:20Z","created_by":"zenchantlive","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0} +{"id":"beadboard-7gx.1","title":"Show real agent activity detail","description":"TASK CONTEXT\n- Bead ID: beadboard-7gx.1\n- Parent/Epic: beadboard-7gx\n- Dependencies: none\n\nTASK CONTRACT\n- Goal: Show meaningful agent activity detail — which file they're editing, what command they're running — instead of just \"working.\"\n- Success Criteria:\n - Worker events include current action context (file path, command, tool name)\n - Runtime console shows \"Engineer 01: editing src/lib/parser.ts\" not just \"Engineer 01: working\"\n - Agent status panel shows last action for each worker\n - Updates stream via SSE in near-realtime\n- Scope:\n - worker-session-manager.ts — capture tool-use events from Pi SDK\n - embedded-daemon.ts — store action context on events\n - runtime-console.tsx — render action detail\n - agent-status-panel.tsx — show last action\n- Out of Scope:\n - Full tool execution log (too verbose)\n - File diff preview while working\n\nVERIFICATION REQUIREMENTS\n- npm run typecheck \u0026\u0026 npm run lint \u0026\u0026 npm run test\n","status":"open","priority":1,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T04:15:02Z","created_by":"zenchantlive","updated_at":"2026-03-26T04:15:02Z","labels":["orchestrator"],"dependency_count":0,"dependent_count":0,"comment_count":0} +{"id":"beadboard-1zb.5","title":"Add launch-from-graph entry point","description":"TASK CONTEXT\n- Bead ID: beadboard-1zb.5\n- Parent/Epic: beadboard-1zb\n- Dependencies: none\n\nTASK CONTRACT\n- Goal: Add orchestrator launch entry point from graph view — click a node or select nodes to start work.\n- Success Criteria:\n - Graph nodes have a launch affordance (rocket icon or right-click context menu)\n - Clicking launches orchestrator with that bead as context (same as social card rocket)\n - Can select multiple nodes and launch \"work on these\"\n- Scope:\n - smart-dag.tsx — add launch interaction to nodes\n - unified-shell.tsx — wire handleAskOrchestrator from graph context\n- Out of Scope:\n - Subtree selection (\"work on everything downstream of this node\")\n - Graph-specific orchestrator commands\n\nVERIFICATION REQUIREMENTS\n- npm run typecheck \u0026\u0026 npm run lint \u0026\u0026 npm run test\n","status":"open","priority":1,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T04:15:00Z","created_by":"zenchantlive","updated_at":"2026-03-26T04:15:00Z","labels":["orchestrator"],"dependency_count":0,"dependent_count":0,"comment_count":0} +{"id":"beadboard-1zb.6","title":"Add retry failed workers","description":"TASK CONTEXT\n- Bead ID: beadboard-1zb.6\n- Parent/Epic: beadboard-1zb\n- Dependencies: none\n\nTASK CONTRACT\n- Goal: Add retry mechanism for failed workers.\n- Success Criteria:\n - Failed workers show a \"Retry\" button in the UI\n - Clicking retry spawns a fresh worker on the same bead with same agent type\n - Failed worker's session is cleaned up\n - Bead status reset to open before retry\n- Scope:\n - runtime-console.tsx or agent-status-panel.tsx — retry button\n - worker-session-manager.ts — retry logic\n - API endpoint for retry\n- Out of Scope:\n - Auto-retry policies\n - Retry with different agent type\n\nVERIFICATION REQUIREMENTS\n- npm run typecheck \u0026\u0026 npm run lint \u0026\u0026 npm run test\n","status":"open","priority":1,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T04:15:00Z","created_by":"zenchantlive","updated_at":"2026-03-26T04:15:00Z","labels":["contrib:open","orchestrator"],"dependency_count":0,"dependent_count":0,"comment_count":0} +{"id":"beadboard-1zb.4","title":"Add plan visibility — show template pipeline","description":"TASK CONTEXT\n- Bead ID: beadboard-1zb.4\n- Parent/Epic: beadboard-1zb\n- Dependencies: none\n\nTASK CONTRACT\n- Goal: Show the template pipeline when orchestrator uses a template — which agents are planned, which is active, what's next.\n- Success Criteria:\n - When a template is selected, show a pipeline visualization: e.g., Architect → Engineer x2 → Reviewer → Tester\n - Active step highlighted, completed steps checked, pending steps dimmed\n - Updates in realtime as agents spawn, complete, or fail\n- Scope:\n - New component: template-pipeline.tsx or inline in orchestrator-panel.tsx\n - Read template definition to build pipeline stages\n- Out of Scope:\n - Editing the pipeline mid-flight (separate bead)\n - Custom template creation UI\n\nVERIFICATION REQUIREMENTS\n- npm run typecheck \u0026\u0026 npm run lint \u0026\u0026 npm run test\n","status":"open","priority":1,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T04:14:59Z","created_by":"zenchantlive","updated_at":"2026-03-26T04:14:59Z","labels":["orchestrator"],"dependency_count":0,"dependent_count":0,"comment_count":0} +{"id":"beadboard-0cf.5","title":"Add orchestrator integration tests","description":"TASK CONTEXT\n- Bead ID: beadboard-0cf.5\n- Parent/Epic: beadboard-0cf\n- Dependencies: beadboard-0cf.1, beadboard-0cf.2\n\nTASK CONTRACT\n- Goal: Write integration tests for the orchestrator critical path to prove it works under real conditions.\n- Success Criteria:\n - Tests cover: session creation, prompt flow, worker spawn, worker completion, worker failure\n - Tests run as part of npm run test\n - Tests use mocked Pi SDK (not real API calls)\n - At least 5 test cases covering the happy path and 2 error cases\n- Scope:\n - tests/lib/orchestrator-*.test.ts (new files)\n - tests/lib/worker-session.test.ts (new file)\n - Register in package.json test script\n- Out of Scope:\n - E2E browser tests\n - Testing the Pi SDK itself\n - Performance/load testing\n\nVERIFICATION REQUIREMENTS\n- npm run typecheck \u0026\u0026 npm run lint \u0026\u0026 npm run test (all pass including new tests)\n","status":"open","priority":1,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T04:14:56Z","created_by":"zenchantlive","updated_at":"2026-03-26T04:14:56Z","labels":["contrib:open","orchestrator"],"dependencies":[{"issue_id":"beadboard-0cf.5","depends_on_id":"beadboard-0cf.1","type":"relates-to","created_at":"2026-03-25T23:15:19Z","created_by":"zenchantlive","metadata":"{}"},{"issue_id":"beadboard-0cf.5","depends_on_id":"beadboard-0cf.2","type":"relates-to","created_at":"2026-03-25T23:15:20Z","created_by":"zenchantlive","metadata":"{}"}],"dependency_count":0,"dependent_count":0,"comment_count":0} +{"id":"beadboard-0cf.4","title":"Add context window management for orchestrator","description":"TASK CONTEXT\n- Bead ID: beadboard-0cf.4\n- Parent/Epic: beadboard-0cf\n- Dependencies: none\n\nTASK CONTRACT\n- Goal: Add context window management so the orchestrator system prompt doesn't consume the entire context on projects with many beads.\n- Success Criteria:\n - System prompt filters or summarizes active tasks instead of including all as JSON\n - Configurable max beads injected (default ~20 most relevant)\n - Relevance sorting: prioritize in_progress, blocked, recently updated\n - Orchestrator can still request full task list via bb_dolt_read tool when needed\n- Scope:\n - src/tui/system-prompt.ts — add filtering/truncation\n- Out of Scope:\n - LLM session rotation or context windowing\n - Changing the Pi SDK session management\n\nVERIFICATION REQUIREMENTS\n- npm run typecheck \u0026\u0026 npm run lint \u0026\u0026 npm run test\n- Test with 50+ beads: system prompt stays under 4000 tokens\n","status":"open","priority":1,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T04:14:55Z","created_by":"zenchantlive","updated_at":"2026-03-26T04:14:55Z","labels":["orchestrator"],"dependency_count":0,"dependent_count":0,"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":"closed","priority":1,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T01:19:02Z","created_by":"zenchantlive","updated_at":"2026-03-26T02:46:32Z","closed_at":"2026-03-26T02:46:32Z","close_reason":"Recreating with proper naming convention","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":"closed","priority":1,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T01:19:01Z","created_by":"zenchantlive","updated_at":"2026-03-26T02:46:31Z","closed_at":"2026-03-26T02:46:31Z","close_reason":"Recreating with proper naming convention","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":"closed","priority":1,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T01:19:00Z","created_by":"zenchantlive","updated_at":"2026-03-26T02:46:30Z","closed_at":"2026-03-26T02:46:30Z","close_reason":"Recreating with proper naming convention","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":"closed","priority":1,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T01:19:00Z","created_by":"zenchantlive","updated_at":"2026-03-26T02:46:31Z","closed_at":"2026-03-26T02:46:31Z","close_reason":"Recreating with proper naming convention","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":"closed","priority":1,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T01:18:59Z","created_by":"zenchantlive","updated_at":"2026-03-26T02:46:30Z","closed_at":"2026-03-26T02:46:30Z","close_reason":"Recreating with proper naming convention","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":"closed","priority":1,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T01:18:55Z","created_by":"zenchantlive","updated_at":"2026-03-26T02:46:29Z","closed_at":"2026-03-26T02:46:29Z","close_reason":"Recreating with proper naming convention","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":"closed","priority":1,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T01:18:51Z","created_by":"zenchantlive","updated_at":"2026-03-26T02:46:28Z","closed_at":"2026-03-26T02:46:28Z","close_reason":"Recreating with proper naming convention","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":"closed","priority":1,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T01:18:49Z","created_by":"zenchantlive","updated_at":"2026-03-26T02:46:27Z","closed_at":"2026-03-26T02:46:27Z","close_reason":"Recreating with proper naming convention","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":"closed","priority":1,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T01:18:48Z","created_by":"zenchantlive","updated_at":"2026-03-26T02:46:26Z","closed_at":"2026-03-26T02:46:26Z","close_reason":"Recreating with proper naming convention","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":"closed","priority":1,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T01:16:38Z","created_by":"zenchantlive","updated_at":"2026-03-26T02:46:25Z","closed_at":"2026-03-26T02:46:25Z","close_reason":"Recreating with proper naming convention","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":"closed","priority":1,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T01:16:37Z","created_by":"zenchantlive","updated_at":"2026-03-26T02:46:24Z","closed_at":"2026-03-26T02:46:24Z","close_reason":"Recreating with proper naming convention","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} @@ -282,17 +299,22 @@ {"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-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.5","title":"Add Dolt audit trail to activity view","description":"TASK CONTEXT\n- Bead ID: beadboard-6rp.5\n- Parent/Epic: beadboard-6rp\n- Dependencies: none\n\nTASK CONTRACT\n- Goal: Surface Dolt version history as an audit trail in the activity view.\n- Success Criteria:\n - Activity view shows Dolt commits as events: who changed what bead, when, mutation type\n - Integrates with existing activity feed alongside SSE events\n - Filterable by agent, bead, or time range\n- Scope:\n - Activity data source — add Dolt log as an event source\n - activity-panel.tsx — render Dolt events inline\n- Out of Scope:\n - Dolt branch/merge visualization\n - Cross-project audit\n\nVERIFICATION REQUIREMENTS\n- npm run typecheck \u0026\u0026 npm run lint \u0026\u0026 npm run test\n","status":"open","priority":2,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T04:15:08Z","created_by":"zenchantlive","updated_at":"2026-03-26T04:15:08Z","labels":["dolt","orchestrator"],"dependency_count":0,"dependent_count":0,"comment_count":0} +{"id":"beadboard-7gx.2","title":"Add agent presence on graph nodes","description":"TASK CONTEXT\n- Bead ID: beadboard-7gx.2\n- Parent/Epic: beadboard-7gx\n- Dependencies: none\n\nTASK CONTRACT\n- Goal: Show agent avatars/indicators on graph nodes they're working on so you can see work flowing through the dependency graph.\n- Success Criteria:\n - Graph nodes for in_progress beads show the assigned agent's display name or avatar\n - When a worker completes and the next bead becomes unblocked, visual flows to the next node\n - Agent indicators update via SSE as assignments change\n- Scope:\n - smart-dag.tsx — render agent indicators on nodes\n - Graph data model — include assignee info on nodes\n- Out of Scope:\n - Animated transitions between nodes\n - Agent trail/history on graph\n\nVERIFICATION REQUIREMENTS\n- npm run typecheck \u0026\u0026 npm run lint \u0026\u0026 npm run test\n","status":"open","priority":2,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T04:15:03Z","created_by":"zenchantlive","updated_at":"2026-03-26T04:15:03Z","labels":["orchestrator"],"dependency_count":0,"dependent_count":0,"comment_count":0} +{"id":"beadboard-7gx.3","title":"Add direct communication with specific workers","description":"TASK CONTEXT\n- Bead ID: beadboard-7gx.3\n- Parent/Epic: beadboard-7gx\n- Dependencies: none\n\nTASK CONTRACT\n- Goal: Allow user to address specific workers directly, not just through the orchestrator.\n- Success Criteria:\n - User can @mention a worker in orchestrator chat (e.g., \"@Engineer 01 use the other approach\")\n - Orchestrator relays the message to the specific worker via mailbox\n - Or: separate chat channel per worker accessible from agent status panel\n- Scope:\n - orchestrator-panel.tsx — @mention parsing or worker channel selector\n - Mailbox routing for direct messages\n- Out of Scope:\n - Real-time back-and-forth conversation with individual workers\n - Worker-initiated messages to user (goes through orchestrator)\n\nVERIFICATION REQUIREMENTS\n- npm run typecheck \u0026\u0026 npm run lint \u0026\u0026 npm run test\n","status":"open","priority":2,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T04:15:03Z","created_by":"zenchantlive","updated_at":"2026-03-26T04:15:03Z","labels":["orchestrator"],"dependency_count":0,"dependent_count":0,"comment_count":0} +{"id":"beadboard-1zb.7","title":"Add chat panel expand / fullscreen mode","description":"TASK CONTEXT\n- Bead ID: beadboard-1zb.7\n- Parent/Epic: beadboard-1zb\n- Dependencies: none\n\nTASK CONTRACT\n- Goal: Add expandable/fullscreen mode for the orchestrator chat panel.\n- Success Criteria:\n - Chat panel has an expand button that widens it or goes fullscreen\n - Keyboard shortcut to toggle (e.g., Cmd+Shift+O)\n - Collapsed state returns to normal sidebar width\n - Text input area also expands for longer messages\n- Scope:\n - orchestrator-panel.tsx — expand/collapse logic\n - unified-shell.tsx — layout adjustment when expanded\n- Out of Scope:\n - Detachable/floating panel\n - Multi-panel orchestrator views\n\nVERIFICATION REQUIREMENTS\n- npm run typecheck \u0026\u0026 npm run lint \u0026\u0026 npm run test\n","status":"open","priority":2,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T04:15:01Z","created_by":"zenchantlive","updated_at":"2026-03-26T04:15:01Z","labels":["contrib:open","orchestrator"],"dependency_count":0,"dependent_count":0,"comment_count":0} +{"id":"beadboard-1zb.8","title":"Add orchestrator settings surface","description":"TASK CONTEXT\n- Bead ID: beadboard-1zb.8\n- Parent/Epic: beadboard-1zb\n- Dependencies: none\n\nTASK CONTRACT\n- Goal: Add orchestrator settings surface for model, API key, max workers, preferences.\n- Success Criteria:\n - Settings panel or page accessible from orchestrator UI\n - Configurable: model selection, API key, max concurrent workers\n - Settings persisted to .beadboard/config.json\n - Changes take effect on next orchestrator session (no hot-reload needed)\n- Scope:\n - New settings component or panel\n - .beadboard/config.json read/write\n - Pi SDK session creation reads config\n- Out of Scope:\n - Per-project settings overrides\n - Template management UI\n\nVERIFICATION REQUIREMENTS\n- npm run typecheck \u0026\u0026 npm run lint \u0026\u0026 npm run test\n","status":"open","priority":2,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T04:15:01Z","created_by":"zenchantlive","updated_at":"2026-03-26T04:15:01Z","labels":["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":"closed","priority":2,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T01:19:01Z","created_by":"zenchantlive","updated_at":"2026-03-26T02:46:32Z","closed_at":"2026-03-26T02:46:32Z","close_reason":"Recreating with proper naming convention","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":"closed","priority":2,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T01:18:56Z","created_by":"zenchantlive","updated_at":"2026-03-26T02:46:29Z","closed_at":"2026-03-26T02:46:29Z","close_reason":"Recreating with proper naming convention","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":"closed","priority":2,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T01:18:56Z","created_by":"zenchantlive","updated_at":"2026-03-26T02:46:30Z","closed_at":"2026-03-26T02:46:30Z","close_reason":"Recreating with proper naming convention","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":"closed","priority":2,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T01:18:51Z","created_by":"zenchantlive","updated_at":"2026-03-26T02:46:28Z","closed_at":"2026-03-26T02:46:28Z","close_reason":"Recreating with proper naming convention","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":"closed","priority":2,"issue_type":"task","owner":"jordanlive121@gmail.com","created_at":"2026-03-26T01:18:50Z","created_by":"zenchantlive","updated_at":"2026-03-26T02:46:27Z","closed_at":"2026-03-26T02:46:27Z","close_reason":"Recreating with proper naming convention","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":"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":"{}"},{"issue_id":"beadboard-sen","depends_on_id":"beadboard-0cf.1","type":"relates-to","created_at":"2026-03-25T23:15:21Z","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}