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
35 lines
1.2 KiB
Markdown
35 lines
1.2 KiB
Markdown
## ADDED Requirements
|
|
|
|
### Requirement: Stopping a session requires confirmation
|
|
The system SHALL display a confirmation dialog before stopping a running session.
|
|
|
|
#### Scenario: User initiates stop
|
|
- **WHEN** user clicks the "Stop" button on a running session
|
|
- **THEN** a confirmation dialog appears asking "Are you sure you want to stop this session?"
|
|
- **AND** the dialog provides "Cancel" and "Stop" options
|
|
|
|
#### Scenario: User confirms stop
|
|
- **WHEN** user clicks "Stop" in the confirmation dialog
|
|
- **THEN** the session stops
|
|
- **AND** the dialog closes
|
|
|
|
#### Scenario: User cancels stop
|
|
- **WHEN** user clicks "Cancel" in the confirmation dialog
|
|
- **THEN** the dialog closes
|
|
- **AND** the session remains running
|
|
|
|
### Requirement: Deleted sessions disappear from UI immediately
|
|
The system SHALL update the frontend state immediately after a session is successfully deleted.
|
|
|
|
#### Scenario: Delete session
|
|
- **WHEN** user deletes a session
|
|
- **AND** the delete API call returns success
|
|
- **THEN** the session is removed from the visible list
|
|
- **AND** no page reload is required
|
|
|
|
#### Scenario: Delete session failure
|
|
- **WHEN** user deletes a session
|
|
- **AND** the delete API call fails
|
|
- **THEN** the session remains in the list
|
|
- **AND** an error message is displayed
|