Fusion
07ca2ae668
feat(FN-2926): merge fusion/fn-2926
- Chat grouped tool calls refactored out of `ChatToolCalls.tsx` into inline rendering in `ChatView.tsx`, with updated styling and new tests; summary/expand logic for grouped calls updated
- New `QuickChatFAB` component added with styles, replacing the old `ChatToolCalls` inline callout with a persistent quick-access button
- Settings modal enhanced with agent runtime routes (register/unregister, run management) and memory settings routes (export, update limits)
- Remote access provider adapters updated to support real QR codes and live Tailscale URL sharing in TUI dashboard
- TUI dashboard app/controller/state updated to surface remote node status and shortcut hints
- `AgentsView` component updated with new layout and styling, plus comprehensive tests
- Route registration and agent runs tests updated to match new runtime API shape
- `surface-hover` fallback assertion aligned across tests
- Bundled dependency updates in `pnpm-lock.yaml`
Commits merged:
- test(FN-2926): align surface-hover fallback assertion
- feat(FN-2926): complete Steps 2-4 — inline grouped tool-call rendering and tests
- feat(FN-2926): complete Step 3 — refine grouped tool-call styles
- feat(FN-2926): complete Step 1 — update grouped tool call summary logic
- feat(remote): real QR codes, live tailscale URL, TUI status & shortcut
- feat(FN-2931): merge fusion/fn-2931
- feat(FN-2925): merge fusion/fn-2925
- feat(FN-2903): merge fusion/fn-2903
Files changed:
.../commands/dashboard-tui/__tests__/app.test.tsx | 9 +-
packages/cli/src/commands/dashboard-tui/app.tsx | 97 +++++++++++--
.../cli/src/commands/dashboard-tui/controller.ts | 31 ++++
packages/cli/src/commands/dashboard-tui/state.ts | 9 +-
packages/cli/src/commands/dashboard.ts | 3 +-
.../app/__tests__/status-colors-theme.test.ts | 4 +-
packages/dashboard/app/components/AgentsView.css | 20 ++-
packages/dashboard/app/components/AgentsView.tsx | 11 +-
.../dashboard/app/components/ChatToolCalls.tsx | 160 ---------------------
packages/dashboard/app/components/ChatView.css | 53 +++----
packages/dashboard/app/components/ChatView.tsx | 131 ++++++++++++++++-
packages/dashboard/app/components/QuickChatFAB.css | 87 ++++++-----
packages/dashboard/app/components/QuickChatFAB.tsx | 124 +++++++++++++++-
.../dashboard/app/components/SettingsModal.css | 21 +++
.../dashboard/app/components/SettingsModal.tsx | 72 +++++++++-
.../app/components/__tests__/AgentsView.test.tsx | 37 +++++
.../app/components/__tests__/ChatView.test.tsx | 83 +++++++++--
.../app/components/__tests__/QuickChatFAB.test.tsx | 68 ++++++---
.../components/__tests__/SettingsModal.test.tsx | 12 +-
packages/dashboard/package.json | 2 +
.../src/__tests__/routes-agent-runs.test.ts | 13 +-
.../src/routes/register-agent-runtime-routes.ts | 49 ++++---
.../src/routes/register-settings-memory-routes.ts | 36 ++++-
packages/engine/src/project-engine.ts | 4 +-
.../engine/src/remote-access/provider-adapters.ts | 14 +-
pnpm-lock.yaml | 113 +++++++++++++++
26 files changed, 933 insertions(+), 330 deletions(-)
Fusion-Task-Id: FN-2926
2026-04-29 13:26:25 -07:00
..
2026-04-29 13:23:31 -07:00
2026-04-29 13:26:25 -07:00
2026-04-29 13:26:25 -07:00
2026-04-24 19:39:20 -07:00
2026-04-24 19:39:20 -07:00
2026-04-24 19:39:20 -07:00
2026-04-24 09:38:16 -07:00
2026-04-28 19:20:10 -07:00
2026-04-27 22:17:54 -07:00
2026-04-27 22:17:54 -07:00
2026-04-27 22:17:54 -07:00
2026-04-24 19:39:20 -07:00
2026-04-27 22:17:54 -07:00
2026-04-24 19:39:20 -07:00
2026-04-27 22:17:54 -07:00
2026-04-27 03:13:32 -07:00
2026-04-24 19:39:20 -07:00
2026-04-24 19:39:20 -07:00
2026-04-22 09:56:26 -07:00
2026-04-27 08:45:49 -07:00
2026-04-24 19:39:20 -07:00
2026-04-25 13:46:00 -07:00
2026-04-27 22:17:54 -07:00
2026-04-27 04:05:25 -07:00
2026-04-29 12:31:09 -07:00
2026-04-29 13:26:25 -07:00
2026-04-25 00:07:19 -07:00
2026-04-25 00:07:19 -07:00
2026-04-28 19:20:10 -07:00
2026-04-25 01:45:29 -07:00
2026-04-25 01:45:29 -07:00
2026-04-24 22:25:57 -07:00
2026-04-28 14:25:55 -07:00
2026-04-27 04:05:25 -07:00
2026-04-29 09:21:30 -07:00
2026-04-29 09:46:16 -07:00
2026-04-29 09:46:16 -07:00
2026-04-29 13:23:31 -07:00
2026-04-29 13:23:31 -07:00
2026-04-24 13:24:49 -07:00
2026-04-28 14:25:56 -07:00
2026-04-25 07:59:48 -07:00
2026-04-27 04:05:25 -07:00
2026-04-27 04:05:25 -07:00
2026-04-24 09:38:16 -07:00
2026-04-24 19:39:20 -07:00
2026-04-24 19:39:20 -07:00
2026-04-25 19:35:47 -07:00
2026-04-27 20:05:45 -07:00
2026-04-26 23:35:18 -07:00
2026-04-26 23:47:22 -07:00
2026-04-24 19:39:20 -07:00
2026-04-24 19:39:20 -07:00
2026-04-26 22:50:51 -07:00
2026-04-26 22:50:51 -07:00
2026-04-25 11:28:33 -07:00
2026-04-29 07:10:52 -07:00
2026-04-27 17:26:07 -07:00
2026-04-27 17:26:07 -07:00
2026-04-24 19:39:20 -07:00
2026-04-26 10:01:21 -07:00
2026-04-27 03:07:58 -07:00
2026-04-25 10:50:32 -07:00
2026-04-27 18:10:24 -07:00
2026-04-29 07:10:52 -07:00
2026-04-27 19:36:24 -07:00
2026-04-24 19:39:20 -07:00
2026-04-29 07:10:52 -07:00
2026-04-23 23:02:35 -07:00
2026-04-27 18:10:24 -07:00
2026-04-28 16:20:24 -07:00
2026-04-29 07:10:52 -07:00
2026-04-28 23:23:34 -07:00
2026-04-29 07:10:52 -07:00
2026-04-28 20:07:54 -07:00
2026-04-29 08:15:01 -07:00
2026-04-29 08:15:01 -07:00
2026-04-29 02:42:57 -07:00
2026-04-29 02:42:57 -07:00
2026-04-29 08:15:01 -07:00
2026-04-29 08:15:01 -07:00
2026-04-27 02:24:21 -07:00
2026-04-27 02:24:21 -07:00
2026-04-27 17:26:07 -07:00
2026-04-24 19:39:20 -07:00
2026-04-25 11:10:10 -07:00
2026-04-26 02:15:54 -07:00
2026-04-28 14:25:55 -07:00
2026-04-24 09:38:16 -07:00
2026-04-23 23:02:36 -07:00
2026-04-23 23:02:36 -07:00
2026-04-19 20:48:13 -07:00
2026-04-27 04:05:25 -07:00
2026-04-24 19:39:20 -07:00
2026-04-26 12:25:10 -07:00
2026-04-27 03:07:58 -07:00
2026-04-29 00:23:29 -07:00
2026-04-25 07:04:50 -07:00
2026-04-28 16:24:22 -07:00
2026-04-28 16:04:29 -07:00
2026-04-26 12:25:10 -07:00
2026-04-26 11:39:08 -07:00
2026-04-28 18:21:17 -07:00
2026-04-28 00:18:31 -07:00
2026-04-28 00:23:45 -07:00
2026-04-25 11:21:35 -07:00
2026-04-28 14:25:55 -07:00
2026-04-24 09:38:16 -07:00
2026-04-24 09:38:16 -07:00
2026-04-28 23:23:34 -07:00
2026-04-28 23:23:34 -07:00
2026-04-28 14:25:55 -07:00
2026-04-24 19:39:20 -07:00
2026-04-24 22:54:44 -07:00
2026-04-25 07:04:50 -07:00
2026-04-27 22:17:54 -07:00
2026-04-27 23:06:20 -07:00
2026-04-25 13:46:00 -07:00
2026-04-25 13:46:00 -07:00
2026-04-28 14:25:55 -07:00
2026-04-28 14:25:55 -07:00
2026-04-27 17:26:07 -07:00
2026-04-27 17:26:07 -07:00
2026-04-24 19:39:20 -07:00
2026-04-24 19:39:20 -07:00
2026-04-22 13:57:10 -07:00
2026-04-24 19:39:20 -07:00
2026-04-24 19:39:20 -07:00
2026-04-28 14:25:56 -07:00
2026-04-28 23:23:34 -07:00
2026-04-24 19:39:20 -07:00
2026-04-24 19:39:20 -07:00
2026-04-26 22:17:19 -07:00
2026-04-29 07:10:52 -07:00
2026-04-27 22:17:54 -07:00
2026-04-23 23:02:36 -07:00
2026-04-29 13:23:31 -07:00
2026-04-29 13:23:31 -07:00
2026-04-29 08:15:01 -07:00
2026-04-29 00:09:39 -07:00
2026-04-24 19:39:20 -07:00
2026-04-27 04:05:25 -07:00
2026-04-27 04:05:25 -07:00
2026-04-23 23:02:36 -07:00
2026-04-29 08:15:01 -07:00
2026-04-29 08:15:01 -07:00
2026-04-27 22:17:54 -07:00
2026-04-27 04:05:25 -07:00
2026-04-27 19:36:24 -07:00
2026-04-23 23:02:36 -07:00
2026-04-28 22:43:51 -07:00
2026-04-27 19:36:24 -07:00
2026-04-24 22:54:44 -07:00
2026-04-24 19:39:20 -07:00
2026-04-29 12:53:10 -07:00
2026-04-29 13:20:03 -07:00
2026-04-24 19:39:20 -07:00
2026-04-24 19:39:20 -07:00
2026-04-28 14:25:56 -07:00
2026-04-24 19:39:20 -07:00
2026-04-24 19:39:20 -07:00
2026-04-24 19:39:20 -07:00
2026-04-28 14:25:56 -07:00
2026-04-28 21:05:38 -07:00
2026-04-24 19:39:20 -07:00
2026-04-24 19:39:20 -07:00
2026-04-24 19:39:20 -07:00
2026-04-25 12:40:32 -07:00
2026-04-24 19:39:20 -07:00
2026-04-26 14:06:48 -07:00
2026-04-27 04:05:25 -07:00
2026-04-27 08:03:20 -07:00
2026-04-27 17:26:07 -07:00
2026-04-28 14:25:56 -07:00
2026-04-29 11:42:37 -07:00
2026-04-29 09:46:16 -07:00
2026-04-29 11:42:37 -07:00
2026-04-26 22:21:18 -07:00
2026-04-26 22:21:18 -07:00
2026-04-28 23:31:23 -07:00
2026-04-29 11:53:35 -07:00
2026-04-25 07:59:48 -07:00
2026-04-24 19:39:20 -07:00
2026-04-24 19:39:20 -07:00
2026-04-29 08:15:01 -07:00
2026-04-27 20:06:06 -07:00
2026-04-28 19:20:10 -07:00
2026-04-28 22:17:32 -07:00
2026-04-29 07:10:52 -07:00
2026-04-27 17:26:07 -07:00
2026-04-27 09:01:32 -07:00
2026-04-27 01:40:07 -07:00
2026-04-28 15:20:49 -07:00
2026-04-29 00:31:46 -07:00
2026-04-27 04:33:10 -07:00
2026-04-28 14:25:55 -07:00
2026-04-25 12:18:55 -07:00
2026-04-27 18:10:24 -07:00
2026-04-28 00:35:48 -07:00
2026-04-28 14:25:56 -07:00