gsxdsm
e8dc2ae6d1
FN-7498: show original task prompts in Plan tab
...
Display the initial task prompt separately from the generated plan in task details.
- Add a read-only Original prompt section above generated PROMPT.md content in task detail Plan views.
- Preserve plain-text formatting and responsive wrapping for original prompts while leaving plan edit/revision controls scoped to generated prompts.
- Cover modal, embedded, empty-state, CSS, docs, and release-note behavior.
Files changed:
.changeset/fn-7498-original-task-prompt.md | 7 ++
docs/dashboard-guide.md | 1 +
.../dashboard/app/components/TaskDetailModal.css | 30 +++++
.../dashboard/app/components/TaskDetailModal.tsx | 18 +++
...lModal.inline-editing-and-integrations.test.tsx | 127 ++++++++++++++++++++-
5 files changed, 182 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-7498
Fusion-Task-Lineage: df83c73d-d731-4ba4-942b-bd93ec1b9712
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-04 10:42:20 -07:00
gsxdsm
efa8105036
FN-7495: add settings search
...
Add a searchable Settings navigation that filters visible sections by setting names and keywords.
- Add a Settings search field with clear and empty-state affordances for desktop and mobile layouts.
- Filter only the already-visible Settings sections while preserving matching group headers and mobile section labels.
- Add searchable section metadata, localized labels, tests, docs, and a release changeset.
Files changed:
.changeset/fn-7495-settings-search.md | 7 +
docs/dashboard-guide.md | 5 +
.../dashboard/app/components/SettingsModal.css | 97 +++++-
.../dashboard/app/components/SettingsModal.tsx | 346 ++++++++++++++++-----
.../__tests__/SettingsModal.general.test.tsx | 71 +++++
.../components/__tests__/settings-mobile.test.tsx | 25 ++
.../settings/sections/McpServersCard.tsx | 2 +-
packages/i18n/locales/en/app.json | 11 +
8 files changed, 475 insertions(+), 89 deletions(-)
Fusion-Task-Id: FN-7495
Fusion-Task-Lineage: 1d703059-6156-4d20-afbd-3cdb64e3e9f3
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-04 10:42:20 -07:00
gsxdsm
b42be87ad1
FN-7493: keep task popups on board layer
...
Keep task-detail popups below global utility windows while preserving Activity menu visibility.
- Route ordinary task-detail FloatingWindow instances through a lower task-detail z-index band.
- Emit and consume popup geometry-change signals so root-portaled Activity menus stay attached during drag and resize.
- Extend dashboard tests and docs for popup layering and Activity dropdown behavior.
Files changed:
.changeset/fn-7493-task-popup-layer.md | 7 +++
docs/dashboard-guide.md | 8 ++-
docs/settings-reference.md | 2 +-
packages/dashboard/app/App.tsx | 4 ++
.../App.taskDetailFloatingGeometry.test.tsx | 45 +++++++++++++-
.../dashboard/app/components/FloatingWindow.tsx | 31 ++++++++--
.../dashboard/app/components/TaskDetailModal.css | 3 +
.../dashboard/app/components/TaskDetailModal.tsx | 27 ++++++++-
.../components/__tests__/FloatingWindow.test.tsx | 32 +++++++++-
.../FloatingWindowStack.cross-type.test.tsx | 48 ++++++++++++---
.../TaskDetailModal.task-activity-chat.test.tsx | 68 ++++++++++++++++++++++
.../app/components/floatingWindowStack.ts | 22 +++++--
12 files changed, 272 insertions(+), 25 deletions(-)
Fusion-Task-Id: FN-7493
Fusion-Task-Lineage: 5f1ec72c-f8dc-44ee-b303-319e0faac0f9
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-04 10:42:19 -07:00
gsxdsm
b42ba9f515
FN-7485: keep Activity menu open on mobile iOS
...
Keep the task-detail Activity view picker usable during mobile iOS opening taps.
- Add a short visualViewport opening guard for the root-portaled Activity views menu while preserving normal close behavior afterward.
- Reset menu position and guard state consistently on outside click, Escape, selection, task changes, and tab toggles.
- Cover the iOS visualViewport echo, portal/CSS contract, and documentation plus a patch changeset.
Files changed:
.changeset/activity-menu-ios.md | 7 +
docs/dashboard-guide.md | 3 +-
.../dashboard/app/components/TaskDetailModal.tsx | 68 +++++++---
.../__tests__/TaskDetailModal.css.test.ts | 9 +-
.../TaskDetailModal.task-activity-chat.test.tsx | 141 ++++++++++++++++++++-
5 files changed, 210 insertions(+), 18 deletions(-)
Fusion-Task-Id: FN-7485
Fusion-Task-Lineage: 291331c4-453c-481b-b991-41f57db23e3b
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-03 21:48:30 -07:00
gsxdsm
a2b09f277d
FN-7479: route dock task clicks to popups
...
Make right-dock task list clicks follow the task popup preference.
- Thread popup routing into the right-dock Tasks list while preserving embedded dock detail when popups are disabled.
- Cover popup-enabled and popup-disabled dock list behavior with controller tests.
- Update settings copy, operator docs, and release notes for the expanded popup setting scope.
Files changed:
.changeset/fn-7479-right-dock-task-popup.md | 7 ++
docs/dashboard-guide.md | 7 +-
docs/settings-reference.md | 4 +-
packages/dashboard/app/App.tsx | 2 +-
.../app/components/__tests__/RightDock.test.tsx | 129 +++++++++++++++++++++
.../settings/sections/AppearanceSection.tsx | 4 +-
.../app/components/useRightDockController.tsx | 21 +++-
7 files changed, 163 insertions(+), 11 deletions(-)
Fusion-Task-Id: FN-7479
Fusion-Task-Lineage: 953f6a77-8cb9-409e-be4b-f1dbdc6e1b42
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-03 21:47:00 -07:00
gsxdsm
50cdab17b9
FN-7474: add GitHub onboarding action choices
...
Add first-run onboarding paths for GitHub OAuth and GitHub CLI setup while preserving existing GitHub warning behavior.
- Add a GitHub onboarding action model for OAuth, authenticated gh CLI, unauthenticated gh CLI, missing gh CLI, and skip states.
- Render in-flow GitHub OAuth connection, gh auth login guidance, and gh CLI install guidance with mobile styling and coverage.
- Update onboarding docs, locale resources, and the release changeset as a minor user-facing feature.
- Preserve the one-day GitHub warning-delay copy and dashboard OAuth browser behavior docs from main.
Files changed:
.changeset/fn-7474-github-onboarding-actions.md | 7 +
docs/dashboard-guide.md | 2 +-
docs/getting-started.md | 2 +-
packages/cli/vitest.config.ts | 12 ++
.../app/components/ModelOnboardingModal.css | 68 ++++++++-
.../app/components/ModelOnboardingModal.tsx | 153 +++++++++++++++++++--
.../__tests__/ModelOnboardingModal.test.tsx | 101 +++++++++++++-
packages/dashboard/vitest.config.ts | 20 +++
packages/i18n/locales/en/app.json | 11 +-
packages/i18n/locales/es/app.json | 11 +-
packages/i18n/locales/fr/app.json | 11 +-
packages/i18n/locales/ko/app.json | 11 +-
packages/i18n/locales/zh-CN/app.json | 11 +-
packages/i18n/locales/zh-TW/app.json | 11 +-
packages/i18n/src/resources.d.ts | 11 +-
15 files changed, 413 insertions(+), 29 deletions(-)
Fusion-Task-Id: FN-7474
Fusion-Task-Lineage: c06d3db5-da4b-43f7-8b74-a41f6a041029
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-03 21:46:59 -07:00
gsxdsm
ced783ea79
FN-7473: open desktop Anthropic OAuth in browser
...
Route desktop OAuth popups to the system browser while preserving Anthropic subscription login polling.\n\n- Add Electron window-open handling that keeps internal Fusion navigation in-app and external http(s) OAuth URLs in the system browser.\n- Cover Anthropic Subscription polling so login-in-progress states do not show a false incomplete-login toast.\n- Document desktop OAuth browser handoff behavior and add a patch changeset.\n\nFiles changed:\n .../fn-7473-desktop-anthropic-oauth-browser.md | 7 ++\n docs/dashboard-guide.md | 2 +-\n docs/settings-reference.md | 2 +-\n .../__tests__/SettingsModal.models-auth.test.tsx | 76 ++++++++++++++++++++++\n .../desktop/src/__tests__/main-integration.test.ts | 2 +\n .../desktop/src/__tests__/main-local-mode.test.ts | 3 +-\n .../desktop/src/__tests__/main.integration.test.ts | 2 +\n packages/desktop/src/__tests__/main.test.ts | 54 ++++++++++++++-\n packages/desktop/src/main.ts | 60 +++++++++++++++++-\n 9 files changed, 203 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-7473
Fusion-Task-Lineage: 3d6b0acd-536c-4f7d-8c6b-35eb519b46bb
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-03 21:45:21 -07:00
gsxdsm
315f3bc32c
FN-7470: show Git prerequisite during onboarding
...
Add Git availability checks to the first-run GitHub onboarding flow so missing host prerequisites are visible before project setup.
- Probe the server-host Git CLI with a bounded core helper and expose status through the auth status API.
- Render ready/missing Git prerequisite guidance in the GitHub onboarding step with install instructions and localized strings.
- Cover the probe, auth route, and onboarding UI states with regression tests, docs, and a changeset.
Files changed:
.changeset/fn-7470-git-onboarding.md | 7 ++
docs/dashboard-guide.md | 2 +
docs/getting-started.md | 2 +-
packages/core/src/__tests__/git-cli-status.test.ts | 83 +++++++++++++++++++++
packages/core/src/git-cli-status.ts | 56 ++++++++++++++
packages/core/src/index.ts | 7 ++
packages/dashboard/app/api/legacy.ts | 8 ++
.../app/components/ModelOnboardingModal.css | 59 +++++++++++++++
.../app/components/ModelOnboardingModal.tsx | 53 ++++++++++++-
.../__tests__/ModelOnboardingModal.test.tsx | 87 ++++++++++++++++++++++
.../dashboard/src/__tests__/routes-auth.test.ts | 62 ++++++++++++++-
.../dashboard/src/routes/register-auth-routes.ts | 13 +++-
packages/i18n/locales/en/app.json | 11 ++-
packages/i18n/locales/es/app.json | 44 ++++++++++-
packages/i18n/locales/fr/app.json | 44 ++++++++++-
packages/i18n/locales/ko/app.json | 44 ++++++++++-
packages/i18n/locales/zh-CN/app.json | 44 ++++++++++-
packages/i18n/locales/zh-TW/app.json | 44 ++++++++++-
packages/i18n/src/resources.d.ts | 9 +++
19 files changed, 661 insertions(+), 18 deletions(-)
Fusion-Task-Id: FN-7470
Fusion-Task-Lineage: 56d6f118-0d82-4f89-bcaa-b01e72a1bf8b
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-03 21:45:21 -07:00
gsxdsm
50786f29d4
FN-7475: delay GitHub setup warnings
...
Delay dashboard GitHub setup warnings until the project grace period expires while keeping AI setup warnings immediate.
- Add per-project GitHub warning delay state and persistence.
- Route dashboard GitHub warnings to Settings → Authentication with a Connect GitHub action.
- Hide non-actionable GitHub-only warnings in the New Task modal and update localized copy, docs, and tests.
Files changed:
.changeset/fn-7475-github-setup-warning.md | 7 ++
docs/dashboard-guide.md | 6 +
packages/dashboard/app/App.tsx | 11 +-
packages/dashboard/app/components/NewTaskModal.tsx | 8 +-
.../app/components/SetupWarningBanner.css | 10 ++
.../app/components/SetupWarningBanner.tsx | 18 ++-
.../app/components/__tests__/NewTaskModal.test.tsx | 46 ++++++-
.../__tests__/SetupWarningBanner.test.tsx | 40 ++++++
.../app/components/dashboard/DashboardBanners.tsx | 3 +
.../dashboard/__tests__/DashboardBanners.test.tsx | 125 ++++++++++++++++++-
.../dashboard/app/components/dashboard/types.ts | 1 +
.../__tests__/useGithubSetupWarningDelay.test.ts | 134 +++++++++++++++++++++
.../app/hooks/useGithubSetupWarningDelay.ts | 96 +++++++++++++++
packages/dashboard/app/utils/projectStorage.ts | 1 +
packages/i18n/locales/en/app.json | 5 +-
packages/i18n/locales/es/app.json | 5 +-
packages/i18n/locales/fr/app.json | 5 +-
packages/i18n/locales/ko/app.json | 5 +-
packages/i18n/locales/zh-CN/app.json | 5 +-
packages/i18n/locales/zh-TW/app.json | 5 +-
packages/i18n/src/resources.d.ts | 127 +++++++++++++------
21 files changed, 606 insertions(+), 57 deletions(-)
Fusion-Task-Id: FN-7475
Fusion-Task-Lineage: 5bf1fffa-b58c-42a1-b170-367a4c20eaaf
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-03 21:45:21 -07:00
gsxdsm
b800f7d0df
FN-7469: select newly created project directories
...
Project setup now targets folders immediately after they are created from the directory picker.
- Add an opt-in DirectoryPicker mode that selects the API-returned created folder path.
- Enable the mode for setup wizard and project setup forms while preserving other picker behavior.
- Clear wizard path errors on path changes and document the setup behavior.
- Cover created-folder selection and default-picker preservation with dashboard tests.
Files changed:
.../fn-7469-select-created-project-directory.md | 7 ++
docs/dashboard-guide.md | 2 +
docs/getting-started.md | 1 +
.../dashboard/app/components/DirectoryPicker.tsx | 16 +++-
.../dashboard/app/components/SetupProjectForm.tsx | 1 +
.../dashboard/app/components/SetupWizardModal.tsx | 3 +-
.../components/__tests__/DirectoryPicker.test.tsx | 101 +++++++++++++++++----
.../components/__tests__/SetupProjectForm.test.tsx | 10 ++
.../components/__tests__/SetupWizardModal.test.tsx | 43 ++++++++-
9 files changed, 162 insertions(+), 22 deletions(-)
Fusion-Task-Id: FN-7469
Fusion-Task-Lineage: 1883262f-3fdf-4583-9bb0-e9435039e17d
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-03 21:45:20 -07:00
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
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
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
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
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
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
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
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
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
fed60ecff6
FN-7364: hide task chats from common feed by default
...
Hide task-detail planner chats from the common Chat feed unless a project opts in.
- Add a project setting and Settings UI toggle for showing populated task chats in the common feed.
- Filter task-planner sessions on chat list routes and avoid stale cached/SSE planner rows in the Chat hook.
- Cover default-hidden and opt-in behavior with route, hook, settings, and parity tests.
- Document the Chat feed behavior and include a patch changeset.
Files changed:
.changeset/fn-7364-task-chat-feed-setting.md | 7 ++
docs/dashboard-guide.md | 2 +
.../core/src/__tests__/settings-parity.test.ts | 8 +++
packages/core/src/settings-schema.ts | 5 ++
packages/core/src/types.ts | 5 ++
.../__tests__/SettingsModal.general.test.tsx | 18 +++++
.../settings/sections/GeneralSection.tsx | 9 +++
.../dashboard/app/hooks/__tests__/useChat.test.ts | 65 +++++++++++++++++
packages/dashboard/app/hooks/useChat.ts | 22 ++++--
.../dashboard/src/__tests__/chat-routes.test.ts | 82 +++++++++++++++++++++-
.../dashboard/src/routes/register-chat-routes.ts | 13 +++-
11 files changed, 227 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-7364
Fusion-Task-Lineage: 79a0706c-ba7f-4417-b88b-c5282ae7877c
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 08:50:29 -07:00
gsxdsm
d93fac0cc0
FN-7365: allow task popups on every viewport
...
Broaden board task popup routing so the existing popup setting works outside mobile.
- Route ordinary board-card opens to the task popup on desktop, tablet, and mobile when the popup setting is enabled.
- Rename the Appearance setting copy while preserving the stored openMobileTasksInPopup key for compatibility.
- Update tests, documentation, settings schema comments, and the published package changeset for the all-viewport behavior.
Files changed:
.changeset/fn-7365-task-popups-all-viewports.md | 7 ++++
docs/dashboard-guide.md | 6 ++--
docs/settings-reference.md | 2 +-
packages/core/src/settings-schema.ts | 4 +--
packages/core/src/types.ts | 6 ++--
packages/dashboard/app/App.tsx | 6 ++--
.../__tests__/App.openTasksInRightSidebar.test.ts | 42 +++++++++++++++++-----
.../settings/sections/AppearanceSection.tsx | 5 +--
.../sections/__tests__/AppearanceSection.test.tsx | 10 +++---
9 files changed, 62 insertions(+), 26 deletions(-)
Fusion-Task-Id: FN-7365
Fusion-Task-Lineage: 58713922-3ff8-4cc9-8f81-26c1e982819e
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 08:32:29 -07:00
gsxdsm
e4eb8b6190
FN-7363: prevent mobile task long-press text selection
...
Prevent Board task long-press gestures from selecting card text while preserving editing controls.
- Disable native text selection and WebKit touch callouts on non-editing task cards.
- Prevent touch/pen pointer-down defaults before the long-press context-menu timer starts.
- Cover the mobile selection behavior with component and CSS regression tests and document the Board behavior.
Files changed:
.changeset/fn-7363-mobile-board-text-selection.md | 7 ++++
docs/dashboard-guide.md | 5 +--
packages/dashboard/app/components/TaskCard.css | 17 ++++++++++
packages/dashboard/app/components/TaskCard.tsx | 5 +++
.../app/components/__tests__/TaskCard.test.tsx | 39 ++++++++++++++++++++++
.../app/components/__tests__/board-mobile.test.tsx | 24 +++++++++++++
6 files changed, 95 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-7363
Fusion-Task-Lineage: c683ab3b-2caa-4b45-a455-0cc163fd52cc
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 08:10:05 -07:00
gsxdsm
f04f01db1d
FN-7362: Fix board task context menu clipping
...
Render Board task context menus as viewport overlays so column clipping no longer hides actions.
- Portal TaskCard context menus to document.body and position them with viewport coordinates.
- Clamp context menus after render and close them when the task identity or column changes.
- Update TaskCard coverage for overflow escape, keyboard/touch placement, and menu lifecycle behavior.
- Document the overlay behavior and add a patch changeset for @runfusion/fusion.
Files changed:
.changeset/fn-7362-board-context-menu-overlay.md | 7 +
docs/dashboard-guide.md | 5 +-
packages/dashboard/app/components/TaskCard.css | 6 +-
packages/dashboard/app/components/TaskCard.tsx | 38 ++--
.../app/components/__tests__/TaskCard.test.tsx | 242 ++++++++++++++++-----
5 files changed, 211 insertions(+), 87 deletions(-)
Fusion-Task-Id: FN-7362
Fusion-Task-Lineage: 8f2fc0b1-ad63-402e-a960-6a09cbe9c893
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 07:33:57 -07:00
gsxdsm
98ca9ac090
FN-7353: fix mobile task menu action taps
...
Fix task context menu touch activation so mobile popup actions complete reliably.
- Commit touch and pen menu actions on pointer release while preserving mouse click activation.
- Guard synthesized mobile clicks so each selected task action runs exactly once and closes the menu.
- Cover Board, List, shared context menu, and Task Detail mobile popup action selection in tests and docs.
- Add a patch changeset for the published CLI bundle.
Files changed:
.changeset/fn-7353-mobile-popup-context-menu.md | 7 ++++
docs/dashboard-guide.md | 12 ++++---
.../dashboard/app/components/TaskContextMenu.tsx | 41 ++++++++++++++++++----
.../app/components/__tests__/ListView.test.tsx | 12 +++++--
.../app/components/__tests__/TaskCard.test.tsx | 26 +++++++++++---
.../components/__tests__/TaskContextMenu.test.tsx | 23 ++++++++++++
.../TaskDetailModal.definition-actions.test.tsx | 31 ++++++++++++++++
7 files changed, 133 insertions(+), 19 deletions(-)
Fusion-Task-Id: FN-7353
Fusion-Task-Lineage: 4de96306-1bcc-403d-88fa-be4ec0d9149d
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 07:33:56 -07:00
gsxdsm
7457f04287
FN-7355: reuse standard chat surface for planner
...
Task planner chat now renders through the shared Chat surface while preserving task-scoped behavior.
- Extract shared standard chat message, streaming, tool-call, and action-button rendering for reuse outside ChatView.
- Update TaskPlannerChatTab to use the shared surface for messages, thinking output, mobile send dedupe, and stop generation.
- Cover planner chat standard-surface rendering and mobile first-tap behavior in tests, docs, and a patch changeset.
Files changed:
.changeset/fn-7355-standard-planner-chat.md | 7 +
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/ChatView.css | 18 +
packages/dashboard/app/components/ChatView.tsx | 795 ++-------------------
.../app/components/StandardChatSurface.tsx | 417 +++++++++++
.../app/components/TaskPlannerChatTab.css | 39 +-
.../app/components/TaskPlannerChatTab.tsx | 246 ++++---
...etailModal.responsive-and-dependencies.test.tsx | 4 +-
.../__tests__/TaskPlannerChatTab.test.tsx | 52 ++
9 files changed, 693 insertions(+), 887 deletions(-)
Fusion-Task-Id: FN-7355
Fusion-Task-Lineage: 608ee0d7-3a1b-4f5f-a295-d3a4e62d759e
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 07:33:56 -07:00
gsxdsm
b3b01bc25d
FN-7357: add all workflows to top-level selectors
...
Extend the dashboard aggregate workflow view across top-level workflow selectors without leaking its sentinel into task creation.
- Add All workflows as an aggregate option for List, Header, Planning/Missions, and Graph selectors.\n- Preserve real workflow handoffs for quick create, planning, missions, and workflow editor entry points.\n- Include aggregate workflow counts and cross-surface regression coverage, plus docs and a changeset.\n\nFiles changed:\n .changeset/fn-7357-all-workflows-selectors.md | 7 +++\n docs/dashboard-guide.md | 9 ++--\n .../workflow-selection-cross-surface.test.tsx | 20 ++++---\n .../app/components/GraphWorkflowSwitcherSlot.tsx | 12 +++--\n .../app/components/HeaderWorkflowSwitcherSlot.tsx | 10 ++--\n packages/dashboard/app/components/ListView.tsx | 63 +++++++++++++++++-----\n .../components/PlanningWorkflowSwitcherSlot.tsx | 5 +-\n .../__tests__/GraphWorkflowSwitcherSlot.test.tsx | 34 ++++++++++++\n .../__tests__/HeaderWorkflowSwitcherSlot.test.tsx | 27 ++++++++++\n .../app/components/__tests__/ListView.test.tsx | 41 +++++++++++++-\n .../app/components/dashboard/MainContent.tsx | 17 ++++--\n .../app/components/workflowStatusCounts.ts | 5 ++\n packages/dashboard/app/hooks/useBoardWorkflows.ts | 20 +++++--\n .../dashboard/app/utils/boardWorkflowSelection.ts | 5 +-\n 14 files changed, 233 insertions(+), 42 deletions(-)
Fusion-Task-Id: FN-7357
Fusion-Task-Lineage: b8658cad-7b12-4a06-b627-e2bde7de6951
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 07:33:56 -07:00
gsxdsm
d448603e71
FN-7352: route completed-task refine menus to detail
...
Completed task context menus now open the existing Task Detail refinement composer.\n\n- Add one-shot detail initial actions so Refine can reopen the composer from board and list menus.\n- Wire Board, List, Column, and grouped task cards to pass Refine through Task Detail instead of hiding it.\n- Cover board/list refine menu behavior with dashboard tests and document the completed-task flow.\n\nFiles changed:\n .changeset/fn-7352-done-context-refine.md | 7 +++\n docs/dashboard-guide.md | 9 ++--\n packages/dashboard/app/components/AppModals.tsx | 9 +++-\n packages/dashboard/app/components/Board.tsx | 7 ++-\n packages/dashboard/app/components/Column.tsx | 5 +-\n packages/dashboard/app/components/ListView.tsx | 7 +--\n packages/dashboard/app/components/TaskCard.tsx | 12 +++--\n .../dashboard/app/components/TaskDetailModal.tsx | 13 +++++\n .../dashboard/app/components/WorktreeGroup.tsx | 4 ++\n .../app/components/__tests__/ListView.test.tsx | 62 +++++++++++++++++++++-\n .../app/components/__tests__/TaskCard.test.tsx | 43 +++++++++++++++\n .../TaskDetailModal.definition-actions.test.tsx | 18 +++++++\n .../app/components/dashboard/MainContent.tsx | 2 +\n .../dashboard/app/components/dashboard/types.ts | 4 +-\n packages/dashboard/app/hooks/useModalManager.ts | 28 ++++++++--\n 15 files changed, 208 insertions(+), 22 deletions(-)
Fusion-Task-Id: FN-7352
Fusion-Task-Lineage: 3f1107a6-fdac-4430-ab8d-50096c36cc3c
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 07:33:56 -07:00
gsxdsm
03160ebac0
FN-7354: add mobile terminal tab selector
...
Add a compact mobile terminal tab selector while preserving desktop tab behavior.
- Replace the mobile terminal tab strip with a native dropdown, new-tab action, and current-tab close action.
- Update mobile terminal header styles so tab, workspace, and session controls wrap cleanly on narrow screens.
- Cover mobile selector behavior with dashboard tests and document the mobile terminal tab workflow.
- Add a release changeset for the published Fusion package.
Files changed:
.changeset/mobile-terminal-tabs-dropdown.md | 7 ++
docs/dashboard-guide.md | 8 +-
.../__tests__/terminal-mobile-header-row.test.ts | 22 ++--
.../dashboard/app/components/TerminalModal.css | 69 +++++++++++-
.../dashboard/app/components/TerminalModal.tsx | 119 +++++++++++++++------
.../components/__tests__/TerminalModal.test.tsx | 107 ++++++++++++++++++
6 files changed, 282 insertions(+), 50 deletions(-)
Fusion-Task-Id: FN-7354
Fusion-Task-Lineage: 20b5b7d5-5795-4cc6-9975-c363954adb97
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-01 07:33:56 -07:00
gsxdsm
519f158400
FN-7345: Persist remote access settings saves
...
Remote Access settings now save from the main Settings dialog without requiring tunnel startup.
- Map flattened Remote Access form fields into the canonical global remoteAccess payload during section saves.
- Preserve provider, token, and lifecycle branches while saving Tailscale accept-routes and remember-running options.
- Cover the UI save flow, split helper, API route contract, docs, and release note.
Files changed:
.changeset/fn-7345-remote-settings-windows.md | 7 +
docs/dashboard-guide.md | 1 +
.../app/__tests__/settings-save-split.test.ts | 56 ++++++++
.../SettingsModal.remote-notifications.test.tsx | 144 +++++++++++++++++++++
.../app/components/settings/save-split.ts | 103 +++++++++++++++
.../src/__tests__/routes-remote-access.test.ts | 54 ++++++++
6 files changed, 365 insertions(+)
Fusion-Task-Id: FN-7345
Fusion-Task-Lineage: 9d1eb7f7-7e13-4070-af7d-eb6c6a41fe44
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 23:45:02 -07:00
gsxdsm
d786e7b9c9
FN-7340: align footer concurrency marker geometry
...
Align footer Engine Controls current-use dots with Command Center slider geometry.
- Mirror Command Center range sizing, touch behavior, and mobile thumb geometry in the footer controls.
- Cover the shared marker geometry contract and pending-cap marker recalculation in EngineControlMenu tests.
- Document the footer/Command Center alignment requirement and add a patch changeset for the published CLI package.
Files changed:
.changeset/fn-7340-footer-concurrency-dot-alignment.md | 7 ++
docs/dashboard-guide.md | 3 +-
packages/dashboard/app/components/EngineControlMenu.css | 28 ++++++-
packages/dashboard/app/components/__tests__/EngineControlMenu.test.tsx | 85 ++++++++++++++++++++++
4 files changed, 121 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-7340
Fusion-Task-Lineage: 5cb4d829-2b70-429c-b9da-0c559fdbf131
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-06-30 23:45:02 -07:00