ab79080f0b
Frontend: - Create reusable DataStates components (LoadingState, ErrorState, EmptyState) - Refactor 12 pages to use shared state components instead of inline JSX - Extract useInstanceActions hook to eliminate session action duplication - Update dashboard and sessions pages to use shared hook OpenSpec: - Archive completed mobile-app-usability change (44/44 tasks) - Archive completed add-config-profiles change (15/15 tasks) Quality: TypeScript check passes, production build succeeds
36 lines
1.7 KiB
Markdown
36 lines
1.7 KiB
Markdown
## ADDED Requirements
|
|
|
|
### Requirement: Config Profile Settings Editor
|
|
The system SHALL expose a settings interface for managing the authenticated user's config profiles.
|
|
|
|
#### Scenario: Browse config profiles in settings
|
|
- **GIVEN** an authenticated user
|
|
- **WHEN** they open settings
|
|
- **THEN** they can view their config profiles
|
|
- **AND** see each profile's name, compatibility scope, default status, and included profiles
|
|
|
|
#### Scenario: Edit profile content in settings
|
|
- **GIVEN** an authenticated user editing a config profile
|
|
- **WHEN** they update env vars, runtime hints, mounts, text files, or include order
|
|
- **THEN** the settings UI saves those changes through the config profile API
|
|
- **AND** validation errors are shown without losing the user's draft edits
|
|
|
|
#### Scenario: Configure profile defaults in settings
|
|
- **GIVEN** an authenticated user editing config profiles
|
|
- **WHEN** they mark a profile as the default for a global, project, tool, or project+tool context
|
|
- **THEN** subsequent launches for matching contexts preselect that profile according to default specificity
|
|
|
|
### Requirement: Launch Profile Selection UI
|
|
The system SHALL allow the authenticated user to select one compatible config profile or `None` when starting a session.
|
|
|
|
#### Scenario: Preselect default compatible profile
|
|
- **GIVEN** an authenticated user has a default compatible profile for a selected project and tool type
|
|
- **WHEN** they open the start session form
|
|
- **THEN** the form preselects that profile
|
|
- **AND** also offers `None` as a selectable option
|
|
|
|
#### Scenario: Select no profile
|
|
- **GIVEN** an authenticated user starts a session
|
|
- **WHEN** they choose `None` in the config profile selector
|
|
- **THEN** the start request records no selected config profile
|