063a839790
- Add clone_mode and branch fields to tool_instances - Add ssh_key_id to git_repositories for per-repo SSH key assignment - Implement host-side git cloning with branch selection (default: main) - Mount SSH keys into containers for git operations in clone mode - Add dirty state check on clone-mode instance deletion with confirmation - Update SessionsPage with mount/clone selector, branch input, SSH key display - Add SSH key selector to repository creation form - Add dirty delete confirmation modal with changed files list - Update API schemas and endpoints for new fields - Sync delta specs to main specs (git-repo, tool-instances, repo-clone-mode) - Archive completed OpenSpec change: repo-clone-mode-with-ssh - Document git requirement for custom tool types Quality gates: Frontend typecheck and build passed OpenSpec: repo-clone-mode-with-ssh archived with all tasks complete
1.6 KiB
1.6 KiB
1. Backend - Tunnel Recreation
- 1.1 Add
recreate_tunnelfunction to docker.py - 1.2 Create
POST /instances/{id}/recreate-tunnelendpoint in tool_instances.py - 1.3 Update stop_instance to also stop the tunnel process
2. Backend - Tunnel Health Check
- 2.1 Add
check_tunnel_health(url)function to docker.py - 2.2 Create
GET /instances/{id}/healthendpoint in tool_instances.py - 2.3 Add tunnel_url_health field to ToolInstance model (optional, can use status)
3. Frontend - Stop Confirmation
- 3.1 Add confirmation dialog component for stop action
- 3.2 Update SessionsPage stop handler to show confirmation
- 3.3 Update InstanceList stop handler to show confirmation
4. Frontend - Delete State Update
- 4.1 Update delete handler in SessionsPage to filter state immediately
- 4.2 Update delete handler in InstanceList to filter state immediately
- 4.3 Ensure error handling shows message on failure
5. Frontend - Tunnel Health & Recreate
- 5.1 Add tunnel health check API function in sessions.ts
- 5.2 Add recreate tunnel API function in sessions.ts
- 5.3 Implement health check polling (30s interval) in SessionsPage
- 5.4 Show error badge when tunnel is unhealthy
- 5.5 Add "Recreate Tunnel" button next to "Open" button
- 5.6 Update InstanceList to show health status and recreate button
6. Quality Gates
- 6.1 Run Python syntax check
- 6.2 Run frontend typecheck - PASSED
- 6.3 Run frontend lint - PASSED
- 6.4 Test stop confirmation dialog
- 6.5 Test delete state update
- 6.6 Test tunnel recreation
- 6.7 Commit and push changes