Fusion
6a5e240e9a
feat(FN-2920): merge fusion/fn-2920
- Add cloudflared binary detection to the remote-access routes, surfaced in the Settings modal with install/uninstall UX states
- Update `SettingsModal.tsx` with new cloudflared status UI and install prompt flows; add co-located CSS in `SettingsModal.css`
- Add `SettingsModal.test.tsx` covering the new cloudflared states and API interactions
- Extend `remote-access-routes.test.ts` with detection and install/uninstall coverage
- Document the new cloudflared detection UX in `docs/remote-access.md` and `docs/settings-reference.md`
- Minor `server.test.ts` fixture update to align with the new server contract
Commits merged:
- docs(FN-2920): complete Step 7 — document cloudflared detection UX
- test(FN-2920): complete Step 6 — update server contract expectations
- feat(FN-2920): complete Step 5 — add cloudflared detection and install coverage
Files changed:
docs/remote-access.md | 2 +
docs/settings-reference.md | 2 +
packages/dashboard/app/api/legacy.ts | 7 ++
.../dashboard/app/components/SettingsModal.css | 42 ++++++++
.../dashboard/app/components/SettingsModal.tsx | 112 ++++++++++++++++-----
.../components/__tests__/SettingsModal.test.tsx | 66 ++++++++++++
.../src/__tests__/remote-access-routes.test.ts | 107 +++++++++++++++++++-
packages/dashboard/src/__tests__/server.test.ts | 4 +-
.../src/routes/register-settings-memory-routes.ts | 59 ++++++++++-
9 files changed, 372 insertions(+), 29 deletions(-)
Fusion-Task-Id: FN-2920
2026-04-29 13:57:41 -07:00
..
2026-04-29 13:57:41 -07:00
2026-04-08 08:10:17 -07:00
2026-04-29 13:51:36 -07:00
2026-04-26 15:00:10 -07:00
2026-04-26 15:16:22 -07:00
2026-04-26 15:16:22 -07:00
2026-04-22 08:23:36 -07:00
2026-04-24 08:54:25 -07:00
2026-04-28 14:25:55 -07:00
2026-04-26 11:54:54 -07:00
2026-04-22 22:12:19 -07:00
2026-04-16 20:12:09 -07:00
2026-04-14 08:13:25 -07:00
2026-04-28 20:07:54 -07:00
2026-04-27 22:17:54 -07:00
2026-04-29 07:10:52 -07:00
2026-04-20 12:59:58 -07:00
2026-04-20 15:37:32 -07:00
2026-04-25 10:50:32 -07:00
2026-04-24 14:32:16 +02:00
2026-04-23 23:02:35 -07:00
2026-04-24 11:06:20 -07:00
2026-04-20 22:45:26 -07:00
2026-04-23 23:02:37 -07:00
2026-04-20 22:45:26 -07:00
2026-04-20 22:45:26 -07:00
2026-04-28 18:21:17 -07:00
2026-04-24 08:55:02 -07:00
2026-04-26 18:11:09 -07:00
2026-04-16 21:42:16 -07:00
2026-04-16 11:08:06 -07:00
2026-04-26 18:11:09 -07:00
2026-04-29 07:54:45 -07:00
2026-04-19 20:48:14 -07:00
2026-04-28 14:25:55 -07:00
2026-04-28 14:25:55 -07:00
2026-04-16 23:33:05 -07:00
2026-04-28 14:25:56 -07:00
2026-04-16 13:05:12 -07:00
2026-04-13 13:32:38 -07:00
2026-04-23 23:02:37 -07:00
2026-04-26 09:19:03 -07:00
2026-04-23 23:02:35 -07:00
2026-04-26 14:43:03 -07:00
2026-04-29 07:58:58 -07:00
2026-04-23 13:48:45 -07:00
2026-04-27 23:06:20 -07:00
2026-04-16 20:12:09 -07:00
2026-04-29 07:20:20 -07:00
2026-04-29 07:35:23 -07:00
2026-04-08 06:02:28 -07:00
2026-04-28 14:25:55 -07:00
2026-04-28 14:25:55 -07:00
2026-04-29 07:10:52 -07:00
2026-04-23 23:02:34 -07:00
2026-04-21 20:12:00 -07:00
2026-04-18 22:53:07 -07:00
2026-04-26 13:55:25 -07:00
2026-04-29 07:10:52 -07:00
2026-04-29 07:35:23 -07:00
2026-04-16 21:42:16 -07:00