gsxdsm
c61217e71a
FN-7121: show queued chat previews above composer
...
Show queued Chat messages above the composer with a clear divider and covered placement behavior.
- Move the queued-message indicator out of the textarea wrapper so it spans above the input row.
- Add divider styling and responsive pending-message alignment for the composer.
- Extend ChatView coverage for placement, dismissal, and divider removal.
- Document the queued-message preview behavior and add a patch changeset.
Files changed:
.changeset/fn-7121-queued-message-above-input.md | 7 ++++
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/ChatView.css | 19 +++++++++--
packages/dashboard/app/components/ChatView.tsx | 35 ++++++++++++--------
.../__tests__/ChatView.core-interactions.test.tsx | 37 +++++++++++++++++++---
5 files changed, 77 insertions(+), 23 deletions(-)
Fusion-Task-Id: FN-7121
Fusion-Task-Lineage: b5cb0577-ca4e-459b-9b9e-5c60efd7bdfd
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 10:29:36 -07:00
gsxdsm
e1dba3fcc9
FN-7113: validate workflow graph integrity before execution
...
Reject malformed workflow graphs at save and run boundaries.
- Add central IR validation for duplicate top-level node ids, unregistered extension keys, and unreachable required nodes.
- Re-validate resolved workflow IR in the graph runner before side effects and fail closed on invalid graphs.
- Expand graph integrity tests and document save/run validation behavior with a release changeset.
Files changed:
.changeset/FN-7113-workflow-graph-integrity.md | 7 +
docs/custom-workflow-reliability-acceptance-map.md | 7 +-
docs/workflow-steps.md | 20 +++
.../workflow-ir-extension-metadata.test.ts | 49 ++++++-
packages/core/src/__tests__/workflow-ir.test.ts | 106 +++++++++++++++-
packages/core/src/workflow-ir.ts | 51 +++++++-
.../__tests__/workflow-graph-task-runner.test.ts | 141 +++++++++++++++++----
packages/engine/src/workflow-graph-task-runner.ts | 46 +++++--
8 files changed, 386 insertions(+), 41 deletions(-)
Fusion-Task-Id: FN-7113
Fusion-Task-Lineage: f41e0d81-7cdf-497a-96ab-fe42504d0be4
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 09:28:31 -07:00
gsxdsm
2b9e383e18
FN-7111: classify heartbeat tool parity gaps
...
Classify remaining heartbeat-agent tool gaps so permission gates enforce mutating and network behaviors consistently.
- Add shared classifications for workflow mutators, task update/promote/refine, verification/worktree acquisition, and research cancellation.
- Apply command-execution classifications in both action-gate and permanent-agent gating paths.
- Update operator docs, permission-policy examples, parity tests, and the published package changeset.
Files changed:
.changeset/FN-7111-tool-classification-parity.md | 7 ++
docs/agents.md | 8 +-
packages/core/src/types.ts | 12 ++-
.../engine/src/__tests__/agent-action-gate.test.ts | 11 ++-
.../src/__tests__/gating-classifications.test.ts | 93 +++++++++++++++++++++-
.../src/__tests__/permanent-agent-gating.test.ts | 44 ++++++++++
packages/engine/src/agent-action-gate.ts | 6 ++
packages/engine/src/gating-classifications.ts | 36 ++++++++-
packages/engine/src/permanent-agent-gating.ts | 5 ++
9 files changed, 206 insertions(+), 16 deletions(-)
Fusion-Task-Id: FN-7111
Fusion-Task-Lineage: d2f5ee71-c742-4f10-af55-fec380f08f64
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 09:28:31 -07:00
gsxdsm
1a30ddd6e8
FN-7108: broaden heartbeat agent tool access
...
Heartbeat agents now receive safe coordination and discovery tools while risky calls remain permission-gated.
- Add shared heartbeat workflow, research, and clarification tools for task-scoped and no-task runs.
- Give no-task permanent agents artifact registry access alongside existing delegation, messaging, memory, goal, and identity tools.
- Cover the expanded tool surface and action-gate behavior with heartbeat and permission-policy tests.
- Document the permission-governed heartbeat tool model and add a minor changeset.
Files changed:
.changeset/FN-7108-agent-tool-access.md | 7 ++
docs/agents.md | 9 ++-
.../src/__tests__/heartbeat-executor.test.ts | 24 +++---
.../src/__tests__/heartbeat-session-prompt.test.ts | 89 +++++++++++++++++++++-
.../src/__tests__/pi-create-fn-agent.test.ts | 67 ++++++++++++++++
packages/engine/src/agent-heartbeat.ts | 41 +++++++++-
6 files changed, 221 insertions(+), 16 deletions(-)
Fusion-Task-Id: FN-7108
Fusion-Task-Lineage: 83302055-72be-47f8-a41d-70164d12f010
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 09:28:31 -07:00
gsxdsm
c17d745665
FN-7109: notify operators when CLI agents await input
...
Notify external providers when terminal-backed CLI agents pause for tool permission or user input.
- Add a dedicated cli-agent-awaiting-input notification event to settings, schema defaults, dashboard options, and provider tests.
- Dispatch CLI-agent waiting-on-input notifications from the in-process runtime with task context and prompt-scoped dedupe keys.
- Document the operator behavior and add a published package changeset for the new notification surface.
Files changed:
.changeset/fn-7109-cli-agent-notification.md | 7 ++
docs/agents.md | 4 +
docs/settings-reference.md | 4 +-
.../cli-agent-permission-notifications.md | 13 +++
.../core/src/__tests__/global-settings.test.ts | 1 +
packages/core/src/settings-schema.ts | 1 +
packages/core/src/types.ts | 6 ++
.../SettingsModal.remote-notifications.test.tsx | 1 +
.../components/__tests__/settings-mobile.test.tsx | 2 +-
.../settings/sections/NotificationsSection.tsx | 3 +
.../src/__tests__/in-process-runtime.test.ts | 56 ++++++++++-
packages/engine/src/__tests__/notifier.test.ts | 6 +-
.../engine/src/__tests__/ntfy-provider.test.ts | 4 +
.../engine/src/__tests__/webhook-provider.test.ts | 2 +
.../engine/src/cli-agent/__tests__/runtime.test.ts | 39 +++++++-
.../__tests__/notification-service.test.ts | 56 ++++++++++-
.../src/notification/notification-service.ts | 9 +-
packages/engine/src/notification/ntfy-provider.ts | 7 ++
.../engine/src/notification/webhook-provider.ts | 2 +
packages/engine/src/notifier.ts | 1 +
packages/engine/src/runtimes/in-process-runtime.ts | 111 +++++++++++++++++++++
21 files changed, 326 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-7109
Fusion-Task-Lineage: 636c1875-92a2-46a7-847e-1f4955c0822f
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 09:28:31 -07:00
gsxdsm
04f8fe5d59
FN-7107: load CE stage skills for interactive sessions
...
Ensure Compound Engineering stages request and expose their registered skills when launching interactive sessions.
- Add plugin-local skill resolution checks that warn when a stage skill install is missing.
- Pass a stable additional skill path and requested stage skill into every CE interactive session.
- Add coverage for stage skill loading options and update skill reachability expectations.
Files changed:
...d-skills-not-loading-in-interactive-sessions.md | 1 +
.../src/__tests__/skill-reachability.test.ts | 71 +++++++++++++---------
.../src/__tests__/stage-skill-loading.test.ts | 69 +++++++++++++++++++++
.../src/session/orchestrator.ts | 48 ++++++++++++++-
4 files changed, 157 insertions(+), 32 deletions(-)
Fusion-Task-Id: FN-7107
Fusion-Task-Lineage: 0504e9ba-c2e7-4317-9c90-55693baf8170
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 09:28:30 -07:00
gsxdsm
b69dd8eb14
FN-7103: alias brainstorm artifacts to unified plans
...
Compound Engineering now treats brainstorm output as the requirements-only form of unified plan artifacts.
- Point the brainstorm stage at docs/plans while keeping the existing stage and skill identifiers for compatibility.
- Surface CE plan frontmatter metadata during artifact discovery and reading.
- Harden CE artifact discovery against symlink escapes for conventional artifact paths.
- Update docs, tests, and changeset coverage for the unified brainstorm/plan artifact flow.
Files changed:
.changeset/fn-7103-ce-plan-alias.md | 7 ++
docs/plugins/compound-engineering.md | 21 +++-
.../fusion-plugin-compound-engineering/README.md | 36 ++++--
.../orchestrator-interrupt-resume.test.ts | 8 +-
.../src/__tests__/session-store.test.ts | 38 ++++++
.../src/__tests__/stage-registry.test.ts | 18 +++
.../src/__tests__/sync.test.ts | 36 +++++-
.../src/artifacts/__tests__/discovery.test.ts | 133 +++++++++++++++++++-
.../src/artifacts/discovery.ts | 136 +++++++++++++++++++--
.../src/session/stage-registry.ts | 10 +-
.../src/sync/reconciler.ts | 2 +-
11 files changed, 413 insertions(+), 32 deletions(-)
Fusion-Task-Id: FN-7103
Fusion-Task-Lineage: 284a5c5c-40f7-44b2-8e3e-1de671dde36a
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 09:28:30 -07:00
gsxdsm
28cdd1c215
FN-7099: add project plan approval mode
...
Add a project-wide plan approval mode that can override workflow approval gates.
- Add core plan approval resolution for workflow, auto-approve-all, and require-all modes.
- Apply the resolved approval mode in triage recovery and planning finalization.
- Expose the mode in settings UI with translations, docs, tests, and a changeset.
Files changed:
.changeset/fn-7099-plan-approval-mode.md | 7 +++
docs/settings-reference.md | 3 +-
docs/storage.md | 5 +-
packages/core/src/__tests__/plan-approval.test.ts | 37 ++++++++++++++
packages/core/src/index.ts | 2 +
packages/core/src/plan-approval.ts | 21 ++++++++
packages/core/src/settings-schema.ts | 3 +-
packages/core/src/types.ts | 5 ++
.../dashboard/app/components/SettingsModal.tsx | 1 +
.../SettingsModal.scheduling-merge.test.tsx | 17 +++++++
.../__tests__/SettingsModal.test-harness.tsx | 1 +
.../components/settings/sections/MergeSection.tsx | 19 +++++++
.../MergeSection.legacy-automerge-cleanup.test.tsx | 23 ++++++++-
packages/engine/src/__tests__/triage.test.ts | 58 ++++++++++++++++++++++
packages/engine/src/triage.ts | 10 +++-
packages/i18n/locales/en/app.json | 5 ++
packages/i18n/src/resources.d.ts | 5 ++
17 files changed, 215 insertions(+), 7 deletions(-)
Fusion-Task-Id: FN-7099
Fusion-Task-Lineage: 8b276000-1df3-41e4-a94d-724aac559954
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 09:28:30 -07:00
gsxdsm
9e2fb5d62c
FN-7102: count active triage planners in project health
...
Align project health in-flight readouts with live agent slot holders.\n\n- Count non-paused triage planning tasks alongside in-progress executors for dashboard health and CLI project displays.\n- Keep persisted projectHealth.inFlightAgentCount as bookkeeping while deriving user-facing counts from live task state.\n- Cover CLI and dashboard health routes for paused, inactive, and per-project triage planner cases.\n- Document the live count behavior and add a patch changeset.\n\nFiles changed:\n .changeset/fn-7102-health-triage-inflight.md | 7 +++\n docs/cli-reference.md | 2 +\n docs/multi-project.md | 4 +-\n .../cli/src/commands/__tests__/project.test.ts | 59 +++++++++++++++---\n packages/cli/src/commands/project.ts | 35 +++++++----\n packages/cli/src/project-resolver.ts | 17 ++++--\n packages/core/src/types.ts | 4 +-\n .../dashboard/src/__tests__/project-routes.test.ts | 71 ++++++++++++++++++----\n .../src/routes/register-project-routes.ts | 9 ++-\n 9 files changed, 163 insertions(+), 45 deletions(-)
Fusion-Task-Id: FN-7102
Fusion-Task-Lineage: ebcba74c-238d-4ca7-aa77-df0d329c0ea9
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 09:28:30 -07:00
gsxdsm
a8f51e9423
FN-7098: clarify prompt settings ownership
...
Clarify where Settings and Workflow Editor prompt editing responsibilities live.
- Add explanatory Prompts settings copy and a Workflow Editor navigation affordance.
- Thread the workflow settings opener into the Prompts section while keeping agent prompt tabs available.
- Document prompt ownership and add regression coverage for the new Prompts section behavior.
- Add a patch changeset for the published CLI package.
Files changed:
.changeset/fn-7098-prompts-workflow-alignment.md | 7 ++
docs/settings-reference.md | 11 +-
.../dashboard/app/components/SettingsModal.tsx | 9 +-
.../__tests__/SettingsModal.prompts.test.tsx | 118 +++++++++++++++++++++
.../settings/sections/PromptsSection.tsx | 23 +++-
5 files changed, 164 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-7098
Fusion-Task-Lineage: 57ac1f1b-77f8-4180-abe9-f6752768b17b
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 09:28:29 -07:00
gsxdsm
f34b62cef9
FN-7097: count triage planners in running agents
...
Include active triage planners in live running-agent counts so global concurrency readouts match slot usage.
- Count unpaused triage tasks with planning status alongside in-progress tasks.
- Add resolver coverage for triage-only, mixed, and multi-project running-agent counts.
- Document that concurrency readouts include active triage planners and add a patch changeset.
Files changed:
.changeset/fn-7097-triage-running-count.md | 7 +++
docs/dashboard-guide.md | 3 +-
docs/multi-project.md | 3 +-
.../src/__tests__/project-store-resolver.test.ts | 73 ++++++++++++++++++++--
packages/dashboard/src/project-store-resolver.ts | 11 +++-
5 files changed, 87 insertions(+), 10 deletions(-)
Fusion-Task-Id: FN-7097
Fusion-Task-Lineage: 705daf65-0883-40cd-b620-3be8c0f38543
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 09:28:29 -07:00
gsxdsm
ee3a06ecfd
FN-7095: add actionable backup failure details
...
Database Backup automation failures now expose the affected database, paths, and root cause.
- Add DB-qualified error formatting for project and central backup creation, verification, schedule validation, and command failures.
- Normalize routine and cron in-process backup failures so empty or opaque errors become actionable AutomationRunResult errors.
- Cover missing database files, backup directory failures, central copy failures, corrupt backup quarantine, and runner normalization with regression tests.
- Document backup failure detail behavior and add a patch changeset.
Files changed:
.changeset/fn-7095-backup-detail.md | 7 ++
docs/storage.md | 2 +
packages/core/src/__tests__/backup.test.ts | 114 ++++++++++++++++++++-
packages/core/src/backup.ts | 112 +++++++++++++++-----
packages/engine/src/__tests__/cron-runner.test.ts | 35 +++++++
.../engine/src/__tests__/routine-runner.test.ts | 45 ++++++++-
packages/engine/src/cron-runner.ts | 20 +++-
packages/engine/src/routine-runner.ts | 20 +++-
8 files changed, 324 insertions(+), 31 deletions(-)
Fusion-Task-Id: FN-7095
Fusion-Task-Lineage: 368e3edf-20d3-4756-97be-75734dbff703
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 09:28:29 -07:00
gsxdsm
f4b25dd2c9
FN-7096: gate approval banner to mailbox requests
...
Limit the dashboard approval banner to real mailbox approval requests instead of task plan-approval states.
- Stop awaiting-approval task updates from fabricating Open Mailbox banner candidates or refreshing mailbox counts.
- Gate DashboardBanners rendering to approval:<id> candidates while preserving pending-count race protection.
- Update dashboard tests, documentation, and release notes for mailbox-only approval banners.
Files changed:
.changeset/fn-7096-approval-banner-mailbox.md | 7 +
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/App.tsx | 3 +-
.../app/components/__tests__/App.test.tsx | 33 ++--
.../app/components/dashboard/DashboardBanners.tsx | 9 +-
.../dashboard/__tests__/DashboardBanners.test.tsx | 65 +++++++-
.../hooks/__tests__/sseSplitIntegration.test.ts | 28 ++--
.../app/hooks/__tests__/useApprovalBanner.test.ts | 177 ++++++++-------------
packages/dashboard/app/hooks/useApprovalBanner.ts | 34 +---
packages/dashboard/app/hooks/useMailboxUnread.ts | 5 +-
10 files changed, 185 insertions(+), 178 deletions(-)
Fusion-Task-Id: FN-7096
Fusion-Task-Lineage: 40885aba-6a9f-4720-bea6-5a6f155c326d
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 09:28:29 -07:00
gsxdsm
1f49cea6c0
FN-7092: refresh test velocity snapshots
...
Refresh the weekly test velocity baseline after the pnpm test lane recovered.
- Update the latest baseline with green gate, boot smoke, and pnpm test timings.
- Drop stale timing rows for removed or split test files.
- Append the new weekly history entry with current slowest-file data.
Files changed:
docs/test-velocity-baseline.md | 48 +++++++---------
scripts/test-timings.json | 14 +----
scripts/test-velocity-history.json | 112 +++++++++++++++++++++++++++++++++++++
3 files changed, 133 insertions(+), 41 deletions(-)
Fusion-Task-Id: FN-7092
Fusion-Task-Lineage: 0b2cfa7a-953b-4cf8-ac4b-c81a0580a4e0
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 09:28:29 -07:00
gsxdsm
8b22dd2ffe
FN-7090: link imported GitHub issues as tracked tasks
...
Link GitHub issue imports to existing source issues when tracking defaults are enabled.
- Resolve project/global GitHub tracking defaults before CLI, extension, and dashboard issue imports.
- Mark imported issue tasks as tracking-enabled so the post-create hook adopts the source issue instead of creating duplicates.
- Cover tracked and untracked import behavior across CLI tools, task commands, and dashboard GitHub routes.
- Document the import tracking behavior and add a minor changeset for the published CLI.
Files changed:
.changeset/fn-7090-import-github-tracked.md | 7 ++
docs/cli-reference.md | 2 +
docs/settings-reference.md | 2 +-
.../__tests__/extension-github-tracking.test.ts | 63 +++++++++++
packages/cli/src/__tests__/extension.test.ts | 125 ++++++++++++++++++++-
.../task-command-github-import-tracking.test.ts | 119 ++++++++++++++++++++
packages/cli/src/commands/__tests__/task.test.ts | 64 ++++++++++-
packages/cli/src/commands/task.ts | 30 ++++-
packages/cli/src/extension.ts | 27 +++++
.../dashboard/src/__tests__/routes-github.test.ts | 74 ++++++++++++
.../dashboard/src/routes/register-git-github.ts | 21 +++-
11 files changed, 524 insertions(+), 10 deletions(-)
Fusion-Task-Id: FN-7090
Fusion-Task-Lineage: 1e5510c3-7a98-4ff2-a109-e465ff58b9c2
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 09:28:29 -07:00
gsxdsm
ae0679b004
FN-7089: add other answers to interview prompts
...
Adds free-text Other answers across planning and mission interview prompts.
- Add synthetic Other options for single-select and multi-select planning, mission, milestone, and slice interviews.
- Thread reserved `_other` responses through agent-facing and history formatters.
- Cover Other-only and Other-plus-selection behavior with dashboard component and formatter tests.
- Document the behavior and add a minor changeset for the published CLI package.
Files changed:
.changeset/fn-7089-interview-other-option.md | 7 +
docs/dashboard-guide.md | 2 +
.../components/MilestoneSliceInterviewModal.tsx | 112 +++++++-
.../app/components/MissionInterviewModal.tsx | 112 +++++++-
.../dashboard/app/components/PlanningModeModal.css | 11 +-
.../dashboard/app/components/PlanningModeModal.tsx | 110 +++++++-
.../MilestoneSliceInterviewModal.test.tsx | 313 +++++++++++++++++++++
.../__tests__/MissionInterviewModal.test.tsx | 244 ++++++++++++++++
.../PlanningModeModal.planning-flow.test.tsx | 200 +++++++++++++
.../__tests__/milestone-slice-interview.test.ts | 49 +++-
.../src/__tests__/mission-interview.test.ts | 47 ++++
.../planning-interview-formatters.test.ts | 47 ++++
.../dashboard/src/milestone-slice-interview.ts | 63 ++++-
packages/dashboard/src/mission-interview.ts | 63 ++++-
packages/dashboard/src/planning.ts | 55 ++--
15 files changed, 1381 insertions(+), 54 deletions(-)
Fusion-Task-Id: FN-7089
Fusion-Task-Lineage: 1c629492-13e4-4ee7-aa37-1d7d067548b7
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-26 21:31:42 -07:00
gsxdsm
513882ecac
FN-7087: speed up SettingsModal remote tests
...
Optimize the SettingsModal remote-notifications shard by rendering target sections directly.
- Add a section-targeted SettingsModal test harness helper.
- Reuse the no-delay shared user event instance across remote-notifications tests.
- Update velocity baseline documentation and history with the faster shard timing.
Files changed:
docs/test-velocity-baseline.md | 72 +++---
.../SettingsModal.remote-notifications.test.tsx | 279 ++++++++-------------
.../__tests__/SettingsModal.test-harness.tsx | 16 ++
scripts/test-velocity-history.json | 119 +++++++++
4 files changed, 275 insertions(+), 211 deletions(-)
Fusion-Task-Id: FN-7087
Fusion-Task-Lineage: aec39ac9-dd6a-49b5-96c2-07a8d0a119b7
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-26 19:16:26 -07:00
gsxdsm
cc7917d9a1
FN-7088: index unlinked documentation pages
...
Document the previously unlinked docs from the README index for easier discovery.
- Add Signals Connectors to the documentation guide section.
- Add testing baseline and audit reports to the audit reports index.
- Record the FN-7088 docs-index requirement in the existing FNXC DocsIndex note.
Files changed:
docs/README.md | 7 +++++++
1 file changed, 7 insertions(+)
Fusion-Task-Id: FN-7088
Fusion-Task-Lineage: df77fa9a-ba63-4df9-ac70-d144230eb8f3
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-26 18:53:08 -07:00
gsxdsm
5608bf555f
FN-7083: derive project in-flight counts from live tasks
...
Derive CLI project in-flight agent displays from live in-progress task counts instead of persisted health bookkeeping.
- Add shared CLI display health handling for project list and show output.
- Cover stale, missing, unreadable, table, and JSON project health cases in CLI tests.
- Clarify central health and concurrency fields as persisted bookkeeping in docs and types.
- Add a patch changeset for the published CLI behavior fix.
Files changed:
.changeset/fn-7083-cli-inflight-live-count.md | 7 +
docs/architecture.md | 1 +
docs/multi-project.md | 4 +-
.../cli/src/commands/__tests__/project.test.ts | 172 ++++++++++++++++++++-
packages/cli/src/commands/project.ts | 60 ++++---
packages/cli/src/project-resolver.ts | 4 +
packages/core/src/types.ts | 12 +-
7 files changed, 235 insertions(+), 25 deletions(-)
Fusion-Task-Id: FN-7083
Fusion-Task-Lineage: 2b57cb35-383f-443b-8bf3-3fc3c7a1ad43
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-26 18:35:54 -07:00
gsxdsm
8bcda7325c
FN-7082: add live running-agent count seam
...
Add a side-effect-safe core seam so global concurrency reads can report live running-agent counts.
- Add core helpers to register a running-agent count source and derive active project totals.
- Wire CentralCore and dashboard server setup to read live counts from already-open stores without starting runtimes.
- Update the global concurrency route to preserve slot bookkeeping while sourcing currentlyActive/projectsActive from the live seam.
- Cover the seam, dashboard store resolver, server wiring, and route behavior with focused tests and document the multi-project behavior.
Files changed:
.changeset/fn-7082-live-running-agent-count-seam.md | 7 ++
docs/multi-project.md | 2 +-
packages/core/src/__tests__/central-core.test.ts | 106 +++++++++++++++++++++
packages/core/src/central-core.ts | 28 ++++++
packages/core/src/index.ts | 7 ++
packages/core/src/live-agent-count.ts | 38 ++++++++
.../dashboard/src/__tests__/project-routes.test.ts | 20 +++-
.../src/__tests__/project-store-resolver.test.ts | 71 ++++++++++++++
packages/dashboard/src/__tests__/server.test.ts | 45 ++++++++-
packages/dashboard/src/project-store-resolver.ts | 24 +++++
packages/dashboard/src/routes.ts | 25 +----
packages/dashboard/src/server.ts | 42 +++++++-
12 files changed, 387 insertions(+), 28 deletions(-)
Fusion-Task-Id: FN-7082
Fusion-Task-Lineage: 4dbca204-8bea-4de5-b56b-7468b61575ce
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-26 18:19:41 -07:00
gsxdsm
0ddfe9a422
FN-7084: add concurrency save confirmations
...
Require explicit confirmation before Command Center concurrency sliders persist live capacity changes.
- Add confirmation flows for global and project concurrency sliders after debounce settles.
- Revert pending slider values on cancel, Escape, or backdrop dismissal without saving.
- Cover single, batched, no-op, failure, and dismissal paths in Command Center control tests.
- Document the confirmation behavior and add a published package changeset.
Files changed:
.changeset/FN-7084-concurrency-confirm.md | 7 +
docs/dashboard-guide.md | 3 +-
.../command-center/CommandCenterControls.tsx | 169 ++++++++++++++---
.../__tests__/CommandCenterControls.test.tsx | 203 +++++++++++++++++----
4 files changed, 323 insertions(+), 59 deletions(-)
Fusion-Task-Id: FN-7084
Fusion-Task-Lineage: f1ebe1f7-f570-4bcb-9dad-7c8f03808d54
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-26 18:01:21 -07:00
gsxdsm
4c48ccfe03
FN-7078: forward MCP config to planning helpers
...
Dashboard readonly planning helpers now receive scoped MCP server configuration when creating AI sessions.
- Thread request-scoped TaskStore access into subtask, text refine, goal drafting, agent onboarding, PR metadata, insight, and triage helper paths.
- Resolve and forward in-memory MCP server declarations while preserving empty no-store fallbacks and secret hygiene.
- Document the expanded MCP forwarding surface and add regression coverage for helper forwarding and retry paths.
- Add a changeset for the published Fusion package.
Files changed:
.changeset/fn-7078-mcp-planning-helpers.md | 7 +
docs/mcp.md | 6 +-
.../src/__tests__/agent-generation.test.ts | 3 +
.../src/__tests__/agent-onboarding.test.ts | 72 +++++-
packages/dashboard/src/__tests__/ai-refine.test.ts | 96 +++++++-
.../src/__tests__/mcp-helper-forwarding.test.ts | 258 +++++++++++++++++++++
.../src/__tests__/pr-metadata-generator.test.ts | 1 +
.../src/__tests__/subtask-breakdown.test.ts | 137 ++++++++++-
packages/dashboard/src/agent-generation.ts | 17 +-
packages/dashboard/src/agent-onboarding.ts | 49 +++-
packages/dashboard/src/ai-refine.ts | 18 +-
packages/dashboard/src/insights-routes.ts | 40 ++--
packages/dashboard/src/pr-metadata-generator.ts | 13 +-
packages/dashboard/src/routes.ts | 3 +-
...gister-agent-import-export-generation-routes.ts | 6 +-
.../dashboard/src/routes/register-git-github.ts | 1 +
.../src/routes/register-planning-subtask-routes.ts | 2 +-
packages/dashboard/src/subtask-breakdown.ts | 27 ++-
packages/dashboard/src/triage-trait.ts | 2 +-
19 files changed, 695 insertions(+), 63 deletions(-)
Fusion-Task-Id: FN-7078
Fusion-Task-Lineage: 8ed30003-7a27-42e9-8b37-5ceb1a832334
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-26 17:38:41 -07:00
gsxdsm
ad3149093a
FN-7077: inject configured MCP servers across agent surfaces
...
Configured MCP servers now follow every agent-work lane that launches model-backed tools.
- Thread MCP server forwarding through chat, task execution, tools, PR response, cron, memory, research, and planning surfaces.
- Add regression coverage for dashboard and engine lanes that previously omitted MCP server configuration.
- Document all covered MCP surfaces and add a published package changeset.
Files changed:
.changeset/fn-7077-mcp-all-surfaces.md | 7 +
docs/mcp.md | 3 +
docs/settings-reference.md | 2 +-
packages/cli/src/commands/__tests__/serve.test.ts | 3 +-
packages/core/src/memory-compaction.ts | 4 +
.../src/__tests__/mcp-lane-forwarding.test.ts | 62 +++++++++
packages/dashboard/src/agent-generation.ts | 4 +
packages/dashboard/src/ai-refine.ts | 8 ++
.../dashboard/src/milestone-slice-interview.ts | 11 +-
packages/dashboard/src/mission-interview.ts | 9 +-
packages/dashboard/src/pr-conflict-resolver.ts | 12 +-
packages/dashboard/src/routes.ts | 10 ++
packages/dashboard/src/subtask-breakdown.ts | 8 ++
packages/engine/src/__tests__/cron-runner.test.ts | 61 +++++++++
.../src/__tests__/mcp-lane-forwarding.test.ts | 3 +-
.../__tests__/mcp-pr-response-forwarding.test.ts | 110 ++++++++++++++++
.../src/__tests__/mcp-surface-coverage.test.ts | 141 +++++++++++++++++++++
packages/engine/src/agent-heartbeat.ts | 18 +++
packages/engine/src/cli-agent-ask.ts | 4 +
packages/engine/src/cron-runner.ts | 9 +-
packages/engine/src/pr-nodes.ts | 2 +-
packages/engine/src/pr-response-run-ops.ts | 10 +-
packages/engine/src/project-engine.ts | 2 +-
.../research/providers/llm-synthesis-provider.ts | 4 +
.../src/research/providers/web-search-provider.ts | 4 +
25 files changed, 497 insertions(+), 14 deletions(-)
Fusion-Task-Id: FN-7077
Fusion-Task-Lineage: 00d36357-c3d8-4954-b647-d3aea24a967b
2026-06-26 16:14:44 -07:00
gsxdsm
af8cc7b29c
FN-7079: Correct quarantine baseline reporting
...
Correct the velocity baseline to reflect an empty quarantine ledger and cover that report-only path.
- Update the published test velocity baseline quarantine totals, buckets, trend row, and #leads summary to zero.
- Add a regression test that regenerates the report from an empty live quarantine ledger without measuring lanes.
- Assert deletion-due and bucket rows stay zero and stale nonzero quarantine text is removed.
Files changed:
docs/test-velocity-baseline.md | 10 ++--
scripts/__tests__/test-velocity-baseline.test.mjs | 72 ++++++++++++++++++++++-
2 files changed, 76 insertions(+), 6 deletions(-)
Fusion-Task-Id: FN-7079
Fusion-Task-Lineage: d641adc3-f991-4d95-bcb2-7b20bbfeb0bb
2026-06-26 15:50:40 -07:00
gsxdsm
0440ae4bb9
FN-7074: make task ID reservation commits atomic
...
Task creation now commits or rolls back distributed task ID reservations with the task-row transaction.
- Add transaction-participating reservation commit and rollback helpers.
- Wire create, duplicate, and refinement task paths to commit reservations inside task insertion.
- Record rollback audit events and preserve burned reservation rows after failed creates.
- Cover atomicity, rollback, and allocator behavior with reservation-focused tests and docs.
Files changed:
.changeset/fn-7074-reservation-atomicity.md | 7 +
AGENTS.md | 1 +
docs/architecture.md | 7 +-
docs/storage.md | 4 +-
.../core/src/__tests__/distributed-task-id.test.ts | 25 ++-
.../__tests__/store-reservation-atomicity.test.ts | 224 +++++++++++++++++++++
packages/core/src/distributed-task-id.ts | 208 +++++++++++++------
packages/core/src/store.ts | 93 +++++++--
8 files changed, 479 insertions(+), 90 deletions(-)
Fusion-Task-Id: FN-7074
Fusion-Task-Lineage: 464a98cf-e903-4257-93ac-424c7129412b
2026-06-26 14:55:01 -07:00
gsxdsm
93b01c8ea9
FN-7076: show Command Center concurrency utilization
...
Surface Command Center concurrency utilization beside the editable caps.
- Add loaded-only running-agent readouts for global and current-project concurrency.
- Render clamped current-use markers on the global and project max-concurrent sliders without intercepting drags.
- Cover loaded, zero, unavailable, over-subscribed, and persistence behavior in Command Center tests.
- Document the utilization indicators and add a release changeset.
Files changed:
.../fn-7076-command-center-concurrency-counts.md | 7 ++
docs/dashboard-guide.md | 3 +-
.../command-center/CommandCenterControls.css | 22 ++++
.../command-center/CommandCenterControls.tsx | 103 ++++++++++++++-----
.../__tests__/CommandCenterControls.test.tsx | 111 +++++++++++++++++++++
5 files changed, 219 insertions(+), 27 deletions(-)
Fusion-Task-Id: FN-7076
Fusion-Task-Lineage: 540a57aa-a31b-4a57-aff6-47b373713ab3
2026-06-26 14:38:12 -07:00
gsxdsm
7137e36ccb
FN-7073: serve file previews inline
...
File viewer previews now request inline-safe responses while downloads remain attachments.
- Add an inline preview query option to file download URL helpers and preview consumers.
- Serve known media and PDF preview extensions with real MIME types, inline disposition, nosniff, and sandbox CSP headers.
- Keep explicit downloads and unknown file types on attachment/octet-stream behavior.
- Cover preview and download header behavior with dashboard route and component tests.
Files changed:
.changeset/fn-7073-file-viewer-inline-preview.md | 7 +
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/api/legacy.ts | 9 +-
.../dashboard/app/components/DockFilesView.tsx | 2 +-
.../dashboard/app/components/FileBrowserModal.tsx | 2 +-
.../components/__tests__/DockFilesView.test.tsx | 14 +-
.../components/__tests__/FileBrowserModal.test.tsx | 12 +-
.../register-file-workspace-routes.test.ts | 141 +++++++++++++++++++++
.../src/routes/register-file-workspace-routes.ts | 111 +++++++++++-----
9 files changed, 260 insertions(+), 40 deletions(-)
Fusion-Task-Id: FN-7073
Fusion-Task-Lineage: 922b4aa4-ac6d-4a59-b94f-bab4eeb65530
2026-06-26 14:33:58 -07:00
gsxdsm
e89a58f276
FN-7066: schedule fixes for failed optional steps
...
Route failed pre-merge optional workflow steps back through executor remediation before review/merge.
- Add a graph-executor seam that schedules bounded executor fixes for pre-merge optional REVISE results.
- Track optional-step fix attempts with the existing post-review fix budget before falling back to advisory/gate behavior.
- Cover optional Code Review / Browser Verification fix scheduling and exhausted-budget behavior with engine tests.
- Document the pre-merge remediation semantics and add a release changeset.
Files changed:
.changeset/fn-7066-optional-step-fix.md | 7 +
docs/workflow-steps.md | 11 +-
packages/engine/src/__tests__/self-healing.test.ts | 43 +++++
.../workflow-graph-optional-group.test.ts | 206 +++++++++++++++++++++
.../workflow-graph-optional-step-fix.test.ts | 89 +++++++++
packages/engine/src/executor.ts | 50 ++++-
packages/engine/src/workflow-graph-executor.ts | 29 +++
packages/engine/src/workflow-graph-task-runner.ts | 5 +-
8 files changed, 436 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-7066
Fusion-Task-Lineage: 6b584293-4f2a-4851-a0d7-3ec9e68fe31a
2026-06-26 14:17:07 -07:00
gsxdsm
2db8ead842
FN-7071: show concurrency utilization in the footer panel
...
Expose live running-agent utilization in the footer concurrency controls.
- Show all-project and current-project running counts beside the matching concurrency sliders.
- Add clamped current-use markers on global and project slider tracks.
- Preserve shared global-concurrency hook state with utilization counts and cover the new UI behavior with tests.
- Document the footer panel utilization indicators and add a release changeset.
Files changed:
.changeset/fn-7071-concurrency-running-counts.md | 7 ++
docs/dashboard-guide.md | 2 +-
.../dashboard/app/components/EngineControlMenu.css | 23 ++++
.../dashboard/app/components/EngineControlMenu.tsx | 103 +++++++++++++-----
.../__tests__/EngineControlMenu.test.tsx | 117 ++++++++++++++++++++-
.../hooks/__tests__/useGlobalConcurrency.test.ts | 96 +++++++++++++++++
.../dashboard/app/hooks/useGlobalConcurrency.ts | 41 +++++++-
packages/i18n/locales/en/app.json | 4 +-
packages/i18n/locales/es/app.json | 4 +-
packages/i18n/locales/fr/app.json | 4 +-
packages/i18n/locales/ko/app.json | 4 +-
packages/i18n/locales/zh-CN/app.json | 4 +-
packages/i18n/locales/zh-TW/app.json | 4 +-
13 files changed, 373 insertions(+), 40 deletions(-)
Fusion-Task-Id: FN-7071
Fusion-Task-Lineage: db95d50a-c042-4972-a462-1987b7bca61e
2026-06-26 13:57:00 -07:00
gsxdsm
74d37785d2
FN-7069: reconcile phantom task reservations
...
Harden task-store startup and maintenance against phantom committed task reservations.
- Reconcile committed reservation phantoms without freeing reserved task IDs.
- Prune orphaned child rows and emit durable run-audit evidence.
- Normalize missing legacy task.json reads to clean not-found errors.
- Cover archive/search and phantom-reservation reconciliation behavior with tests.
Files changed:
.changeset/fn-7069-phantom-task-reconcile.md | 7 +
AGENTS.md | 1 +
docs/architecture.md | 2 +
.../src/__tests__/store-archive-search.test.ts | 5 +
.../store-phantom-reservation-reconcile.test.ts | 148 +++++++++++++++++++++
packages/core/src/store.ts | 106 ++++++++++++++-
packages/engine/src/self-healing.ts | 14 ++
7 files changed, 282 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-7069
Fusion-Task-Lineage: 772aad37-db30-4310-a968-c6e5306c73bb
2026-06-26 13:39:33 -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
f685518a93
FN-7064: discover MCP servers in settings
...
Add read-only MCP discovery with settings UI controls that keep discovered secrets bound to Fusion secret references.
- Add core MCP discovery source resolution and parsing for supported global and project tool configs.
- Expose discovered MCP server candidates through the dashboard API and engine discovery service.
- Surface discovered servers in global and project MCP settings with explicit add flows and configured-state handling.
- Require discovered sensitive env/header/token descriptors to stay locked until bound or created as Fusion secret references.
- Document discovery behavior and add a published package changeset.
Files changed:
.changeset/fn-7064-mcp-auto-discovery.md | 7 ++
docs/dashboard-guide.md | 3 +-
docs/mcp.md | 53 ++++++++-
docs/settings-reference.md | 4 +-
packages/core/src/__tests__/mcp-discovery.test.ts | 74 ++++++++++++
packages/core/src/index.ts | 7 ++
packages/core/src/mcp-discovery.ts | 125 ++++++++++++++++++++
.../__tests__/SettingsModal.mcp.test.tsx | 76 +++++++++++-
.../settings/sections/McpServersCard.css | 34 +++++-
.../settings/sections/McpServersCard.tsx | 130 ++++++++++++++++++++-
.../src/__tests__/mcp-discovered-route.test.ts | 109 +++++++++++++++++
packages/dashboard/src/routes.ts | 46 ++++++++
.../src/__tests__/mcp-discovery-service.test.ts | 60 ++++++++++
packages/engine/src/index.ts | 1 +
packages/engine/src/mcp-discovery-service.ts | 65 +++++++++++
15 files changed, 782 insertions(+), 12 deletions(-)
Fusion-Task-Id: FN-7064
Fusion-Task-Lineage: ef5dc53f-f8d1-4cc8-bdaf-e98d63ee8406
2026-06-26 11:56:12 -07:00
gsxdsm
7a3a9a9bb1
FN-7062: rename remote settings section
...
Rename the settings navigation entry so Remote Access is no longer conflated with Node Sync.
- Update the remote settings nav label to "Remote Access" while keeping the separate Node Sync section intact.
- Add coverage that rejects the old combined label and confirms both standalone entries render.
- Align the workflow settings plan and changeset with the clarified settings IA.
Files changed:
.changeset/fn-7062-remote-access-rename.md | 7 +++++++
...26-06-04-002-feat-workflow-settings-mechanism-plan.md | 2 +-
packages/dashboard/app/components/SettingsModal.tsx | 6 +++++-
.../__tests__/SettingsModal.scheduling-merge.test.tsx | 16 ++++++++++++++++
4 files changed, 29 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-7062
Fusion-Task-Lineage: d50d47eb-aa15-4bf6-8f26-edaa79c8de9e
2026-06-26 10:18:04 -07:00
gsxdsm
2442032382
FN-7061: Graduate Remote Access settings
...
Remote Access settings are now always available while tunnel prerequisites remain gated.
- Remove Remote Access from experimental feature toggles and section visibility gates.
- Keep legacy remoteAccess experimental flags hidden so upgrades cannot disable the section.
- Update settings and remote access docs plus release notes for the graduated UI.
- Cover always-visible Remote Access behavior across missing and legacy experimental flag states.
Files changed:
.changeset/fn-7061-remote-access-graduation.md | 7 +++
docs/remote-access.md | 2 +-
docs/settings-reference.md | 1 +
.../dashboard/app/components/SettingsModal.tsx | 17 ++----
.../SettingsModal.remote-notifications.test.tsx | 13 +++++
.../SettingsModal.scheduling-merge.test.tsx | 60 ++++++++++++----------
6 files changed, 60 insertions(+), 40 deletions(-)
Fusion-Task-Id: FN-7061
Fusion-Task-Lineage: 2e6a6977-b43b-4c7b-8100-0f2f2f018fcf
2026-06-26 10:18:04 -07:00
gsxdsm
42f46a12c1
FN-7060: sanitize bundled plugin manifests
...
Sanitize published CLI plugin manifests so off-workspace installs do not resolve private workspace packages.
- Add manifest sanitization for copied bundled plugins and vendored pi extensions during the CLI build.
- Cover built plugin and extension package.json files with a pack-shape regression test.
- Update plugin authoring docs and add a patch changeset for the published CLI fix.
Files changed:
.../fn-7060-fix-plugin-manifest-workspace-deps.md | 7 ++
docs/PLUGIN_AUTHORING.md | 8 ++-
.../cli/src/__tests__/plugin-pack-shape.test.ts | 55 +++++++++++++-
packages/cli/tsup.config.ts | 83 ++++++++++++++++++++--
4 files changed, 142 insertions(+), 11 deletions(-)
Fusion-Task-Id: FN-7060
Fusion-Task-Lineage: e38a4237-7197-4bc4-87bd-117dfd35a0f8
2026-06-26 10:18:04 -07:00
gsxdsm
3ee47dec86
merge: integrate origin/main into feature/workflow-steps (FN-7039)
...
Resolve conflicts from 56 upstream commits:
- db.ts: renumber my migrations around main's new migration 130 (columnDwellMs) —
enable-id normalization 130→131, drop-table 131→132, SCHEMA_VERSION→132.
- index.ts / routes.ts: take main's new MCP exports/imports; keep WORKFLOW_STEP_TEMPLATES
array removed (kept the WorkflowStepTemplate type).
- merger.ts: keep the legacy post-merge execution path removed (U7c) over main's version.
- ci-workflow.test.ts (from main): add port-4040/process-supervisor allowlist markers to
the gate-script assertions that reference the checker filenames (pre-existing self-match).
Gate green (engine-core 299, ci-shape 62); boot smoke PASS; migration tests + typecheck clean.
2026-06-26 08:50:22 -07:00
gsxdsm
2b554142f5
FN-7056: guard configured commands against execSync
...
Add a focused engine regression guard for user-configured command paths.
- Add a static Vitest registry that slices protected configured-command helpers and fails on execSync usage.
- Assert each protected command path keeps bounded async safeguards such as timeout, maxBuffer, or maxLifetimeMs.
- Document the guard and its deliberate git-plumbing exclusions in the testing guide.
Files changed:
docs/testing.md | 5 +
.../user-configured-command-no-execsync.test.ts | 288 +++++++++++++++++++++
2 files changed, 293 insertions(+)
Fusion-Task-Id: FN-7056
Fusion-Task-Lineage: b92f19cf-526e-4345-b18e-869a278e0e10
2026-06-26 04:11:04 -07:00
gsxdsm
4e59d74920
FN-7058: refresh test velocity quarantine baseline
...
Refresh the test velocity report so it reflects the current quarantine ledger.
- Update the weekly baseline quarantine count from 0 to 3.
- Reflect the three new quarantines in age-bucket and delta tables.
- Update the #leads posting snippet with the new quarantine ledger total.
Files changed:
docs/test-velocity-baseline.md | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-7058
Fusion-Task-Lineage: c8d40858-3511-4962-9f33-01d144cb6dae
2026-06-26 03:50:38 -07:00
gsxdsm
3bfdb16650
FN-7033: document MCP operator workflows
...
Add a canonical MCP guide with operator workflows and contract coverage.
- Add docs/mcp.md covering MCP settings resolution, transports, secret references, validation, dashboard management, CLI commands, import/export, and AI lane forwarding.
- Link the MCP guide from the docs index, CLI reference, settings reference, secrets docs, and dashboard guide.
- Add a documentation contract test that checks required guide sections and source-aligned MCP surfaces.
Files changed:
docs/README.md | 1 +
docs/cli-reference.md | 2 +-
docs/dashboard-guide.md | 2 +-
docs/mcp.md | 221 +++++++++++++++++++++
docs/secrets.md | 2 +-
docs/settings-reference.md | 2 +
.../src/__tests__/mcp-documentation.test.ts | 65 ++++++
7 files changed, 292 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-7033
Fusion-Task-Lineage: 530abc69-0247-49ee-9487-54d8e2a1b988
2026-06-26 02:52:51 -07:00
gsxdsm
8131d541ca
FN-7038: add live automation run output
...
Add configurable automation tool access with live manual-run streaming for schedules and routines.
- Add an automation tool allowlist model and dashboard selectors for AI prompt steps.
- Stream manual automation and routine run progress, output, step updates, and tool events over SSE.
- Surface live run transcripts in automation/routine cards and document the operator workflow.
- Cover validation, runner callbacks, API streaming, and UI behavior with targeted tests.
Files changed:
.changeset/fn-7038-automation-tools-live-output.md | 7 +
docs/dashboard-guide.md | 9 +
packages/core/src/__tests__/automation.test.ts | 27 +-
packages/core/src/automation.ts | 18 +
packages/core/src/index.ts | 4 +-
packages/core/src/types.ts | 6 +
packages/dashboard/app/api/legacy.ts | 48 +++
packages/dashboard/app/components/RoutineCard.tsx | 16 +-
packages/dashboard/app/components/ScheduleForm.tsx | 53 ++-
.../app/components/ScheduleStepsEditor.tsx | 49 ++-
.../app/components/ScheduledTasksModal.tsx | 72 +++-
packages/dashboard/app/components/ScriptsModal.css | 79 ++++
.../app/components/__tests__/RoutineCard.test.tsx | 45 +++
.../app/components/__tests__/ScheduleForm.test.tsx | 100 +++++-
.../__tests__/ScheduleStepsEditor.test.tsx | 67 +++-
.../__tests__/ScheduledTasksModal.test.tsx | 36 +-
.../src/__tests__/routes-automation.test.ts | 151 +++++++-
packages/dashboard/src/routes.ts | 400 ++++++++++++++++++++-
packages/dashboard/src/server.ts | 7 +-
packages/engine/src/__tests__/cron-runner.test.ts | 56 ++-
.../src/__tests__/pi-create-fn-agent.test.ts | 44 +++
.../engine/src/__tests__/routine-runner.test.ts | 28 ++
packages/engine/src/cron-runner.ts | 20 +-
packages/engine/src/pi.ts | 32 +-
packages/engine/src/routine-runner.ts | 39 +-
packages/i18n/locales/en/app.json | 9 +
packages/i18n/src/resources.d.ts | 21 ++
27 files changed, 1374 insertions(+), 69 deletions(-)
Fusion-Task-Id: FN-7038
Fusion-Task-Lineage: 7f5871d0-1de0-4d22-a9c9-ee9418658677
2026-06-26 02:45:29 -07:00
gsxdsm
c0f9f2b4a9
docs(FN-7039): rewrite workflow-steps docs to the graph-native model
...
Reflect the completed cutover: quality gates are optional-group IR nodes (pre- and
post-merge), results live on task.workflowStepResults (graph-written), custom gates are
authored in the Workflow Editor, plugin templates are the palette. Removed docs for the
deleted runWorkflowSteps path, WORKFLOW_STEP_TEMPLATES catalog, /api/workflow-steps CRUD,
Settings → Workflow Steps manager, and the workflow_steps table. Documented
experimentalFeatures.graphNativePostMerge (default-ON) and the FN-4343 per-step scope-gate
follow-up. settings-reference: add graphNativePostMerge, annotate workflowStepScopeEnforcement.
Plan U8.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-26 02:38:31 -07:00
gsxdsm
301f25da06
FN-7025: add MCP server management settings UI
...
Adds dashboard controls for managing MCP server configuration across global and project scopes.
- Add global and project MCP settings sections with server cards, validation, inheritance status, and import/export controls.
- Wire MCP settings into split-save behavior, browser-safe core exports, localization, and dashboard documentation.
- Cover MCP settings interactions and save routing with dashboard tests.
Files changed:
.changeset/fn-7025-mcp-dashboard-ui.md | 7 +
docs/dashboard-guide.md | 14 +
packages/core/src/types.ts | 4 +
.../app/__tests__/settings-save-split.test.ts | 25 +
.../dashboard/app/components/SettingsModal.tsx | 25 +
.../__tests__/SettingsModal.mcp.test.tsx | 228 +++++++++
.../app/components/settings/save-split.ts | 5 +
.../settings/sections/GlobalMcpSection.tsx | 26 ++
.../settings/sections/McpServersCard.css | 177 +++++++
.../settings/sections/McpServersCard.tsx | 515 +++++++++++++++++++++
.../settings/sections/ProjectMcpSection.tsx | 27 ++
packages/i18n/locales/en/app.json | 10 +-
packages/i18n/locales/es/app.json | 10 +-
packages/i18n/locales/fr/app.json | 10 +-
packages/i18n/locales/ko/app.json | 10 +-
packages/i18n/locales/zh-CN/app.json | 10 +-
packages/i18n/locales/zh-TW/app.json | 10 +-
17 files changed, 1107 insertions(+), 6 deletions(-)
Fusion-Task-Id: FN-7025
Fusion-Task-Lineage: e4e59431-c819-464b-a04b-e470ac51c460
2026-06-26 02:30:34 -07:00
gsxdsm
afa33b76d3
FN-7055: fix task workflow detail rendering
...
Fix task-detail workflow rendering so inherited workflow data and live results refresh reliably.
- Clear stale workflow selections and result rows while switching between tasks.
- Load inherited/default workflow graphs and avoid empty graph previews during loading.
- Alias optional template IDs to materialized workflow steps so configured details populate.
- Cover task switching, inherited workflows, and optional step detail rendering with dashboard tests.
Files changed:
.changeset/fn-7055-workflow-tab-graph-step-details.md | 7 +++
docs/dashboard-guide.md | 1 +
packages/dashboard/app/components/TaskDetailModal.tsx | 5 ++
packages/dashboard/app/components/WorkflowResultsTab.tsx | 35 +++++++++--
packages/dashboard/app/components/__tests__/TaskDetailModal.models-progress-workflow.test.tsx | 56 +++++++++++++++++
packages/dashboard/app/components/__tests__/WorkflowResultsTab.test.tsx | 72 ++++++++++++++++++++++
6 files changed, 171 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-7055
Fusion-Task-Lineage: a28dd138-3c2f-43bc-81f9-fb47799f5251
2026-06-26 02:04:53 -07:00
gsxdsm
59fc94bc0f
FN-7054: fix slash skill request matching
...
Normalize requested skill identifiers so slash/catalog forms load the discovered bare skill across chat and agent sessions.
- Add requested-name matching keys for slash paths, SKILL.md paths, and source-qualified skill identifiers.
- Preserve execution-skill disable/exclude behavior and not-found diagnostics while applying the new matching only to requested names.
- Cover chat/agent requested skill paths with resolver and full flow tests and document supported /skill forms.
Files changed:
.changeset/fn-7054-skill-slash-names.md | 7 ++
docs/agents.md | 2 +-
docs/dashboard-guide.md | 2 +-
.../engine/src/__tests__/agent-skills-flow.test.ts | 42 +++++++++
.../engine/src/__tests__/skill-resolver.test.ts | 101 +++++++++++++++++++++
packages/engine/src/skill-resolver.ts | 23 ++++-
6 files changed, 170 insertions(+), 7 deletions(-)
Fusion-Task-Id: FN-7054
Fusion-Task-Lineage: 8d0f5c7d-9d8b-4b16-b24e-db6d2f6a464b
2026-06-26 01:38:57 -07:00
gsxdsm
29aee2196a
FN-7051: restore verify:fast prerequisite builds
...
Restore verify:fast so fresh worktrees prepare required artifacts before boot smoke.\n\n- Bootstrap missing or stale workspace dist artifacts before scoped verification.\n- Always build @runfusion/fusion for source-checkout boot smoke, even when no package diff maps to the CLI.\n- Update verify:fast tests and docs to capture the prerequisite build flow.\n\nFiles changed:\n AGENTS.md | 4 +-\n docs/testing.md | 5 +-\n scripts/__tests__/verify-fast.test.mjs | 29 +++++++++--\n scripts/verify-fast.mjs | 92 ++++++++++++++++++++++++++--------\n 4 files changed, 101 insertions(+), 29 deletions(-)
Fusion-Task-Id: FN-7051
Fusion-Task-Lineage: b8980f15-0103-4f40-9f8d-83907461988a
2026-06-26 01:10:00 -07:00
gsxdsm
d739223de2
FN-7049: collapse model pricing behind modal editor
...
Collapse the Global Models pricing editor into a compact summary with a modal table for detailed edits.
- Add a View pricing table modal with escape, overlay, and close-button dismissal.
- Keep add, edit, delete, and LiteLLM fetch workflows available while showing override counts in the collapsed settings view.
- Update model pricing tests, styling, and documentation for the collapsed summary and modal editor.
Files changed:
docs/dashboard-guide.md | 2 +-
docs/settings-reference.md | 4 +-
.../settings/sections/ModelPricingSection.css | 36 +++++-
.../settings/sections/ModelPricingSection.test.tsx | 62 ++++++++-
.../settings/sections/ModelPricingSection.tsx | 144 +++++++++++++++------
5 files changed, 198 insertions(+), 50 deletions(-)
Fusion-Task-Id: FN-7049
Fusion-Task-Lineage: 9ba63354-28e7-4717-81e6-805f1f05fd97
2026-06-26 01:04:03 -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
f3f20accbb
FN-7031: preview binary media files in dock Files viewer
...
Render browser-native previews for right-dock file selections while preserving text editing behavior.
- Add image, video, audio, and PDF preview rendering through the workspace download URL.
- Keep previewable and known binary files out of the text editor, with a read-only fallback for unsupported binaries.
- Cover compact and two-pane dock preview behavior with tests, docs, and a patch changeset.
Files changed:
.changeset/fn-7031-dock-files-binary-preview.md | 7 +
docs/dashboard-guide.md | 2 +-
.../dashboard/app/components/DockFilesView.css | 45 ++++++
.../dashboard/app/components/DockFilesView.tsx | 85 ++++++++++-
.../components/__tests__/DockFilesView.test.tsx | 170 ++++++++++++++++++++-
5 files changed, 303 insertions(+), 6 deletions(-)
Fusion-Task-Id: FN-7031
Fusion-Task-Lineage: a52bdd57-bb3e-494e-85a8-81326a1548e2
2026-06-26 00:43:55 -07:00
gsxdsm
98a5052b65
FN-6706: add signal connector incident ingestion
...
Connect external signal ingestion routes to Command Center incident analytics.\n\n- Add connector status reporting and incident upsert/resolution support for webhook, Sentry, Datadog, and PagerDuty sources.\n- Move signal aggregation through shared activity analytics and expose connector-aware empty states in Command Center.\n- Document connector setup, settings, and dashboard behavior with a published changeset.\n- Extend route, analytics, and Command Center UI tests for scoped signal data and configured-but-quiet connectors.\n\nFiles changed:\n .changeset/fn-6706-signal-connectors.md | 7 +\n AGENTS.md | 1 +\n docs/dashboard-guide.md | 4 +-\n docs/settings-reference.md | 16 +\n docs/signals-connectors.md | 140 ++++++++\n .../core/src/__tests__/signals-analytics.test.ts | 37 ++-\n packages/core/src/activity-analytics.ts | 185 ++++++++++-\n packages/core/src/index.ts | 11 +-\n packages/core/src/signals-analytics.ts | 209 +-----------\n .../command-center/areas/SignalsArea.tsx | 47 ++-\n .../areas/__tests__/areas.github-signals.test.tsx | 120 +++++--\n .../command-center/areas/__tests__/areas.test.tsx | 3 +-\n .../register-command-center-routes.test.ts | 72 +++-\n .../src/__tests__/register-signal-routes.test.ts | 369 ++++++++++++++++++++-\n .../src/routes/register-command-center-routes.ts | 29 +-\n .../dashboard/src/routes/register-signal-routes.ts | 55 +++\n packages/dashboard/src/signal-source.ts | 8 +\n packages/dashboard/src/signal-sources/datadog.ts | 8 +\n packages/dashboard/src/signal-sources/pagerduty.ts | 14 +-\n packages/dashboard/src/signal-sources/sentry.ts | 19 +-\n packages/dashboard/src/signal-sources/webhook.ts | 8 +\n 21 files changed, 1094 insertions(+), 268 deletions(-)
Fusion-Task-Id: FN-6706
Fusion-Task-Lineage: 09003e9b-481b-4393-926b-44907d13bcf9
2026-06-26 00:28:31 -07:00
gsxdsm
429143ecf0
FN-7024: add MCP server management CLI
...
Add CLI support for managing MCP server configuration without exposing secret values.
- Add fn mcp list/add/edit/remove/enable/disable/import/export/validate subcommands.
- Store MCP env and header values as Fusion secret references, including Claude Desktop import conversion.
- Document MCP CLI usage and add command coverage for scoped configuration, import, export, and validation.
- Add a minor changeset for the published CLI feature.
Files changed:
.changeset/fn-7024-mcp-cli.md | 7 +
docs/cli-reference.md | 49 +++
packages/cli/src/bin.ts | 124 +++++++
packages/cli/src/commands/__tests__/mcp.test.ts | 182 ++++++++++
packages/cli/src/commands/mcp.ts | 455 ++++++++++++++++++++++++
5 files changed, 817 insertions(+)
Fusion-Task-Id: FN-7024
Fusion-Task-Lineage: e3d98bfa-b883-4b9e-86d5-f0416808d6f2
2026-06-25 23:34:07 -07:00