specs/048-workspace-refinement/spec.md
Feature Specification: Workspace visual refinement
Feature Branch: gui/workspace-refinement
Created: 2026-10-11
Status: Accepted
Input: Review visual adjustments, research T3 Code and similar projects, and submit improvements that make Signaltty feel professional.
User Scenarios & Testing
User Story 1 - Scan workspaces calmly (Priority: P1)
Read names, useful activity and branch context without repeated status words or competing selection decoration. Why this priority: This navigation is visible throughout every coding session. Independent Test: Populate working, done, attention and quiet shell rows and inspect their content and selection. Acceptance Scenarios:
- Given Working without timing, when the row renders, then only one Working label is visible; meaningful messages and elapsed durations remain.
- Given selected and unselected rows, when navigating, then selection uses one quiet surface and lateral indicator; keyboard focus remains explicit.
- Given branch or directory metadata, then a symbolic place indicator accompanies the text without squeezing attention or displacing the close control.
User Story 2 - Use the same navigation at different sizes (Priority: P2)
Retain readable status and controls in light/dark, high contrast, narrow windows and enlarged text. Why this priority: Visual polish must survive actual desktop settings. Independent Test: Review native light/dark and 360px enlarged high-contrast scenes. Acceptance Scenarios:
- Given long titles and metadata, then text ellipsizes with full tooltips and no overlap.
- Given high contrast, then selection, metadata and keyboard focus retain clear boundaries.
- Given refresh and child disclosure, then row identities and terminal widgets stay stable.
Edge Cases
- Bare state, timed state, explicit messages equal to state words, punctuation in meaningful messages.
- Empty metadata; directory fallback; child workspaces hiding root metadata.
- Narrow windows and larger system text; multiple urgent states.
Requirements
Functional Requirements
- FR-001: Suppress generated headlines that add no information to the status label, including a trailing ellipsis, while retaining explicit messages and durations.
- FR-002: Give metadata a quiet symbolic branch/directory indicator, hiding it when metadata is empty and with child metadata.
- FR-003: Keep sidebar selection, search and footer geometry coherent; distinguish selection from keyboard focus, and preserve high contrast.
- FR-004: Preserve existing status vocabulary, controls, navigation, tooltips, child disclosure, session ownership and terminal identity.
Success Criteria
Measurable Outcomes
- SC-001: Zero repeated generated bare-state headlines in the regression cases; all explicit message and timed cases retained.
- SC-002: No overlapping text or missing urgent controls in reviewed light/dark, narrow and enlarged high-contrast scenes.
- SC-003: Existing native navigation, refresh and terminal stability checks pass.
Assumptions
- This is a bounded refinement of the current native desktop app, using its existing typography and theme.
- New navigation features, dependencies, fonts, IPC or state models are outside this pass.
- Visual observations from isolated displays do not certify real-desktop assistive technology or IME.
Clarifications
No critical ambiguity remains: professional polish is translated into the above concrete acceptance cases; no functional redesign is required.