Skip to content

Command palette and full keyboard-shortcut coverage #54

Description

@MA1002643

Context

Brief §5.5.8: a command palette and full keyboard-shortcut coverage for power users. By this milestone every major action exists — the palette is the unifying command layer over them.

Scope

  • Command registry: typed action definitions (id, title, keywords, scope, enabled-predicate, handler) registered by each feature module — palette, shortcuts and future automation all read this one registry.
  • Palette (⌘K/Ctrl-K): fuzzy search over commands + inline entity search (tracks/artists/albums/playlists via the search index) with type-ahead sections, recent commands, contextual scoping (playlist commands only in playlist context), fully renderable in ≤ 1 frame from open.
  • Shortcut map: global set (space play/pause, ←/→ seek, ↑/↓ volume, S shuffle, R repeat, / focus search, ? help…) + contextual sets; conflict-free with browser/OS defaults; customisation UI with reset; printable/searchable shortcut-help overlay (via ?).
  • A11y: palette is itself fully accessible (combobox pattern), shortcuts never trap AT users, single-key shortcuts suspended inside text inputs (§7.8 keyboard operability without keystroke theft).

Acceptance criteria

  • Every user-facing action reachable via palette; CI check fails when a feature registers a route/menu action without a command entry.
  • Shortcut suite green in E2E across the four desktop browsers (incl. input-focus suspension test).
  • Palette opens < 50 ms warm, entity search reuses the instant-search budget.
  • Custom bindings persist/sync; conflicts rejected with clear messaging.

Technical notes

The registry-enforcement CI check is what keeps "full coverage" true forever — build it first, then migrate existing actions onto it.

Dependencies

Depends on #10, #31.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions