v3 architecture planning: task plan with core concept, user requirements, and architecture questions for adversarial review. Findings doc with codebase reuse analysis (keep/replace/drop). Progress log for v3 sessions.
3 KiB
3 KiB
BTerminal v3 — Mission Control Redesign
Goal
Transform BTerminal from a multi-pane terminal/agent tool into a multi-project mission control — a helm for managing multiple development projects simultaneously, each with its own Claude agent session, team agents, terminals, and settings.
Status: Planning — Rev 0
Core Concept
Project Groups are workspaces. Each group has up to 5 projects arranged horizontally. One group visible at a time. Projects have their own Claude subscription, working directory, icon, and settings. The app is a dashboard for orchestrating Claude agents across a portfolio of projects.
Key Mental Model
BTerminal v2: Terminal emulator with agent sessions (panes in a grid)
BTerminal v3: Project orchestration dashboard (projects in a workspace)
User Requirements (verbatim)
- Projects arranged in project groups (many groups, switch between them)
- Each group has up to 5 projects shown horizontally
- Group/project config via main menu (command palette / hidden drawer, on keystroke)
- Per-project settings:
- Claude subscription (multi-account via switcher-claude)
- Working directory
- Project icon (nerd font, suggested but settable)
- Project name
- Project identifier (derived from name, lowercase-dashed, settable)
- Project description (optional)
- Enabled flag (bool)
- Project group = workspace on screen
- Each project box has:
- Claude session box (default open, continues previous session)
- Team agents window (to the right, shows spawned subagents)
- Terminal tabs below (agent terminals + user terminals, tabbed)
- 3 workspace tabs:
- Tab 1: Sessions view (described above)
- Tab 2: MD file viewer (auto-discovered from projects, choosable)
- Tab 3: Settings editor (per-project settings)
- App launchable with
--group <name>CLI arg - JSON config file defines all groups
- Session continuity: resume previous + restore history visually
- SSH sessions: spawnable within a project's terminal tabs or in separate tabs
- ctx viewer: separate tab
Architecture Questions for Adversarial Review
- Config format: JSON file vs SQLite for group/project definitions?
- Layout engine: How to arrange up to 5 project boxes with internal subdivisions?
- Session isolation: One sidecar per project? Shared sidecar with project context?
- State management: How to handle workspace switching (mount/unmount vs hide/show)?
- What survives from v2: Which components/stores/adapters carry over?
- Tab implementation: Browser-style tabs or Svelte component switching?
- Command palette: Build custom or use a library?
- Auto-discovery: Which MD files to surface per project?
- Performance: 5 projects x (session + agents + terminals) = potentially many active panes
Decisions Log
| Decision | Rationale | Date |
|---|---|---|
| (pending adversarial review) |
Errors Encountered
| Error | Cause | Fix | Date |
|---|