073013bc61
- Backend: Send ping every 30s from WebSocket endpoint - Frontend: Respond to pings with pongs, detect missed pings (60s timeout) - Update type definitions to include 'resetting' status Refs: persistent-terminal-sessions task 6.4
56 lines
2.8 KiB
Markdown
56 lines
2.8 KiB
Markdown
## MODIFIED Requirements
|
|
|
|
### Requirement: Clone mode instance creation
|
|
The system SHALL support creating tool instances with a clone mode and an optional selected config profile.
|
|
|
|
#### Scenario: Create instance in clone mode
|
|
- **GIVEN** an authenticated user with a repository that has an SSH key and remote URL
|
|
- **WHEN** they create an instance with `clone_mode: "clone"`, `branch: "main"`, and a compatible config profile selection
|
|
- **THEN** the system clones the repository into the instance directory
|
|
- **AND** the compose file uses the clone path as `REPO_PATH`
|
|
- **AND** the instance record stores `clone_mode="clone"`, `branch="main"`, and the selected config profile ID
|
|
|
|
#### Scenario: Create instance in mount mode
|
|
- **GIVEN** an authenticated user with a repository
|
|
- **WHEN** they create an instance with `clone_mode: "mount"` (or omit the field)
|
|
- **THEN** the compose file uses the host repository path as `REPO_PATH`
|
|
- **AND** the instance record stores `clone_mode="mount"`
|
|
|
|
#### Scenario: Create instance with no config profile
|
|
- **GIVEN** an authenticated user creating a tool instance
|
|
- **WHEN** they select `None` for config profile
|
|
- **THEN** the instance record stores no selected config profile
|
|
- **AND** profile-owned env vars, files, mounts, and runtime hints are not applied at start
|
|
|
|
#### Scenario: Reject incompatible config profile selection
|
|
- **GIVEN** an authenticated user creating a tool instance for a project and tool type
|
|
- **WHEN** they select a config profile scoped to a different project or tool type
|
|
- **THEN** instance creation or start is rejected
|
|
|
|
## ADDED Requirements
|
|
|
|
### Requirement: Config profile launch application
|
|
The system SHALL apply the selected config profile's resolved output when starting a tool instance.
|
|
|
|
#### Scenario: Start instance with selected profile
|
|
- **GIVEN** a pending tool instance with a selected compatible config profile
|
|
- **WHEN** the instance is started
|
|
- **THEN** the system resolves the selected profile
|
|
- **AND** writes resolved env vars into the instance environment
|
|
- **AND** stages resolved profile files under the instance directory
|
|
- **AND** adds Docker bind mounts for resolved profile mounts
|
|
- **AND** applies supported runtime hints before starting the container
|
|
|
|
#### Scenario: Restart uses stored profile selection
|
|
- **GIVEN** an existing instance was started with config profile A
|
|
- **AND** the user's default profile later changes to profile B
|
|
- **WHEN** the instance is restarted
|
|
- **THEN** the system uses stored profile A for restart behavior
|
|
- **AND** does not switch to profile B automatically
|
|
|
|
#### Scenario: Start fails on profile resolution error
|
|
- **GIVEN** an instance references a selected config profile that cannot be resolved
|
|
- **WHEN** the instance is started
|
|
- **THEN** the start request fails before launching the container
|
|
- **AND** the error explains the profile resolution problem
|