063a839790
- Add clone_mode and branch fields to tool_instances - Add ssh_key_id to git_repositories for per-repo SSH key assignment - Implement host-side git cloning with branch selection (default: main) - Mount SSH keys into containers for git operations in clone mode - Add dirty state check on clone-mode instance deletion with confirmation - Update SessionsPage with mount/clone selector, branch input, SSH key display - Add SSH key selector to repository creation form - Add dirty delete confirmation modal with changed files list - Update API schemas and endpoints for new fields - Sync delta specs to main specs (git-repo, tool-instances, repo-clone-mode) - Archive completed OpenSpec change: repo-clone-mode-with-ssh - Document git requirement for custom tool types Quality gates: Frontend typecheck and build passed OpenSpec: repo-clone-mode-with-ssh archived with all tasks complete
99 lines
2.2 KiB
Markdown
99 lines
2.2 KiB
Markdown
# UI Redesign - Design
|
|
|
|
## Information Architecture
|
|
|
|
```
|
|
App
|
|
├── Home
|
|
│ ├── Hero / status
|
|
│ ├── Open sessions
|
|
│ ├── Available projects
|
|
│ └── Session creation
|
|
├── Sessions
|
|
├── Projects
|
|
├── Tool Workshop
|
|
├── Settings
|
|
│ ├── General
|
|
│ └── SSH Keys
|
|
└── Legacy routes
|
|
└── Redirect to new locations
|
|
```
|
|
|
|
## Home Page
|
|
|
|
### Purpose
|
|
|
|
Provide a fast, glanceable overview of the user's active work.
|
|
|
|
### Sections
|
|
|
|
1. **Hero**
|
|
- Greeting
|
|
- Short status line
|
|
- Primary actions: New Project, Open Session, Settings
|
|
|
|
2. **Summary strip**
|
|
- Small count cards for sessions, projects, and tooling state
|
|
|
|
3. **Open Sessions**
|
|
- Primary section
|
|
- Session cards with project, repository, tool type, status, and actions
|
|
|
|
4. **Available Projects**
|
|
- Secondary section
|
|
- Project cards with quick entry into the project workspace
|
|
|
|
5. **Session composer**
|
|
- Optional compact create flow if it fits the page cleanly
|
|
|
|
## Settings Page
|
|
|
|
### Layout
|
|
|
|
Tabbed shell with one content area and two tabs:
|
|
|
|
- General
|
|
- SSH Keys
|
|
|
|
### Tab Responsibilities
|
|
|
|
**General**
|
|
- Theme
|
|
- Git identity
|
|
- Default editor
|
|
|
|
**SSH Keys**
|
|
- List keys
|
|
- Create key
|
|
- Copy public key
|
|
- Delete key
|
|
|
|
**Tool Types and Tool Configs**
|
|
- Moved to Tool Workshop page (`/tool-workshop`)
|
|
- Centralized tool management with split-pane UI
|
|
|
|
## Visual Direction
|
|
|
|
- Font: Inter for UI text
|
|
- Code font: monospace only for technical fields
|
|
- Palette: warm light surfaces, forest green primary, muted utility accents
|
|
- Dark mode: charcoal surfaces with softened accents
|
|
- Styling: editorial, structured, high-contrast hierarchy, minimal chrome
|
|
|
|
## Routing
|
|
|
|
- `/` -> Home
|
|
- `/sessions` -> Sessions page (kept as top-level navigation)
|
|
- `/settings` -> General tab
|
|
- `/settings/ssh-keys` -> SSH Keys tab
|
|
- `/tool-workshop` -> Tool Workshop (replaces settings tabs for tool management)
|
|
- legacy `/ssh-keys` -> redirect to settings tab
|
|
- legacy `/tool-types`, `/tool-configs` -> redirect to tool-workshop
|
|
|
|
## Component Strategy
|
|
|
|
- Reuse shell and existing APIs
|
|
- Replace the dashboard page with the new home overview
|
|
- Convert the settings layout into a shared tab shell
|
|
- Keep changes focused to the frontend layer
|