Fusion
ab80d5f022
feat(FN-2971): merge fusion/fn-2971
- Add AI-generated merge commit summaries to the CLI via a new `ai-summarize.ts` module with configurable summarization settings
- Add node routing policy routes for task workflow automation and planning subtasks in the dashboard API
- Add SettingsModal improvements: tab-based navigation, node routing policy settings, and a new AI summarization section
- Update SettingsModal CSS with scoped styles and update QuickChatFAB and ModelOnboardingModal CSS
- Add `AgentHeartbeatMonitor` budget override and improve agent heartbeat handling; update scheduler with new node routing checks
- Improve merger logic with new merge policy helpers, PR comment handlers, and routine runner integration
- Add extensive test coverage across engine (agent-tools, scheduler-node-routing, node-routing-policy, merger, cron-runner), core (ai-summarize), and dashboard (routes, api)
- Minor improvements to agent delegation tools, triage, executor, project-engine, and various dashboard components (TodoView, useTaskHandlers, onboarding-flow)
Commits merged:
- fix(FN-2971): complete Step 1 — scope attach button sizing
- feat(FN-2947): merge fusion/fn-2947
- feat(FN-2970): merge fusion/fn-2970
- feat(FN-2956): merge fusion/fn-2956
- feat(FN-2923): merge fusion/fn-2923
- feat(FN-2945): merge fusion/fn-2945
Files changed:
.changeset/add-ai-merge-commit-summary.md | 5 +
docs/settings-reference.md | 3 +
packages/cli/src/__tests__/task-plan.test.ts | 1 +
packages/cli/src/commands/__tests__/task.test.ts | 15 +-
packages/cli/src/commands/task.ts | 15 +-
packages/cli/src/extension.ts | 9 +
packages/core/src/__tests__/ai-summarize.test.ts | 64 ++++++++
packages/core/src/ai-summarize.ts | 114 +++++++++++++
packages/core/src/index.ts | 3 +
packages/core/src/settings-schema.ts | 1 +
packages/core/src/types.ts | 4 +
.../app/__tests__/agent-css-classes.test.ts | 3 +-
packages/dashboard/app/__tests__/api.test.ts | 13 ++
packages/dashboard/app/api/legacy.ts | 2 +
packages/dashboard/app/components/AgentsView.css | 22 +--
.../app/components/ModelOnboardingModal.tsx | 5 +-
packages/dashboard/app/components/QuickChatFAB.css | 17 +-
packages/dashboard/app/components/QuickChatFAB.tsx | 2 +-
.../dashboard/app/components/SettingsModal.css | 11 +-
.../dashboard/app/components/SettingsModal.tsx | 22 ++-
packages/dashboard/app/components/TodoView.tsx | 2 +
.../__tests__/ModelOnboardingModal.test.tsx | 4 +-
.../app/components/__tests__/QuickChatFAB.test.tsx | 14 +-
.../__tests__/SettingsModalNodeRouting.test.tsx | 12 +-
.../app/components/__tests__/TodoView.test.tsx | 4 +-
.../__tests__/agents-view-mobile.test.tsx | 5 +-
.../components/__tests__/onboarding-flow.test.tsx | 2 +-
.../app/hooks/__tests__/useTaskHandlers.test.ts | 4 +-
packages/dashboard/app/hooks/useTaskHandlers.ts | 4 +-
packages/dashboard/src/__tests__/routes.test.ts | 14 ++
packages/dashboard/src/routes.ts | 4 +
.../dashboard/src/routes/register-git-github.ts | 12 ++
.../src/routes/register-planning-subtask-routes.ts | 3 +
.../src/routes/register-task-workflow-routes.ts | 7 +
.../engine/src/__tests__/agent-heartbeat.test.ts | 10 ++
.../src/__tests__/agent-tools-delegation.test.ts | 2 +
packages/engine/src/__tests__/agent-tools.test.ts | 37 +++++
packages/engine/src/__tests__/cron-runner.test.ts | 4 +
packages/engine/src/__tests__/merger.test.ts | 75 +++++++++
.../src/__tests__/node-routing-policy.test.ts | 25 ++-
.../src/__tests__/pr-comment-handler.test.ts | 8 +
.../src/__tests__/scheduler-node-routing.test.ts | 18 +-
packages/engine/src/__tests__/triage.test.ts | 2 +
packages/engine/src/agent-heartbeat.ts | 13 +-
packages/engine/src/agent-tools.ts | 13 +-
packages/engine/src/cron-runner.ts | 7 +-
packages/engine/src/executor.ts | 2 +-
packages/engine/src/merger.ts | 181 +++++++++------------
packages/engine/src/mission-execution-loop.ts | 8 +
packages/engine/src/pr-comment-handler.ts | 5 +
packages/engine/src/project-engine.ts | 8 +
packages/engine/src/routine-runner.ts | 4 +
packages/engine/src/scheduler.ts | 8 +-
packages/engine/src/triage.ts | 4 +
54 files changed, 673 insertions(+), 183 deletions(-)
Fusion-Task-Id: FN-2971
2026-04-29 17:49:08 -07:00
..
2026-04-29 17:34:26 -07:00
2026-04-18 12:14:43 -07:00
2026-04-29 14:26:58 -07:00
2026-04-29 14:26:58 -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-29 13:29:00 -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 16:55:20 -07:00
2026-04-29 14:26:58 -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-29 16:26:53 -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 16:26:53 -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 16:25:30 -07:00
2026-04-29 16:25:30 -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-29 17:23:22 -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 17:49:08 -07:00
2026-04-29 17:49:08 -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-29 16:26:53 -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 17:34:26 -07:00
2026-04-29 17:38:25 -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 14:02:24 -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-29 16:26:53 -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-29 17:23:22 -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-08 09:07:34 -07:00
2026-04-28 14:25:56 -07:00