gsxdsm
6ca51185f3
FN-7152: close Quick Chat on outside clicks
...
Quick Chat now dismisses from page clicks while other floating windows stay persistent.
- Add an opt-in outside-pointer dismissal path to FloatingWindow with safeguards for inside clicks, nested dialogs, touch compatibility events, and active drag/resize gestures.
- Enable outside-click dismissal only for the Quick Chat floating window and document the behavior.
- Cover the opt-in behavior, default persistence, nested surfaces, gesture guards, and listener cleanup with FloatingWindow tests.
- Add a release changeset for the Quick Chat dismissal feature.
Files changed:
.changeset/fn-7152-quick-chat-outside-click-close.md | 7 ++
docs/dashboard-guide.md | 1 +
packages/dashboard/app/App.tsx | 4 +
packages/dashboard/app/components/FloatingWindow.css | 5 +-
packages/dashboard/app/components/FloatingWindow.tsx | 45 +++++++++
packages/dashboard/app/components/__tests__/FloatingWindow.test.tsx | 109 +++++++++++++++++++++
6 files changed, 170 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-7152
Fusion-Task-Lineage: 5bd6c10a-3e21-4eb9-bd1e-99f3aaf9c7b6
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 19:48:50 -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
63d1079d44
FN-7142: show task summary token costs
...
Add task summary visibility into token usage, model-level costs, and locale coverage.
- Render done-task Summary token usage by model with input, output, cached, total, and estimated cost columns.
- Thread global model pricing overrides into the summary cost calculation and mark unpriced models as unavailable.
- Add responsive token-cost styling, summary-tab coverage, dashboard docs, release notes, and locale keys.
Files changed:
.changeset/fn-7142-summary-token-cost.md | 7 +
docs/dashboard-guide.md | 2 +-
.../dashboard/app/components/TaskDetailModal.css | 125 +++++++++++
.../dashboard/app/components/TaskDetailModal.tsx | 2 +-
.../dashboard/app/components/TaskSummaryTab.tsx | 177 ++++++++++++++-
.../__tests__/TaskDetailModal.summary-tab.test.tsx | 241 ++++++++++++++++++++-
packages/i18n/locales/en/app.json | 11 +
packages/i18n/locales/es/app.json | 52 ++++-
packages/i18n/locales/fr/app.json | 52 ++++-
packages/i18n/locales/ko/app.json | 52 ++++-
packages/i18n/locales/zh-CN/app.json | 52 ++++-
packages/i18n/locales/zh-TW/app.json | 52 ++++-
12 files changed, 794 insertions(+), 31 deletions(-)
Fusion-Task-Id: FN-7142
Fusion-Task-Lineage: ec1c7244-4779-46e7-be7c-b0e00b361fd7
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 17:56:32 -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
c468c161c2
FN-7141: add chat context token budget indicator
...
Add a desktop Direct-chat header indicator for estimated tokens used against the active model context window.
- Estimate chat token usage client-side, including streaming text, and format compact counts.
- Render the context-window badge only for non-mobile Direct-chat threads with known model context windows.
- Cover desktop, mobile, floating-narrow, rooms, unknown-context, and streaming surfaces with tests.
- Document the dashboard behavior and add a release changeset.
Files changed:
.changeset/fn-7141-chat-context-window.md | 7 +
docs/dashboard-guide.md | 2 +
packages/dashboard/app/components/ChatView.css | 22 +++
packages/dashboard/app/components/ChatView.tsx | 35 +++-
.../__tests__/ChatView.context-window.test.tsx | 193 +++++++++++++++++++++
.../app/utils/__tests__/estimateChatTokens.test.ts | 34 ++++
packages/dashboard/app/utils/estimateChatTokens.ts | 29 ++++
packages/i18n/locales/en/app.json | 1 +
8 files changed, 322 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-7141
Fusion-Task-Lineage: 3ede9af4-b8d6-4da6-996f-cd9277ef49ac
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 17:22:12 -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
5066f90db2
FN-7137: stack queued chat messages
...
Stack queued chat sends above the composer and flush them in order.
- Persist pending chat sends as per-session FIFO arrays with legacy single-message restore fallback.
- Render stacked queued previews above the direct and quick chat composer with per-item dismissal.
- Flush one queued message after each completed or safely verified idle generation, preserving reconnect guards.
- Extend chat hook and composer tests for multi-message queuing, restore, dismissal, and FIFO sends.
- Document the queued stack behavior and add a published package changeset.
Files changed:
.changeset/fn-7137-stack-queued-chat-messages.md | 7 +
docs/dashboard-guide.md | 4 +-
packages/dashboard/app/components/ChatView.css | 15 +-
packages/dashboard/app/components/ChatView.tsx | 38 ++--
.../__tests__/ChatView.autosize.test.tsx | 2 +-
.../__tests__/ChatView.cli-mount.test.tsx | 2 +-
.../__tests__/ChatView.core-interactions.test.tsx | 27 ++-
.../__tests__/ChatView.default-model-icon.test.tsx | 2 +-
.../components/__tests__/ChatView.draft.test.tsx | 2 +-
.../__tests__/ChatView.hash-mention.test.tsx | 2 +-
.../__tests__/ChatView.mobile-render.test.tsx | 2 +-
.../components/__tests__/ChatView.rooms.test.tsx | 2 +-
.../__tests__/ChatView.scroll-to-top.test.tsx | 2 +-
.../__tests__/ChatView.swipe-back.test.tsx | 2 +-
.../components/__tests__/ChatView.test-harness.tsx | 2 +-
.../dashboard/app/hooks/__tests__/useChat.test.ts | 247 +++++++++++++++++----
.../app/hooks/chatPendingMessageStorage.ts | 38 +++-
packages/dashboard/app/hooks/useChat.ts | 125 ++++++++---
18 files changed, 390 insertions(+), 131 deletions(-)
Fusion-Task-Id: FN-7137
Fusion-Task-Lineage: 65dd5ed7-a8db-447b-9a50-ce73ea7b597f
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 15:56:42 -07:00
gsxdsm
ba599a4ea1
FN-7136: preserve workflow edges between adjacent group nodes
...
Keep workflow graph edges connected when optional-group containers appear consecutively.
- Reject stale saved top-level layout coordinates only when connected container spans overlap in the same visual row.
- Advance auto-layout layers by each consecutive container layer's rendered width.
- Add coverage for desktop flow mapping, auto-layout, mobile graph rendering, and release-note changeset.
Files changed:
.../fn-7136-consecutive-optional-group-edges.md | 7 ++
.../__tests__/workflow-auto-layout.test.ts | 116 +++++++++++++++++++-
.../__tests__/workflow-flow-mapping.test.ts | 122 ++++++++++++++++++++-
.../__tests__/workflow-mobile-graph.test.ts | 10 +-
.../app/components/workflow-auto-layout.ts | 3 +
.../app/components/workflow-flow-mapping.ts | 50 ++++++++-
6 files changed, 299 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-7136
Fusion-Task-Lineage: 1fa1e528-a68e-4eee-9018-6752fe62a1f5
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 15:39:01 -07:00
gsxdsm
39d20be05f
FN-7129: add per-step optional revision budgets
...
Add optional workflow-step revision budgets that can cap or unbound remediation loops.
- Add optional-group maxRevisions parsing, validation, exports, and docs.
- Expose numeric and unbounded revision budget controls in the workflow node editor.
- Apply per-step budgets in executor and self-healing fix loops with regression coverage.
Files changed:
.changeset/fn-7129-per-step-revision-budget.md | 7 ++
docs/dashboard-guide.md | 1 +
docs/settings-reference.md | 2 +-
docs/workflow-steps.md | 10 ++-
.../__tests__/workflow-ir-optional-group.test.ts | 29 ++++++-
packages/core/src/index.ts | 2 +
packages/core/src/workflow-ir-types.ts | 37 +++++++++
packages/core/src/workflow-ir.ts | 15 ++++
.../app/components/WorkflowNodeEditor.tsx | 87 ++++++++++++++++----
.../__tests__/WorkflowNodeEditor.test.tsx | 95 ++++++++++++++++++++++
packages/engine/src/__tests__/self-healing.test.ts | 63 ++++++++++++++
.../workflow-graph-optional-group.test.ts | 30 ++++++-
.../workflow-graph-optional-step-fix.test.ts | 53 ++++++++++++
packages/engine/src/executor.ts | 15 ++--
packages/engine/src/self-healing.ts | 64 +++++++++++----
packages/engine/src/workflow-graph-executor.ts | 6 +-
16 files changed, 469 insertions(+), 47 deletions(-)
Fusion-Task-Id: FN-7129
Fusion-Task-Lineage: dbde94e5-3c99-4f67-aed9-458563e845ae
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 13:05:50 -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
a19df338ad
FN-7131: add done-task summary tab
...
Done task details now open to a read-only Summary tab before Chat.
- Add TaskSummaryTab with completion summary markdown, landed-file stats, completed steps, workflow results, and retry context.
- Default done-task detail entrypoints to Summary while preserving explicit tab selections and plugin tab typing.
- Style and localize the Summary tab, document it, and add dashboard coverage for defaulting and tab content.
- Add a minor changeset for the published CLI package.
Files changed:
.changeset/fn-7131-summary-tab.md | 7 +
docs/dashboard-guide.md | 1 +
packages/dashboard/app/App.tsx | 2 +-
.../dashboard/app/components/TaskDetailModal.css | 181 +++++++++++++++++
.../dashboard/app/components/TaskDetailModal.tsx | 63 ++++--
.../dashboard/app/components/TaskSummaryTab.tsx | 160 +++++++++++++++
.../TaskDetailModal.definition-actions.test.tsx | 56 +++---
.../__tests__/TaskDetailModal.summary-tab.test.tsx | 222 +++++++++++++++++++++
.../dashboard/app/components/dashboard/types.ts | 2 +-
.../app/hooks/__tests__/useModalManager.test.ts | 10 +-
.../dashboard/app/hooks/useMainPanelTaskDetail.ts | 9 +-
packages/dashboard/app/hooks/useModalManager.ts | 12 +-
packages/dashboard/app/plugins/types.ts | 2 +-
packages/i18n/locales/en/app.json | 16 ++
14 files changed, 687 insertions(+), 56 deletions(-)
Fusion-Task-Id: FN-7131
Fusion-Task-Lineage: e8ca4ade-9904-4705-a151-d9e55f67b398
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 12:15:42 -07:00
gsxdsm
b5378d232c
FN-7124: add engine-controls popover dismiss button
...
Add an explicit dismiss affordance for the footer engine-controls popover while preserving pending slider saves.
- Add a visible, localized Close engine controls X button inside the engine-control popover.
- Flush pending project concurrency debounce writes before closing via button, Escape, outside-click, or trigger toggle.
- Cover the dismiss affordance and flush behavior with dashboard tests and docs.
- Add a patch changeset for the published CLI bundle.
Files changed:
.changeset/fn-7124-engine-controls-close.md | 6 ++
docs/dashboard-guide.md | 2 +-
.../dashboard/app/components/EngineControlMenu.css | 19 +++++
.../dashboard/app/components/EngineControlMenu.tsx | 87 +++++++++++++++++-----
.../__tests__/EngineControlMenu.test.tsx | 42 +++++++++++
packages/i18n/locales/en/app.json | 1 +
packages/i18n/locales/es/app.json | 1 +
packages/i18n/locales/fr/app.json | 1 +
packages/i18n/locales/ko/app.json | 1 +
packages/i18n/locales/zh-CN/app.json | 1 +
packages/i18n/locales/zh-TW/app.json | 1 +
11 files changed, 142 insertions(+), 20 deletions(-)
Fusion-Task-Id: FN-7124
Fusion-Task-Lineage: cdd052e7-d4f1-4d4e-8348-002f7702a170
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 11:27:17 -07:00
gsxdsm
92436d031b
FN-7120: add mobile New Chat switcher action
...
Adds a mobile direct-chat shortcut for starting a new chat from the session switcher.
- Add a New Chat menuitem to the mobile direct-chat session dropdown using the existing NewChatDialog flow.
- Style the new mobile switcher action with touch-friendly spacing and focus handling.
- Extend mobile ChatView tests and docs, and add a changeset for the published CLI package.
Files changed:
.changeset/fn-7120-mobile-new-chat.md | 7 ++
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/ChatView.css | 31 ++++++
packages/dashboard/app/components/ChatView.tsx | 17 +++
.../components/__tests__/ChatView.mobile.test.tsx | 115 +++++++++++++++++++--
5 files changed, 162 insertions(+), 10 deletions(-)
Fusion-Task-Id: FN-7120
Fusion-Task-Lineage: 5d066667-20c1-4015-9b84-a9e558eecd48
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 10:45:31 -07:00
gsxdsm
e909d41fed
FN-7116: suppress transient footer connecting flashes
...
Keep executor footer stats stable through a one-off suspension-like fetch blip.
- Debounce transient executor stats failures after a successful poll while retaining last-good stats.
- Preserve explicit error reporting for first-load, non-transient, and sustained failures.
- Cover desktop and mobile footer behavior plus hook retry and visibility-resume cases.
- Document the footer behavior and add a patch changeset for the published CLI package.
Files changed:
.changeset/fn-7116-footer-connecting-flash.md | 7 ++
docs/dashboard-guide.md | 2 +
.../__tests__/ExecutorStatusBar.test.tsx | 24 +++-
.../app/hooks/__tests__/useExecutorStats.test.ts | 132 ++++++++++++++++++++-
packages/dashboard/app/hooks/useExecutorStats.ts | 24 +++-
5 files changed, 179 insertions(+), 10 deletions(-)
Fusion-Task-Id: FN-7116
Fusion-Task-Lineage: 617b91a3-3d7c-42f1-8a44-ba3245eaf0dc
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 10:38:23 -07:00
gsxdsm
368f1e0e45
FN-7117: show all token models in Command Center
...
Show full-fidelity model token breakdowns in Command Center while keeping Overview compact.
- Remove the Tokens detail chart cap so bars, pies, and tables include every analytics model bucket.
- Keep Overview model summaries explicitly limited to the top consumers with a named cap.
- Add dashboard coverage and docs for full Tokens attribution versus Overview summaries.
- Add a patch changeset for the published CLI bundle.
Files changed:
.changeset/fn-7117-tokens-by-model.md | 7 ++
docs/dashboard-guide.md | 5 +-
.../components/command-center/CommandCenter.tsx | 8 ++-
.../__tests__/CommandCenter.test.tsx | 78 +++++++++++++++++++++-
.../components/command-center/areas/TokensArea.tsx | 38 ++++++-----
.../areas/__tests__/TokensArea.test.tsx | 68 +++++++++++++++++++
6 files changed, 182 insertions(+), 22 deletions(-)
Fusion-Task-Id: FN-7117
Fusion-Task-Lineage: 7bf4c090-1054-40d0-97bf-e0e495077af5
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-27 10:34:15 -07:00
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
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
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
674031b7f2
FN-7101: stabilize App deep-link history state
...
Reset App deep-link test history state around replaceState stubs so full-file order no longer leaks navigation state.
- Reset the real browser history snapshot before stubbing replaceState.
- Restore replaceState before cleanup so history state and URL are reset through the original implementation.
- Document why deep-link tests must clear navIndex between mounts.
Files changed:
packages/dashboard/app/components/__tests__/App.test.tsx | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-7101
Fusion-Task-Lineage: 5c44441f-f0d2-4ad3-bdcf-5a0a0e3e6e6f
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
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
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
d9b17dea01
FN-7086: default dirty checkout merge sync
...
Default AI merge landing to preserve legacy dirty-checkout synchronization for new and partially configured projects.
- Default resolved project merger settings to allow dirty local checkout sync while preserving explicit false values.
- Pass the resolved dirty-checkout sync policy through single-repo and workspace AI merge landing paths.
- Update settings UI defaults, type docs, regression coverage, and release notes for the new behavior.
Files changed:
.changeset/fn-7086-allow-dirty-sync-default.md | 7 ++++
packages/core/src/__tests__/store-settings.test.ts | 40 ++++++++++++++++++++++
packages/core/src/settings-schema.ts | 6 +++-
packages/core/src/store.ts | 12 +++++++
packages/core/src/types.ts | 6 ++--
.../dashboard/app/components/SettingsModal.tsx | 2 +-
packages/engine/src/merger-ai.ts | 35 +++++++++++--------
7 files changed, 89 insertions(+), 19 deletions(-)
Fusion-Task-Id: FN-7086
Fusion-Task-Lineage: 65871e7c-af0c-45b9-af54-749d56dfadd5
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-26 18:11: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
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
4f01c4dba1
FN-7075: backfill session models for token analytics
...
Backfill resolved pi session models so token analytics can show every model bucket.\n\n- Mirror explicit model overrides onto sessions that do not expose a model snapshot.\n- Cover multi-model token grouping totals and Command Center pie/table rendering.\n- Add a patch changeset for the dashboard token breakdown fix.\n\nFiles changed:\n .changeset/tidy-token-model-buckets.md | 7 ++++++\n .../core/src/__tests__/token-analytics.test.ts | 5 ++++\n .../areas/__tests__/TokensArea.test.tsx | 5 ++++\n .../src/__tests__/pi-create-fn-agent.test.ts | 28 ++++++++++++++++++++++\n packages/engine/src/pi.ts | 10 +++++++-\n 5 files changed, 54 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-7075
Fusion-Task-Lineage: 5f026435-5c3c-4e83-aab4-c1d7a487685a
2026-06-26 14:22:13 -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
3c09008748
FN-7072: reduce skill metadata typography
...
Make the Skills detail pane render metadata and markdown content more compactly.
- Add scoped font-size reductions for plain-text and markdown skill detail content.
- Preserve shared mailbox markdown typography by limiting the new sizing to SkillsView selectors.
- Add a patch changeset for the published Fusion CLI package.
Files changed:
.changeset/fn-7072-skill-metadata-font-size.md | 7 +++++++
packages/dashboard/app/components/SkillsView.css | 8 +++++++-
2 files changed, 14 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-7072
Fusion-Task-Lineage: 6270be52-d52c-4969-ae65-ec4f10167ff2
2026-06-26 13:51:32 -07:00
gsxdsm
0afc66b6be
FN-7068: rescue quarantined flaky tests
...
Rescue quarantined dashboard and engine tests before the deletion deadline.
- Realign the DevServerView mobile CSS test with split mobile rules and balanced at-rule extraction.
- Complete FN-5488 self-healing TaskStore fakes for overlap-scope paths.
- Remove rescued dashboard and engine tests from quarantine configs and the ledger.
Files changed:
.../__tests__/DevServerView.mobile.test.tsx | 74 ++++++++++++++++++----
packages/dashboard/vitest.config.ts | 8 +--
...in-review-merge-stall-deadlock-recovery.test.ts | 7 ++
...f-healing-fn-5488-fast-path-regressions.test.ts | 6 ++
packages/engine/vitest.config.ts | 8 +--
scripts/lib/test-quarantine.json | 18 +-----
6 files changed, 79 insertions(+), 42 deletions(-)
Fusion-Task-Id: FN-7068
Fusion-Task-Lineage: b40a551f-8981-49a1-86a3-660f08cceb94
2026-06-26 13:32:35 -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
88e3d8881e
fix(FN-7039): show enabled workflow steps as segments in the detail progress bar
...
The TaskDetailModal Progress bar mapped only workingTask.steps, so enabled optional
workflow steps (e.g. Code Review) had no segment. Drive it from getUnifiedTaskProgress
(the same model the cards use) so each enabled step gets a segment — even before it runs
(pending) — and extend getStepStatusColor to the workflow statuses (passed/failed/
advisory_failure/running). Adds a regression test asserting enabled steps render segments.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-26 11:16:02 -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
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
005322eeaa
fix(review): address PR #1788 review feedback
...
- workflow-graph-executor: wrap each post-merge walk() in try/catch so a malformed
post-merge IR / traversal error is logged and skipped, never flipping an already-
merged task to failed (non-blocking post-merge contract) [T9, real bug].
- Refresh stale FNXC comments now that graphNativePostMerge is default-ON and the
legacy merger post-merge path was removed (experimental-features, workflow-graph-
executor, workflow-graph-post-merge.test) [T6/T7/T8].
- Normalize FNXC timestamps to yyyy-MM-dd-hh:mm (TaskCard.test, taskProgress.test) [T2/T3].
- Changeset: category fix → feature to match the minor bump [T0].
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-26 08:40:59 -07:00
gsxdsm
d03d6c23d6
FN-7057: preserve workflow selections across dashboard surfaces
...
Add regression coverage and stale-workflow fallback for workflow-aware dashboard selection.
- Cover cached board-workflow hydration across remounted Header and Graph switchers.
- Verify Header and Graph selections remain isolated while Graph task filtering follows the Graph selection.
- Treat deleted workflow assignments as default-workflow tasks so they remain visible.
- Add hook coverage for cache hydration, project changes, selection fallbacks, disabled workflow mode, and consumer isolation.
- Add a patch changeset for the stale Graph workflow filtering fix.
Files changed:
.changeset/fn-7057-graph-workflow-filter.md | 7 +
.../workflow-selection-cross-surface.test.tsx | 184 +++++++++++++++++++++
.../app/components/GraphWorkflowSwitcherSlot.tsx | 11 +-
.../__tests__/GraphWorkflowSwitcherSlot.test.tsx | 1 +
.../app/hooks/__tests__/useBoardWorkflows.test.ts | 133 ++++++++++++++-
5 files changed, 330 insertions(+), 6 deletions(-)
Fusion-Task-Id: FN-7057
Fusion-Task-Lineage: 52e6682a-576e-4ed6-92d5-03e0e9b5896c
2026-06-26 04:06:32 -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
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
347842faca
refactor(FN-7039): drop the legacy workflow_steps table; remove all table readers
...
Final cutover — nothing reads workflow_steps at runtime, so migration 131 drops it.
- Removed the merger post-merge execution path entirely (runPostMergeWorkflowSteps,
hasEnabledPostMergeWorkflowSteps, executePostMerge{Prompt,Script}Step, post-merge
worktree helpers + call site). Graph owns post-merge.
- Executor recovery no longer reads getWorkflowStep().gateMode; gate-ness comes from the
recorded WorkflowStepResult.status.
- Removed store CRUD (create/update/deleteWorkflowStep), materializeWorkflowSteps, and
migrateLegacyWorkflowSteps; selectTaskWorkflow now seeds default-on optional-group node
ids (consistent with create-time). KEPT the plugin step-template palette (getWorkflowStep
plugin-only resolver / listWorkflowSteps plugin-only) — never touches the table.
Removed the dashboard migrate-legacy-steps route + editor migration UI.
- SCHEMA_VERSION 130→131; migration 131 DROP TABLE IF EXISTS workflow_steps; SCHEMA_SQL
table def removed; historical migrations 77/105/109/130 guarded with tableExists().
Proof nothing stranded: the graph executes IR nodes resolved from workflowId (never
stepIds/compiled rows) — materializeWorkflowSteps writes were vestigial. Full @fusion/core
suite (6290), reliability backstop (154), boot smoke, and a seed-at-130 drop test all pass
with the table gone.
Plan U7c.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-26 02:29:32 -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
c0d53530cf
FN-7052: restore Agent Detail tab touch panning
...
Restore mobile horizontal panning from direct touches on Agent Detail tab buttons.
- Apply pan-x touch-action to Agent Detail tab buttons alongside the tab strip.
- Cover both base and mobile tab styles so the global mobile pan-y lock does not block button-origin swipes.
- Extend the mobile scroll regression test to assert tab buttons expose horizontal touch panning.
- Add a patch changeset for the published CLI package.
Files changed:
.changeset/fn-7052-agent-detail-mobile-tab-touch-action.md | 7 +++++++
packages/dashboard/app/components/AgentDetailView.css | 5 +++++
.../components/__tests__/AgentDetailView.mobile-scroll.test.tsx | 8 ++++++--
3 files changed, 18 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-7052
Fusion-Task-Lineage: 42921948-f940-46d6-8c86-c159e94603b5
2026-06-26 01:19:55 -07:00
gsxdsm
3f66e55505
FN-7016: keep workflow container edges connected
...
Keep workflow container fallback layouts connected in the editor.
- Space fallback and auto-layout columns by each node's rendered width so wide containers do not overlap adjacent handles.
- Treat incomplete top-level saved layouts as stale and fall back to a coherent graph layout.
- Cover optional-group, foreach, and mobile graph mapping with regression tests.
Files changed:
.changeset/fn-7016-optional-group-edges.md | 7 +
.../__tests__/workflow-auto-layout.test.ts | 18 +++
.../__tests__/workflow-flow-mapping.test.ts | 154 ++++++++++++++++++++-
.../__tests__/workflow-mobile-graph.test.ts | 37 ++++-
.../app/components/workflow-auto-layout.ts | 28 +++-
.../app/components/workflow-flow-mapping.ts | 40 +++++-
6 files changed, 271 insertions(+), 13 deletions(-)
Fusion-Task-Id: FN-7016
Fusion-Task-Lineage: a009fc2d-05cb-41cc-8be1-c5522f7398ff
2026-06-26 01:15:14 -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
93da87dc5d
FN-7048: enable mobile detail tab swiping
...
Allow task detail tabs to keep horizontal touch scrolling on mobile surfaces.
- Add pan-x touch-action overrides on detail tab buttons for modal, embedded, mobile, and tablet contexts.
- Extend responsive CSS coverage to assert each task-detail tab target allows horizontal panning.
- Add a patch changeset documenting the mobile task-detail tab scroll fix.
Files changed:
.changeset/fn-7048-task-detail-mobile-tab-touch-action.md | 7 +++++++
packages/dashboard/app/components/TaskDetailModal.css | 14 ++++++++++++++
.../TaskDetailModal.responsive-and-dependencies.test.tsx | 14 +++++++++++++-
3 files changed, 34 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-7048
Fusion-Task-Lineage: bb07b72f-8843-4ed4-a45b-ea8172bc4957
2026-06-26 00:48:51 -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
2ce208e36d
FN-7036: make Automations popup movable and resizable
...
Render the Automations modal in the shared floating-window shell while preserving embedded and mobile behavior.
- Wrap the modal presentation in FloatingWindow with persisted geometry, drag handle, and resize sizing.
- Update Automations modal CSS so desktop fills the floating shell and mobile remains full-screen with resize handles hidden.
- Cover floating-window rendering, dragging, resizing, mobile CSS contract, and embedded mode in ScheduledTasksModal tests.
- Add a minor changeset for the published Fusion package.
Files changed:
.changeset/fn-7036-automation-modal-floating.md | 7 ++
.../app/components/ScheduledTasksModal.tsx | 43 +++++----
packages/dashboard/app/components/ScriptsModal.css | 78 +++++++++-------
.../__tests__/ScheduledTasksModal.test.tsx | 103 +++++++++++++++++++--
4 files changed, 172 insertions(+), 59 deletions(-)
Fusion-Task-Id: FN-7036
Fusion-Task-Lineage: 3d6926b7-ec6d-4179-ad17-573bcfef297f
2026-06-26 00:35:41 -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
a7eb3c4dd8
refactor(FN-7039): delete WORKFLOW_STEP_TEMPLATES + legacy workflow-step management surface
...
U6: delete the built-in WORKFLOW_STEP_TEMPLATES catalog + its materializer
(getBuiltInWorkflowTemplate/ensureWorkflowStepForTemplate/toBuiltInWorkflowStep);
inline the browser-verification + code-review name/prompt/toolMode/gateMode into
their optional-group IR builders (node bytes unchanged); simplify
resolveEnabledWorkflowSteps to an identity-stable pass-through (no materialization,
so the optionalGroupIdSet collision guard is no longer needed). Plugin-contributed
step templates are kept as the editor palette.
U5: remove the legacy /api/workflow-steps REST surface (GET/POST/PATCH/DELETE +
/refine + /workflow-step-templates/:id/create), the dead client fns, and the
Settings management UI; GET /api/workflow-step-templates now serves plugin
templates only. The create-time optional-step toggles remain.
Scope: the workflow_steps store CRUD + table are intentionally KEPT — still consumed
by the engine (merger/recovery) and needed by U7's migration; their removal + the
table drop land in U7.
Plan U5 + U6.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-26 00:06:31 -07:00