docs: update docs for Phase 7 agent teams and subagent support
This commit is contained in:
parent
07fc52b958
commit
a34687f844
3 changed files with 41 additions and 5 deletions
|
|
@ -151,7 +151,7 @@ bterminal-v2/
|
|||
- [x] Init -> model badge
|
||||
- [x] Cost -> USD/tokens/turns/duration summary
|
||||
- [x] Errors -> highlighted error card
|
||||
- [ ] Subagent spawn -> tree node + optional new pane (Phase 5)
|
||||
- [x] Subagent spawn -> auto-creates child agent pane with parent/child navigation (Phase 7)
|
||||
- [x] Agent status indicator (starting/running/done/error)
|
||||
- [x] Start/stop agent from UI (prompt form + stop button)
|
||||
- [x] Auto-scroll with scroll-lock on user scroll-up
|
||||
|
|
@ -230,6 +230,22 @@ bterminal-v2/
|
|||
- [x] Auto-update signing key generated, pubkey set in tauri.conf.json
|
||||
- [ ] TAURI_SIGNING_PRIVATE_KEY secret must be set in GitHub repo settings
|
||||
|
||||
---
|
||||
|
||||
## Phase 7: Agent Teams / Subagent Support [status: in progress] — Post-MVP
|
||||
|
||||
- [x] Agent store parent/child hierarchy — parentSessionId, parentToolUseId, childSessionIds fields on AgentSession
|
||||
- [x] Agent store functions — findChildByToolUseId(), getChildSessions(), parent-aware createAgentSession()
|
||||
- [x] Agent dispatcher subagent detection — SUBAGENT_TOOL_NAMES Set ('Agent', 'Task', 'dispatch_agent')
|
||||
- [x] Agent dispatcher message routing — parentId-bearing messages routed to child panes via toolUseToChildPane Map
|
||||
- [x] Agent dispatcher pane spawning — spawnSubagentPane() creates child session + layout pane, auto-grouped under parent
|
||||
- [x] AgentPane parent navigation — SUB badge + button to focus parent agent
|
||||
- [x] AgentPane children bar — clickable chips per child subagent with status colors (running/done/error)
|
||||
- [x] SessionList subagent icon — '↳' for subagent panes
|
||||
- [ ] Test with CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1
|
||||
- [ ] Update dispatcher tests for subagent routing
|
||||
- [ ] Subagent cost aggregation in parent pane
|
||||
|
||||
### System Requirements
|
||||
- Node.js 20+ (for Agent SDK sidecar)
|
||||
- Rust 1.77+ (for building from source)
|
||||
|
|
|
|||
|
|
@ -211,9 +211,27 @@ Architecture decision: Uses `claude` CLI with `--output-format stream-json` inst
|
|||
|
||||
Build status: TypeScript 0 errors, Rust 0 errors (1 pre-existing warning), all tests green.
|
||||
|
||||
### Session: 2026-03-06 (continued) — Agent Teams / Subagent Support
|
||||
|
||||
#### Agent Teams Frontend Support
|
||||
- [x] Agent store: AgentSession extended with parentSessionId?, parentToolUseId?, childSessionIds[] for parent-child hierarchy
|
||||
- [x] Agent store: createAgentSession() accepts optional parent param, registers bidirectional parent/child links
|
||||
- [x] Agent store: findChildByToolUseId(parentId, toolUseId), getChildSessions(parentId) query functions
|
||||
- [x] Agent store: removeAgentSession() cleans up parent's childSessionIds on removal
|
||||
- [x] Agent dispatcher: SUBAGENT_TOOL_NAMES detection ('Agent', 'Task', 'dispatch_agent') on tool_call events
|
||||
- [x] Agent dispatcher: spawnSubagentPane() creates child session + layout pane, auto-groups under parent title
|
||||
- [x] Agent dispatcher: toolUseToChildPane Map routes messages with parentId to correct child pane
|
||||
- [x] Agent dispatcher: handleAgentEvent() splits messages — parentId-bearing go to child panes, rest to parent
|
||||
- [x] AgentPane: parent link bar (SUB badge + navigate-to-parent button)
|
||||
- [x] AgentPane: children bar (chips per child subagent, status-colored, clickable to focus)
|
||||
- [x] SessionList: subagent panes show '↳' icon instead of '*'
|
||||
|
||||
Design: No separate sidecar process per subagent. Parent's sidecar handles all; routing is purely frontend based on SDK's parentId field.
|
||||
|
||||
### Next Steps
|
||||
- [ ] Set TAURI_SIGNING_PRIVATE_KEY secret in GitHub repo settings
|
||||
- [ ] Deno sidecar: test with real claude CLI, benchmark startup time vs Node.js
|
||||
- [ ] E2E testing with Playwright/WebDriver (when display server available)
|
||||
- [ ] Multi-machine support (remote agents via WebSocket)
|
||||
- [ ] Agent Teams integration
|
||||
- [ ] Test agent teams with CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1
|
||||
- [ ] Update dispatcher tests for new subagent routing logic
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
## Goal
|
||||
Redesign BTerminal from a GTK3 terminal emulator into a **multi-session Claude agent dashboard** optimized for 32:9 ultrawide (5120x1440). Simultaneous visibility of all active sessions, agent tree visualization, inline markdown rendering, maximum information density.
|
||||
|
||||
## Status: All 6 Phases Complete + extras (MVP + post-MVP, packaging, SSH, ctx, themes — Rev 3)
|
||||
## Status: Phases 1-6 Complete + Phase 7 (Agent Teams) in progress — Rev 4
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -106,7 +106,7 @@ When SDK changes its message format, only the adapter needs updating.
|
|||
See [phases.md](phases.md) for the full phased implementation plan (Phases 1-6).
|
||||
|
||||
- **MVP:** Phases 1-4 (scaffolding, terminal+layout, agent SDK, session mgmt+markdown)
|
||||
- **Post-MVP:** Phases 5-6 (agent tree, polish, packaging)
|
||||
- **Post-MVP:** Phases 5-7 (agent tree, polish, packaging, agent teams)
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -139,12 +139,14 @@ See [phases.md](phases.md) for the full phased implementation plan (Phases 1-6).
|
|||
| Deno-first sidecar with Node.js fallback | SidecarCommand struct abstracts runtime. resolve_sidecar_command() checks Deno first (runs TS directly, no build step), falls back to Node.js. Both bundled in tauri.conf.json resources. | 2026-03-06 |
|
||||
| Session groups/folders | group_name column in sessions table with ALTER TABLE migration. Pane.group field in layout store. Collapsible group headers in sidebar. Right-click to set group. | 2026-03-06 |
|
||||
| Auto-update signing key | Generated minisign keypair. Pubkey set in tauri.conf.json. Private key for TAURI_SIGNING_PRIVATE_KEY GitHub secret. | 2026-03-06 |
|
||||
| Agent teams: frontend routing only | Subagent panes created by frontend dispatcher, not separate sidecar processes. Parent sidecar handles all messages; routing uses SDK's parentId field. Avoids process explosion for nested subagents. | 2026-03-06 |
|
||||
| SUBAGENT_TOOL_NAMES detection | Detect subagent spawn by tool_call name ('Agent', 'Task', 'dispatch_agent'). Simple Set lookup, easily extensible. | 2026-03-06 |
|
||||
|
||||
## Open Questions
|
||||
|
||||
1. **Node.js or Deno for sidecar?** Resolved: Deno-first with Node.js fallback. SidecarCommand struct in sidecar.rs abstracts the choice. Deno preferred (runs TS directly, compiles to single binary). Falls back to Node.js if Deno not in PATH.
|
||||
2. **Multi-machine support?** Remote agents via WebSocket. Phase 7+ feature.
|
||||
3. **Agent Teams integration?** Experimental Anthropic feature. Natural fit but adds complexity. Phase 7+.
|
||||
3. **Agent Teams integration?** Phase 7 — frontend routing implemented (subagent pane spawning, parent/child navigation). Needs real-world testing with CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1.
|
||||
4. **Electron escape hatch threshold?** If Canvas xterm.js proves >50ms latency on target system with 4 panes, switch to Electron. Benchmark in Phase 2.
|
||||
|
||||
## Error Handling Strategy
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue