feat(bolt): add specialist agents and task controls

Merged
A-
2d ago
+626-38

User description

Summary

  • Add configurable project subagents and built-in specialists.
  • Add a parallel-task dashboard and opt-in project prompt ideas.
  • Harden symlink authorization and repair direct commands and development server selection.

Verification

  • bun run check (also run by the push hook)
  • Focused core, server, CLI and TUI tests for the affected paths

Visual

<svg xmlns="http://www.w3.org/2000/svg" width="240" height="72" viewBox="0 0 240 72">
  <rect x="10" y="10" width="220" height="52" rx="8" fill="none" stroke="currentColor" opacity=".5"/>
  <text x="22" y="31" fill="currentColor" font-size="12">Parallel tasks</text>
  <circle cx="26" cy="46" r="4" fill="currentColor"><animate attributeName="opacity" values=".4;1;.4" dur="1.5s" repeatCount="indefinite"/></circle>
  <path d="M38 46h65 M116 46h55" stroke="currentColor" opacity=".6" stroke-width="3" stroke-linecap="round"/>
</svg>

Summary by cubic

Adds configurable project subagents and built-in specialists, a parallel-task dashboard, and opt-in project prompt ideas. Hardens symlink authorization and repairs direct slash-command execution, dev server selection, and TUI error reporting.

New Features

  • Users can define project subagents in .bolt/subagent/<name>.md; they're hot-reloaded, always register as subagents, and support optional model and permission frontmatter.
  • Adds six built-in specialists (reviewer, security-auditor, debugger, bug-hunter, security-fixer, documentation); the two auditor roles are read-only.
  • TUI home adds a parallel-task dashboard (/tasks) and experimental /ideas, which generates project-aware prompt suggestions from filenames.

Bug Fixes

  • File access now resolves symlinks before authorization so dangling symlinks are rejected and external symlink targets require authorization instead of being treated as internal paths.
  • Typed no-argument slash commands run directly rather than opening autocomplete, and sandbox toggling carries the selected model and agent into the new session.
  • The CLI starts a standalone server when built from local source so a managed server can't run stale code, and TUI toasts now show the server's structured error message.

PR Type

Enhancement, Bug fix, Documentation


Description

  • Add custom project subagents and built-in specialists

  • Canonicalize filesystem paths for secure authorization

  • Add parallel task dashboard and project prompt suggestions

  • Prevent stale development servers during local runs


Diagram Walkthrough

flowchart LR
  Subagents["Subagents (.bolt/subagent)"] -- "Registers" --> CoreAgent["Core Agent Plugin"]
  Realpath["Realpath Resolution"] -- "Hardens" --> FileAccess["File Access Service"]
  TUI["TUI Dashboard"] -- "Adds" --> TasksAndIdeas["/tasks and /ideas Commands"]

File Walkthrough

Relevant files
Bug fix
3 files
default.tsPrevent stale development servers during local CLI execution +3/-2     
index.tsxFix slash-command parsing for direct execution                      +2/-1     
sandbox.tsxPass model and agent when opening sandbox from home            +11/-3   
Enhancement
9 files
agent.tsDiscover project subagents from subagent directory              +18/-6   
exec-defaults.tsAdd realpath script for process execution environment        +10/-0   
files.tsAdd realpath interface method to environment files              +2/-0     
local.tsImplement fs.realpath for local environment driver              +1/-0     
memory.tsImplement realpath support in in-memory filesystem              +5/-0     
agent.tsRegister six built-in specialist subagents                              +43/-0   
workspace.tsDelegate realpath calls through workspace files wrapper    +1/-0     
process.tsxAdd parallel tasks dashboard with /tasks alias                      +8/-6     
home.tsxAdd parallel task actions and prompt ideas generator          +124/-1 
Security
1 files
file-access.tsResolve canonical target paths before evaluating permissions +22/-4   
Documentation
2 files
subagent.tsDocument subagent project configuration in tool description +1/-0     
README.mdAdd instructions for defining custom project subagents      +20/-0   
Tests
5 files
agent.test.tsTest built-in specialist agent registration                            +7/-1     
agent.test.tsTest subagent configuration loading and watching                  +71/-0   
file-access-path.test.tsCover symlink target resolution and external path authorization +25/-7   
bolt-agents.test.tsVerify specialist subagent permissions and restrictions    +34/-0   
command-selection.test.tsxTest prompt ideas selection and task dashboard display      +67/-0   
Additional files
8 files
bolt-memory.test.ts +29/-0   
rpc-handler-errors.test.ts +35/-0   
goal.tsx +2/-1     
clear-history.tsx +2/-1     
cost-alert.tsx +2/-1     
memory.tsx +2/-1     
voice.tsx +2/-1     
bolt-commands.test.tsx +68/-3   

Summary by CodeRabbit

  • New Features

    • Create custom subagents with Markdown instructions and optional model and permission settings. Six built-in specialist agents are also available.
    • Generate project ideas from the home screen and add suggestions to your prompt. Use /ideas to access them.
    • View running and completed parallel tasks in the task dashboard, available with /tasks.
    • Start a sandbox from the home screen using your selected agent and model.
  • Bug Fixes

    • Slash commands that don’t require arguments can now be selected without entering any.
    • File access checks now follow symlinks when resolving paths, including external destinations.
    • Error notifications provide clearer messages across several commands and features.