No description
Find a file
ZenchantLive dc7f20148c feat(driver-skill): add bb-mail-shim + session-preflight mail delegate config (izs.5)
## What changed

### scripts/bb-mail-shim.mjs (new)
Translates bd mail delegate calls into bb agent coordination commands.
bd mail delegates by prepending the configured command to all args, so
this shim bridges the interface mismatch between bd mail (gt-mail style)
and bb agent (--agent/--from flags required).

Command mappings:
  bd mail inbox [...]            → bb agent inbox --agent $BB_AGENT [...]
  bd mail send --to foo [...]    → bb agent send --from $BB_AGENT --to foo [...]
  bd mail read <msg-id>          → bb agent read --agent $BB_AGENT --message <msg-id>
  bd mail ack <msg-id>           → bb agent ack --agent $BB_AGENT --message <msg-id>
  bd mail <other> [...]          → bb agent <other> [...]  (passthrough)

Agent identity injected automatically from BB_AGENT env var (primary) or
BD_ACTOR env var (fallback). Caller can override --from by supplying it
explicitly in bd mail send args. Falls back with clear error messages if
bb is not in PATH or BB_AGENT/BD_ACTOR is unset.

### scripts/session-preflight.mjs (updated)
Added mail delegate auto-configuration step after successful bb resolution:
- Calls: bd config set mail.delegate "node <abs-path-to-bb-mail-shim.mjs>"
- Uses absolute path to shim resolved relative to session-preflight.mjs
- Reports mail.configured + mail.delegate + usage note in output JSON
- Graceful failure if shim missing, bd config set fails, or bb not found
- Added mail: null to all error branches for consistent output shape

## Verification
Tested end-to-end on this machine:
  export BB_AGENT=silver-scribe
  node session-preflight.mjs    # → ok:true, mail.configured:true
  bd mail send --to silver-scribe --bead beadboard-izs.5 \
    --category INFO --subject "test" --body "pipeline verified"
  bd mail inbox                 # → Inbox (1): [msg_...] INFO: test
All commands exit 0. Delegate persisted via bd config get mail.delegate.

## Bead: beadboard-izs.5 (closed)
## Also closed: beadboard-izs.2 — bb agent already in global CLI (feat(cli) commit)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-03 18:30:15 -08:00
.agent/skills checkpoint: pre-split branch cleanup 2026-03-03 16:43:42 -08:00
.agents/skills feat(driver-skill): add bb-mail-shim + session-preflight mail delegate config (izs.5) 2026-03-03 18:30:15 -08:00
.augment/skills checkpoint: pre-split branch cleanup 2026-03-03 16:43:42 -08:00
.beads bd: backup 2026-03-04 02:24 2026-03-03 18:24:10 -08:00
.claude/skills checkpoint: pre-split branch cleanup 2026-03-03 16:43:42 -08:00
.cline/skills checkpoint: pre-split branch cleanup 2026-03-03 16:43:42 -08:00
.dolt checkpoint: pre-split branch cleanup 2026-03-03 16:43:42 -08:00
.github checkpoint: pre-split branch cleanup 2026-03-03 16:43:42 -08:00
.openhands/skills checkpoint: pre-split branch cleanup 2026-03-03 16:43:42 -08:00
assets fix(layout): unified right sidebar with chat mode and collapsing activity rail 2026-02-16 23:50:20 -08:00
bin feat(cli): route runtime commands and add bd diagnostics to status 2026-03-02 21:19:12 -08:00
components/ui checkpoint: pre-split branch cleanup 2026-03-03 16:43:42 -08:00
docs checkpoint: pre-split branch cleanup 2026-03-03 16:43:42 -08:00
help checkpoint: pre-split branch cleanup 2026-03-03 16:43:42 -08:00
install checkpoint: pre-split branch cleanup 2026-03-03 16:43:42 -08:00
lib chore: misc updates and fixes 2026-02-26 10:25:31 -08:00
out fix(bb-ui2): integrate ThreadView into detail panels with sample data 2026-02-16 10:10:50 -08:00
public fix(bb-ui2): integrate ThreadView into detail panels with sample data 2026-02-16 10:10:50 -08:00
reference/routes checkpoint: pre-split branch cleanup 2026-03-03 16:43:42 -08:00
scripts checkpoint: pre-split branch cleanup 2026-03-03 16:43:42 -08:00
skills checkpoint: pre-split branch cleanup 2026-03-03 16:43:42 -08:00
src feat(cli): expose bb agent coordination commands 2026-03-03 18:26:07 -08:00
tests feat(cli): expose bb agent coordination commands 2026-03-03 18:26:07 -08:00
tools checkpoint: pre-split branch cleanup 2026-03-03 16:43:42 -08:00
.eslintrc.json checkpoint: pre-split branch cleanup 2026-03-03 16:43:42 -08:00
.gitattributes chore: initialize beadboard baseline 2026-02-11 17:42:51 -08:00
.gitignore checkpoint: pre-split branch cleanup 2026-03-03 16:43:42 -08:00
AGENTS.md docs: add core rules for bead-first work and evidence-based closure 2026-03-02 20:57:16 -08:00
agents_to_delete.txt checkpoint: pre-split branch cleanup 2026-03-03 16:43:42 -08:00
agents_to_delete2.txt checkpoint: pre-split branch cleanup 2026-03-03 16:43:42 -08:00
all_beads.txt colors 2026-02-26 10:45:02 -08:00
bb.ps1 docs(beads): etch project history into memory bank and finalize skill-bb 2026-02-14 00:21:25 -08:00
bd-help.txt feat(ux): consolidate Launch Swarm + telemetry UX with minimized strip 2026-03-01 18:17:58 -08:00
CLAUDE.md feat(ux): consolidate Launch Swarm + telemetry UX with minimized strip 2026-03-01 18:17:58 -08:00
components.json feat(ui): complete bb-ui2.2 - shadcn/ui Setup 2026-02-15 21:16:26 -08:00
eslint-report.json chore: checkpoint before DAG views UX overhaul 2026-02-22 20:43:59 -08:00
eslint.config.mjs checkpoint: pre-split branch cleanup 2026-03-03 16:43:42 -08:00
image-1.png readme pics 2026-02-13 00:20:44 -08:00
image-2.png feat(ux): consolidate Launch Swarm + telemetry UX with minimized strip 2026-03-01 18:17:58 -08:00
image-3.png feat(ux): consolidate Launch Swarm + telemetry UX with minimized strip 2026-03-01 18:17:58 -08:00
image-4.png feat(ux): consolidate Launch Swarm + telemetry UX with minimized strip 2026-03-01 18:17:58 -08:00
image-5.png feat(ux): consolidate Launch Swarm + telemetry UX with minimized strip 2026-03-01 18:17:58 -08:00
image-6.png feat(ux): consolidate Launch Swarm + telemetry UX with minimized strip 2026-03-01 18:17:58 -08:00
image-7.png feat(ux): consolidate Launch Swarm + telemetry UX with minimized strip 2026-03-01 18:17:58 -08:00
image-8.png feat(ux): consolidate Launch Swarm + telemetry UX with minimized strip 2026-03-01 18:17:58 -08:00
image-9.png feat(ux): consolidate Launch Swarm + telemetry UX with minimized strip 2026-03-01 18:17:58 -08:00
image.png readme pics 2026-02-13 00:20:44 -08:00
LICENSE checkpoint: pre-split branch cleanup 2026-03-03 16:43:42 -08:00
next-env.d.ts checkpoint: pre-split branch cleanup 2026-03-03 16:43:42 -08:00
next.config.ts checkpoint: pre-split branch cleanup 2026-03-03 16:43:42 -08:00
NEXT_SESSION_PROMPT.md chore: close runtime-manager rollout with verification evidence 2026-03-02 20:51:01 -08:00
package-lock.json chore: update next session prompt + install mysql2 for beadboard-550 2026-02-28 17:08:38 -08:00
package.json feat(cli): make --help human-readable by default 2026-03-02 21:27:18 -08:00
postcss.config.js feat: establish tokenized kanban design foundation 2026-02-11 18:38:51 -08:00
README.md launcher: add start --dolt and startup guidance 2026-03-03 16:19:01 -08:00
remotion.config.ts fix(bb-ui2): integrate ThreadView into detail panels with sample data 2026-02-16 10:10:50 -08:00
sse-output.txt chore: checkpoint before DAG views UX overhaul 2026-02-22 20:43:59 -08:00
tailwind.config.ts checkpoint: pre-split branch cleanup 2026-03-03 16:43:42 -08:00
task1.txt chore: checkpoint before DAG views UX overhaul 2026-02-22 20:43:59 -08:00
task2.txt chore: checkpoint before DAG views UX overhaul 2026-02-22 20:43:59 -08:00
task3.txt chore: checkpoint before DAG views UX overhaul 2026-02-22 20:43:59 -08:00
test-output.txt chore: checkpoint before DAG views UX overhaul 2026-02-22 20:43:59 -08:00
test-output2.txt checkpoint: pre-split branch cleanup 2026-03-03 16:43:42 -08:00
test-sse.mjs checkpoint: pre-split branch cleanup 2026-03-03 16:43:42 -08:00
test-watcher.ts checkpoint: pre-split branch cleanup 2026-03-03 16:43:42 -08:00
test2.txt checkpoint: pre-split branch cleanup 2026-03-03 16:43:42 -08:00
tmp_diff.txt feat(ux): consolidate Launch Swarm + telemetry UX with minimized strip 2026-03-01 18:17:58 -08:00
tmp_status.txt feat(ux): consolidate Launch Swarm + telemetry UX with minimized strip 2026-03-01 18:17:58 -08:00
tsconfig.json feat(ux): consolidate Launch Swarm + telemetry UX with minimized strip 2026-03-01 18:17:58 -08:00

BeadBoard

Work in Progress, please contribute! BeadBoard is a multi-agent swarm coordination system built on Beads inspired by Gastown. Thanks Steve Yegge!

BB is a visual operations layer for running agent teams against real dependency-constrained work.


What This App Is

BeadBoard is not just a task board. It is an execution system for coordinating agents around shared Beads workflows:

  • Agent-to-agent communication with explicit categories (HANDOFF, BLOCKED, DECISION, INFO)
  • Conversation threads merged from activity events, agent messages, and local interactions
  • Graph/topology context for deciding what should move next
  • Global project scope switching across single and aggregate workspaces
  • Swarm orchestration with archetypes/templates and assignment controls

alt text


Core Features

1. Agent Communication System

  • Structured message lifecycle: send, inbox, read, ack
  • Message states: unread, read, acked
  • Per-task conversation threads combining:
    • activity events
    • agent mail
    • local bd interactions
  • Required acknowledgment semantics for high-signal categories (HANDOFF, BLOCKED)

2. Swarm Coordination Surface

  • Agent Pool Monitor with:
    • Archetypes
    • Templates
    • Needs Agent queue
    • Pre-assigned queue
    • Squad roster
  • Assignment workflow through the graph workspace and right panel alt text

3. Graph + Dependency Topology

  • DAG-oriented graph workspace for execution decisions
  • Task/dependency tab modes for different planning lenses
  • Blocker/unblock context surfaced directly in task cards
  • Graph analysis support (cycle and blocked-chain context) alt text

4. Global Project Scope + Scanner

  • Project registry and scanner-backed discovery
  • Single-project and aggregate modes
  • Runtime scope switching without leaving the primary workspace

5. Realtime Operations Layer

  • Live updates via watchers + SSE
  • Activity stream integration with session/task context
  • Mutation/writeback feedback integrated into the same operational surface

Runtime Surface

Active Route

  • /

View Modes

  • /?view=social
  • /?view=graph
  • /?view=activity

Compatibility Redirects

  • /graph -> /?view=graph
  • /sessions -> /?view=social
  • /timeline -> /?view=activity
  • /mockup -> /

Archived Route Vault

Legacy route implementations are preserved in reference/routes/** and excluded from active runtime validation scope.


Install

Prerequisites

  • Node.js 18.18+ (Node 20 LTS recommended)
  • npm

Clone + Install

git clone https://github.com/zenchantlive/beadboard.git
cd beadboard
npm install

Global CLI Install (Optional)

Primary install path:

npm i -g beadboard

Fallback wrappers from repo root:

POSIX (Linux/macOS):

bash ./install/install.sh

Windows (PowerShell):

powershell -ExecutionPolicy Bypass -File .\install\install.ps1

Both wrappers install shims at:

  • ~/.beadboard/bin/bb
  • ~/.beadboard/bin/beadboard

Runtime home:

  • ~/.beadboard/runtime/<version>
  • ~/.beadboard/runtime/current.json

Launcher commands:

  • beadboard start
  • beadboard start --dolt (runs bd dolt start in the current project folder, then starts BeadBoard)
  • beadboard open
  • beadboard status

Startup note:

  • In project repositories, run bd dolt start from the project directory (the folder with .beads).
  • If you want one command for both steps, use beadboard start --dolt.

Quick Start

npm run dev

Open:

http://localhost:3000

Configuration

No external service is required for core local usage.

Runtime behavior is driven by:

  • Local Beads project data
  • Registered/scanned project roots
  • URL query state (view, task, swarm, agent, epic, graphTab, panel state)

Operating Flow

1. Coordinate through Graph + Pool

Open /?view=graph, inspect dependency topology, and drive assignment from the pool panel.

2. Communicate in Context

Open a task thread to read merged conversation context and process message acknowledgments.

3. Switch Scope as Work Expands

Use registry/scanner controls to move between local and aggregate project scope.

4. Track Live Signal

Use social/activity views to monitor execution movement and operational events.


Roadmap Notes

  • Cross-view assign controls in all major views.
  • Social naming/UX evolution (including possible shift toward “swim” terminology).
  • Continued expansion of global project config/scanner workflows.

Scripts

npm run dev
npm run build
npm run start
npm run typecheck
npm run lint
npm run test
npm run video
npm run video:render
npm run video:thumbnail

Architecture

  • Frontend: Next.js App Router + React 19 + Tailwind + Framer Motion + Radix
  • Graph stack: XYFlow + Dagre
  • Core domain: Beads issue model, graph/kanban/session/social builders
  • Coordination layer: agent mail + session communication + swarm orchestration state
  • Realtime: watchers + SSE + snapshot differ + activity persistence
  • Validation/typing: strict TypeScript + Zod contracts where applicable

Project Structure

src/
  app/
    page.tsx                # active runtime route
    api/                    # runtime API routes
  components/
    shared/ graph/ social/ activity/ sessions/ swarm/ kanban/
  hooks/
  lib/
reference/
  routes/                   # archived route implementations

Contributing

  1. Keep active runtime pages in src/app minimal.
  2. Promote reusable logic into src/lib, src/components, src/hooks.
  3. Archive non-runtime route experiments in reference/routes.
  4. Run quality gates before merge:
npm run typecheck
npm run lint
npm run test

License

MIT