gsxdsm
ea0707c573
FN-7264: add opt-in absolute file-browser paths
...
Add an opt-in project setting that lets the workspace file browser use slash-prefixed absolute paths while preserving existing confined defaults.
- Add the allowAbsoluteFileBrowserPaths project setting, docs, and changeset release note.
- Thread absolute-path validation through workspace file-browser listing, editing, file operations, and downloads without widening other path APIs.
- Add Settings UI controls and keep settings-specific file pickers project-relative.
- Cover absolute-path browsing, percent-literal paths, root navigation, and settings picker behavior with tests.
Files changed:
.changeset/fn-7264-absolute-file-browser-paths.md | 7 +
docs/settings-reference.md | 3 +
.../core/src/__tests__/settings-parity.test.ts | 8 +
packages/core/src/settings-schema.ts | 5 +
packages/core/src/types.ts | 5 +
.../app/__tests__/settings-sections.test.tsx | 41 +++++
packages/dashboard/app/components/FileBrowser.tsx | 26 ++-
.../dashboard/app/components/FileBrowserModal.tsx | 7 +
.../dashboard/app/components/SettingsModal.tsx | 34 +++-
.../components/__tests__/FileBrowserModal.test.tsx | 18 ++
.../__tests__/SettingsModal.general.test.tsx | 17 ++
.../settings/sections/GeneralSection.tsx | 9 +
.../__tests__/useWorkspaceFileBrowser.test.ts | 18 ++
.../dashboard/app/hooks/useWorkspaceFileBrowser.ts | 20 ++-
.../dashboard/src/__tests__/file-service.test.ts | 199 ++++++++++++++++++++-
packages/dashboard/src/file-service.ts | 129 ++++++++-----
16 files changed, 489 insertions(+), 57 deletions(-)
Fusion-Task-Id: FN-7264
Fusion-Task-Lineage: ec71facd-0345-4490-a3df-244b98e24c2d
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-29 23:17:49 -07:00
gsxdsm
cfd9d5b32e
test(FN-7249): cover phantom worktree recovery
2026-06-29 22:30:23 -07:00
gsxdsm
480d4d03fd
FN-7254: add worktree commit history targets
...
Allow Git Manager users to inspect commits and diffs from registered worktrees without changing mutation targets.
- Add read-only worktreePath targeting to Git commit list and commit diff APIs with registered-worktree validation.
- Add a Commits history target selector and Worktrees "View commits" shortcuts that clear stale diff state when targets change.
- Document the read-only scope and cover API, UI, responsive layout, and mutation-target invariants with tests.
Files changed:
.changeset/fn-7254-git-manager-worktree-commits.md | 7 +
.changeset/fn-7254-worktree-commit-target-ui.md | 7 +
.changeset/fn-7254-worktree-commits.md | 7 +
docs/dashboard-guide.md | 6 +-
packages/dashboard/app/api/legacy.ts | 15 +-
.../dashboard/app/components/GitManagerModal.tsx | 133 ++++++++++++++--
packages/dashboard/app/components/ScriptsModal.css | 113 ++++++++++++++
.../components/__tests__/GitManagerModal.test.tsx | 167 +++++++++++++++++++++
.../dashboard/src/__tests__/routes-git.test.ts | 34 +++++
.../dashboard/src/routes/register-git-github.ts | 31 +++-
10 files changed, 497 insertions(+), 23 deletions(-)
Fusion-Task-Id: FN-7254
Fusion-Task-Lineage: 37314175-fef4-4f8d-8268-cf27fee09857
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-29 20:24:24 -07:00
gsxdsm
03d4f95e8a
FN-7224: separate Anthropic subscription and API-key auth
...
Separate Claude subscription OAuth from raw Anthropic API-key authentication surfaces.
- Add synthetic Anthropic Subscription and Anthropic API Key provider IDs while preserving upstream credential storage compatibility.\n- Map dashboard auth routes, CLI auth storage, Settings, and onboarding flows so OAuth login/logout and API-key save/clear no longer share one user-facing card.\n- Extend auth tests, docs, icons, and the release changeset for the split Anthropic authentication behavior.\n\nFiles changed:\n .changeset/fn-7224-separate-anthropic-api-key.md | 7 +\n docs/dashboard-guide.md | 2 +-\n docs/settings-reference.md | 2 +-\n .../src/commands/__tests__/provider-auth.test.ts | 233 +++++++++++++++++++--\n packages/cli/src/commands/provider-auth.ts | 202 +++++++++++++++---\n packages/dashboard/app/api/legacy.ts | 2 -\n .../app/components/ModelOnboardingModal.tsx | 146 ++++---------\n packages/dashboard/app/components/ProviderIcon.tsx | 7 +\n .../__tests__/AuthenticationSection.test.tsx | 89 ++++----\n .../__tests__/SettingsModal.models-auth.test.tsx | 77 ++++---\n .../components/__tests__/onboarding-flow.test.tsx | 29 ++-\n .../components/__tests__/settings-mobile.test.tsx | 17 +-\n .../settings/sections/AuthenticationSection.tsx | 20 +-\n .../dashboard/src/__tests__/routes-auth.test.ts | 111 ++++++----\n .../dashboard/src/routes/register-auth-routes.ts | 93 +++++---\n 15 files changed, 713 insertions(+), 324 deletions(-)
Fusion-Task-Id: FN-7224
Fusion-Task-Lineage: a2db2cf6-3452-4516-81e5-41dcdf47e1d2
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-29 18:32:36 -07:00
copilot-swe-agent[bot]
1bf8d83bc1
Merge remote-tracking branch 'origin/main' into fusion/fn-7143
2026-06-30 00:14:37 +00:00
gsxdsm
42226edde1
FN-7245: expose workflow authoring tools to agents
...
Expose workflow authoring and selection tools through agent-visible extension surfaces.
- Register workflow list/get/create/update/delete/settings/select and trait-list tools in the published pi extension.
- Export shared workflow tool schemas/factories and include workflow settings in centralized authoring tool sets.
- Update action-gate classifications, permission examples, docs, tests, and the changeset for the new agent workflow surface.
Files changed:
.changeset/FN-7245-workflow-tools.md | 7 +
docs/agents.md | 4 +-
docs/cli-reference.md | 17 ++
docs/workflow-steps.md | 9 +-
.../src/__tests__/extension-workflow-tools.test.ts | 244 +++++++++++++++++++++
packages/cli/src/__tests__/extension.test.ts | 8 +
packages/cli/src/extension.ts | 142 ++++++++++++
packages/core/src/types.ts | 6 +-
.../dashboard/src/__tests__/chat-manager.test.ts | 9 +-
.../planning-document-tools-exposure.test.ts | 19 +-
.../engine/src/__tests__/agent-action-gate.test.ts | 8 +
.../agent-workflow-tools-exposure.test.ts | 30 ++-
.../src/__tests__/gating-classifications.test.ts | 13 +-
.../src/__tests__/permanent-agent-gating.test.ts | 4 +-
packages/engine/src/agent-tools.ts | 13 +-
packages/engine/src/gating-classifications.ts | 6 +-
packages/engine/src/index.ts | 7 +
17 files changed, 506 insertions(+), 40 deletions(-)
Fusion-Task-Id: FN-7245
Fusion-Task-Lineage: 82501602-7177-4ee8-a67b-32de35aa73de
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-29 16:35:51 -07:00
gsxdsm
b26d8a6772
fix(FN-7143): address image artifact review feedback
...
- classify image artifact support as a minor feature changeset
- reject non-image, empty, and signature-mismatched dataBase64 payloads
- trap keyboard focus in the task image lightbox
- assert media streaming with raw image bytes
Fusion-Task-Id: FN-7143
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-29 14:59:07 -07:00
gsxdsm
353aaf3b4a
fix(FN-7143): support task image artifacts
...
Fusion-Task-Id: FN-7143
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-29 09:47:59 -07:00
gsxdsm
1efcdcfe35
fix(FN-7224): clear stale graph pins on reset
2026-06-29 02:55:35 -07:00
gsxdsm
7cd5552f76
fix(FN-7224): clear workflow pins on retry
...
Fusion-Task-Id: FN-7224
2026-06-29 02:12:25 -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
1f365163a4
fix(FN-7225): clear stale pause state on workflow retry
2026-06-29 01:05:44 -07:00
gsxdsm
b86ddf4d10
fix(FN-7225): route failed plan review to triage
2026-06-29 00:48:49 -07:00
gsxdsm
c7cbd1dbf1
fix(FN-7221): clear stale workflow pins on spec rebuild
2026-06-29 00:37:17 -07:00
gsxdsm
d4b8032f28
feat(workflows): add optional plan review gate
2026-06-28 23:38:33 -07:00
gsxdsm
6ce0b44058
feat(workflows): make coding stepwise with final review
2026-06-28 23:24:29 -07:00
gsxdsm
2051516f8b
FN-7205: prefer live concurrency counts
...
Prefer live runtime stores for concurrency counters so dashboard totals match active agent enforcement.
- Prefer engine-manager task stores before default fallback stores when sourcing live running-agent counts.
- Count running agents from slim task lists across active lifecycle states instead of trusting stale in-progress queries.
- Add regressions for count normalization, default-project store precedence, and scoped semaphore limit changes.
- Add a patch changeset for the published Fusion CLI package.
Files changed:
.changeset/fn-7205-concurrency-counter-enforcement.md | 7 ++++
packages/core/src/__tests__/live-agent-count.test.ts | 18 ++++++++-
packages/dashboard/src/__tests__/server.test.ts | 44 ++++++++++++++++++++--
packages/dashboard/src/server.ts | 8 ++--
packages/engine/src/__tests__/concurrency.test.ts | 38 +++++++++++++++++++
5 files changed, 106 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-7205
Fusion-Task-Lineage: 957d6b2a-b7c4-4fd1-b83b-62f5cd51ebda
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-28 17:14:00 -07:00
gsxdsm
013d50fe8b
FN-7206: add Anthropic API-key authentication
...
Add Anthropic API-key authentication alongside the existing OAuth flow.
- Expose Anthropic as a built-in API-key provider without hiding its OAuth controls.
- Render dual-auth Anthropic cards in Settings and model onboarding with key hints, save, and clear actions.
- Cover API status, CLI provider classification, desktop/mobile settings, and onboarding flows with tests and docs.
Files changed:
.changeset/fn-7206-anthropic-api-key.md | 7 +
docs/dashboard-guide.md | 2 +
docs/settings-reference.md | 4 +
.../src/commands/__tests__/provider-auth.test.ts | 51 ++++---
packages/cli/src/commands/provider-auth.ts | 10 +-
packages/dashboard/app/api/legacy.ts | 2 +
.../app/components/ModelOnboardingModal.tsx | 121 +++++++++++++++-
.../__tests__/AuthenticationSection.test.tsx | 141 +++++++++++++++++++
.../__tests__/SettingsModal.models-auth.test.tsx | 51 +++++++
.../__tests__/SettingsModal.test-harness.tsx | 2 +
.../components/__tests__/onboarding-flow.test.tsx | 28 ++++
.../components/__tests__/settings-mobile.test.tsx | 16 ++-
.../settings/sections/AuthenticationSection.tsx | 153 ++++++++++-----------
.../dashboard/src/__tests__/routes-auth.test.ts | 70 ++++++++++
.../dashboard/src/routes/register-auth-routes.ts | 17 ++-
15 files changed, 569 insertions(+), 106 deletions(-)
Fusion-Task-Id: FN-7206
Fusion-Task-Lineage: 3559b7ea-47c6-4f8c-9aa1-5318f47ce07e
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-28 17:03:11 -07:00
gsxdsm
8eed09c126
FN-7211: fix image attachment MIME sniffing
...
Correct image attachment media types from bytes before sending image blocks to models.
- Add core image MIME sniffing for PNG, JPEG, GIF, and WEBP signatures.
- Use detected image bytes in task triage and dashboard chat attachment image blocks while preserving stored attachment metadata.
- Cover mismatched and unknown image bytes with core, triage, and chat attachment tests.
- Add a patch changeset for the published CLI package.
Files changed:
.changeset/fn-7211-webp-image-mime-sniff.md | 7 +++
packages/core/src/__tests__/image-mime.test.ts | 29 ++++++++++
packages/core/src/image-mime.ts | 50 +++++++++++++++++
packages/core/src/index.ts | 2 +
.../src/__tests__/chat-attachment-content.test.ts | 54 +++++++++++++++++--
packages/dashboard/src/chat-attachment-content.ts | 9 +++-
packages/engine/src/__tests__/triage.test.ts | 63 +++++++++++++++++-----
packages/engine/src/triage.ts | 8 ++-
8 files changed, 201 insertions(+), 21 deletions(-)
Fusion-Task-Id: FN-7211
Fusion-Task-Lineage: 22bfb812-15c4-4ff7-a281-87b25427561e
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-28 16:51:49 -07:00
gsxdsm
b2e1c3efc2
FN-7201: refresh plugin dashboard-view metadata from manifests
...
Refresh plugin dashboard navigation metadata from the current on-disk manifest so rebuilt plugins do not serve stale view details.
- Resolve the authoritative manifest path from plugin entry directories and package roots.
- Re-read and validate dashboardViews metadata before returning dashboard navigation entries, falling back only when the manifest cannot be used.
- Await refreshed dashboard-view metadata in the dashboard route and cover rebuild/removal cases with tests.
- Add a patch changeset for the published CLI package.
Files changed:
.../FN-7201-plugin-dashboard-view-refresh.md | 7 ++
packages/core/src/__tests__/plugin-loader.test.ts | 114 ++++++++++++++++++++-
packages/core/src/plugin-loader.ts | 94 ++++++++++++++++-
.../dashboard/src/__tests__/plugin-routes.test.ts | 42 +++++++-
packages/dashboard/src/routes.ts | 2 +-
5 files changed, 244 insertions(+), 15 deletions(-)
Fusion-Task-Id: FN-7201
Fusion-Task-Lineage: dbdd5575-1999-4c9c-93a4-25eb8f213e07
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-28 13:23:00 -07:00
gsxdsm
4405dec310
FN-7187: re-engage executors from in-review chat
...
Route user comments on in-review tasks through the executor re-engagement path.
- Reuse review-address re-engagement for Chat steering and Comments-tab user comments.
- Suppress re-engagement for open PR blockers, live sessions, and non-user task comments.
- Cover the in-review comment wake behavior with dashboard route tests and operator docs.
Files changed:
.changeset/fn-7187-in-review-chat-reengage.md | 7 +
docs/dashboard-guide.md | 2 +-
.../src/__tests__/routes-tasks-ops.test.ts | 236 +++++++++++++++++++++
.../src/routes/register-task-workflow-routes.ts | 138 +++++++++---
4 files changed, 351 insertions(+), 32 deletions(-)
Fusion-Task-Id: FN-7187
Fusion-Task-Lineage: f0984ede-4038-439a-a8b4-5d6ed6756c40
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-28 02:47:38 -07:00
gsxdsm
9050ee1a42
FN-7185: add PR feedback addressing action
...
Add a dashboard action that starts an AI pass for actionable pull-request review feedback.
- Add a lifecycle route that validates linked PR tasks, seeds a ce-resolve-pr-feedback steering prompt, returns in-review tasks to active work, and wakes assigned agents when needed.
- Add shared PR feedback gating plus task-card and Review tab buttons with loading states, toasts, styling, docs, and translations.
- Cover the route, API client, task card, and Review tab behavior with regression tests.
Files changed:
.changeset/fn-7185-address-pr-feedback.md | 7 +
docs/dashboard-guide.md | 1 +
packages/dashboard/app/__tests__/api-tasks.test.ts | 12 ++
packages/dashboard/app/api/legacy.ts | 11 ++
packages/dashboard/app/components/TaskCard.css | 7 +-
packages/dashboard/app/components/TaskCard.tsx | 44 +++++-
.../dashboard/app/components/TaskReviewTab.tsx | 41 ++++-
.../app/components/__tests__/TaskCard.test.tsx | 164 +++++++++++++++++++-
.../components/__tests__/TaskReviewTab.test.tsx | 127 ++++++++++++++++
packages/dashboard/app/utils/prFeedback.ts | 22 +++
.../dashboard/src/__tests__/routes-tasks.test.ts | 165 +++++++++++++++++++++
.../src/routes/register-task-workflow-routes.ts | 67 +++++++++
packages/i18n/locales/en/app.json | 10 ++
packages/i18n/locales/es/app.json | 22 ++-
packages/i18n/locales/fr/app.json | 22 ++-
packages/i18n/locales/ko/app.json | 22 ++-
packages/i18n/locales/zh-CN/app.json | 22 ++-
packages/i18n/locales/zh-TW/app.json | 22 ++-
18 files changed, 764 insertions(+), 24 deletions(-)
Fusion-Task-Id: FN-7185
Fusion-Task-Lineage: b2e98163-4fc6-45c9-8ace-a14eeb096e10
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-28 02:04:31 -07:00
gsxdsm
dc54b615d4
FN-7182: pause auto-merge for manual pull requests
...
Manual pull requests now pause automatic merge processing until human action closes or merges the PR.
- Mark dashboard-created or linked pull requests with manual provenance and preserve it across PR refreshes and merges.
- Exclude tasks with manual open or draft PRs from automatic merge processing while preserving pipeline PR automation.
- Add regression coverage and document the manual PR handoff behavior.
Files changed:
.changeset/FN-7182-no-auto-merge-with-manual-pr.md | 7 ++
docs/architecture.md | 2 +-
docs/dashboard-guide.md | 1 +
packages/core/src/__tests__/task-helpers.test.ts | 49 ++++++++++++-
packages/core/src/__tests__/task-merge.test.ts | 60 +++++++++++++++-
packages/core/src/index.ts | 2 +-
packages/core/src/task-helpers.ts | 13 ++++
packages/core/src/task-merge.ts | 10 ++-
packages/core/src/types.ts | 6 ++
.../dashboard/src/__tests__/routes-auth.test.ts | 80 ++++++++++++++++++++++
.../dashboard/src/__tests__/routes-github.test.ts | 45 +++++++++++-
.../dashboard/src/routes/register-git-github.ts | 20 +++++-
12 files changed, 285 insertions(+), 10 deletions(-)
Fusion-Task-Id: FN-7182
Fusion-Task-Lineage: c415a9dc-43c1-4609-a032-367991e949a1
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-28 01:43:08 -07:00
gsxdsm
65abae26c6
FN-7181: improve PR metadata generation feedback
...
Ground PR metadata generation in repository evidence and make Create PR loading states explicit.
- Upgrade the PR metadata system/context prompt while preserving configurable title and description guidance.\n- Show disabled title/body skeleton states while AI metadata generates and block submission until content resolves.\n- Extend dashboard tests, docs, and changeset coverage for the improved PR prompt and loading behavior.\n\nFiles changed:\n .../fn-7181-pr-generation-prompt-and-loading.md | 7 +++\n docs/dashboard-guide.md | 2 +-\n .../dashboard/app/components/PrCreateModal.css | 62 ++++++++++++++++++++++\n .../dashboard/app/components/PrCreateModal.tsx | 47 +++++++++++++---\n .../components/__tests__/PrCreateModal.test.tsx | 60 ++++++++++++++++-----\n .../src/__tests__/pr-metadata-generator.test.ts | 44 ++++++++++++---\n packages/dashboard/src/pr-metadata-generator.ts | 33 +++++++++---\n 7 files changed, 221 insertions(+), 34 deletions(-)
Fusion-Task-Id: FN-7181
Fusion-Task-Lineage: 6565ddce-c205-4050-a37f-ffbb2f2d46d4
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-28 01:17:22 -07:00
gsxdsm
b60a743377
FN-7186: fix reviewer-agent revision requests
...
Route review revision requests through canonical review data so reviewer-agent feedback can be selected reliably.
- Rebuild /review/address validation from PR review details or direct reviewer-agent logs before matching selected items.
- Preserve addressing state while accepting log-derived reviewer-agent item ids and rejecting mismatched sources.
- Cover reviewer-agent, fallback-log, PR, and invalid-selection paths in dashboard route tests.
- Document that Review revision feedback may come from PR data or reviewer-agent logs.
- Add a patch changeset for the published Fusion package.
Files changed:
.changeset/fn-7186-review-revision-fix.md | 7 ++
docs/dashboard-guide.md | 4 +-
.../dashboard/src/__tests__/routes-tasks.test.ts | 126 +++++++++++++++++----
.../src/routes/register-task-workflow-routes.ts | 76 +++++++++----
4 files changed, 170 insertions(+), 43 deletions(-)
Fusion-Task-Id: FN-7186
Fusion-Task-Lineage: 8b0f6e4c-93b1-489c-ab96-5a2541b7c18a
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-28 00:33:26 -07:00
gsxdsm
9c207fd286
FN-7180: add configurable PR metadata prompts
...
Add project-scoped guidance fields for AI-generated Create PR metadata.
- Store PR title and description prompt guidance as project settings only.
- Surface editable guidance textareas in Project Models settings.
- Append trimmed guidance to the PR metadata system prompt without changing defaults for blank values.
- Document the settings and add release notes/tests for persistence, UI, and prompt generation.
Files changed:
.changeset/fn-7180-pr-prompt-settings.md | 7 ++
docs/dashboard-guide.md | 1 +
docs/settings-reference.md | 2 +
.../core/src/__tests__/settings-defaults.test.ts | 11 ++-
packages/core/src/__tests__/store-settings.test.ts | 19 +++++
packages/core/src/settings-schema.ts | 2 +
packages/core/src/types.ts | 12 ++++
.../app/__tests__/settings-sections.test.tsx | 54 ++++++++++++++
.../dashboard/app/components/SettingsModal.tsx | 4 ++
.../settings/sections/ProjectModelsSection.tsx | 12 ++++
.../src/__tests__/pr-metadata-generator.test.ts | 84 ++++++++++++++++++++++
packages/dashboard/src/pr-metadata-generator.ts | 23 ++++--
12 files changed, 225 insertions(+), 6 deletions(-)
Fusion-Task-Id: FN-7180
Fusion-Task-Lineage: 9bdc42d5-ffd3-4208-b64a-96d142cc1dc8
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-28 00:28:13 -07:00
gsxdsm
e5a0273282
FN-7166: Refresh artifact lists from registration events
...
Artifact list surfaces now refresh from authoritative registry and artifact-message signals.\n\n- Emit an artifact:registered TaskStore event after successful registry writes and forward it over dashboard SSE.\n- Subscribe useArtifacts to artifact/message SSE events, scope refreshes by project/task, debounce duplicate signals, and avoid loading flashes when project context is missing.\n- Document live artifact refresh behavior and add regression coverage for store events and hook refresh paths.\n\nFiles changed:\n .changeset/FN-7166-artifact-live-refresh.md | 7 +\n docs/dashboard-guide.md | 3 +-\n packages/core/src/__tests__/artifacts.test.ts | 20 +-\n packages/core/src/store.ts | 8 +-\n .../app/hooks/__tests__/useArtifacts.test.ts | 227 +++++++++++++++++++--\n packages/dashboard/app/hooks/useArtifacts.ts | 83 +++++++-\n packages/dashboard/src/sse.ts | 7 +\n 7 files changed, 335 insertions(+), 20 deletions(-)
Fusion-Task-Id: FN-7166
Fusion-Task-Lineage: f13e254d-d65c-423e-8d9c-94c31761eac2
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 22:15:53 -07:00
gsxdsm
a95cfa7f92
FN-7160: unify live agent counts and fix use markers
...
Unifies running-agent slot accounting across engine, CLI, and dashboard surfaces.
- Add shared core helpers for identifying and counting active top-level agent tasks, including in-review reviewer, merger, fix, and PR merge states.
- Reuse the shared count in engine semaphore repair, project health displays, and dashboard project-store routes.
- Correct Command Center utilization markers to use a zero-based active/cap ratio.
- Cover the shared predicate and affected CLI, dashboard, and engine behaviors with regression tests.
Files changed:
.changeset/fn-7160-running-agent-count.md | 7 ++++
docs/dashboard-guide.md | 2 +-
.../cli/src/commands/__tests__/project.test.ts | 40 ++++++++++++++----
packages/cli/src/commands/project.ts | 15 +++----
.../core/src/__tests__/live-agent-count.test.ts | 47 ++++++++++++++++++++++
packages/core/src/index.ts | 2 +
packages/core/src/live-agent-count.ts | 30 ++++++++++++++
packages/core/src/types.ts | 2 +-
.../command-center/CommandCenterControls.tsx | 14 ++++---
.../__tests__/CommandCenterControls.test.tsx | 22 +++++++++-
.../dashboard/src/__tests__/project-routes.test.ts | 31 +++++++++-----
.../src/__tests__/project-store-resolver.test.ts | 20 ++++++---
packages/dashboard/src/project-store-resolver.ts | 9 ++---
.../src/routes/register-project-routes.ts | 7 ++--
packages/engine/src/__tests__/concurrency.test.ts | 18 +++++++++
packages/engine/src/concurrency.ts | 12 +++---
16 files changed, 220 insertions(+), 58 deletions(-)
Fusion-Task-Id: FN-7160
Fusion-Task-Lineage: f48332f8-ac5d-46eb-b975-d2f6c880ddd5
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 21:39:40 -07:00
gsxdsm
100164dc50
FN-7150: show ephemeral agent token counts
...
Surface task-derived token usage for ephemeral agents in dashboard agent views.
- Attribute task token totals across assigned, source, and checkout agent links.
- Backfill zero-valued agent list token totals from linked task usage.
- Allow Agent Detail token usage windows for ephemeral/task-worker agents and cover the routes with tests.
- Document the dashboard behavior and add a patch changeset.
Files changed:
.changeset/fn-7150-ephemeral-agent-token-counts.md | 7 ++
docs/dashboard-guide.md | 1 +
.../core/src/__tests__/agent-token-usage.test.ts | 99 ++++++++++++++++++++--
packages/core/src/__tests__/team-analytics.test.ts | 48 +++++++++++
packages/core/src/agent-token-usage.ts | 83 +++++++++++++++++-
packages/core/src/index.ts | 4 +-
.../__tests__/AgentTokenStatsPanel.test.tsx | 21 +++++
.../src/__tests__/routes-agent-token-usage.test.ts | 20 ++++-
.../dashboard/src/__tests__/routes-agents.test.ts | 87 +++++++++++++++++++
.../src/routes/register-agent-core-routes.ts | 38 ++++++++-
.../src/routes/register-agent-runtime-routes.ts | 5 +-
11 files changed, 395 insertions(+), 18 deletions(-)
Fusion-Task-Id: FN-7150
Fusion-Task-Lineage: ce2661ce-5ba5-43b0-aa5c-7fddee90a915
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 19:37:39 -07:00
gsxdsm
e8163ab81b
FN-7146: add workflow analytics to Command Center
...
Adds a read-only per-workflow analytics surface for Command Center operators.
- Add a core workflow analytics aggregator with token, cost, task status, and files-changed rollups.
- Expose workflow analytics through JSON and CSV Command Center routes using the scoped store default workflow.
- Add the Workflows Command Center tab, localized copy, docs, tests, and a release changeset.
Files changed:
.changeset/fn-7146-workflow-analytics.md | 7 +
docs/dashboard-guide.md | 7 +-
.../core/src/__tests__/workflow-analytics.test.ts | 306 +++++++++++++++++++
packages/core/src/index.ts | 7 +
packages/core/src/workflow-analytics.ts | 339 +++++++++++++++++++++
.../components/command-center/CommandCenter.tsx | 8 +
.../__tests__/CommandCenter.test.tsx | 51 +++-
.../command-center/areas/WorkflowArea.tsx | 170 +++++++++++
.../areas/__tests__/WorkflowArea.test.tsx | 136 +++++++++
.../register-command-center-routes.auth.test.ts | 5 +
.../register-command-center-routes.test.ts | 109 +++++++
packages/dashboard/src/command-center-csv.ts | 57 ++++
.../src/routes/register-command-center-routes.ts | 30 ++
packages/i18n/locales/en/app.json | 21 ++
packages/i18n/locales/es/app.json | 21 ++
packages/i18n/locales/fr/app.json | 21 ++
packages/i18n/locales/ko/app.json | 21 ++
packages/i18n/locales/zh-CN/app.json | 21 ++
packages/i18n/locales/zh-TW/app.json | 21 ++
19 files changed, 1354 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-7146
Fusion-Task-Lineage: f75e40a5-9010-45d5-a729-132e547887d7
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 17:46:17 -07:00
gsxdsm
9e7c57da08
FN-7139: show task columns on agent badges
...
Enrich dashboard agent task indicators with linked task column context.
- Add API-side transient taskColumn enrichment for active agent task links, including an unresolved sentinel for missing tasks.
- Render shared agent task badges across agent panels, detail views, lists, and mobile surfaces.
- Extend dashboard/API coverage and document the task-column badge behavior with a published changeset.
Files changed:
.changeset/fn-7139-agent-task-column-context.md | 7 ++
docs/dashboard-guide.md | 2 +
packages/core/src/types.ts | 5 ++
.../dashboard/app/components/ActiveAgentsPanel.tsx | 3 +-
.../dashboard/app/components/AgentDetailView.tsx | 5 +-
.../dashboard/app/components/AgentListModal.tsx | 3 +-
.../dashboard/app/components/AgentTaskBadge.tsx | 28 +++++++
packages/dashboard/app/components/AgentsView.tsx | 3 +-
.../__tests__/ActiveAgentsPanel.test.tsx | 55 ++++++++++---
.../__tests__/AgentDetailView.core.test.tsx | 65 +++++++++++++++
.../AgentDetailView.mobile-scroll.test.tsx | 16 +++-
.../components/__tests__/AgentListModal.test.tsx | 16 +++-
.../app/components/__tests__/AgentsView.test.tsx | 23 +++++-
.../dashboard/src/__tests__/routes-agents.test.ts | 92 +++++++++++++++++++++-
packages/dashboard/src/routes.ts | 13 ++-
15 files changed, 306 insertions(+), 30 deletions(-)
Fusion-Task-Id: FN-7139
Fusion-Task-Lineage: 3f6d9470-b98f-4bd3-a91e-7e69ab624d48
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 17:11:13 -07:00
gsxdsm
3d26d4e74b
FN-7127: standardize task show tool naming
...
Unify task-show references so planning, triage, docs, and telemetry use fn_task_show consistently.
- Replace legacy fn_task_get guidance and examples with fn_task_show across agent prompts, mission planning, triage, and docs.
- Keep fn_task_get as a deprecated read-only recognition alias for historical or in-flight calls.
- Update tests and changesets to cover the unified tool name and usage telemetry.
Files changed:
.changeset/FN-7118-shared-task-read-tools.md | 2 +-
.changeset/FN-7127-unify-task-show-tool-name.md | 7 ++++++
docs/cli-reference.md | 2 +-
docs/missions.md | 2 +-
.../cli/skill/fusion/references/engine-tools.md | 2 +-
packages/core/src/__tests__/usage-events.test.ts | 1 +
packages/core/src/agent-prompts.ts | 12 +++++-----
.../__tests__/milestone-slice-interview.test.ts | 2 +-
.../src/__tests__/mission-interview.test.ts | 2 +-
.../src/__tests__/planning-board-tools.test.ts | 6 ++---
.../dashboard/src/milestone-slice-interview.ts | 4 ++--
packages/dashboard/src/mission-interview.ts | 2 +-
packages/dashboard/src/planning-board-tools.ts | 10 +++++---
packages/dashboard/src/planning.ts | 2 +-
.../src/__tests__/agent-task-read-tools.test.ts | 28 +++++++++++++++-------
packages/engine/src/__tests__/triage.test.ts | 6 ++---
packages/engine/src/agent-tools.ts | 5 +++-
packages/engine/src/gating-classifications.ts | 8 +++++--
packages/engine/src/triage.ts | 12 ++++++----
19 files changed, 74 insertions(+), 41 deletions(-)
Fusion-Task-Id: FN-7127
Fusion-Task-Lineage: adf5a127-2741-4c88-97b3-aab239ab3960
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 12:25:53 -07:00
gsxdsm
59803c243d
FN-7123: use workflow settings for task models
...
Task model displays now resolve task-scoped workflow settings consistently with execution.
- Add a shared workflow settings overlay helper for stored workflow values and declaration defaults.
- Expose task effective settings through the dashboard API and consume them in TaskDetail model surfaces.
- Cover core overlay behavior, route output, and Workflow tab model rendering with regression tests.
- Document workflow model lane precedence and add a published package changeset.
Files changed:
.changeset/fn-7123-workflow-tab-project-model.md | 7 ++
docs/settings-reference.md | 14 ++-
.../__tests__/effective-settings-overlay.test.ts | 70 ++++++++++++++
packages/core/src/effective-settings-overlay.ts | 27 ++++++
packages/core/src/index.ts | 4 +
packages/dashboard/app/api/legacy.ts | 5 +
.../dashboard/app/components/TaskDetailModal.tsx | 13 ++-
...skDetailModal.models-progress-workflow.test.tsx | 46 +++++++++
.../__tests__/TaskDetailModal.test-helpers.ts | 1 +
.../__tests__/WorkflowResultsTab.test.tsx | 33 +++++++
packages/dashboard/app/test/mockApi.ts | 9 ++
.../task-effective-settings-route.test.ts | 107 +++++++++++++++++++++
.../src/routes/register-task-workflow-routes.ts | 21 ++++
packages/engine/src/effective-settings.ts | 25 ++---
14 files changed, 355 insertions(+), 27 deletions(-)
Fusion-Task-Id: FN-7123
Fusion-Task-Lineage: 5fa9d338-c886-44aa-bdba-0d361b3602d5
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 12:20:42 -07:00
gsxdsm
cb6838a63f
FN-7125: add artifact route image integration coverage
...
Add integration coverage for task image artifacts flowing through the artifacts API.
- Add a real TaskStore-backed artifacts route integration test.
- Assert registered task image artifacts list with task metadata.
- Assert image media streams the registered bytes and content type.
- Cover empty task-scoped artifact listings.
Files changed:
.../__tests__/artifacts-route-integration.test.ts | 98 ++++++++++++++++++++++
1 file changed, 98 insertions(+)
Fusion-Task-Id: FN-7125
Fusion-Task-Lineage: d79ccc2e-0819-4304-a757-c9d6a2aabb77
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 11:22:21 -07:00
gsxdsm
9fc68bc350
FN-7114: speed up insights route tests
...
Optimize the insights route test harness by avoiding full server and engine graph imports.
- Mount the insights router in a lightweight Express app for the suite.
- Mock only the engine exports consumed by the router.
- Preserve route error payload assertions while keeping the shared store reset isolation.
Files changed:
.../src/__tests__/insights-routes.test.ts | 41 +++++++++++++---------
1 file changed, 25 insertions(+), 16 deletions(-)
Fusion-Task-Id: FN-7114
Fusion-Task-Lineage: 93c5616a-7e28-4062-aac7-8ca030a3a420
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 09:28:31 -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
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
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
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
42d9c656ee
FN-7080: report live concurrency counts
...
Derive global concurrency running totals from live task columns so active work no longer appears idle.
- Count in-progress tasks across all projects for `/api/global-concurrency`.
- Replace stale slot bookkeeping in the response while preserving configured caps and queue counts.
- Cover empty, multi-project, and over-cap running-count scenarios in route tests.
- Add a patch changeset for the published Fusion package.
Files changed:
.changeset/fn-7080-concurrency-running-count-fix.md | 7 ++
packages/dashboard/src/__tests__/project-routes.test.ts | 113 +++++++++++++++++++++
packages/dashboard/src/routes.ts | 29 +++++-
3 files changed, 148 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-7080
Fusion-Task-Lineage: a22d366f-ea93-47a5-b758-5e2d3828cff3
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-26 17:43:56 -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
f78711d21e
test(FN-5048): replace fixed sleeps with polled waits in ws badge tests
...
Swap fixed 200ms "wait for pub/sub propagation" sleeps in the
multi-instance badge tests for polled waitForExpectation calls. Returns
on delivery (typically <20ms) instead of always paying 200ms, and
removes the delivery>200ms race an unconditional sleep masks.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-26 17:33:12 -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
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
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
01f198483b
fix(lint): drop unused imports in routes.ts after legacy workflow-step route removal
...
WorkflowStepTemplate and resolvePlanningSettingsModel were only used by the deleted
/api/workflow-steps CRUD + :id/refine routes (U5); the imports survived the merge as
unused. Remove them. No behavior change.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-26 09:09:36 -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
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