diff --git a/docs/v3-findings.md b/docs/v3-findings.md new file mode 100644 index 0000000..8a4f981 --- /dev/null +++ b/docs/v3-findings.md @@ -0,0 +1,35 @@ +# BTerminal v3 — Research Findings + +## Current Codebase Reuse Analysis + +### Can Reuse (with modifications) +- **Agent session infrastructure**: AgentPane, agent store, agent dispatcher, SDK messages adapter, sidecar bridge — core agent functionality stays +- **Terminal infrastructure**: TerminalPane, pty-bridge — terminal rendering unchanged +- **Markdown rendering**: MarkdownPane, highlight utils — markdown viewer stays +- **Sidecar management**: SidecarManager, agent-runner.mjs — backend agent orchestration +- **PTY management**: PtyManager — backend terminal management +- **Session persistence**: session-bridge, SessionDb — needs schema extension for projects +- **Theme system**: theme store, catppuccin CSS — visual layer unchanged +- **Notification system**: toast notifications — stays as-is +- **Claude bridge**: profiles + skills — reusable per project +- **StatusBar**: needs redesign but concept stays + +### Must Replace +- **Layout store**: Current pane-based grid system → project-based workspace system +- **TilingGrid**: CSS Grid tiling → project box layout with internal structure +- **SessionList sidebar**: Pane list → project/group navigation +- **App.svelte**: Root layout completely changes +- **Settings dialog**: Per-app settings → per-project settings + +### Can Drop +- **Detached pane mode**: Doesn't fit the workspace model +- **Drag-resize splitters**: Project boxes have fixed internal layout +- **Layout presets (1-col, 2-col, etc.)**: Replaced by N-project horizontal layout +- **Remote machine integration**: Defer to v4 (complexity too high to combine) +- **ctx ContextPane**: Becomes a workspace tab instead of a pane type + +--- + +## Adversarial Agent Findings + +(To be filled by adversarial review agents) diff --git a/docs/v3-progress.md b/docs/v3-progress.md new file mode 100644 index 0000000..99b77aa --- /dev/null +++ b/docs/v3-progress.md @@ -0,0 +1,9 @@ +# BTerminal v3 — Progress Log + +### Session: 2026-03-07 — Architecture Planning + +#### Phase: Adversarial Design Review +- [ ] Launch architecture agents (advocate, devil's advocate, synthesizer) +- [ ] Collect findings +- [ ] Produce final architecture plan +- [ ] Create implementation phases diff --git a/docs/v3-task_plan.md b/docs/v3-task_plan.md new file mode 100644 index 0000000..a65309c --- /dev/null +++ b/docs/v3-task_plan.md @@ -0,0 +1,75 @@ +# 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) + +1. Projects arranged in **project groups** (many groups, switch between them) +2. Each group has **up to 5 projects** shown horizontally +3. Group/project config via **main menu** (command palette / hidden drawer, on keystroke) +4. 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) +5. Project group = workspace on screen +6. 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) +7. **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) +8. App launchable with `--group ` CLI arg +9. JSON config file defines all groups +10. Session continuity: resume previous + restore history visually +11. SSH sessions: spawnable within a project's terminal tabs or in separate tabs +12. ctx viewer: separate tab + +--- + +## Architecture Questions for Adversarial Review + +1. **Config format**: JSON file vs SQLite for group/project definitions? +2. **Layout engine**: How to arrange up to 5 project boxes with internal subdivisions? +3. **Session isolation**: One sidecar per project? Shared sidecar with project context? +4. **State management**: How to handle workspace switching (mount/unmount vs hide/show)? +5. **What survives from v2**: Which components/stores/adapters carry over? +6. **Tab implementation**: Browser-style tabs or Svelte component switching? +7. **Command palette**: Build custom or use a library? +8. **Auto-discovery**: Which MD files to surface per project? +9. **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 | +|---|---|---|---|