gsxdsm
d9ef51492d
FN-7462: show mobile chat conversation titles
...
Mobile direct-chat dropdowns now identify sessions by conversation title instead of model-name text.
- Render the mobile session trigger with the conversation title or Untitled while preserving the provider logo.
- Remove mobile trigger model-tag styling and assert the model badge stays out of the compact header.
- Document the mobile Chat dropdown behavior and add a patch changeset for the published CLI package.
Files changed:
.changeset/fn-7462-mobile-chat-dropdown-title.md | 7 ++++
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/ChatView.css | 8 -----
packages/dashboard/app/components/ChatView.tsx | 8 +++--
.../__tests__/ChatView.core-contracts.test.tsx | 25 +++++++++++---
.../components/__tests__/ChatView.mobile.test.tsx | 39 +++++++++++++++++++++-
6 files changed, 72 insertions(+), 17 deletions(-)
Fusion-Task-Id: FN-7462
Fusion-Task-Lineage: 6a6e2ac3-ecca-4076-81c5-b4e4a65eb286
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-03 07:47:03 -07:00
gsxdsm
00afb22bcb
FN-7458: default startup theme mode to system
...
Default fresh dashboard startup and appearance reset to System mode while keeping Shadcn Ember as the color theme.
- Set global themeMode defaults and Settings fallback props to system.
- Resolve pre-hydration web and desktop startup from prefers-color-scheme, including invalid cache and fallback paths.
- Update Appearance reset behavior, focused theme tests, docs, and the release changeset.
Files changed:
.changeset/fn-7458-system-theme-default.md | 7 ++
docs/dashboard-guide.md | 3 +-
docs/settings-reference.md | 4 +-
.../core/src/__tests__/global-settings.test.ts | 17 +++-
packages/core/src/__tests__/store-settings.test.ts | 6 +-
packages/core/src/settings-schema.ts | 6 +-
.../app/__tests__/index-html-theme-link.test.ts | 18 ++++
.../dashboard/app/components/SettingsModal.tsx | 8 +-
.../dashboard/app/components/ThemeSelector.tsx | 6 +-
.../components/__tests__/ThemeDropdown.test.tsx | 9 +-
.../components/__tests__/ThemeSelector.test.tsx | 2 +-
.../dashboard/app/hooks/__tests__/useTheme.test.ts | 111 ++++++++++++++++++++-
packages/dashboard/app/hooks/useTheme.ts | 21 +++-
packages/dashboard/app/index.html | 13 ++-
packages/desktop/src/renderer/index.html | 13 ++-
15 files changed, 211 insertions(+), 33 deletions(-)
Fusion-Task-Id: FN-7458
Fusion-Task-Lineage: fb6184b4-9a6a-4131-9f97-f8cd12ef904c
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-03 07:47:03 -07:00
gsxdsm
7300bf54ce
FN-7460: disable WebKit text scaling in terminals
...
Disable WebKit terminal text scaling so iPhone Safari preserves exact xterm cell metrics.
- Set terminal xterm host subtrees to disable text-size adjustment instead of pinning it at 100%.
- Update terminal CSS contract coverage for modal and session terminal surfaces.
- Document the real-iPhone recurrence and add a patch changeset for the published CLI package.
Files changed:
.changeset/fn-7460-ios-terminal-spacing.md | 7 +++++++
.../ui-bugs/xterm-async-font-remeasure-paste-dedupe.md | 7 ++++---
packages/dashboard/app/__tests__/terminal-input.test.ts | 14 +++++++-------
packages/dashboard/app/components/SessionTerminal.css | 7 +++++--
packages/dashboard/app/components/TerminalModal.css | 9 ++++++---
.../app/components/__tests__/TerminalModal.test.tsx | 7 +++++++
6 files changed, 36 insertions(+), 15 deletions(-)
Fusion-Task-Id: FN-7460
Fusion-Task-Lineage: 00542017-457b-40b8-9139-084218bc3533
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-03 07:47:03 -07:00
gsxdsm
95325201a6
FN-7459: remember task popup geometry
...
Remember task-detail popup geometry so operators can reuse one positioned window across tasks.
- Share a stable persisted geometry key for task-detail FloatingWindow instances while keeping per-task window identity.
- Add regression coverage for shared task popup geometry, malformed persisted data fallback, and isolated non-task windows.
- Document desktop/tablet popup geometry persistence and add a release changeset.
Files changed:
.changeset/fn-7459-task-popup-geometry.md | 7 ++
docs/dashboard-guide.md | 5 +-
docs/settings-reference.md | 2 +-
packages/dashboard/app/App.tsx | 5 +
.../App.taskDetailFloatingGeometry.test.tsx | 111 +++++++++++++++++++++
.../dashboard/app/components/FloatingWindow.tsx | 2 +-
.../components/__tests__/FloatingWindow.test.tsx | 83 ++++++++++++++-
7 files changed, 210 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-7459
Fusion-Task-Lineage: 84674283-024f-4ed5-b7a0-6dade1b77f8b
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-03 07:47:03 -07:00
gsxdsm
f9733341b5
FN-7453: add GitLab enablement controls
...
Add a settings-controlled GitLab enablement path while preserving saved GitLab configuration.
- Add project and global GitLab enable settings with collapsible Settings UI for URL and token controls.
- Gate GitLab auth, import loading, and import actions when GitLab integration is disabled.
- Preserve global GitLab values separately during global settings saves and document the new behavior.
- Cover enablement resolution, settings save behavior, disabled import UI, and GitLab route/auth gating with tests.
Files changed:
.changeset/fn-7453-gitlab-enable-disclosure.md | 7 ++
docs/dashboard-guide.md | 7 ++
docs/gitlab-parity-inventory.md | 1 +
docs/settings-reference.md | 4 ++
docs/task-management.md | 6 +-
packages/core/src/__tests__/gitlab-config.test.ts | 17 ++++-
.../core/src/__tests__/settings-parity.test.ts | 18 +++--
packages/core/src/gitlab-config.ts | 15 ++++-
packages/core/src/index.ts | 2 +-
packages/core/src/settings-schema.ts | 2 +
packages/core/src/types.ts | 5 ++
.../app/__tests__/settings-save-split.test.ts | 20 +++---
.../dashboard/app/components/GitHubImportModal.tsx | 43 +++++++++---
.../dashboard/app/components/SettingsModal.css | 77 +++++++++++++++++++++
.../dashboard/app/components/SettingsModal.tsx | 34 ++++++++-
.../__tests__/GitHubImportModal.test.tsx | 19 ++++++
.../__tests__/SettingsModal.general.test.tsx | 78 ++++++++++++++++++++++
.../SettingsModal.scheduling-merge.test.tsx | 7 +-
.../app/components/settings/save-split.ts | 5 +-
.../settings/sections/GeneralSection.tsx | 36 ++++++----
.../settings/sections/GlobalGeneralSection.tsx | 71 ++++++++++++--------
.../components/settings/sections/MergeSection.tsx | 44 +++++++-----
.../dashboard/src/__tests__/gitlab-auth.test.ts | 20 ++++++
.../dashboard/src/__tests__/routes-gitlab.test.ts | 11 +++
packages/dashboard/src/gitlab-auth.ts | 11 ++-
25 files changed, 458 insertions(+), 102 deletions(-)
Fusion-Task-Id: FN-7453
Fusion-Task-Lineage: 81fbd39d-675f-49d6-8d13-b7fcb4d25658
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-02 19:01:09 -07:00
gsxdsm
1430a42dd8
FN-7455: fix mobile direct chat header alignment
...
Keep the mobile direct-chat header on a single left-aligned row without losing accessible context.
- Hide the direct-chat ViewHeader title shell from layout while preserving the accessible Chat heading.
- Keep the back button first and the active session switcher beside it on a non-wrapping mobile row.
- Extend mobile chat coverage for long duplicate session titles, Bot fallback labels, and the CSS layout contract.
- Document the updated mobile Chat header behavior and add a patch changeset.
Files changed:
.changeset/fn-7455-mobile-chat-header-layout.md | 7 ++
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/ChatView.css | 17 +++--
packages/dashboard/app/components/ChatView.tsx | 4 +-
.../components/__tests__/ChatView.mobile.test.tsx | 80 ++++++++++++++++++++--
5 files changed, 98 insertions(+), 12 deletions(-)
Fusion-Task-Id: FN-7455
Fusion-Task-Lineage: fe14b542-ff6a-437b-ad89-8011c2b3c299
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-02 18:11:49 -07:00
gsxdsm
765218f80f
FN-7449: include chat token usage in dashboard totals
...
Chat token usage now contributes to Command Center token analytics totals alongside task execution usage.
- Add durable chat token usage rows and persistence hooks for assistant and room messages.
- Aggregate chat usage into token totals, time series, provider/model groups, CSV export, and dashboard counts.
- Cover chat token persistence and analytics with core and dashboard tests.
- Document the expanded dashboard token usage behavior and add a changeset for the published package.
Files changed:
.changeset/fn-7449-chat-token-totals.md | 7 +
docs/dashboard-guide.md | 4 +-
.../core/src/__tests__/token-analytics.test.ts | 146 ++++++++++++++++++
packages/core/src/chat-store.ts | 105 +++++++++++++
packages/core/src/chat-types.ts | 37 +++++
packages/core/src/db.ts | 52 ++++++-
packages/core/src/index.ts | 3 +
packages/core/src/token-analytics.ts | 167 +++++++++++++++++----
.../__tests__/CommandCenter.test.tsx | 4 +-
.../components/command-center/areas/TokensArea.tsx | 4 +
.../src/__tests__/chat-manager-cli-send.test.ts | 40 +++++
.../dashboard/src/__tests__/chat-manager.test.ts | 100 ++++++++++++
.../src/__tests__/command-center-csv.test.ts | 2 +
packages/dashboard/src/chat.ts | 110 +++++++++++++-
packages/dashboard/src/command-center-csv.ts | 3 +
15 files changed, 745 insertions(+), 39 deletions(-)
Fusion-Task-Id: FN-7449
Fusion-Task-Lineage: f2bacbb6-93b9-4874-b431-2049981b66c1
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-02 15:00:40 -07:00
gsxdsm
dfb6e5270d
FN-7443: add bundled Linear import plugin
...
Add a plugin-owned Linear importer that creates Fusion tasks from Linear issues.
- Add the fusion-plugin-linear-import package with settings, Linear GraphQL client, import routes, tools, and dashboard UI.
- Bundle and register the Linear import plugin in the CLI and dashboard plugin view registry.
- Document bundled plugin authoring details and cover duplicate detection, routes, tools, UI, and packaging with tests.
Files changed:
.changeset/fn-7443-linear-import-plugin.md | 7 +
docs/PLUGIN_AUTHORING.md | 7 +
docs/task-management.md | 2 +
packages/cli/src/__tests__/bundle-output.test.ts | 22 ++
.../__tests__/bundled-plugin-install.test.ts | 29 +++
packages/cli/src/plugins/bundled-plugin-install.ts | 1 +
.../cli/src/plugins/staged-bundled-plugin-ids.ts | 1 +
packages/cli/tsup.config.ts | 8 +
.../__tests__/registerBundledPluginViews.test.tsx | 9 +-
.../app/plugins/registerBundledPluginViews.ts | 18 ++
.../app/types/plugin-dashboard-views.d.ts | 9 +
.../src/__tests__/routes-plugin-registry.test.ts | 5 +
.../runtime-plugin-alias-regression.test.ts | 12 +
packages/dashboard/src/registry-manifest.json | 10 +
packages/dashboard/vite.config.ts | 8 +
packages/dashboard/vitest.config.ts | 8 +
plugins/fusion-plugin-linear-import/README.md | 75 ++++++
plugins/fusion-plugin-linear-import/manifest.json | 48 ++++
plugins/fusion-plugin-linear-import/package.json | 38 +++
.../scripts/copy-css.mjs | 11 +
.../src/LinearImportView.css | 167 +++++++++++++
.../src/LinearImportView.tsx | 263 +++++++++++++++++++++
.../src/__tests__/LinearImportView.test.tsx | 124 ++++++++++
.../src/__tests__/import-linear.test.ts | 78 ++++++
.../src/__tests__/linear-client.test.ts | 81 +++++++
.../src/__tests__/routes.test.ts | 90 +++++++
.../src/__tests__/tools.test.ts | 79 +++++++
.../src/dashboard-interop.d.ts | 13 +
.../src/dashboard-view.tsx | 10 +
.../src/import-linear.ts | 154 ++++++++++++
plugins/fusion-plugin-linear-import/src/index.ts | 45 ++++
.../src/linear-client.ts | 247 +++++++++++++++++++
plugins/fusion-plugin-linear-import/src/routes.ts | 149 ++++++++++++
.../fusion-plugin-linear-import/src/settings.ts | 68 ++++++
plugins/fusion-plugin-linear-import/src/tools.ts | 138 +++++++++++
plugins/fusion-plugin-linear-import/tsconfig.json | 14 ++
.../fusion-plugin-linear-import/vitest.config.ts | 40 ++++
pnpm-lock.yaml | 40 ++++
pnpm-workspace.yaml | 1 +
39 files changed, 2128 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-7443
Fusion-Task-Lineage: a016a9d4-84a4-4a0b-b9b6-b9a2886da49a
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-02 14:31:16 -07:00
gsxdsm
1d6011c3a6
FN-7450: collapse mobile chat header rows
...
Collapse the mobile direct chat header into the shared top row.
- Move the mobile direct-thread back button and session switcher into ViewHeader actions.
- Hide the redundant mobile thread header while preserving desktop thread identity and context details.
- Update mobile chat styling, docs, changeset, and header contract tests for the single-row layout.
Files changed:
.changeset/fn-7450-mobile-chat-header.md | 7 +
docs/dashboard-guide.md | 3 +-
packages/dashboard/app/components/ChatView.css | 53 +++++-
packages/dashboard/app/components/ChatView.tsx | 197 +++++++++++----------
.../__tests__/ChatView.core-contracts.test.tsx | 48 ++---
.../components/__tests__/ChatView.mobile.test.tsx | 76 ++++++--
6 files changed, 256 insertions(+), 128 deletions(-)
Fusion-Task-Id: FN-7450
Fusion-Task-Lineage: c266a9b8-7fb1-410e-9c35-adad4c6a2d47
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-02 14:09:35 -07:00
gsxdsm
8d7abb8c33
FN-7447: fix Android terminal mobile viewport sizing
...
Fix Android keyboard-open terminal layout by sizing mobile shells from the visual viewport.
- Track visualViewport width in the terminal modal and mobile keyboard detection.
- Apply keyboard-constrained mobile terminal sizing even when CSS media queries see a wider layout viewport.
- Cover Android visualViewport width behavior with modal, session terminal, and hook regressions.
- Document the fix pattern and add a patch changeset for the published Fusion package.
Files changed:
.../fn-7447-android-mobile-terminal-spacing.md | 7 ++
...ndroid-mobile-terminal-visual-viewport-width.md | 26 ++++++++
.../dashboard/app/components/TerminalModal.css | 21 +++++-
.../dashboard/app/components/TerminalModal.tsx | 8 +++
.../__tests__/SessionTerminal.mobile.test.tsx | 40 +++++++++++-
.../components/__tests__/TerminalModal.test.tsx | 76 ++++++++++++++++++++++
.../app/hooks/__tests__/useMobileKeyboard.test.ts | 38 +++++++++++
packages/dashboard/app/hooks/useMobileKeyboard.ts | 10 ++-
8 files changed, 222 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-7447
Fusion-Task-Lineage: c01faf0f-842e-4632-bf8f-ae54070c3bf8
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-02 13:51:25 -07:00
gsxdsm
5984f327d3
FN-7445: add Project Files creation and search controls
...
Improve the Project Files browser with first-class creation actions and recursive file search.
- Add visible create-file and create-folder buttons for Files — Project while keeping compact controls for embedded pickers.
- Add debounced recursive project file search with loading, retry, empty, and path-context result states.
- Cover project files creation and search behavior in dock, modal, and file browser tests.
- Document the new Project Files controls and add a release changeset.
Files changed:
.changeset/fn-7445-project-files-create-search.md | 7 +
docs/dashboard-guide.md | 3 +-
.../dashboard/app/components/DockFilesView.tsx | 1 +
packages/dashboard/app/components/FileBrowser.css | 88 +++++++++++++
packages/dashboard/app/components/FileBrowser.tsx | 145 ++++++++++++++++++++-
.../dashboard/app/components/FileBrowserModal.tsx | 1 +
.../components/__tests__/DockFilesView.test.tsx | 34 +++--
.../app/components/__tests__/FileBrowser.test.tsx | 109 ++++++++++++++++
.../components/__tests__/FileBrowserModal.test.tsx | 52 ++++++++
9 files changed, 426 insertions(+), 14 deletions(-)
Fusion-Task-Id: FN-7445
Fusion-Task-Lineage: 41510def-4900-42ee-beab-b67f28dfeaee
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-02 13:44:41 -07:00
gsxdsm
ec0256f7e5
FN-7444: add planning summary deepening checkpoint
...
Planning Mode now holds completed summaries behind a mandatory deepening prompt before finalization.
- Add shared constants and persistence for pending planning summaries.
- Insert the “Would you like to go deeper?” checkpoint with proceed, themed, and custom-topic responses.
- Update modal handling, API formatting, docs, changeset, and regression coverage for persisted and streamed planning flows.
Files changed:
.changeset/fn-7444-planning-deepening-checkpoint.md | 7 +
docs/dashboard-guide.md | 4 +
packages/core/src/index.ts | 2 +-
packages/core/src/types.ts | 12 +
packages/dashboard/app/components/PlanningModeModal.tsx | 25 ++-
packages/dashboard/app/components/__tests__/PlanningModeModal.planning-flow.test.tsx | 193 +++++++++++++++-
packages/dashboard/src/__tests__/planning-interview-formatters.test.ts | 79 ++++++-
packages/dashboard/src/__tests__/routes-planning.test.ts | 207 ++++++++++++++++-
packages/dashboard/src/__tests__/session-persistence-roundtrip.test.ts | 74 +++++-
packages/dashboard/src/ai-session-store.ts | 2 +
packages/dashboard/src/planning.ts | 249 ++++++++++++++++++---
packages/dashboard/src/test/mockCoreEngine.ts | 2 +
12 files changed, 815 insertions(+), 41 deletions(-)
Fusion-Task-Id: FN-7444
Fusion-Task-Lineage: 43ee1853-558b-4168-b52c-ebcc4ece4521
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-02 13:38:02 -07:00
gsxdsm
25fecd7843
FN-7442: return GitHub issue actions to list
...
Return successful GitHub issue import and close flows to the issue list.
- Clear the selected GitHub issue and switch mobile preview back to the list after successful import or close actions.
- Preserve the selected preview on failures so users can retry with the existing error affordance.
- Add regression coverage for desktop and mobile import/close success and failure navigation states.
- Document the post-import list reset behavior and add a patch changeset.
Files changed:
.changeset/fn-7442-github-import-return-list.md | 7 +
docs/dashboard-guide.md | 2 +-
.../dashboard/app/components/GitHubImportModal.tsx | 20 +-
.../__tests__/GitHubImportModal.test.tsx | 210 +++++++++++++++++++--
4 files changed, 218 insertions(+), 21 deletions(-)
Fusion-Task-Id: FN-7442
Fusion-Task-Lineage: e334a7c1-68de-48f7-be31-b036ba741685
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-02 13:30:08 -07:00
gsxdsm
72adb5231a
FN-7441: add sidebar rename controls for chat conversations
...
Add an explicit sidebar rename affordance for direct Chat conversations while preserving existing rename paths.
- Add edit buttons beside delete controls on direct chat session rows and wire them to the existing rename dialog.
- Keep sidebar action spacing and accessibility labels stable across desktop and mobile layouts.
- Cover sidebar, context-menu, and mobile switcher rename behavior with ChatView tests.
- Document the sidebar rename entry point and add the published package changeset.
Files changed:
.changeset/fn-7441-chat-conversation-rename.md | 7 ++
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/ChatView.css | 51 ++++-----
packages/dashboard/app/components/ChatView.tsx | 54 ++++++---
.../__tests__/ChatView.core-interactions.test.tsx | 122 +++++++++++++++++++++
.../components/__tests__/ChatView.mobile.test.tsx | 72 ++++++++++++
6 files changed, 264 insertions(+), 44 deletions(-)
Fusion-Task-Id: FN-7441
Fusion-Task-Lineage: 39a2c393-dd85-4362-9472-58bb137b906c
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-02 13:23:13 -07:00
gsxdsm
91fb53f3c7
FN-7440: add agent update tool
...
Add a Fusion extension tool for updating existing agent configuration in place.
- Register fn_agent_update with editable agent fields, validation, and non-ephemeral guards.
- Enforce org-scoped authorization for agent callers and privileged manager-clearing semantics for operators.
- Cover update success, hierarchy denial, cycle prevention, and runtime/instruction edits in extension tests.
- Document the new tool in agent and Fusion skill references and add a published package changeset.
Files changed:
.changeset/fn-7440-agent-update-tool.md | 7 +
docs/agents.md | 21 +-
package.json | 1 +
packages/cli/skill/fusion/SKILL.md | 2 +-
.../cli/skill/fusion/references/extension-tools.md | 21 ++
.../skill/fusion/references/fusion-capabilities.md | 1 +
.../src/__tests__/extension-agent-update.test.ts | 351 +++++++++++++++++++++
packages/cli/src/extension.ts | 230 ++++++++++++++
pnpm-lock.yaml | 1 +
9 files changed, 628 insertions(+), 7 deletions(-)
Fusion-Task-Id: FN-7440
Fusion-Task-Lineage: a6f4c928-5a63-4cf1-aa0b-4e38b536e965
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-02 13:16:07 -07:00
gsxdsm
aa8f1f32ee
FN-7438: recover stale branch-group references
...
Recover branch-group detail views after restarts and let operators clear stale per-task group context safely.
- Add Task Detail stale branch-group recovery UI that clears only the current task via the assign API.
- Verify durable branch groups and members survive TaskStore/API restarts, while stale references can be reset without losing unrelated metadata.
- Improve integration-branch fallback diagnostics for repositories that use non-origin remotes.
- Document the recovery path, durable branch-group storage expectations, and release the fix as a patch.
Files changed:
.../fn-7438-branch-group-restart-recovery.md | 7 ++
docs/dashboard-guide.md | 5 +-
docs/settings-reference.md | 2 +-
docs/storage.md | 2 +-
.../core/src/__tests__/branch-group-store.test.ts | 43 +++++++++++-
.../dashboard/app/components/BranchGroupCard.css | 9 +++
.../dashboard/app/components/BranchGroupCard.tsx | 49 +++++++++++++-
.../dashboard/app/components/TaskDetailModal.tsx | 14 +++-
.../components/__tests__/BranchGroupCard.test.tsx | 40 +++++++++++
.../components/__tests__/TaskDetailModal.test.tsx | 11 ++-
.../src/__tests__/routes-branch-groups.test.ts | 79 +++++++++++++++++++++-
.../src/__tests__/integration-branch.test.ts | 41 +++++++++++
packages/engine/src/integration-branch.ts | 54 ++++++++++++++-
13 files changed, 343 insertions(+), 13 deletions(-)
Fusion-Task-Id: FN-7438
Fusion-Task-Lineage: 09ef3dc3-8319-49a7-9f4d-c95a3e069d39
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-02 13:07:16 -07:00
gsxdsm
e5be9242d7
FN-7435: suppress misleading Anthropic re-login banner
...
Suppress the global Anthropic Subscription re-login warning when another Anthropic auth path can run agents.
- Hide expired Anthropic Subscription OAuth from the urgent dashboard banner when Anthropic API Key or Claude CLI auth is active.
- Preserve unrelated expired OAuth provider warnings and keep Settings documentation clear that Subscription remains expired until re-login.
- Add regression coverage for CLI, API-key, fallback-missing, and unrelated-provider banner visibility cases.
- Add a patch changeset for the user-facing banner fix.
Files changed:
.changeset/fn-7435-anthropic-subscription-banner.md | 7 +++
docs/dashboard-guide.md | 2 +-
docs/settings-reference.md | 4 +-
packages/dashboard/app/components/OAuthReloginBanner.tsx | 31 ++++++++++--
packages/dashboard/app/components/__tests__/OAuthReloginBanner.test.tsx | 59 ++++++++++++++++++++--
5 files changed, 91 insertions(+), 12 deletions(-)
Fusion-Task-Id: FN-7435
Fusion-Task-Lineage: 04462f77-a1e4-402d-97b2-dd47778398df
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-02 12:10:13 -07:00
gsxdsm
b493a1e9e5
FN-7434: show task status badges in document groups
...
Show task completion metadata directly in Documents task group headers.
- Render task status badges for task document groups when column metadata is available.
- Preserve non-interactive status metadata in collapsed and mobile task group headers.
- Cover done, non-done, archived, custom, and legacy task document status cases.
- Document the Documents view status badge behavior and add a patch changeset.
Files changed:
.changeset/fn-7434-document-task-status.md | 7 +
docs/dashboard-guide.md | 2 +-
.../dashboard/app/components/DocumentsView.css | 16 ++-
.../dashboard/app/components/DocumentsView.tsx | 31 ++++-
.../components/__tests__/DocumentsView.test.tsx | 148 +++++++++++++++++++++
5 files changed, 199 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-7434
Fusion-Task-Lineage: b04161b3-c052-4eee-b9ed-5760eb9b7a4e
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-02 12:00:58 -07:00
gsxdsm
1f6befcfa7
FN-7427: add GitLab signal connector
...
Add GitLab webhook ingestion to Command Center Signals.
- Register GitLab as a supported signal provider with shared-token verification.\n- Normalize GitLab issue and merge request webhooks into capped Command Center signals.\n- Update tests, UI labels, docs, and changeset coverage for the new connector.\n\nFiles changed:\n .changeset/fn-7427-gitlab-signals.md | 7 +\n docs/dashboard-guide.md | 2 +-\n docs/settings-reference.md | 1 +\n docs/signals-connectors.md | 52 ++++-\n .../core/src/__tests__/signals-analytics.test.ts | 28 ++-\n .../__tests__/CommandCenter.mobile-scroll.test.tsx | 5 +-\n .../__tests__/CommandCenter.tablet-layout.test.tsx | 5 +-\n .../command-center/areas/SignalsArea.tsx | 5 +-\n .../areas/__tests__/areas.github-signals.test.tsx | 12 +-\n .../register-command-center-routes.test.ts | 7 +-\n .../src/__tests__/register-signal-routes.test.ts | 227 ++++++++++++++++++++-\n .../dashboard/src/routes/register-signal-routes.ts | 8 +-\n packages/dashboard/src/signal-source.ts | 23 ++-\n packages/dashboard/src/signal-sources/gitlab.ts | 219 ++++++++++++++++++++\n 14 files changed, 574 insertions(+), 27 deletions(-)
Fusion-Task-Id: FN-7427
Fusion-Task-Lineage: cfe94cb7-e9d5-4bec-9fc5-4a7e45b8c95d
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-02 11:38:35 -07:00
gsxdsm
34be333a2a
FN-7426: add GitLab lifecycle automation
...
Add GitLab lifecycle automation for comments and source item state changes.
- Add GitLab REST helpers for posting notes and closing or reopening issues and merge requests.
- Register GitLab source-comment, tracking-comment, tracking-state, and source-close services with multi-project lifecycle wiring.
- Add project settings, documentation, tests, and a changeset for GitLab completion comments and auto-close behavior.
Files changed:
.changeset/fn-7426-gitlab-lifecycle.md | 7 ++
docs/cli-reference.md | 2 +-
docs/dashboard-guide.md | 3 +-
docs/settings-reference.md | 5 +-
packages/core/src/settings-schema.ts | 3 +
packages/core/src/types.ts | 10 +++
.../src/__tests__/gitlab-issue-comment.test.ts | 37 +++++++++
.../__tests__/gitlab-source-issue-close.test.ts | 29 +++++++
.../src/__tests__/gitlab-tracking-comments.test.ts | 31 +++++++
.../src/__tests__/gitlab-tracking-state.test.ts | 42 ++++++++++
packages/dashboard/src/__tests__/gitlab.test.ts | 18 ++++
.../register-git-github.gitlab-lifecycle.test.ts | 54 ++++++++++++
packages/dashboard/src/gitlab-issue-comment.ts | 62 ++++++++++++++
packages/dashboard/src/gitlab-lifecycle.ts | 58 +++++++++++++
.../dashboard/src/gitlab-source-issue-close.ts | 45 ++++++++++
packages/dashboard/src/gitlab-tracking-comments.ts | 77 +++++++++++++++++
packages/dashboard/src/gitlab-tracking-state.ts | 97 ++++++++++++++++++++++
packages/dashboard/src/gitlab.ts | 30 +++++++
.../dashboard/src/routes/register-git-github.ts | 23 +++++
19 files changed, 630 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-7426
Fusion-Task-Lineage: a46bd11f-96ef-4291-ab41-829007fa057a
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-02 11:38:34 -07:00
gsxdsm
91737b1831
FN-7433: add explicit onboarding git setup modes
...
Expose explicit git setup choices in first-run onboarding and project registration.
- Add setup wizard modes for existing repositories, new git initialization, and remote cloning with mode-specific hints and validation.
- Extend project registration to accept gitSetupMode while preserving legacy cloneUrl-only behavior.
- Cover init and clone validation paths with dashboard tests, localized copy, docs, and a published package changeset.
Files changed:
.changeset/fn-7433-onboarding-git-setup.md | 7 +
docs/dashboard-guide.md | 10 ++
docs/getting-started.md | 10 +-
packages/dashboard/app/api/legacy.ts | 1 +
.../dashboard/app/components/SetupWizardModal.css | 77 +++++++++-
.../dashboard/app/components/SetupWizardModal.tsx | 159 ++++++++++++++-------
.../components/__tests__/SetupWizardModal.test.tsx | 107 +++++++++++++-
.../dashboard/src/__tests__/project-routes.test.ts | 98 +++++++++++++
.../src/routes/register-project-routes.ts | 25 +++-
packages/i18n/locales/en/app.json | 23 ++-
packages/i18n/locales/es/app.json | 25 +++-
packages/i18n/locales/fr/app.json | 25 +++-
packages/i18n/locales/ko/app.json | 25 +++-
packages/i18n/locales/zh-CN/app.json | 25 +++-
packages/i18n/locales/zh-TW/app.json | 25 +++-
15 files changed, 538 insertions(+), 104 deletions(-)
Fusion-Task-Id: FN-7433
Fusion-Task-Lineage: 022c25c2-3c2d-4e47-aa8c-02525caad672
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-02 11:38:34 -07:00
gsxdsm
b8e126eeaf
FN-7425: add GitLab tracking metadata to tasks
...
Persist GitLab tracking metadata and surface it across task APIs and dashboard views.
- add task-store schema, migration, and update helpers for linked GitLab items and stale state
- expose validated GitLab tracking updates through task workflow routes and legacy task payloads
- render GitLab badges, detail-panel metadata, open/unlink actions, styling, i18n strings, and docs
- cover persistence, route validation, task card badges, and task detail interactions with tests
- add a patch changeset for the published Fusion package
Files changed:
.changeset/fn-7425-gitlab-tracking.md | 7 ++
docs/cli-reference.md | 2 +-
docs/dashboard-guide.md | 3 +
packages/core/src/__tests__/db-migrate.test.ts | 29 +++++
.../src/__tests__/store-gitlab-tracking.test.ts | 138 +++++++++++++++++++++
packages/core/src/db.ts | 10 +-
packages/core/src/gitlab-tracking.ts | 10 ++
packages/core/src/index.ts | 3 +-
packages/core/src/store.ts | 135 +++++++++++++++++++-
packages/core/src/types.ts | 49 ++++++++
packages/dashboard/app/api/legacy.ts | 3 +
packages/dashboard/app/components/GitLabBadge.tsx | 33 +++++
packages/dashboard/app/components/TaskCard.tsx | 7 +-
.../dashboard/app/components/TaskCardBadge.tsx | 15 ++-
.../dashboard/app/components/TaskDetailModal.css | 47 +++++--
.../dashboard/app/components/TaskDetailModal.tsx | 134 +++++++++++++++++++-
.../app/components/__tests__/TaskCard.test.tsx | 49 ++++++++
.../TaskDetailModal.gitlab-tracking.test.tsx | 121 ++++++++++++++++++
.../__tests__/TaskDetailModal.test-helpers.ts | 1 +
packages/dashboard/app/styles.css | 9 ++
.../src/__tests__/routes-tasks-ops.test.ts | 136 ++++++++++++++++++++
packages/dashboard/src/gitlab.ts | 24 +++-
packages/dashboard/src/routes/register-gitlab.ts | 1 +
.../src/routes/register-task-workflow-routes.ts | 106 +++++++++++++++-
packages/i18n/locales/en/app.json | 31 +++++
packages/i18n/src/resources.d.ts | 31 +++++
26 files changed, 1106 insertions(+), 28 deletions(-)
Fusion-Task-Id: FN-7425
Fusion-Task-Lineage: 9b5e6005-7284-402e-995c-553be2275eff
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-02 11:38:34 -07:00
gsxdsm
865dec235b
FN-7424: add GitLab task imports
...
Adds GitLab-backed task import flows across the CLI, extension, API, and dashboard.
- Add GitLab client normalization, provenance, duplicate detection, and import routes for project issues, group issues, and merge requests.
- Extend the dashboard import modal with a GitLab provider, resource tabs, previews, imported-state detection, and import actions.
- Add CLI and extension task import commands plus usage event/gating classifications and operator documentation.
- Cover GitLab fetch/import behavior with dashboard, CLI, and gating tests.
Files changed:
.changeset/fn-7424-gitlab-imports.md | 7 +
docs/cli-reference.md | 11 +-
docs/gitlab-parity-inventory.md | 10 +-
docs/task-management.md | 6 +-
packages/cli/skill/fusion/SKILL.md | 2 +-
.../cli/skill/fusion/references/extension-tools.md | 60 ++++
.../skill/fusion/references/fusion-capabilities.md | 6 +
packages/cli/src/__tests__/extension.test.ts | 6 +
.../__tests__/task-command-gitlab-import.test.ts | 97 ++++++
packages/cli/src/bin.ts | 25 +-
packages/cli/src/commands/task.ts | 58 ++++
packages/cli/src/extension.ts | 106 +++++++
packages/core/src/__tests__/usage-events.test.ts | 2 +
packages/core/src/types.ts | 7 +
packages/core/src/usage-events.ts | 3 +
packages/dashboard/app/api/legacy.ts | 52 ++++
.../dashboard/app/components/GitHubImportModal.css | 41 +++
.../dashboard/app/components/GitHubImportModal.tsx | 143 ++++++++-
.../__tests__/GitHubImportModal.test.tsx | 33 ++
packages/dashboard/src/__tests__/gitlab.test.ts | 56 ++++
.../dashboard/src/__tests__/routes-gitlab.test.ts | 99 ++++++
packages/dashboard/src/gitlab.ts | 334 +++++++++++++++++++++
packages/dashboard/src/index.ts | 15 +
packages/dashboard/src/routes.ts | 2 +
packages/dashboard/src/routes/register-gitlab.ts | 192 ++++++++++++
.../engine/src/__tests__/agent-action-gate.test.ts | 4 +
.../gating-classifications-provisioning.test.ts | 13 +-
.../src/__tests__/gating-classifications.test.ts | 6 +
packages/engine/src/gating-classifications.ts | 9 +
29 files changed, 1388 insertions(+), 17 deletions(-)
Fusion-Task-Id: FN-7424
Fusion-Task-Lineage: 8012425c-21d5-4b20-adb7-07d2e5aa1cef
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-02 11:38:34 -07:00
gsxdsm
fafe4c9d9f
FN-7423: add GitLab access token settings
...
Add GitLab access-token configuration and auth resolution for future HTTP API integrations.
- Add personal, project, and group GitLab token settings at project and global scope.
- Resolve configured tokens with GITLAB_TOKEN fallback and PRIVATE-TOKEN metadata without requiring glab.
- Document required GitLab scopes and update parity handoff notes.
- Cover settings save splitting, parity, modal rendering, and auth resolution with tests.
Files changed:
.changeset/fn-7423-gitlab-access-tokens.md | 7 ++
docs/gitlab-parity-inventory.md | 10 +-
docs/settings-reference.md | 6 +-
docs/task-management.md | 2 +-
.../core/src/__tests__/settings-parity.test.ts | 28 +++--
packages/core/src/index.ts | 2 +-
packages/core/src/settings-schema.ts | 4 +
packages/core/src/types.ts | 17 ++-
.../app/__tests__/settings-save-split.test.ts | 69 ++++++++++++
.../dashboard/app/components/SettingsModal.tsx | 2 +
.../SettingsModal.scheduling-merge.test.tsx | 57 ++++++++++
.../app/components/settings/save-split.ts | 6 +-
.../settings/sections/GlobalGeneralSection.tsx | 18 ++-
.../components/settings/sections/MergeSection.tsx | 22 ++++
.../dashboard/src/__tests__/gitlab-auth.test.ts | 99 +++++++++++++++++
packages/dashboard/src/gitlab-auth.ts | 123 +++++++++++++++++++++
16 files changed, 449 insertions(+), 23 deletions(-)
Fusion-Task-Id: FN-7423
Fusion-Task-Lineage: f14ae52b-b730-44b0-8bad-54945c61d009
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-02 11:38:33 -07:00
gsxdsm
573876603f
FN-7422: add GitLab URL configuration
...
Add typed GitLab instance and API URL settings for GitLab.com and self-managed instances.
- Add core GitLab URL defaults, validation, normalization, and project/global inheritance.
- Expose project and global GitLab instance/API URL fields in settings with save-split handling.
- Cover configuration resolution, settings parity, and settings UI save behavior with tests.
- Document the new settings and add a changeset for the published CLI package.
Files changed:
.changeset/fn-7422-gitlab-configuration.md | 7 ++
docs/settings-reference.md | 6 +-
docs/task-management.md | 2 +-
packages/core/src/__tests__/gitlab-config.test.ts | 74 +++++++++++++++++++
.../core/src/__tests__/settings-parity.test.ts | 22 +++++-
packages/core/src/gitlab-config.ts | 79 +++++++++++++++++++++
packages/core/src/index.ts | 4 +-
packages/core/src/settings-schema.ts | 4 ++
packages/core/src/types.ts | 20 ++++++
.../app/__tests__/settings-save-split.test.ts | 53 ++++++++++++++
.../dashboard/app/components/SettingsModal.tsx | 20 ++++++
.../__tests__/SettingsModal.general.test.tsx | 82 ++++++++++++++++++++++
.../app/components/settings/save-split.ts | 6 ++
.../settings/sections/GeneralSection.tsx | 15 ++++
.../settings/sections/GlobalGeneralSection.tsx | 14 ++++
15 files changed, 402 insertions(+), 6 deletions(-)
Fusion-Task-Id: FN-7422
Fusion-Task-Lineage: 0110b4b6-71b0-4a62-afaf-61af65ebef03
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-02 11:38:33 -07:00
gsxdsm
abb1917999
FN-7419: add Cursor CLI binary path override
...
Add a global Cursor CLI binary path override that is validated before enabling or probing Cursor routing.
- Add global settings schema/types and API support for storing a trimmed Cursor CLI binary path override.
- Surface a Settings Authentication control to save, clear, and test the Cursor CLI binary path.
- Probe configured Cursor binaries before PATH fallbacks and expose diagnostics for status/routes.
- Cover settings, route, dashboard, and cursor runtime behavior with focused tests and documentation.
Files changed:
.changeset/fn-7419-cursor-cli-binary-path.md | 7 ++
docs/cursor-cli-contract.md | 33 ++++--
docs/settings-reference.md | 2 +
.../core/src/__tests__/cursor-cli-settings.test.ts | 34 ++++++
packages/core/src/settings-schema.ts | 6 +
packages/core/src/types.ts | 8 ++
packages/dashboard/app/api/legacy.ts | 17 ++-
.../app/components/CursorCliProviderCard.css | 37 +++++-
.../app/components/CursorCliProviderCard.tsx | 78 ++++++++++++-
.../__tests__/ModelOnboardingModal.test.tsx | 4 +
.../__tests__/SettingsModal.general.test.tsx | 2 +
.../__tests__/SettingsModal.models-auth.test.tsx | 75 ++++++++++++
.../SettingsModal.remote-notifications.test.tsx | 2 +
.../SettingsModal.scheduling-merge.test.tsx | 2 +
.../__tests__/SettingsModal.test-harness.tsx | 3 +
.../dashboard/src/__tests__/routes-auth.test.ts | 130 ++++++++++++++++++++-
.../dashboard/src/routes/register-auth-routes.ts | 69 +++++++++--
.../src/__tests__/probe.test.ts | 61 +++++++++-
.../src/__tests__/process-manager.test.ts | 10 ++
.../src/__tests__/provider.test.ts | 57 +++++++++
plugins/fusion-plugin-cursor-runtime/src/probe.ts | 39 +++++--
.../fusion-plugin-cursor-runtime/src/provider.ts | 15 ++-
plugins/fusion-plugin-cursor-runtime/src/types.ts | 3 +
23 files changed, 655 insertions(+), 39 deletions(-)
Fusion-Task-Id: FN-7419
Fusion-Task-Lineage: 2c192a37-a1db-41a9-99f5-a480ed311d9c
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-02 11:38:33 -07:00
gsxdsm
7302d22b9d
FN-7421: document GitLab parity inventory
...
Document the GitLab parity implementation inventory and guardrails for downstream work.
- Add a GitLab parity inventory covering import, tracking, comments, auto-close, auth, CLI/tools, Command Center, and signals surfaces.
- Link the inventory from existing settings, signals, and task-management documentation.
- Add a documentation contract test for required GitLab assumptions and explicit exclusions.
Files changed:
docs/gitlab-parity-inventory.md | 106 +++++++++++++++++++++
docs/settings-reference.md | 3 +
docs/signals-connectors.md | 2 +
docs/task-management.md | 2 +
.../gitlab-parity-inventory-documentation.test.ts | 70 ++++++++++++++
5 files changed, 183 insertions(+)
Fusion-Task-Id: FN-7421
Fusion-Task-Lineage: 3b16cb60-11d6-4dc5-a374-23e515dc8b31
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-02 11:38:32 -07:00
gsxdsm
9d89cb8d32
FN-7420: fix test velocity quarantine reporting
...
Refresh the test velocity baseline and coverage so quarantine counts come from the live ledger.\n\n- Update the weekly baseline report to show zero active quarantines and a neutral delta.\n- Strengthen the report-only regression test to cover stale report and history quarantine values.\n- Document the FN-7420 requirement near the regression scenario.\n\nFiles changed:\n docs/test-velocity-baseline.md | 10 +++++-----\n scripts/__tests__/test-velocity-baseline.test.mjs | 10 +++++++---\n 2 files changed, 12 insertions(+), 8 deletions(-)
Fusion-Task-Id: FN-7420
Fusion-Task-Lineage: 9144ddb5-3a72-4a37-a1d1-471871f3cbc4
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-02 11:38:32 -07:00
gsxdsm
306e516e3b
FN-7417: prevent Windows Terminal startup popups
...
Prevent embedded terminal startup from surfacing recurring native Windows Terminal popups.
- Keep Windows embedded terminal detection on supported shell processes instead of Windows Terminal hosts.
- Convert Windows PTY spawn failures into actionable inline guidance with explicit Retry behavior.
- Cover desktop/mobile terminal guidance, bootstrap retry loops, API error payloads, and Windows shell selection with regression tests.
- Document Windows embedded terminal behavior and add a patch changeset.
Files changed:
.changeset/FN-7417-windows-terminal-popup.md | 7 ++
docs/dashboard-guide.md | 2 +
.../components/__tests__/TerminalModal.test.tsx | 31 ++++++++
.../hooks/__tests__/useTerminalSessions.test.ts | 26 ++++++-
.../dashboard/app/hooks/useTerminalSessions.ts | 18 ++++-
.../src/__tests__/routes-automation.test.ts | 31 +++++++-
.../src/__tests__/terminal-service.test.ts | 86 ++++++++++++++++++++++
packages/dashboard/src/terminal-service.ts | 32 ++++++--
8 files changed, 222 insertions(+), 11 deletions(-)
Fusion-Task-Id: FN-7417
Fusion-Task-Lineage: edeb7743-c106-47e8-9506-6edaad821cfb
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-02 11:38:31 -07:00
gsxdsm
3453d164ea
FN-7416: preserve dashboard project selection in URL
...
Keep dashboard project selection in the URL so refreshing or sharing the page retains the active project.
- Hydrate current project state from the existing ?project= query parameter before falling back to cached or global defaults.
- Update project selection, setup completion, overview, and unregister flows to preserve or clear the project URL parameter without dropping other URL state.
- Cover URL-driven project persistence and query/hash preservation with hook tests.
- Document the refresh-safe project URL behavior and add a patch changeset.
Files changed:
.changeset/fn-7416-project-url-persistence.md | 7 +++
docs/dashboard-guide.md | 2 +
packages/dashboard/app/App.tsx | 2 +-
.../app/hooks/__tests__/useCurrentProject.test.ts | 64 ++++++++++++++++++++++
.../app/hooks/__tests__/useProjectActions.test.ts | 40 +++++++++++++-
packages/dashboard/app/hooks/useCurrentProject.ts | 54 ++++++++++++++++--
packages/dashboard/app/hooks/useProjectActions.ts | 5 ++
packages/dashboard/app/utils/projectUrlState.ts | 24 ++++++++
8 files changed, 190 insertions(+), 8 deletions(-)
Fusion-Task-Id: FN-7416
Fusion-Task-Lineage: 2d640ae6-629f-4632-9014-986320acfef5
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-02 11:38:31 -07:00
gsxdsm
777f64750c
FN-7418: fix Cursor CLI Windows shim spawning
...
Fix Cursor runtime probes to execute Windows cmd and bat shims reliably while preserving diagnostics.
- Run shared Cursor CLI probe and discovery spawns through the shell only on Windows.
- Surface bounded spawn error details in unavailable Cursor probe reasons.
- Cover Windows shell spawning, failure diagnostics, probe, and process-manager behavior with tests.
- Document the Windows PATH shim invocation contract and add a patch changeset.
Files changed:
.changeset/fn-7418-cursor-cli-windows-cmd.md | 7 ++
docs/cursor-cli-contract.md | 17 ++++
.../src/__tests__/cli-spawn.test.ts | 103 +++++++++++++++++++++
.../src/__tests__/probe.test.ts | 44 ++++++++-
.../src/__tests__/process-manager.test.ts | 24 ++++-
.../fusion-plugin-cursor-runtime/src/cli-spawn.ts | 41 ++++++--
plugins/fusion-plugin-cursor-runtime/src/probe.ts | 14 ++-
7 files changed, 236 insertions(+), 14 deletions(-)
Fusion-Task-Id: FN-7418
Fusion-Task-Lineage: d689bea7-4676-4190-a60a-f85efab90aba
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-02 11:38:31 -07:00
gsxdsm
4178e7d325
FN-7415: Delete stale executor pause quarantine
...
Delete the expired executor pause quarantine and its stale direct-dispatch coverage.
- Remove the obsolete executor-pause test suite after the graph runtime cutover.
- Clear the matching Vitest exclude and quarantine-ledger entry.
- Refresh test audit, timing, line-count, and planning references for the deleted suite.
Files changed:
...7-001-refactor-workflow-runtime-cutover-plan.md | 2 +-
docs/test-value-audit.json | 102 -
.../engine/src/__tests__/executor-pause.test.ts | 3061 --------------------
packages/engine/vitest.config.ts | 5 -
scripts/__tests__/test-velocity-baseline.test.mjs | 2 +-
scripts/lib/test-quarantine.json | 8 +-
scripts/line-count-baseline.json | 1 -
scripts/test-timings.json | 1 -
8 files changed, 3 insertions(+), 3179 deletions(-)
Fusion-Task-Id: FN-7415
Fusion-Task-Lineage: 3d1551c8-1353-47cb-a70f-d88e733a6652
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-02 11:38:31 -07:00
gsxdsm
00ce5d6a27
FN-7414: refresh test velocity quarantine baseline
...
Refresh the velocity baseline artifacts so live quarantine counts are reflected consistently.
- Add regression coverage for live quarantine ledger counts overriding stale report and history values.
- Update the weekly velocity baseline report to show the current quarantine count and deltas.
- Append the latest measured velocity history row with quarantine count one.
Files changed:
docs/test-velocity-baseline.md | 22 ++---
scripts/__tests__/test-velocity-baseline.test.mjs | 75 +++++++++++++++
scripts/test-velocity-history.json | 112 ++++++++++++++++++++++
3 files changed, 198 insertions(+), 11 deletions(-)
Fusion-Task-Id: FN-7414
Fusion-Task-Lineage: 7c6cd47c-482d-426c-a714-79da33d4591d
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-02 11:38:31 -07:00
gsxdsm
85809103cd
FN-7413: configure agent permissions across lifetimes
...
Enable explicit capability grants and runtime permission policies for both durable and ephemeral agents.
- Persist normalized agent capability grants and leave missing permission policies to inherit project defaults at runtime.
- Apply action and tool approval gates to permanent agents, ephemeral agents, and fallback task workers.
- Add Agent Detail controls, translations, docs, tests, and a changeset for cross-lifetime agent permissions.
Files changed:
.changeset/fn-7413-agent-permissions.md | 7 ++
docs/agents.md | 12 ++--
docs/settings-reference.md | 11 ++-
packages/core/src/__tests__/agent-store.test.ts | 65 +++++++++++++----
packages/core/src/agent-store.ts | 31 ++++++---
packages/core/src/types.ts | 10 +--
.../dashboard/app/components/AgentDetailView.css | 48 +++++++++++++
.../dashboard/app/components/AgentDetailView.tsx | 81 +++++++++++++++++++++-
.../settings/sections/AgentPermissionsSection.tsx | 2 +-
.../dashboard/src/__tests__/routes-agents.test.ts | 8 +--
.../src/routes/register-agent-core-routes.ts | 32 ++++++---
.../src/__tests__/heartbeat-executor.test.ts | 14 +++-
packages/engine/src/agent-heartbeat.ts | 17 ++---
packages/engine/src/executor.ts | 57 +++++++--------
packages/i18n/locales/en/app.json | 12 +++-
packages/i18n/locales/es/app.json | 12 +++-
packages/i18n/locales/fr/app.json | 12 +++-
packages/i18n/locales/ko/app.json | 12 +++-
packages/i18n/locales/zh-CN/app.json | 12 +++-
packages/i18n/locales/zh-TW/app.json | 12 +++-
20 files changed, 363 insertions(+), 104 deletions(-)
Fusion-Task-Id: FN-7413
Fusion-Task-Lineage: bc004572-bde8-4d33-bb27-e941a5bc8884
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-02 11:38:31 -07:00
gsxdsm
377eee64af
FN-7410: allow archived task deletion
...
Allow archived task snapshots to be deleted while preserving soft-delete tombstones.
- Restore cold archived snapshots into the tasks table before applying delete tombstones.
- Remove archive snapshots after deletion and preserve allowResurrection semantics.
- Cover archived deletion through store, API, UI menu, docs, and changeset updates.
Files changed:
.changeset/fn-7410-delete-archived-tasks.md | 7 ++
docs/task-management.md | 3 +-
.../core/src/__tests__/soft-delete-tasks.test.ts | 129 +++++++++++++++++++++
packages/core/src/store.ts | 25 +++-
.../components/__tests__/TaskContextMenu.test.tsx | 19 +++
.../src/__tests__/routes-tasks-ops.test.ts | 24 ++++
6 files changed, 204 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-7410
Fusion-Task-Lineage: fa7d9983-e62c-4849-89d8-1ae5f6134815
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-02 11:38:30 -07:00
gsxdsm
1a523e7d1b
FN-7407: enable done-task planner refinements
...
Enable planner chat on completed tasks and let clear follow-up requests create refinements.
- Allow task-planner chat sessions for done tasks while keeping archived tasks blocked.
- Add a task-scoped refinement tool that creates follow-up tasks only from completed source tasks.
- Render refinement creation, pending, and failure states in the planner chat transcript.
- Extend planner-chat context, route, manager, and component tests for done-task chat and refinement behavior.
- Document the completed-task planner chat behavior and add a patch changeset.
Files changed:
.changeset/fn-7407-done-planner-chat.md | 7 ++
docs/dashboard-guide.md | 5 +-
.../app/components/TaskPlannerChatTab.tsx | 50 +++++++-
.../__tests__/TaskPlannerChatTab.test.tsx | 66 ++++++++++-
.../dashboard/src/__tests__/chat-manager.test.ts | 126 ++++++++++++++++++++-
.../dashboard/src/__tests__/chat-routes.test.ts | 41 ++++++-
.../__tests__/task-planner-chat-context.test.ts | 5 +-
packages/dashboard/src/chat.ts | 66 ++++++++++-
.../dashboard/src/routes/register-chat-routes.ts | 9 +-
.../dashboard/src/task-planner-chat-context.ts | 5 +-
10 files changed, 360 insertions(+), 20 deletions(-)
Fusion-Task-Id: FN-7407
Fusion-Task-Lineage: b3214d89-a59c-4682-b5cd-98d7d6cc09e2
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 23:44:05 -07:00
gsxdsm
9464f31caf
FN-7406: fix All workflows dropdown counts
...
Ensure All workflows dropdown counters report the shared aggregate without double-counting tasks.
- Reuse computeWorkflowStatusCounts directly in Board instead of re-summing a map that already includes the All workflows sentinel.
- Document the aggregate count invariant and add a published patch changeset.
- Extend Board, List, header, graph, and workflow count tests to cover exact All workflows totals.
Files changed:
.changeset/fn-7406-workflow-dropdown-counts.md | 7 +++
docs/dashboard-guide.md | 5 +-
packages/dashboard/app/components/Board.tsx | 17 +++---
.../app/components/__tests__/Board.test.tsx | 56 ++++++++++++++++++-
.../__tests__/GraphWorkflowSwitcherSlot.test.tsx | 8 ++-
.../__tests__/HeaderWorkflowSwitcherSlot.test.tsx | 8 ++-
.../app/components/__tests__/ListView.test.tsx | 62 ++++++++++++++++++++++
.../__tests__/workflowStatusCounts.test.ts | 48 +++++++++++++++--
8 files changed, 188 insertions(+), 23 deletions(-)
Fusion-Task-Id: FN-7406
Fusion-Task-Lineage: bb344c03-c349-47ea-9e8c-c445975f8e02
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 23:15:12 -07:00
gsxdsm
dbe637f2c9
FN-7402: publish workflow step activity runs
...
Publish workflow step lifecycle activity so dashboard analytics can count graph-owned execution.
- Emit best-effort agentRuns rows when workflow step sessions start and finish.
- Include task lineage, step metadata, terminal status, and token usage in workflow step activity records.
- Cover workflow step activity analytics and document dashboard Activity/Overview counting behavior.
Files changed:
.changeset/fn-7402-workflow-step-activity.md | 7 +
docs/dashboard-guide.md | 5 +-
.../core/src/__tests__/activity-analytics.test.ts | 44 +++++++
.../src/__tests__/step-session-executor.test.ts | 145 +++++++++++++++++++++
packages/engine/src/step-session-executor.ts | 104 ++++++++++++++-
5 files changed, 300 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-7402
Fusion-Task-Lineage: ecb2810d-da05-4fd0-a3bd-da72cae99a31
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 18:27:32 -07:00
gsxdsm
a4049971e5
FN-7401: add Glass Silver dashboard theme
...
Adds a frosted silver/gray dashboard color theme across app, desktop, and release metadata.
- Register glass-silver in shared theme types, selector options, and startup validation hooks.
- Add Glass Silver CSS tokens, swatch styling, and dashboard/desktop stylesheet preload coverage.
- Cover theme registration, dropdown/selector rendering, theme persistence, and CSS token invariants with tests.
- Document the new dashboard theme and publish a minor changeset for @runfusion/fusion.
Files changed:
.changeset/fn-7401-glass-silver-theme.md | 7 +
docs/dashboard-guide.md | 3 +-
packages/core/src/types.ts | 2 +
.../app/__tests__/glass-silver-theme.test.ts | 155 ++++++++++++++++++++
.../dashboard/app/components/ThemeSelector.css | 14 ++
.../components/__tests__/ThemeDropdown.test.tsx | 13 ++
.../components/__tests__/ThemeSelector.test.tsx | 16 +++
packages/dashboard/app/components/themeOptions.ts | 1 +
.../dashboard/app/hooks/__tests__/useTheme.test.ts | 15 ++
packages/dashboard/app/index.html | 2 +-
packages/dashboard/app/public/theme-data.css | 156 +++++++++++++++++++++
packages/desktop/src/renderer/index.html | 1 +
12 files changed, 383 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-7401
Fusion-Task-Lineage: e64f14cc-590e-458b-adf6-7c9baa488157
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 18:01:17 -07:00
gsxdsm
a1af5de609
fix(anthropic): restore direct OAuth execution for Claude subscriptions
...
Claude subscription (Max/Pro) chats regressed to 404/502/429 because
FN-7396 rerouted subscription OAuth to a /v1-based `anthropic-subscription`
runtime provider — reintroducing issue #1857 that FN-7391 had fixed. Both
routed the OAuth token to api.anthropic.com/v1, the surface that broke.
Proven in code that v0.51.0 (working) sent subscription OAuth directly to
/v1 via pi-ai's built-in `anthropic` provider (Claude Code impersonation:
Bearer + anthropic-beta oauth headers), NOT through the CLI. Restore that:
- auth-storage: getApiKey("anthropic") resolves subscription/legacy OAuth
again (raw API key still wins), so the built-in provider gets the token.
- pi.ts: remove the runtime reroute and the /v1 `anthropic-subscription`
execution provider so anthropic/* selections stay on the built-in provider.
- register-model-routes: advertise `anthropic` for OAuth users so direct
OAuth is selectable in the picker.
Three independent surfaces, no rerouting: direct OAuth, raw ANTHROPIC_API_KEY
(precedence), and explicit pi-claude-cli.
Fixes #1857
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-01 15:40:16 -07:00
gsxdsm
9c2a264322
FN-7398: restore Anthropic model selection
...
Restore Anthropic model selector discovery across API-key, OAuth subscription, and Claude CLI flows.
- Read injected auth storage when building /api/models so Settings connection state feeds model availability.
- Keep Anthropic subscription OAuth separate from direct Anthropic API-key rows while allowing enabled Claude CLI models to appear.
- Add regression coverage for selector rendering, stale empty catalog refresh, and authenticated model-route filtering.
- Document the restored Anthropic provider surfaces and add a patch changeset.
Files changed:
.changeset/fn-7398-anthropic-model-selector.md | 7 ++
docs/settings-reference.md | 4 +-
.../components/__tests__/ModelSelectorTab.test.tsx | 105 +++++++++++++++++
.../app/hooks/__tests__/useModelsCache.test.ts | 40 +++++++
.../dashboard/src/__tests__/routes-auth.test.ts | 125 ++++++++++++++++++++-
.../dashboard/src/routes/register-model-routes.ts | 60 +++++++++-
6 files changed, 333 insertions(+), 8 deletions(-)
Fusion-Task-Id: FN-7398
Fusion-Task-Lineage: 5d1b1b8e-9b8b-40fe-b76f-7d6142e0e21f
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 15:39:34 -07:00
gsxdsm
e85d25e383
FN-7395: fix packaged desktop launch assets
...
Fix installed desktop launches so they use packaged runtime assets without parsing caller workspaces.
- Resolve normal desktop launches from packaged CLI desktop assets, with explicit override and dev paths.
- Stage desktop runtime assets into the published CLI package and include them in npm files.
- Route desktop --no-auth into the embedded dashboard server and document installed/dev launch behavior.
- Cover invalid JSON caller directories, missing packaged assets, package contents, and CLI routing in tests.
Files changed:
.changeset/fn-7395-desktop-launcher.md | 7 ++
docs/cli-reference.md | 12 +-
packages/cli/package.json | 1 +
packages/cli/src/__tests__/bin.test.ts | 19 +++
packages/cli/src/__tests__/package-config.test.ts | 11 ++
packages/cli/src/bin.ts | 10 +-
.../cli/src/commands/__tests__/desktop.test.ts | 132 ++++++++++++++++++---
packages/cli/src/commands/desktop.ts | 85 ++++++++-----
packages/cli/tsup.config.ts | 60 ++++++++++
9 files changed, 285 insertions(+), 52 deletions(-)
Fusion-Task-Id: FN-7395
Fusion-Task-Lineage: e7a8d065-0d41-4fa3-9cea-1cfb5b466d16
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 15:39:34 -07:00
gsxdsm
19e59ec6c8
FN-7396: separate Anthropic OAuth routing paths
...
Separate Anthropic subscription OAuth execution from raw API-key and Claude CLI routing.
- Route subscription-backed Anthropic selections through a dedicated anthropic-subscription provider instead of raw anthropic API-key storage or implicit CLI execution.
- Preserve Anthropic OAuth refresh, status, usage, and re-login banner behavior across separated and legacy credential rows.
- Add dashboard and engine coverage for OAuth subscription auth, raw API-key isolation, and explicit Claude CLI routing.
- Document the separated Anthropic subscription, API-key, and CLI surfaces and add a release changeset.
Files changed:
.../fn-7396-anthropic-oauth-cli-api-paths.md | 7 ++
docs/dashboard-guide.md | 4 +-
docs/settings-reference.md | 12 ++-
.../__tests__/OAuthReloginBanner.test.tsx | 118 +++++++++++++++++++++
.../dashboard/src/__tests__/routes-auth.test.ts | 29 +++++
packages/dashboard/src/__tests__/usage.test.ts | 109 ++++++++++++++++++-
.../dashboard/src/routes/register-auth-routes.ts | 20 +++-
packages/dashboard/src/usage.ts | 21 +++-
packages/engine/src/__tests__/auth-storage.test.ts | 65 ++++++++++++
.../src/__tests__/pi-create-fn-agent.test.ts | 55 ++++++++--
packages/engine/src/auth-storage.ts | 61 +++++++++--
packages/engine/src/pi.ts | 70 ++++++++----
12 files changed, 521 insertions(+), 50 deletions(-)
Fusion-Task-Id: FN-7396
Fusion-Task-Lineage: f5f42a40-b855-46ad-b2ae-3509e903f286
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 15:39:34 -07:00
gsxdsm
1ccef81950
FN-7393: add planner chat task metrics access
...
Planner chat can now answer read-only task usage and timing questions with scoped metrics context.
- Add a task-scoped metrics tool for token, cost, runtime, timing-event, workflow-step, and per-model usage summaries.
- Wire planner chat to expose the metrics tool only for task-detail planner sessions.
- Cover metric aggregation, stale pricing uncertainty, chat tool routing, and planner context behavior with dashboard tests.
- Document planner chat metrics support and add a published package changeset.
Files changed:
.changeset/fn-7393-planner-metrics.md | 7 +
docs/dashboard-guide.md | 2 +-
.../dashboard/src/__tests__/chat-manager.test.ts | 153 +++++++
.../__tests__/task-planner-chat-metrics.test.ts | 243 +++++++++++
packages/dashboard/src/chat.ts | 61 ++-
.../dashboard/src/task-planner-chat-context.ts | 5 +-
.../dashboard/src/task-planner-chat-metrics.ts | 445 +++++++++++++++++++++
7 files changed, 912 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-7393
Fusion-Task-Lineage: aed7574e-67cf-49af-982f-dfd4620ebe0a
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 15:39:34 -07:00
gsxdsm
4beae7130d
FN-7392: suppress hidden planner chat unread badges
...
Suppress hidden task-planner chat replies from triggering the global unread badge while preserving opt-in common-feed behavior.
- Enrich chat message SSE payloads with session agent metadata and task chat common-feed visibility.
- Ignore hidden `task-planner:` assistant events in the chat unread badge hook.
- Cover hidden, visible, and legacy payload behavior with dashboard SSE and hook tests.
- Document the unread badge scope and add a patch changeset for the published CLI package.
Files changed:
.changeset/fn-7392-planner-chat-unread.md | 7 +
docs/dashboard-guide.md | 2 +-
.../app/components/__tests__/App.test.tsx | 55 ++++++++
.../app/hooks/__tests__/useChatUnreadBadge.test.ts | 110 ++++++++++++++++
packages/dashboard/app/hooks/useChatUnreadBadge.ts | 32 ++++-
packages/dashboard/src/__tests__/sse.test.ts | 141 ++++++++++++++++++++-
packages/dashboard/src/sse.ts | 36 +++++-
7 files changed, 378 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-7392
Fusion-Task-Lineage: 13fd5c51-eefa-4088-979b-005c8b217f89
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 15:39:34 -07:00
gsxdsm
775ff5fb9c
FN-7391: route Anthropic subscription chats through Claude CLI
...
Keep Anthropic OAuth subscription credentials away from the direct /v1 provider while preserving raw API-key routing.
- Treat direct anthropic auth as raw API-key-only in auth storage and model discovery.
- Re-route persisted anthropic model selections to the Claude CLI provider when no raw Anthropic API key is configured.
- Add regression coverage for OAuth-only routing, raw API-key preservation, and provider list separation.
- Document the distinct raw API key, OAuth subscription, and Claude CLI routes.
Files changed:
.../fn-7391-anthropic-subscription-cli-routing.md | 7 ++
docs/settings-reference.md | 2 +-
.../dashboard/src/__tests__/routes-auth.test.ts | 74 ++++++++++++++
.../dashboard/src/routes/register-model-routes.ts | 27 +++++-
packages/engine/src/__tests__/auth-storage.test.ts | 108 +++++++--------------
.../src/__tests__/pi-create-fn-agent.test.ts | 100 +++++++++++++++++++
packages/engine/src/auth-storage.ts | 45 ++++-----
packages/engine/src/pi.ts | 61 ++++++++++++
8 files changed, 319 insertions(+), 105 deletions(-)
Fusion-Task-Id: FN-7391
Fusion-Task-Lineage: d1fecc2d-7f31-408c-bf65-0e65b7fd88b1
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 15:39:33 -07:00
gsxdsm
18b07b5b7d
FN-7388: Fix folded Android terminal mobile sizing
...
Fix Android foldable terminal surfaces so initial folded panes use mobile viewport geometry.\n\n- Use touch visualViewport dimensions when classifying terminal mobile mode.\n- Apply mobile TerminalModal shell styles outside media queries for folded Android panes.\n- Cover folded Android viewport behavior in terminal and viewport-mode tests.\n- Document the folded viewport baseline invariant and add a patch changeset.\n\nFiles changed:\n .changeset/fn-7388-android-folded-terminal-spacing.md | 7 +++\n docs/solutions/ui-bugs/mobile-terminal-folded-viewport-baseline.md | 8 ++-\n packages/dashboard/app/components/SessionTerminal.tsx | 18 +++++-\n packages/dashboard/app/components/TerminalModal.css | 37 +++++++++++\n packages/dashboard/app/components/TerminalModal.tsx | 31 ++++++++-\n packages/dashboard/app/components/__tests__/SessionTerminal.mobile.test.tsx | 31 +++++++++\n packages/dashboard/app/components/__tests__/TerminalModal.test.tsx | 73 ++++++++++++++++++++++\n packages/dashboard/app/hooks/__tests__/useViewportMode.test.ts | 29 ++++++++-\n packages/dashboard/app/hooks/useViewportMode.ts | 26 +++++++-\n 9 files changed, 251 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-7388
Fusion-Task-Lineage: cdf2ef0d-be1f-4414-9113-17ffebdecde5
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 15:39:33 -07:00
gsxdsm
ec0fa960d7
FN-7382: add triage plan auto-approve toggle
...
Add a board-column shortcut for toggling project plan auto-approval.
- Surface an Auto-approve plan switch in Triage and workflow intake/hold column menus.
- Wire the dashboard setting hook to persist planApprovalMode between workflow and auto-approve-all with optimistic rollback.
- Cover legacy and workflow board propagation plus column menu behavior with tests.
- Document the shortcut and add a patch changeset for the published CLI package.
Files changed:
.changeset/fn-7382-triage-auto-approve-toggle.md | 7 ++
docs/dashboard-guide.md | 2 +
docs/settings-reference.md | 2 +-
packages/dashboard/app/App.tsx | 4 +
packages/dashboard/app/components/Board.tsx | 7 +-
packages/dashboard/app/components/Column.tsx | 35 ++++++-
.../app/components/__tests__/Board.test.tsx | 55 +++++++++-
.../app/components/__tests__/Column.test.tsx | 75 ++++++++++++++
.../app/components/dashboard/MainContent.tsx | 6 ++
.../dashboard/app/components/dashboard/types.ts | 2 +
.../app/hooks/__tests__/useAppSettings.test.ts | 114 +++++++++++++++++++++
packages/dashboard/app/hooks/useAppSettings.ts | 39 +++++++
12 files changed, 343 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-7382
Fusion-Task-Lineage: 1db96b50-3a8f-4074-b957-c30d1745aa23
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 11:01:50 -07:00
gsxdsm
af6e671e72
FN-7385: preserve live worktrees with fresh fallback
...
Preserve active worktree owners by retrying acquisition on a fresh sibling checkout.
- Add executor fallback that detects active cleanup refusals and creates bounded sibling branches in fresh generated worktrees.\n- Cover DB-only, same-task workflow-step, existing-branch, and exhausted-suffix conflict paths with regression tests.\n- Document the live worktree conflict fallback and add a patch changeset for the published CLI package.\n\nFiles changed:\n .../fn-7385-active-worktree-fresh-fallback.md | 7 +\n docs/architecture.md | 1 +\n .../__tests__/executor-worktree-conflict.test.ts | 103 +++++++++++++-\n .../engine/src/__tests__/executor-worktree.test.ts | 153 ++++++++++++++++++---\n packages/engine/src/executor.ts | 90 ++++++++----\n 5 files changed, 312 insertions(+), 42 deletions(-)
Fusion-Task-Id: FN-7385
Fusion-Task-Lineage: 02c31656-1248-49c0-9063-0750cc8e41c6
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 10:55:57 -07:00
gsxdsm
d94c3591d3
FN-7381: honor project auto plan approval
...
Honor project-level auto plan approval across fresh and recovered triage finalization.
- Merge effective workflow settings during approved-task recovery before resolving the manual plan approval gate.
- Keep release authorization and Workflow Plan Review independent from manual plan approval bypasses.
- Add regression coverage for stored workflow approval settings overridden by project auto approval.
- Document the planApprovalMode precedence and release the fix as a patch.
Files changed:
.changeset/fn-7381-auto-plan-approval.md | 7 ++++
docs/settings-reference.md | 2 +-
docs/workflow-steps.md | 2 ++
.../src/__tests__/effective-settings-merge.test.ts | 12 +++++++
.../triage-plan-review-unavailable-retry.test.ts | 27 +++++++++++++-
packages/engine/src/__tests__/triage.test.ts | 42 ++++++++++++++++++++++
packages/engine/src/triage.ts | 13 ++++---
7 files changed, 99 insertions(+), 6 deletions(-)
Fusion-Task-Id: FN-7381
Fusion-Task-Lineage: c00fd0d9-ec0a-4dc5-8d6f-b49640157365
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 10:49:58 -07:00