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.2 KiB
1.2 KiB
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