Developer
be29da667f
docs: add Task 5.2 report and update progress
...
- Add apply-5.2-report.md with quality gate results
- Update progress.md with completion status
Refs: repo-restructure Task 5.2
2026-06-02 23:01:06 +00:00
Developer
e434c439c9
refactor: rename files to PascalCase components and kebab-case APIs (Task 4.4)
...
- Rename all component files to PascalCase matching exported names
- Move components into feature directories (git/, session/, project/, terminal/, workspace/, ui/, layout/)
- Rename all page files to PascalCase with Page suffix
- Rename all API files to kebab-case
- Update all imports across codebase with corrected relative depths
- Preserve git history via git mv
Quality gates: tsc (pass), eslint (pass), 66/74 tests pass (8 pre-existing failures)
Refs: repo-restructure Task 4.4
2026-06-02 22:58:10 +00:00
Developer
5d5b23894c
test: add tests for extracted components (Task 5.1)
...
- LoadingState.test.tsx: default/custom message rendering
- ErrorState.test.tsx: message, retry button, callback
- FileBrowser.test.tsx: loading, entries, error states
- ToolTypesTab.test.tsx: loading, content, error states
- SessionCard.test.tsx: active/recent variants, unnamed fallback
- CreateSessionForm.test.tsx: render, validation, repo loading
- Fix vite.config.ts resolve.alias for @/ path mapping in tests
Quality gates: vitest 17 new tests pass, 70/74 total pass
(pre-existing 4 failures in projects.test.tsx unrelated)
Refs: repo-restructure Task 5.1
2026-06-02 22:31:29 +00:00
Developer
a6eb6ec788
refactor: extract dashboard, workspace, tool-types, and tool-configs components (Task 4.3)
...
- Extract DashboardSummary, ActiveSessionsList, ProjectsSection, QuickCreateForm,
RecentSessionsSection from dashboard.tsx (480 → 110 lines)
- Extract WorkspaceSidebar from repo-workspace.tsx
- Extract ToolTypeList + ToolTypeForm from tool-types.tsx (409 → 135 lines)
- Extract ToolConfigList + ToolConfigForm from tool-configs.tsx (391 → 178 lines)
- Add use-dashboard-actions hook for shared dashboard action handlers
- Update feature barrels with new exports
Quality gates: tsc (pass), eslint (pass)
Refs: repo-restructure Task 4.3
2026-06-02 22:23:13 +00:00
Developer
6bd7443e68
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
2026-06-02 21:57:44 +00:00
Developer
ae420708f2
refactor: split tool-workshop page into tab components (Task 4.1)
...
- Extract ToolTypesTab, ToolConfigsTab, ConfigFoldersTab from inline page
- Each tab is self-contained with own state, API calls, and forms
- Slim page to 77 lines (tab switcher + composition only)
- Add barrel export for tool-workshop feature components
- Add tsconfig path alias for @/* imports
Quality gates: tsc (pass), eslint (pass)
Refs: repo-restructure Task 4.1
2026-06-02 21:49:20 +00:00
Developer
cccf4379d8
refactor: extract CSS modules for session/settings and delete styles.css (Task 2.3)
...
- Create InstanceList.module.css, AppShell.module.css, SettingsTabLayout.module.css
- Create CommitPanel.module.css, FileViewer.module.css
- Create page CSS files: sessions, repo-workspace, dashboard, projects,
git-history, ssh-keys, settings
- Update components to import and use CSS modules
- Delete monolithic styles.css (2,255 lines)
- Update main.tsx to import page CSS and new modules
Quality gates: tsc (pass), eslint (pass), build (pass)
Refs: repo-restructure Task 2.3
2026-06-02 21:09:57 +00:00
Developer
dd7696b5a4
refactor: extract CSS modules for terminal and git components (Task 2.2)
...
- Create TerminalComponent.module.css with terminal-* styles
- Create GitToolbar.module.css with git toolbar styles
- Create CommitDialog.module.css with commit dialog styles
- Create MergeDialog.module.css with merge dialog styles
- Create FileEditor.module.css with file editor styles
- Update all components to import their CSS modules
- Remove extracted rules from styles.css (~441 lines removed)
Quality gates: tsc (pass), eslint (pass), build (pass)
Refs: repo-restructure Task 2.2
2026-06-02 20:39:32 +00:00
Developer
58a9728d5e
refactor: extract pydantic schemas from routers into schemas/ directory (Task 3.2)
...
- Create schemas/ directory with 12 schema files covering all domains
- Extract 70+ Pydantic models from 11 router files
- Routers now import from src.schemas.{domain} instead of defining inline
- Zero inline BaseModel definitions remain in any router
Quality gates: py_compile all schemas (pass), py_compile all routers (pass)
Refs: repo-restructure Task 3.2
2026-06-02 20:19:05 +00:00
Developer
c5fbb6722b
refactor: extract global styles and tokens (Task 2.1)
...
- Create styles/tokens.css with CSS custom properties and dark theme
- Create styles/global.css with resets, shell layout, and navigation
- Create styles/utilities.css with generic utilities and primitives
- Create styles/syntax-highlight.css with Prism.js theme
- Update main.tsx to import the 4 new style files
- Keep styles.css intact for backward compatibility
Quality gates: build (pass), lint (pass)
Refs: repo-restructure Task 2.1
2026-06-02 19:29:38 +00:00
Developer
c50d6663d5
refactor: extract shared auth dependencies (Task 3.1)
...
- Add get_owned_project() to auth/dependencies.py
- Remove duplicated _get_user() and _get_owned_project() from all routers
- Update tool_instances, git_repositories, projects, ssh_keys, users,
user_config, tool_types routers to use FastAPI dependency injection
- Route handlers now receive User/Project models via Depends() instead
of calling inline async helpers
Quality gates: Python syntax check (pass), no duplicated helpers (pass)
Refs: repo-restructure Task 3.1
2026-06-02 19:18:12 +00:00
Developer
aee3987c24
refactor: extract FileBrowser and shared UI primitives (Task 1.2)
...
- Extract FileBrowser from inline definition in repo-workspace.tsx
- Create components/features/git/FileBrowser.tsx with module CSS
- Create reusable UI primitives: LoadingState, ErrorState, StatusBadge
- Create barrel exports for components/ui/ and components/features/git/
- Replace inline loading/error patterns in dashboard, sessions, repo-workspace
Quality gates: tsc (pass), eslint (pass)
Refs: repo-restructure Task 1.2
2026-06-02 19:10:33 +00:00
Developer
ee1fa6bee5
refactor: centralize types and extract seed data (Task 1.1)
...
- Create types/ directory with centralized domain types:
session, tool-instance, tool-type, git-repository, config-folder,
tool-config, project, user, api-response
- Remove inline type definitions from API modules;
re-export from types/ for backward compatibility
- Update state/sessions.tsx to import Session from types/session.ts
- Update all consumer components/pages to import from types/
- Extract seed_builtin_tool_types from main.py to
seeds/builtin_tool_types.py
- Create types/index.ts barrel export
Quality gates: tsc (pass), eslint (pass), Python syntax (pass)
2026-06-02 18:56:54 +00:00