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
2.2 KiB
2.2 KiB
Sessions Hub - Tasks
Phase 1: Backend Config Update
-
Task 1.1: Update UserConfig model
- Add
last_session_idfield tomodels/user_config.py - Create Alembic migration
- Add
-
Task 1.2: Update config API
- Accept
last_session_idinapi/user_config.py - Update Pydantic schemas
- Accept
Phase 2: Frontend Navigation
-
Task 2.1: Add Sessions tab to AppShell
- Insert between Dashboard and Projects
- Add sessions icon
- Show badge with active count
-
Task 2.2: Update router
- Add
/sessionsroute - Create placeholder page
- Add
Phase 3: Sessions Page
-
Task 3.1: Create SessionsPage component
- Page layout with sections
- Loading and error states
-
Task 3.2: Implement Last Session section
- Fetch from user config
- Show session card with resume button
- Handle no last session state
-
Task 3.3: Implement Active Sessions section
- Fetch from sessions context
- Grid of session cards
- Action buttons (Open, Stop, Restart, Delete)
-
Task 3.4: Implement Recent Sessions section
- Show last 5 sessions
- Compact list view
- Status indicators
-
Task 3.5: Implement Create Session section
- Project selector (fetch all projects)
- Repository selector (filtered by project)
- Tool type selector
- Display name input
- Create button with validation
Phase 4: Session Actions
-
Task 4.1: Resume last session
- Navigate to workspace
- Update user config
-
Task 4.2: Open session
- Navigate to workspace with session
-
Task 4.3: Create session
- Call API to create instance
- Update user config with last_session_id
- Refresh sessions list
Phase 5: Polish
-
Task 5.1: Add CSS styles
- Session cards layout
- Badge styling
- Responsive design
-
Task 5.2: Add icons
- Session icon in navigation
- Action icons on cards
Phase 6: Quality Gates
-
Task 6.1: TypeScript check
npm run typecheck
-
Task 6.2: Lint check
npm run lint
-
Task 6.3: Build check
npm run build
-
Task 6.4: Manual verification
- Navigation shows Sessions tab
- Badge shows correct count
- Last session displays
- Can create session from page
- Config persists