Fusion
b0cda2398b
feat(FN-2923): merge fusion/fn-2923
- Add task `source` provenance field tracking how tasks enter the system (e.g. `"manual"`, `"heartbeat"`, `"executor"`, `"triage"`, `"cron"`, `"routine"`)
- Wire `source` into shared create-task tools, executor agent, triage agent, cron runner, and routine runner
- Add `source` to heartbeat task creation in `agent-heartbeat.ts` and mission execution loop in `mission-execution-loop.ts`
- Wire `source` field into dashboard routes (`register-planning-subtask-routes.ts`, `register-task-workflow-routes.ts`) and GitHub integration (`register-git-github.ts`)
- Add `source` to the API layer and task store handlers in the dashboard
- Expose `source` in the `fn` CLI task command and `task-plan` extension tool
- Add integration tests for provenance across engine (agent-tools, agent-heartbeat, cron-runner, triage, pr-comment-handler) and dashboard routes
- Update existing tests to assert the correct source values
- Bulk-revert stale changeset files that were superseded by the v0.9.1 release commit
Commits merged:
- test(FN-2923): complete Step 14 — align tests with task source provenance
- test(FN-2923): complete Steps 12-13 — update and add provenance tests
- feat(FN-2923): complete Step 10 — wire CLI task provenance
- feat(FN-2923): complete Step 9 — wire dashboard UI and API source fields
- feat(FN-2923): complete Step 8 — wire dashboard route provenance
- feat(FN-2923): complete Step 7 — wire remaining engine provenance
- feat(FN-2923): complete Step 6 — add routine create-task provenance
- feat(FN-2923): complete Step 5 — add cron create-task provenance
- feat(FN-2923): complete Step 4 — add triage subtask source
- feat(FN-2923): complete Step 3 — add executor create-task source
- feat(FN-2923): complete Step 2 — add heartbeat task provenance
- feat(FN-2923): complete Step 1 — add provenance to shared create-task tools
- feat(FN-2945): merge fusion/fn-2945
- chore(release): v0.9.1
Files changed:
.changeset/active-agents-no-stuck-connecting.md | 13 ---
.changeset/active-agents-panel-hoist-heartbeat.md | 13 ---
.changeset/fix-agent-heartbeat-terminal-links.md | 5 --
.changeset/fix-experimental-defaults.md | 5 --
.changeset/improve-git-manager-diff-pane.md | 5 --
.changeset/insights-two-pane-layout.md | 5 --
.changeset/show-planning-tasks-immediately.md | 5 --
CHANGELOG.md | 92 ++++++++++++++++++++++
package.json | 2 +-
packages/cli-alias/CHANGELOG.md | 15 ++++
packages/cli-alias/package.json | 2 +-
packages/cli/CHANGELOG.md | 12 +++
packages/cli/package.json | 2 +-
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/CHANGELOG.md | 7 ++
packages/core/package.json | 2 +-
packages/dashboard/CHANGELOG.md | 14 ++++
.../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/TodoView.tsx | 2 +
.../__tests__/ModelOnboardingModal.test.tsx | 4 +-
.../app/components/__tests__/QuickChatFAB.test.tsx | 14 +---
.../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/package.json | 2 +-
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 ++
packages/desktop/CHANGELOG.md | 7 ++
packages/desktop/package.json | 2 +-
packages/engine/CHANGELOG.md | 11 +++
packages/engine/package.json | 2 +-
.../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 +
.../src/__tests__/pr-comment-handler.test.ts | 8 ++
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/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/triage.ts | 4 +
packages/mobile/CHANGELOG.md | 7 ++
packages/mobile/package.json | 2 +-
packages/pi-claude-cli/CHANGELOG.md | 7 ++
packages/pi-claude-cli/package.json | 2 +-
packages/plugin-sdk/CHANGELOG.md | 10 +++
packages/plugin-sdk/package.json | 2 +-
.../examples/fusion-plugin-auto-label/CHANGELOG.md | 8 ++
.../examples/fusion-plugin-auto-label/package.json | 2 +-
.../examples/fusion-plugin-ci-status/CHANGELOG.md | 8 ++
.../examples/fusion-plugin-ci-status/package.json | 2 +-
.../fusion-plugin-notification/CHANGELOG.md | 8 ++
.../fusion-plugin-notification/package.json | 2 +-
.../fusion-plugin-settings-demo/CHANGELOG.md | 8 ++
.../fusion-plugin-settings-demo/package.json | 2 +-
plugins/fusion-plugin-hermes-runtime/CHANGELOG.md | 8 ++
plugins/fusion-plugin-hermes-runtime/package.json | 2 +-
.../fusion-plugin-openclaw-runtime/CHANGELOG.md | 8 ++
.../fusion-plugin-openclaw-runtime/package.json | 2 +-
.../fusion-plugin-paperclip-runtime/CHANGELOG.md | 8 ++
.../fusion-plugin-paperclip-runtime/package.json | 2 +-
78 files changed, 499 insertions(+), 115 deletions(-)
Fusion-Task-Id: FN-2923
2026-04-29 17:23:22 -07:00
..
2026-04-08 10:39:38 -07:00
2026-04-24 19:39:20 -07:00
2026-04-19 20:48:14 -07:00
2026-04-24 11:35:55 -07:00
2026-04-24 08:54:25 -07:00
2026-04-08 16:48:35 -07:00
2026-04-29 16:11:59 -07:00
2026-04-28 14:30:38 -07:00
2026-04-27 17:26:07 -07:00
2026-04-14 12:15:01 -07:00
2026-04-27 19:59:52 -07:00
2026-04-27 19:59:52 -07:00
2026-04-27 04:05:25 -07:00
2026-04-24 19:39:20 -07:00
2026-04-08 05:53:24 -07:00
2026-04-27 19:59:52 -07:00
2026-04-20 15:37:32 -07:00
2026-04-27 19:59:52 -07:00
2026-04-24 19:39:20 -07:00
2026-04-25 20:32:37 -07:00
2026-04-12 21:40:34 -07:00
2026-04-12 21:40:34 -07:00
2026-04-18 07:36:57 -07:00
2026-04-24 19:39:20 -07:00
2026-04-27 19:59:52 -07:00
2026-04-14 11:29:16 -07:00
2026-04-25 18:22:37 -07:00
2026-04-28 14:25:55 -07:00
2026-04-27 01:22:28 -07:00
2026-04-27 19:59:52 -07:00
2026-04-15 02:53:06 -07:00
2026-04-09 13:01:19 -07:00
2026-04-07 23:30:32 -07:00
2026-04-24 09:44:44 -07:00
2026-04-16 10:04:44 -07:00
2026-04-20 22:10:07 -07:00
2026-04-15 19:53:22 -07:00
2026-03-31 01:26:57 -07:00
2026-04-27 19:59:52 -07:00
2026-04-14 09:29:08 -07:00
2026-04-24 08:55:02 -07:00
2026-04-24 19:39:20 -07:00
2026-04-29 10:20:34 -07:00
2026-04-27 19:59:52 -07:00
2026-04-27 19:59:52 -07:00
2026-04-27 22:53:51 -07:00
2026-04-10 10:44:48 -07:00
2026-04-20 10:16:13 -07:00
2026-04-11 11:27:32 -07:00
2026-04-29 17:23:22 -07:00
2026-04-29 15:25:06 -07:00
2026-04-24 19:39:20 -07:00
2026-04-27 19:59:52 -07:00
2026-04-24 19:39:20 -07:00
2026-04-24 19:39:20 -07:00
2026-04-26 14:16:35 -07:00
2026-04-27 01:40:07 -07:00
2026-04-24 19:39:20 -07:00
2026-04-24 22:25:57 -07:00
2026-04-12 18:38:26 -07:00
2026-04-27 19:59:52 -07:00
2026-04-16 23:07:40 -07:00