- Move leftSidebarMode from URL state to local useState in unified-shell,
avoiding force-dynamic router round-trip that made the button appear broken - Replace fileURLToPath(new URL(..., import.meta.url)) with process.cwd()
in bb-pi-bootstrap.ts — import.meta.url is a webpack:// URL in Next.js,
causing cross-realm TypeError when passed to Node.js fileURLToPath()
4.8 KiB
Phase 1: Worker Spawning - Manual E2E Test
Date: 2026-03-06 Status: Ready for manual testing
Prerequisites
- ✅ Dev server is running (user has it running)
- ✅ Pi SDK is available (
bb daemon bootstrap-pishould have been run) - ✅ All code changes are committed and applied
Test Scenarios
Scenario 1: Basic Worker Spawn
Steps:
- Open BeadBoard in browser (http://localhost:3000)
- Open left panel (orchestrator mode)
- Send this prompt to orchestrator:
Spawn a worker to read the README.md file and tell me what it says. - Observe the response and check:
- Orchestrator calls
bb_spawn_workertool - Worker spawns with task context
worker.spawnedevent appears in runtime console (with "Worker" badge)- Worker event shows task ID: "read-the-readme.md-file-and-tell-me-what-it-says"
- Worker status tool response is shown
- Orchestrator calls
Expected Result: Worker appears in console with "Worker" badge, shows "WORKING" status.
Scenario 2: Worker Status Check
Steps:
- From left panel, send:
Check the status of the worker you just spawned. - Observe:
- Orchestrator calls
bb_worker_statustool - Worker status is displayed with correct emoji
- Shows "WORKING", "COMPLETED", or "FAILED" as appropriate
- Task ID matches the spawned task
- Orchestrator calls
Expected Result: Current worker status shown with helpful message.
Scenario 3: Worker Completion
Steps:
- Wait for the worker to complete (should happen within ~30 seconds for README read)
- Observe:
worker.updatedorworker.completedevent appears- If completed: shows "COMPLETED" with ✅ emoji
- Result summary is shown (first 200 chars)
- Worker no longer shows as "WORKING"
Expected Result: Worker successfully completes and result is displayed.
Scenario 4: Multiple Workers
Steps:
- Send prompt to orchestrator:
Spawn 3 workers in parallel: - Worker 1: Read package.json - Worker 2: List all files in src/ - Worker 3: Read .env.example file - Observe:
- Three separate
worker.spawnedevents appear - All three workers show "WORKING" status
- Each worker has a unique ID
- Task contexts are correct for each
- Three separate
Expected Result: Multiple workers run in parallel, each with unique identity and task.
Scenario 5: Worker with Archetype
Steps:
- Send prompt to orchestrator:
Spawn a worker with archetype "coder" to add a new test file. - Observe:
- Worker spawns with "Archetype: coder" in the detail
- Worker system prompt includes the archetype context
Expected Result: Worker behavior is guided by archetype (though actual behavior is same - this is v1).
Scenario 6: Worker Error Handling
Steps:
- Send prompt to orchestrator with invalid task:
Spawn a worker to read a file that does not exist: /nonexistent/path/to/file.txt - Observe:
- Worker attempts the task
- Worker fails and reports error
worker.failedevent appears with ❌ emoji- Error message explains what went wrong
Expected Result: Worker failures are captured and reported clearly.
Scenario 7: Runtime Console Worker Badge
Steps:
- Spawn a worker
- Look at runtime console (bottom panel)
- Observe:
- Worker events have a purple "Worker" badge
- Orchestrator events do NOT have the badge
- Badge says "Worker Agent Event" on hover
Expected Result: Visual distinction between orchestrator and worker events is clear.
Scenario 8: Left Panel Chat Integration
Steps:
- Observe the orchestrator conversation in left panel
- During worker spawn, check:
- Tool calls appear inline (like they do for
bb_dolt_read) - Worker spawn response includes worker ID
- Chat remains readable and not cluttered
- Tool calls appear inline (like they do for
Expected Result: Orchestrator chat surface handles worker interactions natively.
Success Criteria
A scenario passes when:
- Worker events appear in runtime console
- Worker events have "Worker" badge
- Status changes (spawning → working → completed) are visible
- Tool calls are logged and returned to orchestrator
- Multiple workers can run in parallel
- Worker completion/failure is captured
Bug Report Form
If any test fails, capture:
Test Scenario: [number]
Steps Taken: [what you did]
Expected Result: [what should happen]
Actual Result: [what actually happened]
Error Messages: [any errors in console]
Screenshot/Notes: [any additional details]
After Testing
Once all scenarios pass:
- Review success criteria in
docs/plans/2026-03-06-phase-1-worker-spawning.md - Update roadmap to mark Phase 1 as complete
- Move to Phase 2: Archetype-backed execution configs