gsxdsm
7c23771433
FN-8265: add task follow-up proposal creation
...
Enable configured ephemeral workers to propose and create follow-up tasks from mailbox messages.
- Add persisted task-proposal claim state, migrations, and async messaging APIs.
- Register task-proposal creation routes, SSE events, agent tool support, and CLI integration.
- Add mailbox creation controls, settings, documentation, localization, and regression coverage.
Files changed:
.changeset/fn-8265-task-follow-up-policy.md | 7 ++
docs/dashboard-guide.md | 2 +-
docs/settings-reference.md | 12 ++-
packages/cli/src/extension.ts | 34 ++++---
.../src/__tests__/postgres/sqlite-migrator.test.ts | 14 ++-
.../postgres/task-proposal-claim.pg.test.ts | 51 +++++++++++
packages/core/src/async-message-store.ts | 39 ++++++++
packages/core/src/index.gate.ts | 4 +-
packages/core/src/index.ts | 4 +-
packages/core/src/message-store.ts | 46 ++++++++++
.../core/src/postgres/migrations/0000_initial.sql | 2 +
.../migrations/0020_task_proposal_claim.sql | 4 +
packages/core/src/postgres/schema-applier.ts | 13 ++-
packages/core/src/postgres/schema/project.ts | 3 +
packages/core/src/settings-schema.ts | 19 +++-
packages/core/src/task-store/async-persistence.ts | 2 +-
packages/core/src/task-store/persistence.ts | 4 +-
packages/core/src/task-store/serialization.ts | 1 +
packages/core/src/task-store/task-creation.ts | 51 +++++++++++
packages/core/src/task-store/task-row-mappers.ts | 2 +-
packages/core/src/types.ts | 56 +++++++++++-
packages/dashboard/app/api/legacy.ts | 5 +
packages/dashboard/app/components/MailboxModal.tsx | 4 +
.../app/components/MailboxTaskProposal.css | 3 +
.../app/components/MailboxTaskProposal.tsx | 33 +++++++
packages/dashboard/app/components/MailboxView.tsx | 4 +
.../__tests__/MailboxTaskProposal.test.tsx | 43 +++++++++
.../app/components/settings/section-keys.ts | 2 +-
.../settings/sections/GeneralSection.search.ts | 13 ++-
.../settings/sections/GeneralSection.tsx | 22 +++--
.../settings-default-descriptions.test.tsx | 4 +-
.../routes/__tests__/task-proposal-routes.test.ts | 99 ++++++++++++++++++++
.../src/routes/register-messaging-scripts.ts | 101 +++++++++++++++++++++
packages/dashboard/src/sse.ts | 7 ++
packages/engine/src/agent-tools.ts | 30 ++++--
packages/engine/src/executor.ts | 9 +-
packages/engine/src/step-session-executor.ts | 8 +-
packages/i18n/locales/en/app.json | 5 +
38 files changed, 696 insertions(+), 66 deletions(-)
Fusion-Task-Id: FN-8265
Fusion-Task-Lineage: 4e864a2f-3485-4a54-8be7-1699b5479a94
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 03:48:38 -07:00
gsxdsm
eb7d223a03
FN-8207: add task reassignment for delegated work
...
Correct delegation routing for duplicate tasks and enable explicit task owner reassignment.
- Preserve requested assignee and todo routing on duplicate canonical tasks
- Add governed fn_task_assign to engine, heartbeat, triage, workflow, and chat sessions
- Cover assignment validation, truthful delegation responses, and tool availability
Files changed:
.changeset/fn-8207-delegate-assign.md | 7 ++
docs/agents.md | 6 ++
packages/core/src/types.ts | 1 +
packages/core/src/usage-events.ts | 2 +-
.../dashboard/src/__tests__/chat-manager.test.ts | 2 +
packages/dashboard/src/__tests__/chat.test.ts | 2 +
packages/dashboard/src/chat.ts | 2 +
.../engine/src/__tests__/agent-action-gate.test.ts | 2 +
.../src/__tests__/agent-tools-delegation.test.ts | 99 ++++++++++++++++++-
.../src/__tests__/agent-tools-task-assign.test.ts | 75 +++++++++++++++
.../src/__tests__/gating-classifications.test.ts | 1 +
.../src/__tests__/heartbeat-executor.test.ts | 8 +-
.../src/__tests__/permanent-agent-gating.test.ts | 2 +
.../src/__tests__/step-session-executor.test.ts | 4 +-
packages/engine/src/__tests__/triage.test.ts | 5 +-
packages/engine/src/agent-heartbeat.ts | 4 +-
packages/engine/src/agent-tools.ts | 105 ++++++++++++++++++++-
packages/engine/src/executor.ts | 3 +
packages/engine/src/gating-classifications.ts | 1 +
packages/engine/src/index.ts | 2 +
packages/engine/src/step-session-executor.ts | 2 +
packages/engine/src/triage.ts | 2 +
22 files changed, 324 insertions(+), 13 deletions(-)
Fusion-Task-Id: FN-8207
Fusion-Task-Lineage: db6f3876-bdc8-4279-b726-29344d9acdb9
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-17 10:53:19 -07:00
gsxdsm
7a50232916
FN-8208: validate agent message recipients before delivery
...
Prevent false-success agent messages by validating recipients before delivery.
- Wire AgentStore into every send-message tool registration.
- Reject missing or unvalidated agent recipients before persistence or wake-up.
- Add recipient validation coverage and a patch changeset.
Files changed:
.../fn-8208-send-message-recipient-validation.md | 7 ++
.../chat-send-message-agentstore-wiring.test.ts | 11 ++
packages/dashboard/src/chat.ts | 2 +-
...tools-send-message-recipient-validation.test.ts | 116 +++++++++++++++++++++
packages/engine/src/agent-heartbeat.ts | 4 +-
packages/engine/src/agent-tools.ts | 24 ++++-
packages/engine/src/executor.ts | 2 +-
packages/engine/src/step-session-executor.ts | 2 +-
8 files changed, 162 insertions(+), 6 deletions(-)
Fusion-Task-Id: FN-8208
Fusion-Task-Lineage: 84752bb8-c9f7-42bd-87c1-9681ac442789
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-17 10:07:24 -07:00
gsxdsm
1a337df5e9
FN-8098: add executor model fallback
...
Add workflow-specific executor fallback configuration and bounded recovery.
- Add executor fallback provider, model, and thinking settings across core schemas and settings UI.
- Route executor, heartbeat, child, and workflow-step sessions through the executor fallback resolver.
- Retry the primary model after fallback failure before reporting terminal exhaustion.
Files changed:
.changeset/fn-8098-model-fallback.md | 7 +++
docs/settings-reference.md | 7 ++-
.../core/src/__tests__/model-resolution.test.ts | 13 ++++
.../core/src/__tests__/settings-parity.test.ts | 5 ++
packages/core/src/builtin-workflow-settings.ts | 24 +++++++
packages/core/src/index.gate.ts | 1 +
packages/core/src/index.ts | 1 +
packages/core/src/model-resolution.ts | 21 +++++++
packages/core/src/settings-schema.ts | 3 +
packages/core/src/types.ts | 11 ++++
.../app/components/WorkflowSettingsPanel.tsx | 8 +++
.../settings/sections/ProjectModelsSection.tsx | 10 ++-
packages/engine/src/__tests__/pi.test.ts | 14 ++++-
packages/engine/src/agent-session-helpers.ts | 7 ++-
packages/engine/src/executor.ts | 48 +++++++-------
packages/engine/src/pi.ts | 73 ++++++++--------------
packages/engine/src/step-session-executor.ts | 8 ++-
17 files changed, 180 insertions(+), 81 deletions(-)
Fusion-Task-Id: FN-8098
Fusion-Task-Lineage: 61b3103b-357b-431a-8d58-411e7806b87b
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-16 08:33:57 -07:00
gsxdsm
3f133e0b13
FN-8058: add task agent log reader
...
Expose paginated, filterable persisted agent logs to task-scoped and chat agent sessions.
- Add the read-only fn_task_logs_read tool across engine, dashboard chat/planning, heartbeat, step, and CLI extension surfaces.
- Filter agent-log entries before pagination, report matching totals, and render complete persisted rows for diagnosis.
- Document the tool, add release metadata, regression coverage, and complete affected engine mocks.
Files changed:
.changeset/fn-8058-task-logs-read.md | 7 ++
docs/agents.md | 4 +-
packages/cli/skill/fusion/SKILL.md | 2 +-
.../cli/skill/fusion/references/extension-tools.md | 11 +++
.../skill/fusion/references/fusion-capabilities.md | 1 +
.../extension-experiment-finalize.test.ts | 2 +
.../src/__tests__/extension-fn-secret-get.test.ts | 2 +
.../__tests__/extension-gitlab-tracking.test.ts | 2 +
.../src/__tests__/extension-integration.test.ts | 1 +
.../cli/src/__tests__/extension-web-fetch.test.ts | 2 +
packages/cli/src/__tests__/extension.test.ts | 1 +
packages/cli/src/extension.ts | 34 ++++++++
.../src/__tests__/agent-logs-backend-mode.test.ts | 28 +++++-
packages/core/src/store.ts | 11 ++-
packages/core/src/task-store/remaining-ops-7.ts | 16 +++-
packages/core/src/types.ts | 1 +
packages/dashboard/src/__tests__/chat.test.ts | 1 +
.../planning-answered-question-reemit.test.ts | 1 +
.../planning-generation-cancellation.test.ts | 1 +
packages/dashboard/src/chat.ts | 5 ++
packages/dashboard/src/planning.ts | 3 +
.../__tests__/agent-task-logs-read-tools.test.ts | 72 ++++++++++++++++
packages/engine/src/agent-heartbeat.ts | 4 +-
packages/engine/src/agent-tools.ts | 99 +++++++++++++++++++++-
packages/engine/src/executor.ts | 6 ++
packages/engine/src/gating-classifications.ts | 2 +
packages/engine/src/index.ts | 6 ++
packages/engine/src/step-session-executor.ts | 6 +-
28 files changed, 316 insertions(+), 15 deletions(-)
Fusion-Task-Id: FN-8058
Fusion-Task-Lineage: 74f198b2-f538-4b39-973f-431f22e68f29
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-16 04:03:43 -07:00
gsxdsm
2b8df56cb8
fix: escalate reviewer provider errors instead of looping on them
...
A rate-limited reviewer filled a task's Chat tab with 14 identical
"Reviewer using model: ..." markers and no review text, hammering an
already-limited provider.
Root cause: the reviewer was the only AI lane that never classified
provider errors, so a 429 became an UNAVAILABLE verdict. With no
validator fallback configured the fallback ladder re-ran the SAME model
instantly, and fn_review_step answered with "code review remains
blocking; retry once" — bounding the loop with prompt text rather than
code. The tool's catch-all also swallowed the error into tool output, so
withRateLimitRetry, UsageLimitPauser and RetryStormError never fired.
- reviewer: throw ReviewerProviderError for usage-limit/transient errors
instead of laundering them into UNAVAILABLE, and never spend the
fallback budget (which bounds bad reviews) on an outage.
- reviewer: absorb flaky-network blips in-lane via withRetry with
jittered backoff; rate limits still escalate immediately.
- executor: re-raise the fatal after the prompt via
throwDeferredReviewerFatal — pi-agent-core converts tool throws into
tool_error results, so a tool cannot throw out of session.prompt().
- executor: give code review a real MAX_CODE_REVIEW_UNAVAILABLE_RETRIES
counter, mirroring the plan/spec limiter.
- reviewer: dedupe the model marker on text, so same-model retries stay
silent while a genuine model switch still emits.
Also fixes the run-on rendering: AgentLogType gains `status` for complete
engine messages. `text` means "streamed delta" and is re-glued with
join(""), which is why N standalone markers rendered as one string. The
split is at the type, not a separator — a separator would reintroduce the
FN-5787/5789/5803 streamed-spacing regression.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-15 12:54:16 -07:00
gsxdsm
bc30ce8aa1
FN-7857: deliver plugin skill bodies to agent sessions and the Skills view
...
Plugin-contributed skills previously registered only a name for sessions and the dashboard, so their SKILL.md bodies were never actually loaded — fix threads real body paths through to both session creation and the Skills UI.
- Resolve each enabled plugin skill's body path via @fusion/core's resolvePluginSkillBodyPath and thread its body dir (plus parent dir) into every session-creating lane (executor primary/retry/verification-fix/step/child-agent, triage, reviewer, merger, agent-heartbeat, cron-runner) as additionalSkillPaths, unioned with existing CE skill dirs.
- Add collectPluginSkillNames/mergePluginSkills additionalSkillPaths plumbing in session-skill-context.ts so plugin skill discovery paths flow the same way as native/role-fallback skills.
- Update dashboard skills-adapter.ts to read plugin skill SKILL.md and reference files from disk (via the traversal-guarded reader) instead of returning a runtime-placeholder/"not found" response for plugin-sourced skills.
- Document the plugin skill body delivery mechanism in docs/PLUGIN_AUTHORING.md.
- Add regression coverage: plugin-skill-body-delivery.test.ts, expanded session-skill-context.test.ts and skills-adapter.test.ts.
- Add changeset fn-7857-plugin-skill-body-delivery.md (minor, fix).
Files changed:
.changeset/fn-7857-plugin-skill-body-delivery.md | 7 ++
docs/PLUGIN_AUTHORING.md | 3 +
.../dashboard/src/__tests__/skills-adapter.test.ts | 92 ++++++++++++++++------
packages/dashboard/src/skills-adapter.ts | 33 ++------
.../__tests__/plugin-skill-body-delivery.test.ts | 75 ++++++++++++++++++
.../src/__tests__/session-skill-context.test.ts | 84 +++++++++++++++++++-
packages/engine/src/agent-heartbeat.ts | 3 +-
packages/engine/src/cron-runner.ts | 2 +
packages/engine/src/executor.ts | 25 ++++--
packages/engine/src/merger.ts | 10 ++-
packages/engine/src/reviewer.ts | 2 +
packages/engine/src/session-skill-context.ts | 43 ++++++++--
packages/engine/src/step-session-executor.ts | 5 +-
packages/engine/src/triage.ts | 3 +-
14 files changed, 318 insertions(+), 69 deletions(-)
Fusion-Task-Id: FN-7857
Fusion-Task-Lineage: 9ba4c305-8b38-4ae8-85b3-4c87205ef767
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-12 12:47:38 -07:00
gsxdsm
df8ad460af
FN-7772: add per-lane thinking level for workflow model lanes
...
Adds a per-workflow-lane thinking-level setting so execution, planning, and
review model lanes can each specify their own reasoning-effort/thinking
level, threaded through engine phase precedence so lane-specific settings
override the workflow default.
- Add workflow lane thinking-level settings to builtin workflow settings and
settings schema, with new types in core.
- Thread lane thinking-level precedence through model-resolution and engine
phase execution (executor, step-session-executor, triage,
agent-session-helpers).
- Surface per-lane thinking-level controls in the dashboard
WorkflowSettingsPanel and ProjectModelsSection.
- Add/adjust tests for workflow settings, agent-session-helpers, and the
dashboard settings panels.
- Update settings-reference.md and workflow-steps.md docs.
- Add changeset for the new feature (minor).
Files changed:
.changeset/fn-7772-workflow-lane-thinking.md | 7 ++++
docs/settings-reference.md | 10 ++---
docs/workflow-steps.md | 4 +-
.../core/src/__tests__/workflow-settings.test.ts | 41 ++++++++++++++++++++
packages/core/src/builtin-workflow-settings.ts | 27 ++++++++++++-
packages/core/src/index.ts | 4 +-
packages/core/src/model-resolution.ts | 45 +++++++++++++++++++++-
packages/core/src/settings-schema.ts | 3 ++
packages/core/src/types.ts | 6 +++
.../app/components/WorkflowSettingsPanel.tsx | 35 ++++++++++++++---
.../__tests__/SettingsModal.models-auth.test.tsx | 7 +++-
.../__tests__/WorkflowSettingsPanel.test.tsx | 31 +++++++++++++++
.../settings/sections/ProjectModelsSection.tsx | 39 ++++++++++++++++---
.../src/__tests__/agent-session-helpers.test.ts | 13 ++++---
.../engine/src/__tests__/executor-test-helpers.ts | 1 +
packages/engine/src/agent-session-helpers.ts | 19 +++++----
packages/engine/src/executor.ts | 4 +-
packages/engine/src/step-session-executor.ts | 2 +-
packages/engine/src/triage.ts | 8 +++-
19 files changed, 264 insertions(+), 42 deletions(-)
Fusion-Task-Id: FN-7772
Fusion-Task-Lineage: 70aba3a9-66c2-4bb0-aff9-acabc7b98818
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-10 02:21:01 -07:00
gsxdsm
235ff4c65e
FN-7771: add per-node thinking level for workflow model bindings
...
Adds a per-node thinking-level override (config.thinkingLevel) for workflow IR model bindings so individual workflow nodes can set reasoning effort independently of the global default.
- Extend workflow-ir types/schema and workflow-steps-to-ir conversion to carry config.thinkingLevel per node
- Wire thinkingLevel through executor and step-session-executor so the engine applies the per-node override during model calls
- Add a thinking-level control to WorkflowNodeEditor for authoring per-node overrides in the dashboard
- Add/extend tests covering IR round-trip, steps-to-ir conversion, executor model binding, and the WorkflowNodeEditor UI
- Document the new setting in docs/workflow-steps.md
- Add changeset for @runfusion/fusion (minor)
Files changed:
.changeset/fn-7771-workflow-node-thinking.md | 7 +++
docs/workflow-steps.md | 10 ++-
packages/core/src/__tests__/workflow-ir.test.ts | 42 +++++++++++++
.../src/__tests__/workflow-steps-to-ir.test.ts | 15 +++++
packages/core/src/store.ts | 1 +
packages/core/src/types.ts | 9 +++
packages/core/src/workflow-ir.ts | 21 +++++++
packages/core/src/workflow-steps-to-ir.ts | 5 ++
.../app/components/WorkflowNodeEditor.tsx | 42 ++++++++++++-
.../__tests__/WorkflowNodeEditor.test.tsx | 73 ++++++++++++++++++++++
.../engine/src/__tests__/executor-test-helpers.ts | 5 ++
.../__tests__/executor-workflow-step-model.test.ts | 31 +++++++++
.../src/__tests__/workflow-step-review.test.ts | 53 ++++++++++++++++
packages/engine/src/executor.ts | 61 ++++++++++++++++--
packages/engine/src/step-session-executor.ts | 12 +++-
packages/engine/src/workflow-node-handlers.ts | 29 ++++++++-
16 files changed, 404 insertions(+), 12 deletions(-)
Fusion-Task-Id: FN-7771
Fusion-Task-Lineage: 5dbe3efb-773d-47db-9412-b740eb1d7745
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-10 01:49:15 -07:00
gsxdsm
5f14a58d3b
FN-7770: add per-lane thinking-level overrides for project & global model settings
...
Adds an optional thinking-effort/reasoning override per model lane in Settings (project and global), resolved with precedence task > lane > global default, and reconciles this work with the already-landed FN-7768 inline thinking-level control on CustomModelDropdown (kept the shared shouldShowThinking/thinkingBadgeLabel implementation to avoid duplicating the selector/badge UI).
- Add lane thinking-level settings schema fields and runtime precedence (task > lane > global default) in @fusion/core
- Wire per-lane thinking selectors into GlobalModelsSection and ProjectModelsSection via CustomModelDropdown's existing showThinkingLevel/thinkingLevel/onThinkingLevelChange/defaultThinkingLevel props
- Resolve merger thinking level from the default lane rather than the title-summarizer lane in engine session helpers/executor/merger/triage
- Update settings-reference docs and add a minor changeset for the new lane thinking overrides
- Add/expand test coverage: settings-parity, store-settings, settings-sections, agent-session-helpers
- Add new i18n key models.options.defaultWithLevel across locales
Files changed:
.changeset/fn-7770-lane-thinking.md | 7 ++
docs/settings-reference.md | 8 ++
.../core/src/__tests__/settings-parity.test.ts | 17 ++++
packages/core/src/__tests__/store-settings.test.ts | 42 +++++++++
packages/core/src/settings-schema.ts | 14 +++
packages/core/src/types.ts | 16 ++++
.../app/__tests__/settings-sections.test.tsx | 100 ++++++++++++++++++---
.../app/components/CustomModelDropdown.css | 1 +
.../dashboard/app/components/SettingsModal.tsx | 37 ++++++++
.../settings/sections/GlobalModelsSection.tsx | 9 +-
.../settings/sections/ProjectModelsSection.tsx | 12 ++-
.../app/components/settings/sections/context.ts | 2 +
.../src/__tests__/agent-session-helpers.test.ts | 36 ++++++++
packages/engine/src/agent-session-helpers.ts | 60 +++++++++++++
packages/engine/src/executor.ts | 14 +--
packages/engine/src/merger-ai.ts | 12 ++-
packages/engine/src/merger.ts | 12 +--
packages/engine/src/pr-response-run-ops.ts | 4 +-
packages/engine/src/step-session-executor.ts | 3 +-
packages/engine/src/triage.ts | 5 +-
packages/i18n/locales/en/app.json | 3 +-
packages/i18n/locales/es/app.json | 3 +-
packages/i18n/locales/fr/app.json | 3 +-
packages/i18n/locales/ko/app.json | 3 +-
packages/i18n/locales/zh-CN/app.json | 3 +-
packages/i18n/locales/zh-TW/app.json | 3 +-
packages/i18n/src/resources.d.ts | 3 +
27 files changed, 390 insertions(+), 42 deletions(-)
Fusion-Task-Id: FN-7770
Fusion-Task-Lineage: 3418c621-ac99-4cd4-a435-9348da03972f
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-10 01:15:40 -07:00
gsxdsm
dbe637f2c9
FN-7402: publish workflow step activity runs
...
Publish workflow step lifecycle activity so dashboard analytics can count graph-owned execution.
- Emit best-effort agentRuns rows when workflow step sessions start and finish.
- Include task lineage, step metadata, terminal status, and token usage in workflow step activity records.
- Cover workflow step activity analytics and document dashboard Activity/Overview counting behavior.
Files changed:
.changeset/fn-7402-workflow-step-activity.md | 7 +
docs/dashboard-guide.md | 5 +-
.../core/src/__tests__/activity-analytics.test.ts | 44 +++++++
.../src/__tests__/step-session-executor.test.ts | 145 +++++++++++++++++++++
packages/engine/src/step-session-executor.ts | 104 ++++++++++++++-
5 files changed, 300 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-7402
Fusion-Task-Lineage: ecb2810d-da05-4fd0-a3bd-da72cae99a31
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 18:27:32 -07:00
gsxdsm
eb83c81ffb
fix(FN-7265): align per-step review workflow
2026-06-29 23:25:17 -07:00
gsxdsm
be9e231004
fix(FN-7248): skip completed steps on resume
2026-06-29 19:23:38 -07:00
gsxdsm
f430f5db39
fix(FN-7228): respect workflow step dependencies
2026-06-29 03:23:01 -07:00
gsxdsm
50ccd79b9f
fix(FN-7226): land graph step-session commits
2026-06-29 03:15:30 -07:00
gsxdsm
399a4a2a5f
fix(FN-7226): use graph projection for step sessions
2026-06-29 03:09:43 -07:00
gsxdsm
998a7f2745
fix(FN-7226): make plan review the single pre-execution gate
...
Fusion-Task-Id: FN-7226
2026-06-29 01:48:27 -07:00
gsxdsm
31d3f21e18
FN-7065: add deterministic Fusion co-author trailers
...
Fusion now applies co-author attribution through merge and worktree plumbing instead of relying on prompt-written commit messages.
- Add commit-msg hook support for deterministic Co-authored-by trailers with configured Fusion identity.
- Propagate commit attribution settings through native and worktrunk worktree backends.
- Backfill AI squash merge trailers with Fusion task metadata and co-author attribution.
- Document the settings behavior and add a patch changeset for published CLI behavior.
- Cover hook, executor, AI merge, and real-git trailer behavior with tests.
Files changed:
.changeset/fn-7065-co-author-trailer.md | 7 +++
docs/settings-reference.md | 6 +--
packages/engine/src/__tests__/merger-ai.test.ts | 43 +++++++++++++++++++
.../real-git/commit-msg-trailer.real-git.test.ts | 50 ++++++++++++++++++++++
.../engine/src/__tests__/worktree-hooks.test.ts | 15 +++++++
packages/engine/src/executor.ts | 4 ++
packages/engine/src/merger-ai.ts | 22 ++++++++--
packages/engine/src/step-session-executor.ts | 3 ++
packages/engine/src/worktree-acquisition.ts | 3 ++
packages/engine/src/worktree-backend.ts | 13 +++++-
packages/engine/src/worktree-hooks.ts | 33 +++++++++++++-
11 files changed, 190 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-7065
Fusion-Task-Lineage: 4f5cd0ff-7193-4f97-bdcd-4cd78c7669b9
2026-06-26 13:13:46 -07:00
gsxdsm
6c94ee069c
FN-7023: forward MCP runtime config to AI lanes
...
Forward enabled MCP server configuration through AI session creation and validation paths.
- Resolve and materialize effective MCP servers with secret values at runtime for triage, execution, review, merge, evaluation, reflection, mission validation, and dashboard chat/planning lanes.
- Add runtime support guards, Claude CLI MCP config generation, and a dashboard validation route for MCP server reachability probes.
- Cover MCP forwarding, provider support behavior, settings resolution, validation, and pi extension config generation with targeted tests and docs.
Files changed:
.changeset/fn-7023-mcp-runtime-forwarding.md | 7 +
docs/agents.md | 2 +
docs/secrets.md | 1 +
docs/settings-reference.md | 6 +-
.../src/__tests__/mcp-lane-forwarding.test.ts | 79 +++++++++++
.../src/__tests__/mcp-validate-route.test.ts | 111 ++++++++++++++++
packages/dashboard/src/chat.ts | 3 +
packages/dashboard/src/planning.ts | 5 +
packages/dashboard/src/routes.ts | 90 ++++++++++++-
.../src/__tests__/mcp-lane-forwarding.test.ts | 95 ++++++++++++++
.../engine/src/__tests__/mcp-resolution.test.ts | 104 +++++++++++++++
.../src/__tests__/mcp-runtime-support.test.ts | 44 +++++++
.../src/__tests__/mcp-validation-service.test.ts | 69 ++++++++++
packages/engine/src/__tests__/pi.test.ts | 65 +++++++++
packages/engine/src/agent-reflection.ts | 3 +
packages/engine/src/agent-runtime.ts | 36 ++++-
packages/engine/src/agent-session-helpers.ts | 2 +
packages/engine/src/evaluator.ts | 3 +
packages/engine/src/executor.ts | 14 ++
packages/engine/src/index.ts | 3 +
packages/engine/src/mcp-resolution.ts | 81 ++++++++++++
packages/engine/src/mcp-runtime-support.ts | 41 ++++++
packages/engine/src/mcp-validation-service.ts | 146 +++++++++++++++++++++
packages/engine/src/merger-ai.ts | 5 +
packages/engine/src/merger.ts | 14 ++
packages/engine/src/mission-execution-loop.ts | 3 +
packages/engine/src/pi.ts | 44 +++++--
packages/engine/src/reviewer.ts | 3 +
packages/engine/src/runtime-resolution.ts | 8 +-
packages/engine/src/step-session-executor.ts | 6 +-
packages/engine/src/triage.ts | 5 +
packages/pi-claude-cli/index.ts | 20 ++-
packages/pi-claude-cli/src/mcp-config.ts | 65 ++++++++-
33 files changed, 1150 insertions(+), 33 deletions(-)
Fusion-Task-Id: FN-7023
Fusion-Task-Lineage: ea09c6c7-b3c3-4af6-9ca6-0ebbfec17139
2026-06-26 00:57:32 -07:00
gsxdsm
711bf3e1b8
FN-6746: attribute token analytics per runtime model
...
Persist and expand per-model token usage so Command Center reports every model used by a task.
- Add a nullable per-model token usage column and task model bucket types.
- Merge session token deltas into provider/model buckets while retaining task-level totals.
- Expand model/provider analytics from per-model buckets with legacy fallbacks for older rows.
- Cover persistence, migration, aggregation, and session accumulation behavior with tests.
- Document the per-model storage contract alongside existing token analytics tables.
Files changed:
docs/storage.md | 2 +
packages/core/src/__tests__/db-migrate.test.ts | 62 ++++++++++
.../core/src/__tests__/store-persistence.test.ts | 49 ++++++++
.../core/src/__tests__/token-analytics.test.ts | 127 ++++++++++++++++++++-
packages/core/src/db.ts | 13 ++-
packages/core/src/index.ts | 2 +-
packages/core/src/store.ts | 7 +-
packages/core/src/token-analytics.ts | 58 ++++++++--
packages/core/src/types.ts | 32 ++++++
.../src/__tests__/session-token-usage.test.ts | 23 ++++
packages/engine/src/executor.ts | 20 +++-
packages/engine/src/session-token-usage.ts | 50 +++++++-
packages/engine/src/step-session-executor.ts | 7 ++
13 files changed, 429 insertions(+), 23 deletions(-)
Fusion-Task-Id: FN-6746
Fusion-Task-Lineage: 1b1a3b31-b669-4e89-ac38-a871f3349015
2026-06-19 16:47:34 -07:00
gsxdsm
0cc557121c
FN-6590: inject task-detail chat into active step sessions
...
Ensure task-detail comments are delivered to live executor threads and preserved for the next step prompt when no step session is active.
- Forward steering comments through legacy, step-session, and workflow-step executor targets with delivery status logging.
- Keep step-session task details updated and include pending steering comments in full and reduced step prompts.
- Track delivered steering comment IDs so comments are injected or queued exactly once across active and subsequent step sessions.
- Update step-session executor tests for live steering, queued prompt fallback, and reduced prompt behavior.
Files changed:
.../src/__tests__/executor-step-session.test.ts | 467 ++++++---------------
.../src/__tests__/step-session-executor.test.ts | 63 ++-
packages/engine/src/executor.ts | 34 +-
packages/engine/src/step-session-executor.ts | 69 ++-
4 files changed, 283 insertions(+), 350 deletions(-)
Fusion-Task-Id: FN-6590
Fusion-Task-Lineage: 18fffd41-7632-4f29-8721-daaf3c239a74
2026-06-17 14:52:56 -07:00
gsxdsm
ee6d7acec8
FN-6375: include attachment paths in recovery prompts
...
Workflow context-limit recovery prompts now direct agents to read task attachments from the project root.
- Pass the project root into reduced workflow step prompts so attachment directories can be absolute when available.
- Replace the autonomous-agent "ask for context" wording with direct file-reading guidance for attachments.
- Cover root-aware, fallback, placement, and context-limit recovery attachment prompt behavior.
- Add a patch changeset for the published Fusion package.
Files changed:
.../fn-6375-workflow-attachment-recovery-prompt.md | 5 ++
.../src/__tests__/step-session-executor.test.ts | 70 +++++++++++++++++++---
packages/engine/src/step-session-executor.ts | 8 ++-
3 files changed, 72 insertions(+), 11 deletions(-)
Fusion-Task-Id: FN-6375
Fusion-Task-Lineage: ed9a5367-1623-49cb-9c7f-116c59ce5117
2026-06-13 16:30:28 -07:00
gsxdsm
e0ec3d1fbd
FN-6368: route task chat steering to active sessions
...
Ensure task chat messages reach the live execution surface instead of waiting for a future session.
- Track seen steering comments for legacy, step-session, and workflow-step execution paths.
- Forward new task chat steering to active step sessions and workflow step sessions, including parallel step handles.
- Remove misleading inactive-session composer copy and cover the steering paths with regression tests.
- Add a patch changeset for the published Fusion package.
Files changed:
.changeset/fn-6368-steering-running-session.md | 5 +
packages/dashboard/app/components/TaskChatTab.tsx | 12 +-
.../app/components/__tests__/TaskChatTab.test.tsx | 18 +-
.../src/__tests__/executor-step-session.test.ts | 108 ++++++++++++
.../engine/src/__tests__/executor-test-helpers.ts | 3 +
.../src/__tests__/step-session-executor.test.ts | 40 +++++
packages/engine/src/executor.ts | 186 ++++++++++++++-------
packages/engine/src/step-session-executor.ts | 16 ++
8 files changed, 312 insertions(+), 76 deletions(-)
Fusion-Task-Id: FN-6368
Fusion-Task-Lineage: 610a6185-b136-4fea-a4bd-ea78ab5aab47
2026-06-13 09:41:20 -07:00
gsxdsm
b872b37d72
FN-6117: expose task attachments in workflow step prompts
...
Make workflow-driven task execution keep attachment context available across step prompts and retries.
- add attachment guidance to full step prompts so agents can read project-root task attachments from worktrees
- include attachment availability in reduced retry prompts after context-limit failures
- cover attachment preservation through workflow runtime execution and step prompt generation with engine tests
Files changed:
.../src/__tests__/step-session-executor.test.ts | 272 +++++++++++++++++++++
.../src/__tests__/workflow-task-runtime.test.ts | 94 ++++++-
packages/engine/src/step-session-executor.ts | 13 +-
3 files changed, 376 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-6117
Fusion-Task-Lineage: 520eb1bc-e276-449a-acfe-ccbabefe69e3
2026-06-09 13:31:30 -07:00
gsxdsm
4fa54075ad
feat(engine): execute and step-execute sessions run as the column agent
...
U4: seams stamp the governing node id into run context; a per-seam
resolveSeamColumnAgent feeds the core resolver and threads the effective
agent through resolveExecutorSessionModel, runtime hints, persona, memory
tools, and StepSessionExecutor attribution. Characterization tests pin the
no-binding path byte-identical. Gating/deferral principal moves in U5.
2026-06-05 00:05:02 -07:00
gsxdsm
cec191eac3
FN-5638: migrate pi-ai and pi-coding-agent packages to @earendil-works scope
...
Fusion-Task-Id: FN-5638
Fusion-Task-Lineage: 6e99c156-5f6c-42e6-bd26-618e08ffd05f
2026-05-28 21:23:48 -07:00
gsxdsm
7a20b95502
feat(FN-5544): emit runtime-resolved audit event across engine lanes
...
Adds a "session runtime resolved" audit event that flows through the engine's main execution lanes — triage, executor, reviewer, merger, heartbeat, step-session-executor, and mission-execution-loop — with runtime mutation support and test coverage, plus a compile-fix for the merger auditor wiring.
Fusion-Task-Id: FN-5544
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
Fusion-Task-Id: FN-5544
2026-05-23 12:14:07 -07:00
gsxdsm
3ccb132dcc
feat(FN-5519): merge fusion/fn-5519
2026-05-22 22:43:26 -07:00
Fusion (runfusion.ai)
ac9c83c106
test(FN-5089): add commit-msg hook coverage and wiring
...
Fusion-Task-Id: FN-5089
Fusion-Task-Lineage: ad7ea32a-c024-45bb-b68e-b65665b9b7c6
2026-05-19 02:34:35 -07:00
Fusion (runfusion.ai)
b5e257d6e3
feat(FN-5112): complete Step 1 — dangling task-doc reference detector
...
Fusion-Task-Id: FN-5112
Fusion-Task-Lineage: 692fba2a-5856-4256-8144-d87bda56e1aa
2026-05-19 01:02:38 -07:00
gsxdsm
46d09285d5
feat(FN-5058): merge fusion/fn-5058
2026-05-18 11:01:32 -07:00
Fusion (runfusion.ai)
4b16429618
fix(FN-4948): harden guard install failure cleanup paths
...
Fusion-Task-Id: FN-4948
Fusion-Task-Lineage: dc622643-4c3e-4217-9219-a6a6e5424427
2026-05-17 17:29:28 -07:00
Fusion (runfusion.ai)
487dfcc10c
feat(FN-4948): complete Step 2 — wire identity guard into worktree provisioning
...
Fusion-Task-Id: FN-4948
Fusion-Task-Lineage: dc622643-4c3e-4217-9219-a6a6e5424427
2026-05-17 17:29:28 -07:00
Fusion (runfusion.ai)
8fd47b619f
feat(FN-4811): complete Step 3 — update removeWorktree call sites
...
Fusion-Task-Id: FN-4811
Fusion-Task-Lineage: f3dac123-cb46-4d31-8a7e-dfc664bfdc5f
2026-05-16 16:55:04 -07:00
Fusion (runfusion.ai)
7a438f63ee
fix(FN-4811): repair step-session registry wiring recursion
...
Fusion-Task-Id: FN-4811
Fusion-Task-Lineage: f3dac123-cb46-4d31-8a7e-dfc664bfdc5f
2026-05-16 16:55:03 -07:00
Fusion (runfusion.ai)
69d7b282cf
feat(FN-4811): complete Step 1 — add active session registry wiring
...
Fusion-Task-Id: FN-4811
Fusion-Task-Lineage: f3dac123-cb46-4d31-8a7e-dfc664bfdc5f
2026-05-16 16:55:01 -07:00
Fusion (runfusion.ai)
0fc2b9e6b2
feat(FN-4753): complete Step 3 — migrate step-session worktree removal
...
Fusion-Task-Id: FN-4753
Fusion-Task-Lineage: 8229b56a-8997-4faf-8872-18e49b9386ff
2026-05-16 10:25:40 -07:00
Fusion
a8bde08d26
fix(FN-4606): stabilize resolver callsites and test expectations
...
Ref: Runfusion/Fusion#321
Fusion-Task-Id: FN-4606
Fusion-Task-Lineage: 94b23f37-944e-4bcd-bfa1-67d0a8c0a267
2026-05-15 09:19:59 -07:00
Fusion
4a6a4450dd
fix(FN-4606): thread settings through executor worktree recovery
...
Ref: Runfusion/Fusion#321
Fusion-Task-Id: FN-4606
Fusion-Task-Lineage: 94b23f37-944e-4bcd-bfa1-67d0a8c0a267
2026-05-15 09:19:58 -07:00
Fusion
2799c101ac
feat(FN-4606): complete Step 3 — route engine call sites
...
Ref: Runfusion/Fusion#321
Fusion-Task-Id: FN-4606
Fusion-Task-Lineage: 94b23f37-944e-4bcd-bfa1-67d0a8c0a267
2026-05-15 09:19:58 -07:00
Fusion
2d782569d2
fix(FN-4545): wire retry-burn logging and complete handler coverage
...
Fusion-Task-Id: FN-4545
Fusion-Task-Lineage: 95108429-618e-4a6d-9fa9-7ac2596665a2
2026-05-14 22:16:44 -07:00
Fusion
50fe141f5b
feat(FN-4545): complete Step 4-5 — add message-delivery recovery handler wiring
...
Fusion-Task-Id: FN-4545
Fusion-Task-Lineage: 95108429-618e-4a6d-9fa9-7ac2596665a2
2026-05-14 22:16:44 -07:00
Fusion
4e6440a126
feat(FN-4389): complete Step 8 — run verification and fix regressions
...
Fusion-Task-Id: FN-4389
Fusion-Task-Lineage: 366f9d57-c476-448f-96c0-6e753fc8b090
2026-05-13 22:03:38 -07:00
Fusion
8c4fbd5a61
feat(FN-4080): complete Step 2 — route thinking persistence by agent kind
...
Fusion-Task-Id: FN-4080
Fusion-Task-Lineage: 086863ba-7100-41ab-9cfc-197301fbcab0
2026-05-13 06:29:36 -07:00
Fusion
fab4ed4e61
feat(FN-4062): add global thinking log setting to persist agent reasoning a
...
Adds a global `thinkingLogEnabled` setting that gates AI thinking log persistence across the engine (executor, reviewer, merger, triage, step-session) and exposes the control in the dashboard Settings modal, with tests verifying settings parity and modal behavior.
Fusion-Task-Id: FN-4062
2026-05-11 21:48:26 -07:00
Fusion
bccc39f741
feat(FN-3961): propagate taskEnv into agent subprocess sessions
...
Propagates `taskEnv` (task-scoped environment variables) through the agent session creation pipeline, including executor sessions, spawned child agents, and workflow sessions. The engine's session factory (`agent-session-helpers.ts`), executor, PI agent creation (`pi.ts`), and step session executor
Fusion-Task-Id: FN-3961
2026-05-10 23:36:10 -07:00
Fusion
87772e1fb5
feat(FN-3767): add task runtime env injection into executor commands via pl
...
Adds executor runtime environment support to the plugin system, enabling plugins to contribute environment variables that get injected into executor commands. The implementation includes new plugin types (`ExecutorRuntimeEnvPlugin`), aggregation in the plugin runner, thread-through into executor com
Fusion-Task-Id: FN-3767
2026-05-10 23:36:09 -07:00
Fusion
a79e91d3aa
feat(FN-3758): align web fetch test coverage and documentation
...
Aligns web fetch tool test coverage across multiple test suites and updates the agents documentation, with a patch changeset for `@runfusion/fusion`.
Fusion-Task-Id: FN-3758
2026-05-08 18:59:08 -07:00
Fusion
2e3be32f1b
feat(FN-3560): add permanent agent gating enforcement in pi with tool class
...
The merge lands three major features: a permanent-agent gating system (FN-3560, 6 steps) that classifies and enforces tool access policies for permanent agents in the PI extension, with full test coverage and updated agent docs; an OpenClaw MCP bridge (FN-3717) adding MCP config, schema server, and
Fusion-Task-Id: FN-3560
2026-05-07 18:07:12 -07:00
Fusion
667761a88a
feat(FN-3547): add runtime action classification and gating system for agen
...
Merged seven commits that introduce a runtime action gate for task execution (FN-3547) — adding action classification, git-based heuristics for branch/remote gating, and per-step session enforcement — with tests covering the gate logic, heartbeat integration, and PI agent creation. Also landed FN-37
Fusion-Task-Id: FN-3547
2026-05-07 13:52:43 -07:00