gsxdsm
2f23d2260d
FN-7494: add configurable dashboard shortcuts
Add configurable dashboard keyboard shortcuts for opening Quick Chat and Terminal.
- Add global settings defaults, schemas, persistence, and Settings UI controls for dashboard shortcuts.
- Register safe document-level shortcut handling with editable-target guards and Escape popup dismissal.
- Normalize shortcut strings, detect disabled/conflicting bindings, and document operator behavior.
- Cover shortcut parsing, dashboard listener behavior, and settings persistence with tests.
Files changed:
.changeset/fn-7494-keyboard-shortcuts.md | 7 +
docs/dashboard-guide.md | 14 ++
.../core/src/__tests__/global-settings.test.ts | 20 +++
.../core/src/__tests__/settings-defaults.test.ts | 10 ++
.../core/src/__tests__/settings-parity.test.ts | 10 ++
packages/core/src/__tests__/store-settings.test.ts | 10 ++
packages/core/src/settings-schema.ts | 8 +
packages/core/src/types.ts | 12 ++
packages/dashboard/app/App.tsx | 52 ++++++
.../dashboard/app/components/SettingsModal.css | 21 +++
.../dashboard/app/components/SettingsModal.tsx | 11 ++
.../__tests__/SettingsModal.general.test.tsx | 63 ++++++++
.../app/components/settings/save-split.ts | 1 +
.../settings/sections/GlobalGeneralSection.tsx | 38 +++++
.../useDashboardKeyboardShortcuts.test.tsx | 101 ++++++++++++
packages/dashboard/app/hooks/useAppSettings.ts | 8 +-
.../app/hooks/useDashboardKeyboardShortcuts.ts | 66 ++++++++
.../app/utils/__tests__/keyboardShortcuts.test.ts | 76 +++++++++
packages/dashboard/app/utils/keyboardShortcuts.ts | 175 +++++++++++++++++++++
19 files changed, 702 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-7494
Fusion-Task-Lineage: 30445f4d-c0c5-4657-bd79-fc2acaf3c37d
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-04 11:38:42 -07:00
..
2026-07-04 00:26:49 -07:00
2026-07-03 13:10:20 -07:00
2026-07-04 11:38:42 -07:00
2026-07-04 11:38:42 -07:00
2026-07-03 21:45:21 -07:00
2026-07-03 22:40:36 -07:00
2026-07-04 10:42:21 -07:00
2026-07-04 10:42:20 -07:00
2026-07-03 13:10:20 -07:00
2026-07-03 13:10:20 -07:00
2026-06-08 15:19:27 -07:00
2026-07-03 13:10:20 -07:00