gsxdsm
ee1d978984
FN-7876: add custom terminal shortcut buttons to SessionTerminal mobile key bar
...
Extends the embedded Task Detail SessionTerminal to surface the shared, user-defined terminal shortcuts (from FN-7872's kb-terminal-preferences localStorage) as tappable buttons in its mobile accessory key bar.
- Read customShortcuts via the shared readTerminalPreferences() store on mount and refresh live on the storage event
- Render each custom shortcut as a mobile-only accessory-bar button that injects decodeTerminalShortcutSequence(value) through the focus-preserving keepFocus + sendInput path, clearing sticky Ctrl like the built-in ^C key
- Suppress the buttons for read-only/replay/idle/ended sessions via the existing canAcceptInput gate; desktop embedded terminals get no key bar
- Add .cli-terminal-key--custom styling for the new buttons
- Update docs/dashboard-guide.md to describe the mobile custom-shortcut key bar behavior
- Add a minor changeset for @runfusion/fusion documenting the feature
- Add SessionTerminal.mobile.test.tsx coverage for rendering, injection, live updates, and read-only suppression
Files changed:
.changeset/fn-7876-session-terminal-custom-shortcuts.md | 7 ++
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/SessionTerminal.css | 5 ++
packages/dashboard/app/components/SessionTerminal.tsx | 31 +++++++
packages/dashboard/app/components/__tests__/SessionTerminal.mobile.test.tsx | 94 ++++++++++++++++++++++
5 files changed, 138 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-7876
Fusion-Task-Lineage: 61d62ad2-7357-4eb4-b542-6e17deea1e5e
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-12 13:22:05 -07:00
..
2026-07-12 13:22:05 -07:00
2026-06-22 03:48:08 -07:00
2026-07-10 23:50:15 -07:00
2026-07-12 11:19:52 -07:00
2026-07-05 11:31:48 -07:00
2026-07-11 22:16:48 -07:00
2026-06-19 04:27:01 -07:00
2026-07-08 15:24:01 -07:00
2026-07-09 19:58:07 -07:00
2026-06-22 19:48:50 -07:00
2026-07-09 19:58:07 -07:00
2026-05-22 17:24:38 -07:00
2026-06-20 05:04:25 -07:00
2026-07-11 17:16:49 -07:00
2026-07-12 10:04:29 -07:00
2026-05-22 17:24:38 -07:00
2026-06-30 01:50:52 -07:00
2026-06-20 05:04:25 -07:00
2026-06-03 17:14:42 -07:00
2026-06-20 05:04:25 -07:00
2026-06-27 17:11:13 -07:00
2026-07-04 10:42:21 -07:00
2026-07-04 10:42:21 -07:00
2026-06-25 08:34:44 -07:00
2026-06-03 19:06:53 -07:00
2026-05-22 17:24:38 -07:00
2026-06-20 05:04:25 -07:00
2026-07-01 09:45:30 -07:00
2026-07-09 19:58:07 -07:00
2026-05-22 17:24:38 -07:00
2026-06-20 05:04:25 -07:00
2026-05-22 17:24:38 -07:00
2026-06-03 20:52:44 -07:00
2026-06-19 04:27:01 -07:00
2026-06-17 21:37:18 -07:00
2026-06-20 05:04:25 -07:00
2026-05-22 17:24:38 -07:00
2026-06-20 05:04:25 -07:00
2026-06-23 00:15:38 -07:00
2026-07-08 15:24:01 -07:00
2026-06-27 17:11:13 -07:00
2026-05-22 17:24:38 -07:00
2026-06-03 19:06:53 -07:00
2026-07-09 19:58:04 -07:00
2026-05-22 17:24:38 -07:00
2026-06-03 19:06:53 -07:00
2026-06-21 23:07:55 -07:00
2026-07-12 12:10:38 -07:00
2026-07-10 23:42:10 -07:00
2026-06-29 15:34:06 -07:00
2026-06-03 19:06:53 -07:00
2026-05-22 17:24:38 -07:00
2026-06-03 19:06:53 -07:00
2026-06-10 06:02:12 -07:00
2026-06-05 01:16:13 -07:00
2026-06-22 16:21:03 -07:00
2026-07-08 01:29:56 -07:00
2026-06-08 13:32:58 -07:00
2026-07-02 13:07:16 -07:00
2026-07-02 13:07:16 -07:00
2026-05-22 17:24:38 -07:00
2026-06-03 19:06:53 -07:00
2026-05-22 17:24:38 -07:00
2026-06-04 08:00:33 -07:00
2026-07-10 18:14:09 -07:00
2026-07-06 19:03:06 -07:00
2026-07-06 19:03:06 -07:00
2026-07-10 07:40:22 -07:00
2026-07-10 18:14:09 -07:00
2026-06-15 12:43:08 -07:00
2026-06-19 04:27:01 -07:00
2026-07-02 23:49:43 -07:00
2026-06-19 04:27:01 -07:00
2026-06-20 05:04:25 -07:00
2026-06-05 02:38:38 -07:00
2026-07-08 01:29:56 -07:00
2026-06-21 03:53:43 -07:00
2026-06-03 01:08:09 -07:00
2026-06-22 10:26:14 -07:00
2026-06-03 19:06:53 -07:00
2026-06-19 04:27:01 -07:00
2026-06-19 22:14:57 -07:00
2026-05-22 17:24:38 -07:00
2026-06-21 03:53:43 -07:00
2026-07-08 23:39:33 -07:00
2026-07-08 23:39:33 -07:00
2026-07-10 09:54:39 -07:00
2026-07-10 00:48:14 -07:00
2026-05-22 17:24:38 -07:00
2026-06-03 20:52:44 -07:00
2026-07-08 13:09:10 -07:00
2026-07-08 13:09:10 -07:00
2026-06-19 04:27:01 -07:00
2026-07-02 23:53:26 -07:00
2026-06-03 19:06:53 -07:00
2026-06-03 19:48:40 -07:00
2026-06-03 20:52:44 -07:00
2026-06-19 04:27:01 -07:00
2026-07-02 20:57:25 -07:00
2026-06-03 20:52:44 -07:00
2026-06-25 14:37:52 -07:00
2026-06-23 16:47:38 -07:00
2026-06-19 04:27:01 -07:00
2026-07-03 21:45:20 -07:00
2026-05-22 17:24:38 -07:00
2026-06-19 22:14:57 -07:00
2026-06-03 19:48:40 -07:00
2026-06-03 19:06:53 -07:00
2026-05-22 17:24:38 -07:00
2026-06-03 19:06:53 -07:00
2026-05-22 17:24:38 -07:00
2026-06-03 19:06:53 -07:00
2026-06-26 00:43:55 -07:00
2026-07-12 12:49:37 -07:00
2026-06-28 21:10:28 -07:00
2026-06-28 21:10:28 -07:00
2026-07-11 22:43:34 -07:00
2026-07-11 22:43:34 -07:00
2026-06-03 20:52:44 -07:00
2026-06-22 23:42:45 -07:00
2026-06-22 23:42:45 -07:00
2026-07-01 09:30:00 -07:00
2026-06-30 23:45:02 -07:00
2026-06-29 19:29:36 -07:00
2026-06-25 08:35:44 -07:00
2026-06-25 08:35:44 -07:00
2026-06-20 23:57:37 -07:00
2026-06-21 02:15:24 -07:00
2026-06-19 01:33:13 -07:00
2026-06-20 05:04:25 -07:00
2026-06-22 11:47:52 -07:00
2026-06-22 11:47:52 -07:00
2026-06-24 23:32:52 -07:00
2026-06-27 22:02:59 -07:00
2026-05-22 17:24:38 -07:00
2026-06-22 03:48:08 -07:00
2026-07-08 23:39:34 -07:00
2026-07-02 13:44:41 -07:00
2026-07-12 12:49:37 -07:00
2026-07-12 12:49:37 -07:00
2026-06-25 08:34:44 -07:00
2026-06-03 19:06:53 -07:00
2026-07-12 13:00:56 -07:00
2026-07-10 23:42:10 -07:00
2026-07-04 10:42:19 -07:00
2026-07-06 19:03:06 -07:00
2026-07-06 19:03:06 -07:00
2026-06-27 23:47:21 -07:00
2026-06-22 03:57:10 -07:00
2026-07-08 23:39:34 -07:00
2026-07-08 00:14:52 -07:00
2026-06-03 22:35:28 -07:00
2026-06-20 05:04:25 -07:00
2026-07-02 11:38:34 -07:00
2026-07-12 12:30:13 -07:00
2026-06-27 20:02:33 -07:00
2026-06-30 21:59:03 -07:00
2026-07-01 07:33:56 -07:00
2026-07-09 19:58:03 -07:00
2026-07-09 19:58:03 -07:00
2026-06-19 04:27:01 -07:00
2026-06-30 18:15:10 -07:00
2026-07-08 09:47:19 -07:00
2026-07-01 23:58:55 -07:00
2026-07-01 07:33:56 -07:00
2026-07-07 22:04:53 -07:00
2026-06-21 00:22:34 -07:00
2026-07-09 19:58:07 -07:00
2026-07-11 20:32:56 -07:00
2026-07-11 17:16:49 -07:00
2026-06-25 08:34:44 -07:00
2026-06-20 05:04:25 -07:00
2026-06-20 23:43:13 -07:00
2026-07-05 11:31:47 -07:00
2026-06-19 04:27:01 -07:00
2026-06-03 17:33:16 -07:00
2026-06-22 23:58:38 -07:00
2026-07-06 19:03:06 -07:00
2026-07-11 20:37:26 -07:00
2026-07-11 20:37:26 -07:00
2026-05-22 17:24:38 -07:00
2026-06-03 20:52:44 -07:00
2026-06-21 03:53:43 -07:00
2026-06-21 03:53:43 -07:00
2026-07-12 12:01:00 -07:00
2026-06-22 11:15:46 -07:00
2026-07-12 12:01:00 -07:00
2026-07-12 12:01:00 -07:00
2026-07-12 12:01:00 -07:00
2026-06-22 11:15:46 -07:00
2026-07-11 17:16:49 -07:00
2026-07-11 17:16:49 -07:00
2026-06-19 04:27:01 -07:00
2026-06-03 20:52:44 -07:00
2026-06-03 19:06:53 -07:00
2026-06-22 11:08:25 -07:00
2026-06-03 19:06:53 -07:00
2026-06-22 15:23:43 -07:00
2026-06-26 21:31:42 -07:00
2026-06-02 23:47:32 -07:00
2026-06-25 16:31:10 -07:00
2026-06-26 21:31:42 -07:00
2026-06-22 18:21:06 -07:00
2026-06-27 20:27:09 -07:00
2026-07-06 19:03:06 -07:00
2026-07-06 19:03:06 -07:00
2026-06-19 04:27:01 -07:00
2026-06-17 03:12:16 -07:00
2026-06-22 04:39:35 -07:00
2026-07-10 17:20:17 -07:00
2026-07-10 17:20:17 -07:00
2026-07-10 00:48:14 -07:00
2026-07-10 00:48:14 -07:00
2026-07-03 21:47:00 -07:00
2026-07-03 21:47:00 -07:00
2026-05-22 17:24:38 -07:00
2026-05-22 17:24:38 -07:00
2026-06-03 19:06:53 -07:00
2026-06-22 23:58:38 -07:00
2026-07-10 00:48:14 -07:00
2026-07-08 09:19:42 -07:00
2026-07-05 13:15:56 -07:00
2026-06-03 20:52:44 -07:00
2026-05-22 17:24:38 -07:00
2026-07-01 16:43:08 -07:00
2026-06-03 19:06:53 -07:00
2026-06-25 08:34:44 -07:00
2026-06-19 23:16:19 -07:00
2026-05-27 21:31:12 -07:00
2026-07-02 12:10:13 -07:00
2026-06-19 04:27:01 -07:00
2026-06-03 19:48:40 -07:00
2026-06-03 19:06:53 -07:00
2026-07-07 22:04:53 -07:00
2026-06-28 20:11:43 -07:00
2026-07-07 22:04:53 -07:00
2026-05-22 17:24:38 -07:00
2026-06-21 03:53:43 -07:00
2026-07-04 21:28:17 -07:00
2026-07-05 11:31:44 -07:00
2026-07-01 09:24:50 -07:00
2026-07-06 19:03:07 -07:00
2026-07-01 07:33:56 -07:00
2026-07-07 22:04:53 -07:00
2026-07-07 22:04:53 -07:00
2026-06-28 12:10:10 -07:00
2026-05-22 17:24:38 -07:00
2026-06-03 19:06:53 -07:00
2026-06-19 04:27:01 -07:00
2026-06-03 20:52:44 -07:00
2026-06-03 01:08:09 -07:00
2026-06-17 21:37:18 -07:00
2026-06-28 01:17:22 -07:00
2026-06-28 01:17:22 -07:00
2026-06-03 19:06:53 -07:00
2026-05-22 17:24:38 -07:00
2026-06-27 19:54:22 -07:00
2026-06-03 19:06:53 -07:00
2026-06-03 19:06:53 -07:00
2026-05-22 17:24:38 -07:00
2026-06-03 20:52:44 -07:00
2026-06-22 19:48:50 -07:00
2026-06-22 18:21:06 -07:00
2026-07-04 10:42:21 -07:00
2026-06-20 21:23:17 -07:00
2026-07-11 18:07:00 -07:00
2026-06-27 23:37:24 -07:00
2026-06-27 23:37:24 -07:00
2026-06-27 23:08:10 -07:00
2026-06-27 23:08:10 -07:00
2026-06-22 15:23:43 -07:00
2026-06-22 15:23:43 -07:00
2026-07-10 22:25:21 -07:00
2026-07-11 22:16:48 -07:00
2026-06-19 08:06:38 -07:00
2026-07-09 08:17:52 -07:00
2026-05-22 17:24:38 -07:00
2026-06-03 19:06:53 -07:00
2026-06-22 03:34:16 -07:00
2026-06-22 03:34:16 -07:00
2026-06-27 22:55:40 -07:00
2026-07-03 00:12:10 -07:00
2026-06-22 19:35:26 -07:00
2026-06-26 02:45:29 -07:00
2026-07-08 00:27:52 -07:00
2026-05-22 17:24:38 -07:00
2026-07-01 16:43:08 -07:00
2026-06-03 19:06:53 -07:00
2026-07-08 07:16:53 -07:00
2026-06-20 05:04:25 -07:00
2026-07-07 23:35:05 -07:00
2026-07-08 00:27:52 -07:00
2026-07-08 00:27:52 -07:00
2026-06-29 20:24:24 -07:00
2026-06-20 05:04:25 -07:00
2026-06-22 19:48:50 -07:00
2026-06-22 11:36:20 -07:00
2026-07-11 19:31:50 -07:00
2026-07-10 18:09:58 -07:00
2026-06-25 19:35:05 -07:00
2026-06-15 02:29:08 -07:00
2026-07-12 13:22:05 -07:00
2026-07-12 13:22:05 -07:00
2026-07-11 23:18:49 -07:00
2026-07-11 22:16:48 -07:00
2026-06-03 19:06:53 -07:00
2026-06-09 18:49:02 -07:00
2026-06-21 03:53:43 -07:00
2026-07-10 17:20:17 -07:00
2026-07-03 21:45:21 -07:00
2026-07-03 21:45:21 -07:00
2026-07-10 17:20:17 -07:00
2026-07-10 17:20:17 -07:00
2026-07-10 17:20:17 -07:00
2026-06-30 10:26:23 -07:00
2026-06-30 10:26:23 -07:00
2026-06-21 16:13:54 -07:00
2026-07-10 16:13:39 -07:00
2026-07-10 16:13:39 -07:00
2026-06-19 04:27:01 -07:00
2026-06-21 03:53:43 -07:00
2026-06-26 13:51:32 -07:00
2026-06-25 19:35:47 -07:00
2026-07-01 00:28:25 -07:00
2026-06-03 20:52:44 -07:00
2026-07-10 07:40:22 -07:00
2026-05-23 13:06:48 -07:00
2026-06-21 03:40:56 -07:00
2026-06-20 01:52:26 -07:00
2026-06-21 03:53:43 -07:00
2026-06-03 19:06:53 -07:00
2026-07-12 13:17:47 -07:00
2026-07-12 13:17:47 -07:00
2026-06-20 18:04:02 -07:00
2026-07-12 12:55:36 -07:00
2026-07-12 12:26:54 -07:00
2026-07-02 11:38:34 -07:00
2026-06-24 23:32:52 -07:00
2026-06-24 19:05:11 -07:00
2026-07-04 10:42:21 -07:00
2026-07-04 10:42:21 -07:00
2026-05-22 17:24:38 -07:00
2026-06-20 10:35:40 -07:00
2026-06-30 01:57:09 -07:00
2026-07-09 19:58:04 -07:00
2026-07-11 22:16:48 -07:00
2026-07-11 18:07:00 -07:00
2026-07-11 22:16:48 -07:00
2026-07-11 20:46:05 -07:00
2026-06-21 23:07:55 -07:00
2026-07-11 20:50:59 -07:00
2026-06-19 04:27:01 -07:00
2026-06-04 16:16:50 -07:00
2026-07-11 22:16:48 -07:00
2026-06-03 19:48:40 -07:00
2026-06-03 20:52:44 -07:00
2026-07-08 09:40:59 -07:00
2026-07-10 18:14:09 -07:00
2026-07-08 09:19:42 -07:00
2026-06-28 02:04:31 -07:00
2026-07-08 01:29:56 -07:00
2026-07-11 18:07:00 -07:00
2026-05-22 17:24:38 -07:00
2026-07-06 19:03:06 -07:00
2026-06-25 14:37:52 -07:00
2026-06-21 22:43:34 -07:00
2026-07-12 13:06:08 -07:00
2026-07-12 13:06:08 -07:00
2026-05-22 17:24:38 -07:00
2026-06-03 19:06:53 -07:00
2026-06-22 19:48:50 -07:00
2026-06-21 16:13:54 -07:00
2026-07-01 18:01:17 -07:00
2026-07-01 18:01:17 -07:00
2026-07-03 07:47:03 -07:00
2026-07-12 12:52:30 -07:00
2026-07-12 12:52:30 -07:00
2026-05-22 17:24:38 -07:00
2026-06-03 19:06:53 -07:00
2026-05-22 17:24:38 -07:00
2026-06-03 19:06:53 -07:00
2026-06-13 16:30:28 -07:00
2026-06-13 16:30:28 -07:00
2026-06-22 03:34:15 -07:00
2026-07-11 18:06:59 -07:00
2026-07-09 19:58:04 -07:00
2026-06-22 18:21:06 -07:00
2026-06-22 03:34:15 -07:00
2026-07-11 18:06:22 -07:00
2026-07-05 11:31:48 -07:00
2026-07-11 18:06:22 -07:00
2026-06-29 23:41:51 -07:00
2026-06-28 09:09:03 -07:00
2026-06-28 09:09:03 -07:00
2026-07-04 14:26:46 -07:00
2026-07-11 18:06:22 -07:00
2026-07-11 18:06:22 -07:00
2026-07-11 18:06:22 -07:00
2026-06-22 19:48:50 -07:00
2026-06-19 05:31:47 -07:00
2026-06-04 12:44:43 -07:00
2026-06-30 12:21:25 -07:00
2026-06-30 12:21:25 -07:00
2026-07-11 18:37:14 -07:00
2026-07-11 18:06:22 -07:00
2026-06-28 09:09:03 -07:00
2026-06-25 20:28:38 -07:00
2026-06-28 09:09:03 -07:00
2026-06-29 01:48:27 -07:00
2026-06-09 09:16:59 -07:00
2026-06-20 10:35:40 -07:00
2026-06-19 05:31:47 -07:00
2026-07-10 12:02:46 -07:00
2026-07-11 18:06:22 -07:00
2026-07-11 18:06:22 -07:00
2026-07-01 07:33:56 -07:00
2026-06-30 12:21:25 -07:00
2026-06-30 12:21:25 -07:00
2026-06-19 04:27:01 -07:00
2026-06-03 19:06:53 -07:00
2026-06-21 21:07:20 -07:00
2026-07-05 11:31:47 -07:00
2026-05-22 17:24:38 -07:00
2026-06-03 19:06:53 -07:00