c8db6ce933
- 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)
84 lines
3.1 KiB
Markdown
84 lines
3.1 KiB
Markdown
## ADDED Requirements
|
|
|
|
### Requirement: File tree as primary view
|
|
The mobile Repo Workspace SHALL display the file tree as the primary view with repository and branch selectors at the top.
|
|
|
|
#### Scenario: Viewing file tree
|
|
- **WHEN** user navigates to a project's workspace on mobile
|
|
- **THEN** a file tree is displayed showing folders and files in the repository
|
|
|
|
#### Scenario: Repository selection
|
|
- **WHEN** user taps the repository selector dropdown
|
|
- **THEN** a list of available repositories is shown for selection
|
|
|
|
#### Scenario: Branch selection
|
|
- **WHEN** user taps the branch selector dropdown
|
|
- **THEN** a list of branches is shown for selection
|
|
|
|
### Requirement: File tree interactions
|
|
The file tree SHALL support folder expansion, file opening, and git status indicators.
|
|
|
|
#### Scenario: Expanding folder
|
|
- **WHEN** user taps a folder in the tree
|
|
- **THEN** the folder expands to show its contents, or collapses if already expanded
|
|
|
|
#### Scenario: Opening file
|
|
- **WHEN** user taps a file in the tree
|
|
- **THEN** the file opens in the editor view
|
|
|
|
#### Scenario: Git status indicators
|
|
- **WHEN** files have git status (modified, staged, untracked)
|
|
- **THEN** visual indicators (colors/icons) are shown next to affected files
|
|
|
|
### Requirement: Bottom tab navigation
|
|
The mobile workspace SHALL provide bottom tabs for switching between File Tree, Editor, Git, and Terminal views.
|
|
|
|
#### Scenario: Switching to Editor tab
|
|
- **WHEN** user taps the "Editor" tab
|
|
- **THEN** the editor view is shown with the currently selected file (or empty state)
|
|
|
|
#### Scenario: Switching to Git tab
|
|
- **WHEN** user taps the "Git" tab
|
|
- **THEN** the git view is shown with status, commit form, and file lists
|
|
|
|
#### Scenario: Switching to Terminal tab
|
|
- **WHEN** user taps the "Terminal" tab
|
|
- **THEN** the terminal view is shown for the current repository
|
|
|
|
### Requirement: Editor view
|
|
The editor view SHALL provide a full-screen code editing experience with syntax highlighting.
|
|
|
|
#### Scenario: Editing file
|
|
- **WHEN** user opens a file and modifies it
|
|
- **THEN** syntax highlighting is applied and changes can be saved
|
|
|
|
#### Scenario: Editor toolbar
|
|
- **WHEN** viewing the editor
|
|
- **THEN** a toolbar shows file name, save button, undo/redo buttons
|
|
|
|
### Requirement: Git view
|
|
The git view SHALL show repository status and allow committing changes.
|
|
|
|
#### Scenario: Viewing git status
|
|
- **WHEN** user opens the Git tab
|
|
- **THEN** modified, staged, and untracked files are listed separately
|
|
|
|
#### Scenario: Staging files
|
|
- **WHEN** user toggles a file's checkbox
|
|
- **THEN** the file is staged or unstaged accordingly
|
|
|
|
#### Scenario: Committing changes
|
|
- **WHEN** user enters a commit message and taps "Commit"
|
|
- **THEN** staged files are committed with the provided message
|
|
|
|
### Requirement: Terminal view
|
|
The terminal view SHALL provide a full-screen terminal for the repository's tool instance.
|
|
|
|
#### Scenario: Terminal for repository
|
|
- **WHEN** user opens the Terminal tab
|
|
- **THEN** a terminal is shown connected to the repository's active tool instance
|
|
|
|
#### Scenario: No active instance
|
|
- **WHEN** no tool instance is running for the repository
|
|
- **THEN** a message is shown with a button to start a new session
|