fix: disable native touch panning on mobile terminal and archive specs
- Change mobile terminal CSS to use touch-action: none and overscroll-behavior: none so the custom touch handler owns swipes - Archive completed/partial OpenSpec specs to openspec/changes/archive/2026-06-14-completed-specs-archive/ - Regenerate project maps Quality gates: npm run typecheck, npm run lint (apps/web)
This commit is contained in:
+19
@@ -0,0 +1,19 @@
|
||||
# 2026-06-14-completed-specs-archive/user-config (index)
|
||||
dir: 2026-06-14-completed-specs-archive/user-config
|
||||
|
||||
## role
|
||||
Defines data specifications for a JSONB-based user preference configuration system with frontend theme integration.
|
||||
## parent
|
||||
index: 2026-06-14-completed-specs-archive/.pi-map.index.md
|
||||
map: 2026-06-14-completed-specs-archive/.pi-map.md
|
||||
## children
|
||||
-
|
||||
## files
|
||||
- spec.md
|
||||
## links
|
||||
index: 2026-06-14-completed-specs-archive/user-config/.pi-map.index.md
|
||||
map: 2026-06-14-completed-specs-archive/user-config/.pi-map.md
|
||||
## workflows
|
||||
-
|
||||
## dirty
|
||||
-
|
||||
@@ -0,0 +1,19 @@
|
||||
# 2026-06-14-completed-specs-archive/user-config
|
||||
dir: 2026-06-14-completed-specs-archive/user-config
|
||||
|
||||
index: 2026-06-14-completed-specs-archive/user-config/.pi-map.index.md
|
||||
|
||||
## role
|
||||
Defines data specifications for a JSONB-based user preference configuration system with frontend theme integration.
|
||||
## files
|
||||
- spec.md | Defines specifications for a user configuration system that stores JSONB key-value preferences, supports specific config keys, and integrates with frontend theme application. | dep: UserConfig, User, auth-oauth, pytest, mypy, ruff, npm
|
||||
## arch
|
||||
Specification-driven schema design using JSONB key-value store with enumerated config keys and frontend theme mapping pattern.
|
||||
## tags
|
||||
user, spec, defines, specifications, configuration, system, stores, jsonb
|
||||
## symbols
|
||||
-
|
||||
## workflows
|
||||
-
|
||||
## dirty
|
||||
-
|
||||
@@ -0,0 +1,69 @@
|
||||
# User Configuration Specification
|
||||
|
||||
## Purpose
|
||||
|
||||
Store and manage user preferences and settings.
|
||||
|
||||
## Requirements
|
||||
|
||||
### Requirement: Key-Value Storage
|
||||
|
||||
The system SHALL store user configuration as JSONB key-value pairs.
|
||||
|
||||
#### Scenario: Store preferences
|
||||
- GIVEN an authenticated user
|
||||
- WHEN they update their settings
|
||||
- THEN the configuration is stored in the UserConfig model
|
||||
|
||||
### Requirement: Supported Config Keys
|
||||
|
||||
The system SHALL support specific configuration keys.
|
||||
|
||||
#### Scenario: Supported keys
|
||||
- GIVEN the configuration system
|
||||
- THEN these keys SHALL be supported:
|
||||
- `default_editor`: Preferred code editor
|
||||
- `theme`: UI theme preference
|
||||
- `git_user_name`: Git commit author name
|
||||
- `git_user_email`: Git commit author email
|
||||
|
||||
### Requirement: Config Retrieval
|
||||
|
||||
The system SHALL return user configuration.
|
||||
|
||||
#### Scenario: Get config
|
||||
- GIVEN an authenticated user
|
||||
- WHEN they access settings
|
||||
- THEN their current configuration is returned
|
||||
|
||||
### Requirement: Config Updates
|
||||
|
||||
The system SHALL support partial configuration updates.
|
||||
|
||||
#### Scenario: Update single key
|
||||
- GIVEN an authenticated user with existing config
|
||||
- WHEN they update just the theme
|
||||
- THEN only that key is modified
|
||||
- AND other keys remain unchanged
|
||||
|
||||
### Requirement: Frontend Integration
|
||||
|
||||
The system SHALL apply configuration in the frontend.
|
||||
|
||||
#### Scenario: Apply theme
|
||||
- GIVEN a user with theme preference set
|
||||
- WHEN they load the application
|
||||
- THEN the selected theme is applied
|
||||
|
||||
## Dependencies
|
||||
|
||||
- Database models: UserConfig, User
|
||||
- auth-oauth (authenticated users)
|
||||
|
||||
## Quality Gates
|
||||
|
||||
- `pytest` must pass
|
||||
- `mypy .` must pass
|
||||
- `ruff check .` must pass
|
||||
- `npm run typecheck` must pass
|
||||
- `npm run lint` must pass
|
||||
Reference in New Issue
Block a user