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.4 KiB
1.4 KiB
ADDED Requirements
Requirement: OpenCode runs a web server
The system SHALL configure OpenCode containers to run a web server accessible on port 3000.
Scenario: OpenCode container starts
- GIVEN an OpenCode tool instance
- WHEN the container starts
- THEN a web server is running on port 3000 inside the container
- AND the server serves a web terminal interface
Requirement: OpenCode exposes web interface
The system SHALL mark OpenCode as having both terminal and web interfaces.
Scenario: OpenCode instance created
- GIVEN a new OpenCode instance
- WHEN the instance list is displayed
- THEN both "Open" and "Terminal" buttons are shown
Requirement: OpenCode web terminal uses correct port
The system SHALL use port 3000 when creating tunnels for OpenCode instances.
Scenario: Tunnel created for OpenCode
- GIVEN an OpenCode instance with
default_port: 3000 - WHEN the instance starts and creates a tunnel
- THEN the tunnel targets
http://container-name:3000
Requirement: OpenCode web terminal displays properly
The system SHALL serve a functional web terminal interface for OpenCode.
Scenario: User opens OpenCode web UI
- GIVEN a running OpenCode instance
- WHEN the user clicks the "Open" button
- THEN a new tab opens with the OpenCode web interface
- AND the interface shows a terminal connected to the OpenCode process