From 4f2614186de157f9a8aceb99f6f8146bcb667b30 Mon Sep 17 00:00:00 2001 From: Hibryda Date: Fri, 6 Mar 2026 14:23:24 +0100 Subject: [PATCH] chore: update README, TODO, and CHANGELOG for Phase 6 completion --- .claude/CLAUDE.md | 2 +- CHANGELOG.md | 4 ++++ CLAUDE.md | 11 ++++++++--- README.md | 18 ++++++++++++++++-- TODO.md | 3 ++- 5 files changed, 31 insertions(+), 7 deletions(-) diff --git a/.claude/CLAUDE.md b/.claude/CLAUDE.md index 3936b92..94aff1b 100644 --- a/.claude/CLAUDE.md +++ b/.claude/CLAUDE.md @@ -4,7 +4,7 @@ - v1 is a single-file Python app (`bterminal.py`). Changes are localized. - v2 docs are in `docs/`. Architecture decisions are in `docs/task_plan.md`. -- MVP complete (Phases 1-4). Phase 5 (Agent Tree + Polish) in progress: agent tree viz, status bar, notifications, settings dialog done. Remaining: tree node click-to-focus, subtree cost display, ctx integration. +- All 6 phases complete. Phase 5 partial: tree node click-to-focus, subtree cost display, ctx integration still pending. Phase 6 (packaging) done: install-v2.sh, .deb/.AppImage bundles, GitHub Actions CI. - Consult Memora (tag: `bterminal`) before making architectural changes. ## Documentation References diff --git a/CHANGELOG.md b/CHANGELOG.md index 9a6ad06..193ddf0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] ### Added +- Build-from-source installer `install-v2.sh` with 6-step dependency checking (Node.js 20+, Rust 1.77+, WebKit2GTK, GTK3, and 8 other system libraries), auto-install via apt, binary install to `~/.local/bin/bterminal-v2` with desktop entry (Phase 6) +- Tauri bundle configuration for .deb and AppImage targets with category, descriptions, and deb dependencies (Phase 6) +- GitHub Actions release workflow (`.github/workflows/release.yml`): triggered on `v*` tags, builds on Ubuntu 22.04 with Rust/npm caching, uploads .deb + AppImage as GitHub Release artifacts (Phase 6) +- Regenerated application icons from `bterminal.svg` as RGBA PNGs (32x32, 128x128, 256x256, 512x512, .ico) (Phase 6) - Agent tree visualization: SVG tree of tool calls with horizontal layout, bezier edges, status-colored nodes (AgentTree.svelte + agent-tree.ts) (Phase 5) - Global status bar showing terminal/agent pane counts, active agents with pulse animation, total tokens and cost (StatusBar.svelte) (Phase 5) - Toast notification system with auto-dismiss (4s), max 5 visible, color-coded by type (notifications.svelte.ts + ToastContainer.svelte) (Phase 5) diff --git a/CLAUDE.md b/CLAUDE.md index 820eacb..adadcd6 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -2,7 +2,7 @@ ## Project Overview -Terminal emulator with SSH and Claude Code session management. v1 (GTK3+VTE Python) is production-stable. v2 redesign (Tauri 2.x + Svelte 5 + Claude Agent SDK) MVP complete, Phase 5 (polish) in progress. +Terminal emulator with SSH and Claude Code session management. v1 (GTK3+VTE Python) is production-stable. v2 redesign (Tauri 2.x + Svelte 5 + Claude Agent SDK) all 6 phases complete. Packaging: .deb + AppImage via GitHub Actions CI. - **Repository:** github.com/DexterFromLab/BTerminal - **License:** MIT @@ -18,7 +18,9 @@ Terminal emulator with SSH and Claude Code session management. v1 (GTK3+VTE Pyth |------|-------------| | `bterminal.py` | v1 main application (2092 lines, GTK3+VTE) | | `ctx` | Context manager CLI tool (SQLite-based) | -| `install.sh` | System installer | +| `install.sh` | v1 system installer | +| `install-v2.sh` | v2 build-from-source installer (Node.js 20+, Rust 1.77+, system libs) | +| `.github/workflows/release.yml` | CI: builds .deb + AppImage on v* tags, uploads to GitHub Releases | | `docs/task_plan.md` | v2 architecture decisions and strategies | | `docs/phases.md` | v2 implementation phases (1-6) | | `docs/findings.md` | v2 research findings | @@ -55,7 +57,7 @@ Terminal emulator with SSH and Claude Code session management. v1 (GTK3+VTE Pyth - Context DB: `~/.claude-context/context.db` - Theme: Catppuccin Mocha -## v2 Stack (Phase 5 in progress, branch: v2-mission-control) +## v2 Stack (all phases complete, branch: v2-mission-control) - Tauri 2.x (Rust backend) + Svelte 5 (frontend) - xterm.js with Canvas addon (no WebGL on WebKit2GTK) @@ -81,6 +83,9 @@ sudo apt install python3-gi gir1.2-gtk-3.0 gir1.2-vte-2.91 # v2 (development, branch v2-mission-control) cd v2 && npm install && npm run tauri dev # Dev mode cd v2 && npm run tauri build # Release build + +# v2 install from source (builds + installs to ~/.local/bin/bterminal-v2) +./install-v2.sh ``` ## Conventions diff --git a/README.md b/README.md index 440109e..f0104c7 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Terminal with session panel (MobaXterm-style), built with GTK 3 + VTE. Catppuccin Mocha theme. -> **v2 Phase 5 in progress (MVP complete, polish underway):** Multi-session Claude agent dashboard using Tauri 2.x + Svelte 5. Features: multi-pane terminal with PTY backend, agent panes with structured output and tree visualization, SQLite session persistence with layout restore, live markdown file viewer, global status bar with cost tracking, toast notifications, settings dialog, CSS Grid tiling, and Catppuccin theme. Branch `v2-mission-control`. See [docs/task_plan.md](docs/task_plan.md) for architecture and [docs/phases.md](docs/phases.md) for implementation plan. +> **v2 all phases complete:** Multi-session Claude agent dashboard using Tauri 2.x + Svelte 5. Features: multi-pane terminal with PTY backend, agent panes with structured output and tree visualization, SQLite session persistence with layout restore, live markdown file viewer, global status bar with cost tracking, toast notifications, settings dialog, CSS Grid tiling, Catppuccin theme, .deb + AppImage packaging, and GitHub Actions CI. Branch `v2-mission-control`. See [docs/task_plan.md](docs/task_plan.md) for architecture and [docs/phases.md](docs/phases.md) for implementation plan. ![BTerminal](screenshot.png) @@ -32,7 +32,21 @@ The installer will: 4. Initialize context database at `~/.claude-context/context.db` 5. Add desktop entry to application menu -### Manual dependency install (Debian/Ubuntu/Pop!_OS) +### v2 Installation (Tauri — build from source) + +Requires Node.js 20+, Rust 1.77+, and system libraries (WebKit2GTK 4.1, GTK3, etc.). + +```bash +git clone https://github.com/DexterFromLab/BTerminal.git +cd BTerminal +./install-v2.sh +``` + +The installer checks all dependencies, offers to install missing system packages via apt, builds the Tauri app, and installs the binary as `bterminal-v2` in `~/.local/bin/`. + +Pre-built .deb and AppImage packages are available from [GitHub Releases](https://github.com/DexterFromLab/BTerminal/releases) (built via CI on version tags). + +### v1 Manual dependency install (Debian/Ubuntu/Pop!_OS) ```bash sudo apt install python3-gi gir1.2-gtk-3.0 gir1.2-vte-2.91 diff --git a/TODO.md b/TODO.md index 188093b..f976f1b 100644 --- a/TODO.md +++ b/TODO.md @@ -3,7 +3,6 @@ ## Active - [ ] **Phase 5 remaining** -- Click tree node -> focus agent pane (onNodeClick wiring), subtree cost display in tree, ctx integration (port from v1). -- [ ] **Phase 6: Packaging + Distribution** -- install.sh v2, AppImage, .deb, GitHub Actions CI, auto-update. - [ ] **Markdown rendering in agent text messages** -- Currently plain text; needs marked.js integration in AgentPane text blocks. - [ ] **Testing** -- vitest for sdk-messages adapter, cargo test for sidecar/session/watcher, Playwright for e2e. - [ ] **Pane drag-resize handles** -- Deferred from Phase 2, current presets sufficient for MVP. @@ -11,9 +10,11 @@ - [ ] **Session resume (SDK resumeSessionId)** -- Allow resuming previous agent sessions. - [ ] **Evaluate Deno as sidecar runtime** -- Single binary, better packaging than Node.js. Test SDK compatibility. - [ ] **Syntax highlighting in markdown viewer** -- Shiki integration deferred for bundle size. +- [ ] **Tauri auto-update plugin** -- Needs signing key + update server setup. Deferred from Phase 6. ## Completed +- [x] **Phase 6: Packaging + Distribution** -- install-v2.sh (build-from-source with dependency checks), tauri.conf.json bundle config (deb+appimage), icon regeneration, GitHub Actions release workflow (.deb + AppImage on v* tags). Build verified: .deb 4.3 MB, AppImage 103 MB. | Done: 2026-03-06 - [x] **Phase 5 partial: Agent Tree + Polish** -- Agent tree SVG visualization, global status bar, toast notifications, settings dialog + SQLite backend, keyboard shortcuts (Ctrl+W, Ctrl+,), agent dispatcher toast integration. | Done: 2026-03-06 - [x] **Phase 4: Session Management + Markdown Viewer** -- SQLite persistence (rusqlite, WAL), session CRUD, layout restore on startup, file watcher (notify crate), MarkdownPane with marked.js and Catppuccin styles, sidebar file picker. | Done: 2026-03-06 - [x] **Phase 3: Agent SDK Integration (core + polish)** -- Sidecar manager with restart, crash detection, auto-scroll lock, agent pane with messages/cost/stop/restart. | Done: 2026-03-06