Files
Fusion 063a839790 feat: implement repository clone mode with SSH key support
- 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
2026-05-22 22:56:35 +02:00

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