Files
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

1.5 KiB

MODIFIED Requirements

Requirement: Layout Component

The system SHALL provide a consistent application layout for authenticated screens across desktop and mobile sizes.

Scenario: Application shell

  • GIVEN the frontend application
  • THEN a Layout component SHALL:
    • Display a header with user info and logout
    • Display sidebar navigation on desktop (width >= 768px)
    • Show main content area
    • Collapse sidebar into a mobile menu toggle on small viewports
    • MODIFIED: Display a bottom tab bar on mobile (width < 768px) with tabs for Home, Projects, Sessions, Tools, Settings
    • MODIFIED: Hide sidebar navigation on mobile viewports
  • GIVEN the sidebar navigation
  • THEN it SHALL include links to:
    • Dashboard
    • Projects
    • Repositories
    • SSH Keys
    • Settings
  • MODIFIED: The bottom tab bar SHALL include tabs for:
    • Home (Dashboard)
    • Projects
    • Sessions
    • Tools (Tool Workshop)
    • Settings

Requirement: Responsive Design

The system SHALL support mobile devices.

Scenario: Mobile viewport

  • GIVEN a mobile device
  • WHEN the app loads
  • THEN:
    • MODIFIED: A bottom tab bar is displayed for primary navigation
    • Content adapts to screen width
    • Touch targets are appropriately sized (minimum 44px)
    • ADDED: All multi-column layouts stack vertically
    • ADDED: Dialogs fit within the viewport and are scrollable
    • ADDED: Page headers include back buttons where applicable