Files
headquarter/openspec/changes/archive/2026-05-25-add-config-profiles/specs/user-config/spec.md
T
Alex Blank ab79080f0b refactor: consolidate loading/error states and extract instance actions hook
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
2026-05-25 22:50:18 +02:00

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