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: Tool types must define a default port

The system SHALL require all tool types to specify a default_port.

Scenario: Creating tool type without port

  • GIVEN a user creating a new tool type
  • WHEN they omit the default_port field
  • THEN the system rejects the request with a 422 error

Scenario: Creating tool type with port

  • GIVEN a user creating a new tool type with default_port: 3000
  • WHEN the request is submitted
  • THEN the tool type is created successfully

Requirement: Tool type port must be exposed in compose template

The system SHALL validate that the compose template exposes the port defined in default_port.

Scenario: Port mismatch

  • GIVEN a tool type with default_port: 8443
  • WHEN the compose template only exposes port 3000
  • THEN the system rejects with an error indicating the port mismatch

Scenario: Port exposed correctly

  • GIVEN a tool type with default_port: 8443
  • WHEN the compose template exposes port 8443 via ports: ["8443:8443"]
  • THEN the tool type is accepted

Requirement: Tool types support multiple interfaces

The system SHALL allow tool types to specify multiple interfaces.

Scenario: Tool with web and terminal interfaces

  • GIVEN a tool type with interfaces: ["terminal", "web"]
  • WHEN an instance is created
  • THEN the instance shows both "Open" (web) and "Terminal" buttons in the UI