feat: add session list overhaul proposal
- Add proposal for unified session list components - Add design doc with component architecture - Add specs for SessionCard and SessionList requirements - Add implementation tasks Refs: session-list-overhaul
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
## ADDED Requirements
|
||||
|
||||
### Requirement: Session card displays session information
|
||||
The system SHALL display each session in a card format showing:
|
||||
- Tool type name and icon
|
||||
- Session display name or generated name
|
||||
- Project and repository name
|
||||
- Current status with visual indicator
|
||||
- Clone mode indicator (if clone mode)
|
||||
- Port number (if applicable)
|
||||
- Created time
|
||||
|
||||
#### Scenario: View active session card
|
||||
- **WHEN** user views the sessions list
|
||||
- **THEN** each running session card shows a green status indicator
|
||||
- **AND** the card displays the tool type name
|
||||
- **AND** the card displays the project and repository names
|
||||
- **AND** the card displays the port number
|
||||
|
||||
#### Scenario: View stopped session card
|
||||
- **WHEN** user views the sessions list
|
||||
- **THEN** each stopped session card shows a gray status indicator
|
||||
- **AND** the card does not display a port number
|
||||
- **AND** the card shows when it was last active
|
||||
|
||||
#### Scenario: View clone mode session card
|
||||
- **WHEN** user views a clone-mode session
|
||||
- **THEN** the card displays a clone indicator
|
||||
- **AND** the card shows the branch name (if applicable)
|
||||
|
||||
### Requirement: Session card provides control actions
|
||||
The system SHALL provide action buttons on each session card:
|
||||
- Running sessions: Open (primary), Stop, Delete
|
||||
- Stopped sessions: Start (primary), Delete
|
||||
- Building/Starting sessions: Show progress indicator, no actions
|
||||
- Error sessions: Show error state, Delete
|
||||
|
||||
#### Scenario: Open running session
|
||||
- **WHEN** user clicks the "Open" button on a running session card
|
||||
- **THEN** the session opens in the appropriate interface (web, terminal, IDE)
|
||||
|
||||
#### Scenario: Stop running session
|
||||
- **WHEN** user clicks the "Stop" button on a running session card
|
||||
- **THEN** a confirmation dialog appears
|
||||
- **AND** upon confirmation, the session stops
|
||||
|
||||
#### Scenario: Start stopped session
|
||||
- **WHEN** user clicks the "Start" button on a stopped session card
|
||||
- **THEN** the session starts
|
||||
- **AND** the card updates to show building/starting status
|
||||
|
||||
#### Scenario: Delete session
|
||||
- **WHEN** user clicks the "Delete" button on any session card
|
||||
- **THEN** a confirmation dialog appears
|
||||
- **AND** upon confirmation, the session is deleted
|
||||
- **AND** the card is removed from the list immediately
|
||||
|
||||
### Requirement: Session list supports grouping and filtering
|
||||
The system SHALL group sessions by status category:
|
||||
- Active: running, building, starting, probing
|
||||
- Recent: stopped, error (limited to last 5)
|
||||
- The list SHALL support filtering by status
|
||||
|
||||
#### Scenario: View grouped sessions
|
||||
- **WHEN** user views the sessions page
|
||||
- **THEN** active sessions appear in an "Active" section
|
||||
- **AND** recent stopped sessions appear in a "Recent" section
|
||||
- **AND** each section has a clear heading with count
|
||||
|
||||
### Requirement: Unified components across pages
|
||||
The system SHALL use the same SessionCard and SessionList components on both the dashboard and sessions pages.
|
||||
|
||||
#### Scenario: Dashboard uses unified components
|
||||
- **WHEN** user views the dashboard home page
|
||||
- **THEN** the session grid uses SessionCard components
|
||||
- **AND** the visual style matches the sessions page
|
||||
|
||||
#### Scenario: Sessions page uses unified components
|
||||
- **WHEN** user views the sessions page
|
||||
- **THEN** the session list uses SessionList and SessionCard components
|
||||
- **AND** the visual style matches the dashboard
|
||||
|
||||
## MODIFIED Requirements
|
||||
|
||||
### Requirement: Sessions page layout
|
||||
**FROM:** Sessions page renders sessions with page-specific layout and styling
|
||||
**TO:** Sessions page uses SessionList component with consistent layout and styling
|
||||
|
||||
#### Scenario: Sessions page renders unified list
|
||||
- **WHEN** user navigates to the sessions page
|
||||
- **THEN** the page uses the SessionList component
|
||||
- **AND** sessions are displayed in a card grid
|
||||
- **AND** each card has consistent control actions
|
||||
Reference in New Issue
Block a user