UX: collapsible sidebar, settings accordion, global backend defaults, tab rename #4

Merged
jknapp merged 5 commits from feature/ux-improvements into main 2026-05-24 16:39:34 +00:00
Owner

Summary

Four focused UX improvements on feature/ux-improvements:

  • Collapsible sidebar (icon rail) — left sidebar can collapse to a narrow rail with Projects/MCP/Settings icon buttons. Clicking an icon expands the sidebar to that view. State persisted to localStorage.
  • Settings panel accordion — grouped into General, Backends, Container, Git/SSH, Tools, Updates. Multiple sections can be open at once; open/closed state persisted per-section.
  • Global backend defaults with runtime fallbackGlobalAwsSettings.default_model_id, plus new GlobalOllamaSettings and GlobalOpenAiCompatibleSettings (base_url + default_model_id each). When a per-project field is blank, env vars and config fingerprints fall back to the global value, so editing a global default triggers container recreation on next start for any project that was relying on the default. Existing validation in start_project_container was relaxed to accept either a per-project value OR a global one.
  • Right-click tab rename — right-click (or double-click) a terminal tab to set a custom display name. Renames render as ProjectName: CustomName and persist in Project.renamed_session_names. Entry is pruned automatically when the session closes.

Commits

  • 7acc8b8 Add collapsible sidebar with icon rail
  • 9b78b4b Group Settings panel into accordion sections
  • 5b1c801 Add global backend defaults with runtime fallback
  • 2fa6abe Allow renaming terminal tabs (persisted per project)

Test plan

  • cd app && npx tauri dev and verify:
    • Sidebar collapse/expand chevron works; clicking a rail icon expands to that view; collapsed state survives an app restart
    • Settings accordion sections open/collapse independently; section state survives a restart
    • Settings → Backends shows AWS, Ollama, and OpenAI Compatible blocks with new default_model_id / base_url inputs
    • With an Ollama project whose model field is blank but the global default is set, starting the container recreates it and ANTHROPIC_MODEL is the global default
    • Changing the global default model with an existing project running causes the next start to recreate the container
    • Right-clicking a terminal tab shows the context menu; rename + reset + close all behave correctly; rename survives an app restart; closing a renamed tab clears the entry on the project

Automated:

  • cargo check (src-tauri) clean
  • npm run build (app) clean
  • npx vitest run — 33 passing (7 pre-existing Tauri-in-jsdom unhandled errors unchanged)

🤖 Generated with Claude Code

## Summary Four focused UX improvements on `feature/ux-improvements`: - **Collapsible sidebar (icon rail)** — left sidebar can collapse to a narrow rail with Projects/MCP/Settings icon buttons. Clicking an icon expands the sidebar to that view. State persisted to localStorage. - **Settings panel accordion** — grouped into General, Backends, Container, Git/SSH, Tools, Updates. Multiple sections can be open at once; open/closed state persisted per-section. - **Global backend defaults with runtime fallback** — `GlobalAwsSettings.default_model_id`, plus new `GlobalOllamaSettings` and `GlobalOpenAiCompatibleSettings` (base_url + default_model_id each). When a per-project field is blank, env vars and config fingerprints fall back to the global value, so editing a global default triggers container recreation on next start for any project that was relying on the default. Existing validation in `start_project_container` was relaxed to accept either a per-project value OR a global one. - **Right-click tab rename** — right-click (or double-click) a terminal tab to set a custom display name. Renames render as `ProjectName: CustomName` and persist in `Project.renamed_session_names`. Entry is pruned automatically when the session closes. ## Commits - `7acc8b8` Add collapsible sidebar with icon rail - `9b78b4b` Group Settings panel into accordion sections - `5b1c801` Add global backend defaults with runtime fallback - `2fa6abe` Allow renaming terminal tabs (persisted per project) ## Test plan - [ ] `cd app && npx tauri dev` and verify: - [ ] Sidebar collapse/expand chevron works; clicking a rail icon expands to that view; collapsed state survives an app restart - [ ] Settings accordion sections open/collapse independently; section state survives a restart - [ ] Settings → Backends shows AWS, Ollama, and OpenAI Compatible blocks with new `default_model_id` / `base_url` inputs - [ ] With an Ollama project whose model field is blank but the global default is set, starting the container recreates it and `ANTHROPIC_MODEL` is the global default - [ ] Changing the global default model with an existing project running causes the next start to recreate the container - [ ] Right-clicking a terminal tab shows the context menu; rename + reset + close all behave correctly; rename survives an app restart; closing a renamed tab clears the entry on the project Automated: - `cargo check` (src-tauri) clean - `npm run build` (app) clean - `npx vitest run` — 33 passing (7 pre-existing Tauri-in-jsdom unhandled errors unchanged) 🤖 Generated with [Claude Code](https://claude.com/claude-code)
jknapp added 5 commits 2026-05-24 15:54:58 +00:00
Pulls in 15 upstream commits since the April 3 bundling snapshot
(msieurthenardier/mission-control). Notable changes:

- agentic-workflow rewritten as the "fast" variant: per-leg design and
  implement, single review and commit across the whole flight
- New Skill-Project Boundary section: skills no longer read or write
  project-owned artifacts by literal heading
- routine-maintenance scoped to post-mission only; adds state-machine
  reachability and cache freshness audits
- Test metrics capture threaded through debrief, maintenance, and flight
- Crew prompts no longer carry skill-required instructions; SKILL.md is
  the protocol
- Worktree git strategy removed; standardized on {target-project}
- Jira artifact template removed upstream

Local URL correction in init-project/README.md preserved
(anthropics/flight-control -> msieurthenardier/mission-control).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Persist collapsed state in localStorage. When collapsed, render a
narrow rail with Projects/MCP/Settings icon buttons that expand the
sidebar to that view on click.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Multiple-open accordion with per-section state persisted to
localStorage. Sections: General, Backends, Container, Git/SSH,
Tools, Updates. General is open by default; the rest are collapsed.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
New fields: GlobalAwsSettings.default_model_id, plus
GlobalOllamaSettings and GlobalOpenAiCompatibleSettings (base_url +
default_model_id each). When a per-project base_url or model_id is
blank, the container env vars and config fingerprints fall back to
the global value. Container recreation is triggered whenever the
resolved value changes, so editing a global default updates existing
projects on next start.

UI: added the new fields to AwsSettings and two new global settings
components, slotted into the Backends accordion.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Allow renaming terminal tabs (persisted per project)
All checks were successful
Build App / compute-version (pull_request) Successful in 3s
Build App / build-windows (pull_request) Successful in 5m33s
Build Container / build-container (pull_request) Successful in 7m58s
Build App / build-linux (pull_request) Successful in 4m51s
Build App / build-macos (pull_request) Successful in 2m39s
Build App / create-tag (pull_request) Has been skipped
Build App / sync-to-github (pull_request) Has been skipped
2fa6abeae0
Right-click a tab (or double-click) to rename. Renamed labels show
as "ProjectName: CustomName" and are stored in the project's
renamed_session_names map. The entry is cleared on tab close.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
jknapp merged commit 1a5fbd6be4 into main 2026-05-24 16:39:34 +00:00
jknapp deleted branch feature/ux-improvements 2026-05-24 16:39:34 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: CyberCoveLLC/Triple-C#4