docs: update all docs for Phase 4 completion and MVP status
- phases.md: Phase 3 polish + Phase 4 items checked off as complete - progress.md: Phase 4 session details added - task_plan.md: status updated to "MVP COMPLETE" - README.md: v2 status updated to "MVP complete (Phase 4 done)" - TODO.md: Phase 3/4 moved to Completed, new post-MVP items added - CHANGELOG.md: Phase 4 entries added under [Unreleased] - .claude/CLAUDE.md: workflow status and constraints updated
This commit is contained in:
parent
bdb87978a9
commit
cd1271adf0
7 changed files with 72 additions and 34 deletions
|
|
@ -107,19 +107,19 @@ bterminal-v2/
|
|||
|
||||
---
|
||||
|
||||
## Phase 3: Agent SDK Integration [status: in_progress] — MVP
|
||||
## Phase 3: Agent SDK Integration [status: complete] — MVP
|
||||
|
||||
### Backend
|
||||
- [x] Node.js sidecar: spawns `claude` CLI with `--output-format stream-json` (not Agent SDK query() — avoids npm dep + version churn)
|
||||
- [x] Sidecar communication: Rust spawns Node.js, stdio NDJSON
|
||||
- [x] Sidecar lifecycle: auto-start on app launch, shutdown on exit
|
||||
- [ ] Sidecar lifecycle: detect crash, offer restart in UI
|
||||
- [x] Tauri commands: agent_query, agent_stop, agent_ready
|
||||
- [x] Sidecar lifecycle: detect crash, offer restart in UI (agent_restart command + restart button)
|
||||
- [x] Tauri commands: agent_query, agent_stop, agent_ready, agent_restart
|
||||
|
||||
### Frontend
|
||||
- [x] SDK message adapter: parses stream-json into 9 typed AgentMessage types (abstraction layer)
|
||||
- [x] Agent bridge: Tauri IPC adapter (invoke + event listeners)
|
||||
- [x] Agent dispatcher: singleton routing sidecar events to store
|
||||
- [x] Agent dispatcher: singleton routing sidecar events to store, crash detection
|
||||
- [x] Agent store: session state, message history, cost tracking (Svelte 5 $state)
|
||||
- [x] Agent pane: renders structured messages
|
||||
- [x] Text -> plain text (markdown rendering deferred)
|
||||
|
|
@ -132,7 +132,7 @@ bterminal-v2/
|
|||
- [ ] Subagent spawn -> tree node + optional new pane (Phase 5)
|
||||
- [x] Agent status indicator (starting/running/done/error)
|
||||
- [x] Start/stop agent from UI (prompt form + stop button)
|
||||
- [ ] Auto-scroll with scroll-lock on user scroll-up
|
||||
- [x] Auto-scroll with scroll-lock on user scroll-up
|
||||
- [ ] Session resume (SDK `resume: sessionId`)
|
||||
- [x] Keyboard: Ctrl+Shift+N new agent
|
||||
- [x] Sidebar: agent session button
|
||||
|
|
@ -141,21 +141,23 @@ bterminal-v2/
|
|||
|
||||
---
|
||||
|
||||
## Phase 4: Session Management + Markdown Viewer [status: not_started] — MVP
|
||||
## Phase 4: Session Management + Markdown Viewer [status: complete] — MVP
|
||||
|
||||
### Sessions
|
||||
- [ ] SQLite persistence for sessions (rusqlite)
|
||||
- [ ] Session types: SSH, Claude CLI, Agent SDK, Local Shell
|
||||
- [ ] Session CRUD in sidebar
|
||||
- [ ] Session groups/folders
|
||||
- [ ] Remember last layout on restart
|
||||
- [x] SQLite persistence for sessions (rusqlite with bundled feature)
|
||||
- [x] Session types: terminal, agent, markdown (SSH via terminal args)
|
||||
- [x] Session CRUD: save, delete, update_title, touch (last_used_at)
|
||||
- [ ] Session groups/folders (deferred — not needed for MVP)
|
||||
- [x] Remember last layout on restart (preset + pane_ids in layout_state table)
|
||||
- [x] Auto-restore panes on app startup (restoreFromDb in layout store)
|
||||
|
||||
### Markdown Viewer
|
||||
- [ ] File watcher (notify crate) -> Tauri events -> frontend
|
||||
- [ ] Markdown rendering (marked.js or remark)
|
||||
- [ ] Syntax highlighting (Shiki)
|
||||
- [ ] Open from sidebar or from agent output file references
|
||||
- [ ] Debounce file watcher (200ms)
|
||||
- [x] File watcher (notify crate v6) -> Tauri events -> frontend
|
||||
- [x] Markdown rendering (marked.js)
|
||||
- [ ] Syntax highlighting (Shiki) — deferred, adds significant bundle size
|
||||
- [x] Open from sidebar (file picker button "M")
|
||||
- [x] Catppuccin-themed markdown styles (h1-h3, code, pre, tables, blockquotes)
|
||||
- [x] Live reload on file change
|
||||
|
||||
**Milestone: After Phase 4 = MVP ship.** Full session management, structured agent panes, terminal panes, markdown viewer.
|
||||
|
||||
|
|
|
|||
|
|
@ -80,9 +80,25 @@ Architecture decision: Uses `claude` CLI with `--output-format stream-json` inst
|
|||
- [x] Renamed: `layout.ts` -> `layout.svelte.ts`, `agents.ts` -> `agents.svelte.ts`, `sessions.ts` -> `sessions.svelte.ts`
|
||||
- [x] Updated all import paths in 5 files to use `.svelte` suffix (e.g., `from './stores/layout.svelte'`)
|
||||
|
||||
### Phase 3 Polish (2026-03-06)
|
||||
- [x] Sidecar crash detection: dispatcher listens for sidecar-exited event, marks running sessions as error
|
||||
- [x] Restart UI: "Restart Sidecar" button in AgentPane error bar, calls agent_restart command
|
||||
- [x] Auto-scroll lock: scroll handler disables auto-scroll when user scrolls >50px from bottom, "Scroll to bottom" button appears
|
||||
|
||||
### Phase 4: Session Management + Markdown Viewer (2026-03-06)
|
||||
- [x] rusqlite 0.31 (bundled) + dirs 5 + notify 6 added to Cargo.toml
|
||||
- [x] SessionDb: SQLite with WAL mode, sessions table + layout_state singleton
|
||||
- [x] Session CRUD: list, save, delete, update_title, touch (7 Tauri commands)
|
||||
- [x] Frontend session-bridge.ts: typed invoke wrappers for all session/layout commands
|
||||
- [x] Layout store wired to persistence: addPane/removePane/focusPane/setPreset all persist
|
||||
- [x] restoreFromDb() on app startup restores panes in layout order
|
||||
- [x] FileWatcherManager: notify crate watches files, emits Tauri "file-changed" events
|
||||
- [x] MarkdownPane component: marked.js rendering, Catppuccin-themed styles, live reload
|
||||
- [x] Sidebar "M" button opens file picker for .md/.markdown/.txt files
|
||||
- [x] TilingGrid routes markdown pane type to MarkdownPane component
|
||||
|
||||
### Next Steps
|
||||
- [ ] Markdown rendering in agent text messages
|
||||
- [ ] Sidecar crash detection and restart UI
|
||||
- [ ] Auto-scroll lock on user scroll-up
|
||||
- [ ] Testing: vitest for sdk-messages adapter, cargo test for sidecar
|
||||
- [ ] Begin Phase 4: Session Management + Markdown Viewer
|
||||
- [ ] Phase 5: Agent Tree + Polish
|
||||
- [ ] Phase 6: Packaging + Distribution
|
||||
|
|
|
|||
|
|
@ -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: BUILDING (Phase 3 in progress — Rev 2)
|
||||
## Status: MVP COMPLETE (Phase 4 done — Rev 2)
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue