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
26 lines
1.1 KiB
Markdown
26 lines
1.1 KiB
Markdown
## 1. Backend - Proxy Endpoint
|
|
|
|
- [x] 1.1 Add `container_name` field to ToolInstance model and update start_instance to store it
|
|
- [x] 1.2 Create proxy endpoint `/instances/{id}/proxy/{path:path}` in tool_instances.py
|
|
- [x] 1.3 Implement HTTP forwarding using httpx with streaming support
|
|
- [x] 1.4 Add ownership check before proxying
|
|
- [x] 1.5 Add WebSocket upgrade support for the proxy endpoint
|
|
- [x] 1.6 Handle response header forwarding (Content-Type, cookies, etc.)
|
|
|
|
## 2. Backend - Instance URL Update
|
|
|
|
- [x] 2.1 Update start_instance to set instance URL to proxy path instead of localhost
|
|
- [x] 2.2 Ensure container_name is captured during start
|
|
|
|
## 3. Frontend - Update Instance Links
|
|
|
|
- [x] 3.1 Update InstanceList "Open" button to use proxy URL
|
|
- [x] 3.2 Update SessionsPage "Open" button to use proxy URL
|
|
- [x] 3.3 Ensure URLs open in new tab
|
|
|
|
## 4. Testing & Quality
|
|
|
|
- [x] 4.1 Test proxy with code-server instance
|
|
- [x] 4.2 Verify WebSocket features work (terminal inside code-server)
|
|
- [x] 4.3 Run quality gates (ruff, mypy, typecheck, lint, build)
|
|
- [x] 4.4 Deploy and test end-to-end |