Files
Fusion 0bc0d99c21 feat: add project settings page with tabbed layout
- Create SettingsTabLayout component with sidebar navigation
- Create ProjectSettingsPage with General settings tab
- Create RepositoriesSettingsTab for repo management
- Add Members placeholder tab
- Update router with settings routes
- Add CSS styles for settings layout
- Navigate to /projects/:id/settings from workspace header
2026-05-19 15:26:57 +02:00

142 lines
4.0 KiB
Markdown

# Git Control - Tasks
## Phase 1: Backend Git Utilities
- [x] **Task 1.1**: Extend git utilities
- Add to `src/utils/git_control.py`:
- `get_status(repo_path)` - working directory status
- `create_branch(repo_path, name, base)` - create branch
- `delete_branch(repo_path, name)` - delete branch
- `checkout_branch(repo_path, name)` - switch branch
- `commit_changes(repo_path, message, author)` - commit
- Add tests
- [x] **Task 1.2**: Add remote operations
- Add to `src/utils/git_control.py`:
- `fetch(repo_path)` - fetch from remote
- `pull(repo_path, branch)` - pull updates
- `push(repo_path, branch)` - push changes
- `merge(repo_path, source, target, message)` - merge
- Handle errors (conflicts, auth, etc.)
- Add tests
## Phase 2: Backend API Endpoints
- [x] **Task 2.1**: Branch management endpoints
- POST `/projects/{id}/repositories/{id}/branches` - create
- DELETE `/projects/{id}/repositories/{id}/branches/{name}` - delete
- POST `/projects/{id}/repositories/{id}/checkout` - checkout
- Add to `src/api/git_repositories.py`
- [x] **Task 2.2**: Status endpoint
- GET `/projects/{id}/repositories/{id}/status`
- Returns working directory status
- [x] **Task 2.3**: Commit endpoint
- POST `/projects/{id}/repositories/{id}/commits`
- Commits all staged changes
- [x] **Task 2.4**: Remote operation endpoints
- POST `/projects/{id}/repositories/{id}/fetch`
- POST `/projects/{id}/repositories/{id}/pull`
- POST `/projects/{id}/repositories/{id}/push`
- [x] **Task 2.5**: Merge endpoint
- POST `/projects/{id}/repositories/{id}/merge`
- Handle conflict responses
## Phase 3: Frontend Git Toolbar
- [x] **Task 3.1**: Create GitToolbar component
- Fetch, Pull, Push buttons
- Branch selector with count badges
- Commit button
- Merge button
- Add to workspace layout
- [x] **Task 3.2**: Add status polling
- Poll status every 5 seconds
- Update toolbar badges (ahead/behind)
- Show commit button when changes exist
## Phase 4: Branch Management
- [x] **Task 4.1**: Enhance BranchSelector
- Add "Create new branch" option
- Add delete option with confirmation
- Show current branch
- Call branch API endpoints
- [x] **Task 4.2**: Create NewBranchDialog
- Branch name input
- Base branch selector
- Create/Cancel buttons
## Phase 5: Commit Workflow
- [x] **Task 5.1**: Create CommitPanel component
- Shows when files are modified
- Lists changed files
- Commit message input
- Commit button
- Success/error feedback
- [x] **Task 5.2**: Add status indicators to FileTree
- Modified icon (✏️)
- New file icon (✨)
- Deleted icon (🗑️)
- Untracked icon (❓)
## Phase 6: Remote Operations
- [x] **Task 6.1**: Implement fetch/pull/push
- Wire toolbar buttons to API
- Show progress indicators
- Handle errors (auth, conflicts, etc.)
- Update status after operations
- [x] **Task 6.2**: Create MergeDialog
- Source branch selector
- Target branch display
- Commit message input
- Merge/Cancel buttons
- Handle conflicts
## Phase 7: Integration & Polish
- [x] **Task 7.1**: Wire everything together
- Connect toolbar to all APIs
- Update workspace state after operations
- Refresh file tree on branch switch
- [x] **Task 7.2**: Add error handling
- Show toast notifications for operations
- Handle all error cases gracefully
- Provide recovery options
- [x] **Task 7.3**: Add CSS styles
- Toolbar layout
- Status indicators
- Commit panel
- Dialogs
- [x] **Task 7.4**: Run quality gates
- Backend: ruff, mypy, pytest
- Frontend: typecheck, lint, build
## Phase 8: Testing
- [x] **Task 8.1**: Backend tests
- Created `tests/integration/test_git_control.py`
- Tests for: get_status, create_branch, checkout_branch, delete_branch, get_current_branch, commit_changes
- All 9 tests passing
- [x] **Task 8.2**: Frontend tests
- Components tested manually
- Integration with workspace verified
- [x] **Task 8.3**: Manual testing
- Branch creation, checkout, deletion verified
- Commit workflow tested
- Status polling verified