refactor: extract sessions page components (Task 4.2)

- Extract CreateSessionForm component with self-contained form state
- Extract SessionList component managing confirmations and health polling
- Extract SessionCard presentational component for active/recent variants
- Add ConfirmDialog reusable UI primitive
- Slim sessions page from ~668 lines to 156 lines
- Keep lastSession section inline per design decision

Quality gates: tsc (pass), eslint (pass), build (pass)
Refs: repo-restructure Task 4.2
This commit is contained in:
Developer
2026-06-02 21:57:44 +00:00
parent ae420708f2
commit 6bd7443e68
7 changed files with 509 additions and 260 deletions
+28 -2
View File
@@ -1,10 +1,36 @@
# Progress
## Status
In Progress
In Progress — Task 4.2 completed
## Tasks
- [x] 1.1 Centralize types and extract seed data
- [x] 1.2 Extract FileBrowser and shared UI primitives
- [x] 2.1 Extract global styles and tokens
- [x] 2.2 Extract CSS modules (terminal + git)
- [x] 2.3 Extract CSS modules (session/settings) + delete styles.css
- [x] 3.1 Extract shared auth dependencies
- [x] 3.2 Create Pydantic schemas directory
- [x] 3.3 Split services/docker.py
- [x] 3.4 Slim tool_instances router
- [x] 3.5 Slim git_repositories and config_profiles routers
- [x] 4.1 Split tool-workshop page into tabs
- [x] 4.2 Extract sessions page components
- [ ] 4.3 Extract dashboard and repo-workspace components
- [ ] 4.4 Rename files to naming convention
- [ ] 5.1 Add tests for extracted components
- [ ] 5.2 Documentation and cleanup
## Files Changed
## Files Changed (Task 4.2)
- NEW: components/ui/ConfirmDialog.tsx
- NEW: components/features/session/SessionCard.tsx
- NEW: components/features/session/SessionList.tsx
- NEW: components/features/session/CreateSessionForm.tsx
- NEW: components/features/session/index.ts
- MOD: pages/sessions.tsx (668 → 156 lines)
- MOD: components/ui/index.ts
## Notes
- Sessions page slimmed from 668 to 156 lines
- All quality gates pass: typecheck, lint, build
- No behavior changes