94aa88c154
- Add Sessions tab to navigation between Dashboard and Projects - Show active session count badge in navigation - Create SessionsPage with: - Last session section with resume button - Active sessions grid with open/stop actions - Recent sessions list - Create session form with project/repo/tool selectors - Add last_session_id to user config - Update UserConfig schemas (backend and frontend) - Add comprehensive CSS for sessions page Quality gates: typecheck ✓, lint ✓, build ✓
94 lines
2.2 KiB
Markdown
94 lines
2.2 KiB
Markdown
# Sessions Hub - Tasks
|
|
|
|
## Phase 1: Backend Config Update
|
|
|
|
- [ ] **Task 1.1**: Update UserConfig model
|
|
- Add `last_session_id` field to `models/user_config.py`
|
|
- Create Alembic migration
|
|
|
|
- [ ] **Task 1.2**: Update config API
|
|
- Accept `last_session_id` in `api/user_config.py`
|
|
- Update Pydantic schemas
|
|
|
|
## 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 `/sessions` route
|
|
- Create placeholder page
|
|
|
|
## 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
|