Fusion
a45a2268a6
feat(FN-2925): merge fusion/fn-2925
- Mobile header row polish: finalize QuickChatFAB CSS for mobile viewport handling, apply visual viewport height to quick chat panel, remove duplicate keyboard overlap subtraction
- Add `node-routing-policy.ts` with routing logic for mesh network nodes; expand scheduler node-routing tests with new policy coverage
- Improve reviewer decision logic and add reviewer test cases for changed behavior
- Refactor triage module (48 lines changed) with updated agent selection logic
- Update `AgentsView` component and styles; add `AgentsView.test.tsx` integration test
- Simplify `QuickChatFAB.test.tsx` test by removing CSS class permutation coverage
- Update architecture docs and settings reference to reflect new routing capabilities
Commits merged:
- fix(FN-2925): remove duplicate keyboard overlap subtraction
- feat(FN-2925): complete Step 5 — finalize mobile header row polish
- fix(FN-2925): apply visual viewport height to mobile quick chat panel
- feat(FN-2903): merge fusion/fn-2903
- feat(FN-2950): merge fusion/fn-2950
Files changed:
docs/architecture.md | 19 +--
docs/settings-reference.md | 2 +-
packages/dashboard/app/components/AgentsView.css | 20 +++-
packages/dashboard/app/components/AgentsView.tsx | 11 +-
packages/dashboard/app/components/QuickChatFAB.css | 32 ++++-
.../dashboard/app/components/SettingsModal.tsx | 4 +-
.../app/components/__tests__/AgentsView.test.tsx | 37 ++++++
.../app/components/__tests__/QuickChatFAB.test.tsx | 18 +--
.../src/__tests__/node-routing-policy.test.ts | 78 ++++++++++++
packages/engine/src/__tests__/reviewer.test.ts | 19 ++-
.../src/__tests__/scheduler-node-routing.test.ts | 131 ++++++++++++++++++++-
packages/engine/src/__tests__/triage.test.ts | 16 +--
packages/engine/src/node-routing-policy.ts | 45 +++++++
packages/engine/src/reviewer.ts | 33 ++++--
packages/engine/src/scheduler.ts | 44 ++++++-
packages/engine/src/triage.ts | 48 ++++----
16 files changed, 473 insertions(+), 84 deletions(-)
Fusion-Task-Id: FN-2925
2026-04-29 12:53:10 -07:00
..
2026-04-29 12:53:10 -07:00
2026-04-18 12:14:43 -07:00
2026-04-24 19:39:20 -07:00
2026-04-24 23:22:46 -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 12:31:09 -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-28 22:14:07 -07:00
2026-04-29 02:42:57 -07:00
2026-04-29 02:10:51 -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 12:53:10 -07:00
2026-04-29 10:20:34 -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 12:53: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-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