diff --git a/.claude/CLAUDE.md b/.claude/CLAUDE.md index 7f3fdb4..adf132c 100644 --- a/.claude/CLAUDE.md +++ b/.claude/CLAUDE.md @@ -65,7 +65,7 @@ - v3 workspace store (`workspace.svelte.ts`) replaces layout store for v3. Groups loaded from `~/.config/bterminal/groups.json` via `groups-bridge.ts`. State: groups, activeGroupId, activeTab, focusedProjectId. Derived: activeGroup, activeProjects. - v3 groups backend (`groups.rs`): load_groups(), save_groups(), default_groups(). Tauri commands: groups_load, groups_save. - v3 SQLite additions: agent_messages table (per-project message persistence), project_agent_state table (sdkSessionId, cost, status per project), sessions.project_id column. -- v3 App.svelte fully rewritten: no sidebar, no TilingGrid. Renders GlobalTabBar + tab content (Sessions/Docs/Context/Settings) + StatusBar. +- v3 App.svelte fully rewritten: no sidebar, no TilingGrid. Renders GlobalTabBar (3 tabs + gear icon) + tab content (Sessions/Docs/Context) + settings drawer (right-side overlay, 32em, semi-transparent backdrop, Escape/click-outside to close) + StatusBar. Settings is NOT a tab — it's a collapsible side drawer toggled by gear icon in GlobalTabBar or Ctrl+,. - v3 component tree: App -> GlobalTabBar + ProjectGrid -> ProjectBox -> (ProjectHeader + ClaudeSession + TeamAgentsPanel + TerminalTabs). See `docs/v3-task_plan.md` for full tree. - Svelte 5 event syntax: use `onclick` not `on:click`. Svelte 5 requires lowercase event handler attributes (no colon syntax). diff --git a/CHANGELOG.md b/CHANGELOG.md index e5935c8..6ca5a54 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed +- Settings converted from full-page tab to collapsible side drawer: right-side overlay (32em width, semi-transparent backdrop), close via Escape/click-outside/close button +- GlobalTabBar reduced from 4 tabs (Sessions/Docs/Context/Settings) to 3 tabs + gear icon toggle for settings drawer; gear icon highlights blue when active +- `WorkspaceTab` type reduced from `'sessions' | 'docs' | 'context' | 'settings'` to `'sessions' | 'docs' | 'context'` +- Keyboard shortcuts: Alt+1..3 for tabs (was Alt+1..4), Ctrl+, toggles settings drawer (was setActiveTab('settings')), Escape closes drawer +- SettingsTab styling adjusted for drawer context: reduced padding (12px 16px), removed max-width, flex:1 for scrollable content +- App.svelte wraps tab content + settings drawer in `.content-area` container with relative positioning for drawer overlay + ### Added - SettingsTab split font controls: separate UI font (sans-serif options: System Sans-Serif, Inter, Roboto, Open Sans, Lato, Noto Sans, Source Sans 3, IBM Plex Sans, Ubuntu) and Terminal font (monospace options: JetBrains Mono, Fira Code, Cascadia Code, Source Code Pro, IBM Plex Mono, Hack, Inconsolata, Ubuntu Mono, monospace), each with custom themed dropdown + size stepper (8-24px), font previews in own typeface - `--term-font-family` and `--term-font-size` CSS custom properties in catppuccin.css (defaults: JetBrains Mono fallback chain, 13px) @@ -18,7 +26,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - SettingsTab global settings section: theme selector, UI font dropdown (sans-serif options), Terminal font dropdown (monospace options), each with size stepper (8-24px), default shell input, default CWD input — all custom themed dropdowns (no native `