6bd7443e68
- 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
1.3 KiB
1.3 KiB
Progress
Status
In Progress — Task 4.2 completed
Tasks
- 1.1 Centralize types and extract seed data
- 1.2 Extract FileBrowser and shared UI primitives
- 2.1 Extract global styles and tokens
- 2.2 Extract CSS modules (terminal + git)
- 2.3 Extract CSS modules (session/settings) + delete styles.css
- 3.1 Extract shared auth dependencies
- 3.2 Create Pydantic schemas directory
- 3.3 Split services/docker.py
- 3.4 Slim tool_instances router
- 3.5 Slim git_repositories and config_profiles routers
- 4.1 Split tool-workshop page into tabs
- 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 (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