gsxdsm
d8735b3dbe
FN-8249: persist GitHub translations and show status
...
Persist legacy GitHub translation cache entries and expose background translation progress to import operators.
- Backfill historic unscoped translation cache partitions during schema migration.
- Display accessible translating and failure status in the GitHub issues import list.
- Add migration, service, and UI coverage plus operator documentation.
Files changed:
.../fn-8249-github-import-translation-status.md | 7 ++
docs/dashboard-guide.md | 2 +-
.../postgres/import-translation-cache.pg.test.ts | 13 +++-
.../src/__tests__/postgres/schema-applier.test.ts | 48 ++++++++++++
...translation_cache_legacy_partition_backfill.sql | 31 ++++++++
packages/core/src/postgres/schema-applier.ts | 29 ++++++-
.../dashboard/app/components/GitHubImportModal.css | 42 ++++++++++
.../dashboard/app/components/GitHubImportModal.tsx | 29 +++++++
.../__tests__/GitHubImportModal.test.tsx | 90 ++++++++++++++++++++++
.../src/__tests__/import-translate-service.test.ts | 62 +++++++++++++++
10 files changed, 346 insertions(+), 7 deletions(-)
Fusion-Task-Id: FN-8249
Fusion-Task-Lineage: 79c26d85-50f1-4d01-9341-a17db5e57f8f
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-17 16:46:42 -07:00
gsxdsm
b0654031bc
FN-8251: hide overseer eye when oversight is off
...
Resolve inherited workflow oversight before rendering task-card overseer indicators.
- Resolve selected-workflow oversight using the planning workflow identity
- Fail closed for unknown, pending, malformed, and failed inherited settings
- Cover workflow changes and mobile suppression, and document the behavior
- Add a patch changeset for the corrected card indicator
Files changed:
.changeset/fn-8251-card-eye-effective-oversight.md | 7 +
docs/dashboard-guide.md | 4 +-
packages/dashboard/app/components/TaskCard.tsx | 116 ++++++++-------
.../__tests__/TaskCard.oversight.test.tsx | 161 ++++++++++++++++++++-
.../app/components/__tests__/TaskCard.test.tsx | 6 +-
5 files changed, 234 insertions(+), 60 deletions(-)
Fusion-Task-Id: FN-8251
Fusion-Task-Lineage: 72dfa67e-e6d5-4557-91b3-23aff6dcf9e7
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-17 16:38:29 -07:00
gsxdsm
eee04bc1a8
FN-8248: fix Quick Chat popup stacking
...
Make Quick Chat and task popups honor their most recent interaction order.
- Place Quick Chat in the task-detail peer stack while retaining higher utility windows.
- Raise Create Room dialogs above Chat on each open, including mobile sheets.
- Add stacking regression coverage and operator documentation with screenshots.
Files changed:
docs/assets/fn-8248-chat-above-task.png | Bin 0 -> 55108 bytes
docs/assets/fn-8248-mobile-create-room.png | Bin 0 -> 56699 bytes
docs/assets/fn-8248-task-above-chat.png | Bin 0 -> 74263 bytes
docs/dashboard-guide.md | 5 +-
packages/dashboard/app/App.tsx | 13 +++-
.../dashboard/app/components/CreateRoomModal.tsx | 15 ++++-
.../dashboard/app/components/FloatingWindow.tsx | 11 +++-
.../components/__tests__/CreateRoomModal.test.tsx | 72 +++++++++++++++++++++
.../FloatingWindowStack.cross-type.test.tsx | 37 +++++++----
.../app/components/floatingWindowStack.ts | 10 +--
10 files changed, 139 insertions(+), 24 deletions(-)
Fusion-Task-Id: FN-8248
Fusion-Task-Lineage: 94ef20f1-96da-4249-9812-169f780c9451
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-17 16:34:16 -07:00
gsxdsm
62f121e0c9
FN-8247: stop session advisor with oversight
...
Stop now persists session-advisor disablement and reflects inherited advisor state in task details.
- Persist an explicit advisor-off override and clear its live runtime when stopping oversight.
- Resolve workflow-level advisor defaults for task-detail icons and toggle behavior.
- Cover stop cleanup and desktop/mobile oversight state transitions with regression tests.
- Document the combined stop contract and add a patch changeset.
Files changed:
.changeset/fn-8247-session-advisor-stop-and-icon.md | 7 ++
docs/dashboard-guide.md | 6 +-
packages/dashboard/app/components/TaskDetailModal.tsx | 86 +++++++++++------
packages/dashboard/app/components/__tests__/TaskDetailModal.oversight-controls.test.tsx | 104 +++++++++++++++++++++
packages/dashboard/app/components/__tests__/TaskDetailModal.oversight-mobile.test.tsx | 62 ++++++++++++
packages/engine/src/__tests__/project-engine-stop-overseer-session-advisor.test.ts | 62 ++++++++++++
packages/engine/src/project-engine.ts | 13 ++-
7 files changed, 310 insertions(+), 30 deletions(-)
Fusion-Task-Id: FN-8247
Fusion-Task-Lineage: dcb67af7-9a36-4b25-bafa-84722fe158a0
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-17 16:20:10 -07:00
gsxdsm
7517f2eddf
FN-8239: align task card oversight icon state
...
Keep task-card overseer indicators aligned with resolved oversight settings.
- Gate transient Eye badges on the resolved effective oversight level.
- Suppress stale snapshots and empty header wrappers while inherited workflow settings load.
- Add regression coverage and document the consistent off-state behavior.
Files changed:
.changeset/fn-8239-oversight-icon-consistency.md | 7 ++++
docs/dashboard-guide.md | 3 +-
packages/dashboard/app/components/TaskCard.tsx | 29 ++++++++++++----
.../__tests__/TaskCard.oversight.test.tsx | 40 ++++++++++++++++++++++
.../app/components/__tests__/TaskCard.test.tsx | 23 +++++++++++++
5 files changed, 94 insertions(+), 8 deletions(-)
Fusion-Task-Id: FN-8239
Fusion-Task-Lineage: 2857358c-7626-4b04-b1b5-fa51c3a71418
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-17 14:35:07 -07:00
gsxdsm
9152d8fa61
FN-8229: remove background AI tasks pill
...
Replace the redundant footer AI session control with progress and action visibility in the session notification banner.
- Delete the BackgroundTasksIndicator component, styles, footer wiring, and obsolete translations.
- Surface non-planning generating and retained error sessions through the notification banner while leaving Planning in its dedicated view.
- Update session lifecycle, localization, documentation, and regression coverage.
Files changed:
.../fn-8229-remove-ai-background-tasks-pill.md | 7 +
docs/dashboard-guide.md | 4 +-
packages/dashboard/README.md | 1 -
packages/dashboard/app/App.tsx | 28 +--
.../app/__tests__/css-hygiene-scan.test.ts | 2 -
.../dashboard-component-color-tokenization.test.ts | 1 -
packages/dashboard/app/api/legacy.ts | 2 +-
.../app/components/BackgroundTasksIndicator.css | 130 -------------
.../app/components/BackgroundTasksIndicator.tsx | 210 ---------------------
.../dashboard/app/components/ExecutorStatusBar.css | 3 -
.../dashboard/app/components/ExecutorStatusBar.tsx | 30 +--
.../app/components/SessionNotificationBanner.css | 10 +
.../app/components/SessionNotificationBanner.tsx | 52 ++++-
.../app/components/SubtaskBreakdownModal.tsx | 7 +-
.../app/components/__tests__/App.test.tsx | 11 +-
.../__tests__/ExecutorStatusBar.test.tsx | 1 -
.../__tests__/SessionNotificationBanner.test.tsx | 88 ++++-----
.../components/__tests__/utility-mobile.test.tsx | 191 +------------------
.../app/components/dashboard/DashboardBanners.tsx | 8 +-
.../dashboard/__tests__/DashboardBanners.test.tsx | 30 ++-
.../hooks/__tests__/useBackgroundSessions.test.ts | 21 ++-
.../dashboard/app/hooks/useBackgroundSessions.ts | 21 ++-
.../app/utils/__tests__/appLifecycle.test.ts | 61 ++----
packages/dashboard/app/utils/appLifecycle.ts | 16 +-
packages/dashboard/src/routes.ts | 2 +-
packages/i18n/locales/en/app.json | 33 +---
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 | 48 ++---
32 files changed, 316 insertions(+), 922 deletions(-)
Fusion-Task-Id: FN-8229
Fusion-Task-Lineage: a232fb04-08ff-4f0a-a440-e94545243e61
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-17 14:25:30 -07:00
gsxdsm
a746a02f3b
FN-8236: group mobile Settings sections by topic
...
Group the mobile Settings picker by desktop navigation topics while preserving scoped section adjacency.
- Render mobile section choices in native topic optgroups
- Preserve Global-before-Project ordering and search-aware empty groups
- Cover grouped picker behavior and document the mobile navigation
Files changed:
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/SettingsModal.tsx | 31 +++++++--
packages/dashboard/app/components/__tests__/settings-mobile.test.tsx | 80 ++++++++++++++++++++++
3 files changed, 107 insertions(+), 6 deletions(-)
Fusion-Task-Id: FN-8236
Fusion-Task-Lineage: 3a90bc72-2393-4b41-a7c3-2c9e30c94e01
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-17 14:13:41 -07:00
gsxdsm
595c27ceae
FN-8235: add mobile Kanban column snapping
...
Mobile Kanban now settles user swipes on the nearest column.
- add a mobile-only, user-driven scroll-end snapping hook
- wire snapping to every live Board rendering and cover interaction boundaries
- document the behavior and add a patch changeset
Files changed:
.changeset/fn-8235-mobile-kanban-snap.md | 7 +
docs/dashboard-guide.md | 6 +
packages/dashboard/app/components/Board.tsx | 19 ++-
.../app/components/__tests__/board-mobile.test.tsx | 14 +-
.../hooks/__tests__/useColumnScrollSnap.test.ts | 159 ++++++++++++++++++
.../dashboard/app/hooks/useColumnScrollSnap.ts | 179 +++++++++++++++++++++
6 files changed, 380 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-8235
Fusion-Task-Lineage: 46881e93-59f2-49d6-b29e-fa6150420f2a
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-17 13:53:13 -07:00
gsxdsm
44c784264a
FN-8237: refine mobile footer quick actions
...
Make mobile footer quick actions configurable, reorderable, and immediately applied.
- Expand the selectable quick-action universe and preserve valid configured items.
- Add General settings controls for reordering, adding, and removing footer actions.
- Wire updated navigation settings through the dashboard and document the behavior.
Files changed:
.../fn-8237-mobile-nav-quick-actions-refinement.md | 7 +
docs/dashboard-guide.md | 2 +-
docs/settings-reference.md | 2 +-
.../src/__tests__/mobile-nav-primary-items.test.ts | 17 +-
packages/core/src/mobile-nav-primary-items.ts | 44 ++-
packages/dashboard/app/App.tsx | 4 +-
packages/dashboard/app/components/AppModals.tsx | 2 +
packages/dashboard/app/components/MobileNavBar.tsx | 319 ++++-----------------
.../dashboard/app/components/SettingsModal.tsx | 4 +
.../app/components/__tests__/MobileNavBar.test.tsx | 18 +-
.../__tests__/SettingsModal.general.test.tsx | 20 ++
.../dashboard/app/components/dashboard/MainContent.tsx | 2 +
.../dashboard/app/components/dashboard/types.ts | 1 +
.../settings/sections/GeneralSection.tsx | 75 ++---
packages/dashboard/app/hooks/useAppSettings.ts | 11 +
packages/i18n/locales/en/app.json | 5 +-
16 files changed, 220 insertions(+), 313 deletions(-)
Fusion-Task-Id: FN-8237
Fusion-Task-Lineage: cff91b30-7ef9-4557-8880-cc71ed74dafb
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-17 13:45:41 -07:00
gsxdsm
f0b6e4be0c
FN-8233: reflect oversight state in menu trigger
...
Make the Oversight menu trigger icon reflect the effective overseer configuration.
- Switch the trigger between Eye and EyeOff based on oversight level and Session advisor state.
- Cover icon updates after changing either control.
- Document the combined trigger-state behavior.
Files changed:
docs/dashboard-guide.md | 6 ++-
.../dashboard/app/components/TaskDetailModal.tsx | 10 +++-
.../TaskDetailModal.oversight-controls.test.tsx | 61 ++++++++++++++++++++++
3 files changed, 74 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-8233
Fusion-Task-Lineage: 16012bf1-94f8-4461-90b6-95d309aa9a6d
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-17 13:38:32 -07:00
gsxdsm
2f7da57601
FN-8230: translate GitHub import issues across pages
...
GitHub import auto-translation now covers every reachable issue page within the fetch cap.
- Translate and retain per-page results while invalidating changed or reloaded issues
- Raise the translation budget for a 300-issue traversal and cover pagination regressions
- Document the GitHub-only pagination behavior and add a patch changeset
Files changed:
.changeset/fn-8230-import-translate-pagination.md | 7 ++
docs/dashboard-guide.md | 2 +-
docs/settings-reference.md | 4 +-
.../dashboard/app/components/GitHubImportModal.tsx | 33 ++++++---
.../components/GitHubImportTranslateControls.tsx | 80 ++++++++++++---------
.../__tests__/GitHubImportAutoTranslate.test.tsx | 66 ++++++++++++-----
.../__tests__/GitHubImportModal.test.tsx | 32 +++++++++
.../dashboard/src/__tests__/ai-translate.test.ts | 20 ++++++
packages/dashboard/src/ai-translate.ts | 6 +-
packages/dashboard/src/import-translate-service.ts | Bin 11109 -> 11099 bytes
10 files changed, 186 insertions(+), 64 deletions(-)
Fusion-Task-Id: FN-8230
Fusion-Task-Lineage: 2c3ce6f6-a8f3-46a9-b93a-0192f0cdaf54
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-17 13:31:42 -07:00
gsxdsm
9cdddab504
FN-8231: dismiss mobile mailbox details on Back
...
Mobile mailbox overlays now close through the shared navigation history before leaving the message list.
- Register mobile message, composer, and approval overlays as navigation modals.
- Remove matching history entries when mailbox overlays close or change state.
- Add mobile back-navigation coverage and document the behavior.
Files changed:
docs/dashboard-guide.md | 3 +-
packages/dashboard/app/components/MailboxView.tsx | 117 ++++++++++++----
.../app/components/__tests__/MailboxView.test.tsx | 148 +++++++++++++++++++++
3 files changed, 241 insertions(+), 27 deletions(-)
Fusion-Task-Id: FN-8231
Fusion-Task-Lineage: b6f06ed9-b03f-45d9-b90b-28b565231bcc
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-17 13:10:39 -07:00
gsxdsm
2e9c255268
FN-8228: support Back navigation in import detail sheets
...
Make mobile Back dismiss import detail sheets before the parent import modal.
- Register nested navigation entries for GitHub and GitLab detail sheets.
- Centralize detail selection cleanup across dismissal and successful actions.
- Cover native and browser Back flows and document the mobile behavior.
Files changed:
docs/dashboard-guide.md | 7 ++
.../dashboard/app/components/GitHubImportModal.tsx | 54 +++++++--
.../__tests__/GitHubImportModal.test.tsx | 132 ++++++++++++++++++++-
3 files changed, 180 insertions(+), 13 deletions(-)
Fusion-Task-Id: FN-8228
Fusion-Task-Lineage: 36062d52-ad6b-4d5c-87ff-5a6959feecc9
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-17 12:53:46 -07:00
gsxdsm
86c281bc38
FN-8215: add GitHub issue comment posting
...
Enable operators to post upstream GitHub issue comments from the Import Tasks preview.
- Add authenticated GitHub CLI and REST fallback support for creating issue comments.
- Expose a validated API route and inline issue-comment composer with optimistic preview updates.
- Add localized UI copy, documentation, release metadata, and coverage for client, route, and modal behavior.
Files changed:
.changeset/fn-8215-github-issue-add-comment.md | 7 ++
docs/dashboard-guide.md | 9 ++-
packages/dashboard/app/api/legacy.ts | 13 ++++
.../dashboard/app/components/GitHubImportModal.css | 34 +++++++++
.../dashboard/app/components/GitHubImportModal.tsx | 68 +++++++++++++++++-
.../__tests__/GitHubImportModal.test.tsx | 62 +++++++++++++++++
packages/dashboard/src/__tests__/github.test.ts | 48 +++++++++++++
.../dashboard/src/__tests__/routes-github.test.ts | 80 ++++++++++++++++++++++
packages/dashboard/src/github.ts | 49 +++++++++++++
.../dashboard/src/routes/register-git-github.ts | 56 +++++++++++++++
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 | 5 ++
17 files changed, 459 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-8215
Fusion-Task-Lineage: 0fe6acca-e86d-484f-a97f-5746d32717a1
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-17 10:37:00 -07:00
gsxdsm
d6860b5b76
FN-8204: add configurable mobile footer quick actions
...
Add an ordered project setting for mobile footer quick-action destinations.
- Render selected destinations as primary mobile tabs and retain omitted choices in More.
- Provide settings controls, validation, translations, documentation, and regression coverage.
- Add a minor changeset for the published CLI package.
Files changed:
.changeset/fn-8204-mobile-nav-primary-items.md | 7 +
docs/dashboard-guide.md | 4 +
docs/settings-reference.md | 4 +
.../src/__tests__/mobile-nav-primary-items.test.ts | 23 +++
packages/core/src/index.ts | 9 ++
packages/core/src/mobile-nav-primary-items.ts | 55 +++++++
packages/core/src/settings-schema.ts | 1 +
packages/core/src/types.ts | 7 +
packages/dashboard/app/App.tsx | 2 +
.../mobile-feature-access-regression.test.tsx | 19 +++
packages/dashboard/app/components/MobileNavBar.tsx | 159 +++++----------------
.../app/components/__tests__/MobileNavBar.test.tsx | 16 +++
.../app/components/settings/section-keys.ts | 1 +
.../settings/sections/GeneralSection.search.ts | 9 ++
.../settings/sections/GeneralSection.tsx | 45 ++++++
.../settings-default-descriptions.test.tsx | 1 +
packages/dashboard/app/hooks/useAppSettings.ts | 5 +
packages/i18n/locales/en/app.json | 4 +
18 files changed, 244 insertions(+), 127 deletions(-)
Fusion-Task-Id: FN-8204
Fusion-Task-Lineage: 077de4c4-d281-401d-bddd-e5ce8e91d4ab
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-17 09:27:33 -07:00
gsxdsm
a51cba0d69
FN-8197: move merge details to summary tab
...
Keep completed task merge metadata with its completion summary.
- Relocate the Merge Details card from Definition to the done-only Summary tab.
- Cover merge-detail states and Definition/mobile containment with dashboard tests.
- Document the Summary tab behavior and add a patch changeset.
Files changed:
.changeset/fn-8197-merge-details-summary-tab.md | 7 +++
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/TaskDetailModal.tsx | 4 +-
packages/dashboard/app/components/TaskSummaryTab.tsx | 9 +++
packages/dashboard/app/components/__tests__/TaskDetailModal.responsive-and-dependencies.test.tsx | 49 ++++++++++------
packages/dashboard/app/components/__tests__/TaskDetailModal.summary-tab.test.tsx | 65 ++++++++++++++++++++++
6 files changed, 115 insertions(+), 21 deletions(-)
Fusion-Task-Id: FN-8197
Fusion-Task-Lineage: f4aac014-1e8d-4b8f-91f1-ba40ae879508
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-17 01:17:22 -07:00
gsxdsm
6183621ca3
FN-8196: add mobile footer stat tooltips
...
Make compact mobile executor footer statistics identifiable on tap.
- Add accessible tap targets and portaled tooltips for mobile footer statistics.
- Dismiss stat tooltips on repeat tap, outside interaction, Escape, scrolling, and viewport changes.
- Cover mobile behavior while preserving desktop and tablet inline labels.
- Document the interaction and add a patch changeset.
Files changed:
.changeset/fn-8196-mobile-footer-stat-tooltips.md | 7 +
docs/dashboard-guide.md | 2 +
.../dashboard/app/components/ExecutorStatusBar.css | 47 +++++-
.../dashboard/app/components/ExecutorStatusBar.tsx | 166 +++++++++++++++++++--
.../__tests__/ExecutorStatusBar.test.tsx | 132 +++++++++++++++-
5 files changed, 333 insertions(+), 21 deletions(-)
Fusion-Task-Id: FN-8196
Fusion-Task-Lineage: c566b614-739d-4538-85c5-a8ff62720f4d
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-17 01:12:08 -07:00
gsxdsm
87ffb24fca
FN-8194: align task detail inline controls
...
Align task-detail actions with Quick Add while preserving existing integrations.
- Add inline attachment and eligible GitHub tracking controls
- Replace the Oversight menu dots with an Eye icon and reorder metadata actions
- Cover action order, integration behavior, icon rendering, and mobile wrapping
Files changed:
.changeset/fn-8194-task-detail-inline-controls.md | 7 ++
docs/dashboard-guide.md | 6 +-
.../dashboard/app/components/TaskDetailModal.tsx | 99 +++++++++++++++-------
...lModal.inline-editing-and-integrations.test.tsx | 80 ++++++++++++++++-
.../TaskDetailModal.mock-coverage.test.ts | 1 +
.../TaskDetailModal.oversight-controls.test.tsx | 19 +++++
...etailModal.responsive-and-dependencies.test.tsx | 5 +-
.../__tests__/TaskDetailModal.test-helpers.ts | 10 +--
8 files changed, 187 insertions(+), 40 deletions(-)
Fusion-Task-Id: FN-8194
Fusion-Task-Lineage: 8de0e36f-b428-401c-98aa-35964c556a39
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-17 00:55:57 -07:00
gsxdsm
3fdc2c1fb7
FN-8193: add collapsible sticky provider lists
...
Keep model-provider headers visible and let users collapse provider model rows with persisted local preferences.
- Add sticky provider headers and accessible collapse toggles to CustomModelDropdown
- Persist collapsed provider groups locally while keeping filtered matches visible
- Cover collapse, keyboard navigation, storage recovery, and empty-state behavior
- Document the dashboard behavior and add a minor changeset
Files changed:
.changeset/fn-8193-collapsible-provider-lists.md | 7 ++
docs/dashboard-guide.md | 1 +
.../app/components/CustomModelDropdown.css | 48 +++++++-
.../app/components/CustomModelDropdown.tsx | 110 ++++++++++++++----
.../__tests__/CustomModelDropdown.test.tsx | 129 +++++++++++++++++++++
5 files changed, 266 insertions(+), 29 deletions(-)
Fusion-Task-Id: FN-8193
Fusion-Task-Lineage: 4fbc43a8-ef81-463c-b4d0-5f00a57ab27b
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-17 00:48:36 -07:00
gsxdsm
6206af8ce9
FN-8146: restore persistent theme selection
...
Restore the full Settings theme picker while preserving Shadcn Mono selections across reloads.
- Merge the Settings selector into the current-theme row with shared dropdown controls.
- Restore Shadcn Mono across theme metadata, token styles, and dashboard/desktop bootstrap validation.
- Scope Mono light swatches correctly and cover restored options and persistence with tests.
Files changed:
.changeset/FN-8146-theme-dropdown-current-row.md | 7 +++
docs/dashboard-guide.md | 5 ++-
packages/core/src/types/execution-and-ui.ts | 1 +
.../dashboard/app/components/ThemeDropdown.css | 52 ++++++++++++++++++++++
.../dashboard/app/components/ThemeDropdown.tsx | 42 ++++++++++++++---
.../dashboard/app/components/ThemeSelector.css | 42 +----------------
.../dashboard/app/components/ThemeSelector.tsx | 45 +++++--------------
.../components/__tests__/ThemeDropdown.test.tsx | 46 ++++++++++++++++---
.../components/__tests__/ThemeSelector.test.tsx | 29 ++++++++----
.../__tests__/CommandCenterControls.test.tsx | 15 ++++++-
packages/dashboard/app/components/themeOptions.ts | 2 +
.../dashboard/app/hooks/__tests__/useTheme.test.ts | 8 ++--
packages/dashboard/app/hooks/useTheme.ts | 8 ++--
packages/dashboard/app/index.html | 5 +--
packages/dashboard/app/public/theme-data.css | 16 ++++++-
packages/desktop/src/renderer/index.html | 1 +
16 files changed, 213 insertions(+), 111 deletions(-)
Fusion-Task-Id: FN-8146
Fusion-Task-Lineage: 32ec7f21-ee6b-4459-8e7b-f5a5435c4994
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-17 00:00:46 -07:00
gsxdsm
bc7dfe4bbf
FN-8178: fix task-card context menu autofocus dismissal
...
Prevent portaled task-card menus from closing when autofocus creates a scroll event.
- Focus the first menu action with preventScroll while preserving keyboard access.
- Cover all card menu entry points and intentional dismissal paths.
- Document the interaction lifecycle fix and publish a patch changeset.
Files changed:
.changeset/fn-8178-context-menu-flash-dismiss.md | 7 +++
docs/dashboard-guide.md | 2 +-
.../task-card-context-menu-flash-dismiss-layers.md | 35 +++++++++++
.../dashboard/app/components/TaskContextMenu.tsx | 9 ++-
.../app/components/__tests__/TaskCard.test.tsx | 69 ++++++++++++++++++++++
5 files changed, 120 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-8178
Fusion-Task-Lineage: 2eb94ffd-e922-497d-8904-1aea8bf760b1
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-16 21:13:30 -07:00
gsxdsm
e72629c251
FN-8126: add per-task merger model controls
...
Enable Quick Add and task editing to select merger models and thinking levels.
- Persist merger model and thinking overrides through task APIs, storage, and PostgreSQL migrations.
- Add merger-lane selection controls to Quick Add and model settings interfaces.
- Apply task merger settings to merger and PR fallback sessions, with regression coverage.
- Document the merger lane and include a release changeset.
Files changed:
.changeset/fn-8126-quick-add-merger-lane.md | 7 ++
docs/dashboard-guide.md | 2 +
docs/settings-reference.md | 7 +-
.../core/src/__tests__/model-resolution.test.ts | 9 ++
packages/core/src/index.gate.ts | 1 +
packages/core/src/index.ts | 1 +
packages/core/src/model-resolution.ts | 20 ++++
.../core/src/postgres/migrations/0000_initial.sql | 3 +
.../migrations/0017_task_merger_model_lane.sql | 4 +
packages/core/src/postgres/schema-applier.ts | 14 ++-
packages/core/src/postgres/schema/project.ts | 3 +
packages/core/src/store.ts | 2 +-
.../core/src/task-store/archive-lifecycle-2.ts | 6 ++
packages/core/src/task-store/persistence.ts | 6 ++
packages/core/src/task-store/remaining-ops-2.ts | 4 +-
packages/core/src/task-store/remaining-ops-6.ts | 2 +-
packages/core/src/task-store/serialization.ts | 6 ++
packages/core/src/task-store/task-creation.ts | 6 ++
packages/core/src/task-store/task-row-mappers.ts | 4 +-
packages/core/src/task-store/task-update.ts | 6 ++
packages/core/src/types.ts | 18 ++++
packages/dashboard/app/api/tasks.ts | 13 +++
.../dashboard/app/components/InlineCreateCard.tsx | 33 ++++++-
.../app/components/ModelSelectionModal.tsx | 29 ++++++
.../dashboard/app/components/ModelSelectorTab.tsx | 101 +++++++++++++++++++--
.../dashboard/app/components/QuickEntryBox.tsx | 44 +++++++--
.../__tests__/ModelSelectionModal.test.tsx | 20 ++++
.../components/__tests__/ModelSelectorTab.test.tsx | 37 +++++++-
.../src/routes/register-task-workflow-routes.ts | 27 +++++-
.../src/__tests__/agent-session-helpers.test.ts | 8 ++
packages/engine/src/agent-session-helpers.ts | 16 +++-
packages/engine/src/merger-ai.ts | 14 +--
packages/engine/src/merger.ts | 35 ++++---
packages/engine/src/pr-response-run-ops.ts | 7 +-
34 files changed, 451 insertions(+), 64 deletions(-)
Fusion-Task-Id: FN-8126
Fusion-Task-Lineage: 3fc81801-6d77-4e11-9cf0-3af37313930e
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-16 21:07:06 -07:00
gsxdsm
25df9bf4fd
FN-8171: expand active task thinking by default
...
Show Activity Live reasoning immediately for active and review-stage tasks.
- Default thinking blocks open for in-progress and in-review tasks.
- Preserve collapsed, user-toggleable reasoning for all other task columns.
- Document behavior and cover default state and user collapse interactions.
Files changed:
.changeset/fn-8171-thinking-default-open.md | 7 ++++
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/TaskChatTab.tsx | 20 +++++++---
.../app/components/__tests__/TaskChatTab.test.tsx | 43 ++++++++++++++++++++--
4 files changed, 63 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-8171
Fusion-Task-Lineage: 705d6ac8-0c43-47d3-84df-57e9ec55a3b5
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-16 18:41:24 -07:00
gsxdsm
f4903d3db0
FN-8168: dismiss mobile More sheet on Back
...
Make the mobile More sheet participate in navigation history so Back dismisses it before changing views.
- Register the open More sheet as a navigation modal and remove it on every close path
- Cover browser, native, gesture, keyboard, action, and provider-less dismissal flows
- Document mobile More-sheet Back behavior
Files changed:
docs/dashboard-guide.md | 2 +
packages/dashboard/app/components/MobileNavBar.tsx | 48 ++++--
.../__tests__/MobileNavBar.swipe-back.test.tsx | 190 +++++++++++++++++++++
3 files changed, 228 insertions(+), 12 deletions(-)
Fusion-Task-Id: FN-8168
Fusion-Task-Lineage: 1c5652db-5f27-4671-b4b7-676753ca4cd0
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-16 18:33:47 -07:00
gsxdsm
07e1ceb860
FN-8151: add Cobalt, Clay, and Moss themes
...
Add three synchronized color themes across dashboard and desktop surfaces.
- Register Cobalt, Clay, and Moss theme IDs, token palettes, and light/dark swatches.
- Keep dashboard and desktop bootstrap validators aligned with selector metadata.
- Document and test the cross-surface theme registration invariant.
Files changed:
.changeset/fn-8151-new-themes.md | 7 +
docs/dashboard-guide.md | 3 +-
packages/core/src/types/execution-and-ui.ts | 4 +
.../app/__tests__/new-color-themes.test.ts | 116 ++++++++++++
.../dashboard/app/components/ThemeSelector.css | 42 +++++
packages/dashboard/app/components/themeOptions.ts | 3 +
packages/dashboard/app/index.html | 2 +-
packages/dashboard/app/public/theme-data.css | 202 +++++++++++++++++++++
packages/desktop/src/renderer/index.html | 3 +
9 files changed, 380 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-8151
Fusion-Task-Lineage: d97973a7-3387-4b98-b150-8ac2e838bfa9
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-16 18:18:35 -07:00
gsxdsm
fd036665ae
FN-8123: add agent clarification notifications
...
Add agent clarification notices with ntfy delivery and mailbox support.
- Add configurable clarification ntfy topics and notification settings
- Route agent clarification requests to ntfy and the planning mailbox
- Update planning dialogs, translations, documentation, and regression tests
Files changed:
.changeset/fn-8123-agent-clarification.md | 7 +
docs/dashboard-guide.md | 6 +
docs/settings-reference.md | 1 +
.../core/src/__tests__/global-settings.test.ts | 11 +
packages/core/src/settings-schema.ts | 2 +
packages/core/src/types.ts | 6 +
.../app/__tests__/settings-save-split.test.ts | 13 ++
packages/dashboard/app/api/legacy.ts | 3 +-
.../dashboard/app/components/PlanningModeModal.tsx | 29 ++-
.../dashboard/app/components/SettingsModal.tsx | 1 +
.../__tests__/PlanningModeModal.initial.test.tsx | 17 +-
.../app/components/settings/save-split.ts | 1 +
.../settings/sections/NotificationsSection.tsx | 11 +
.../src/__tests__/routes-planning.test.ts | 7 +-
packages/dashboard/src/planning.ts | 228 ++++++++++++++++-----
.../src/routes/register-planning-subtask-routes.ts | 59 +++++-
packages/i18n/locales/en/app.json | 4 +
packages/i18n/src/resources.d.ts | 4 +
18 files changed, 346 insertions(+), 64 deletions(-)
Fusion-Task-Id: FN-8123
Fusion-Task-Lineage: cf397749-01c6-44d6-8d12-8ce7f5627c29
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-16 16:51:19 -07:00
gsxdsm
c6be0b158b
FN-8129: centralize database backup settings
...
Move database backup policy and scheduling to shared global configuration.
- Split project memory backups from cluster-wide database backup settings.
- Migrate legacy backup values and routines safely into central global storage.
- Schedule and dispatch one shared PostgreSQL backup routine across project engines.
Files changed:
.changeset/fn-8129-backup-settings-scope-split.md | 7 +
docs/dashboard-guide.md | 2 +
docs/settings-reference.md | 10 +-
packages/cli/src/commands/backup.ts | 3 +-
.../__tests__/backup-settings-migration.test.ts | 50 ++++++
.../src/__tests__/backup-settings-scope.test.ts | 27 +++
packages/core/src/backup-settings-migration.ts | 188 +++++++++++++++++++++
packages/core/src/backup.ts | 77 +++++----
packages/core/src/global-routine-store.ts | 104 ++++++++++++
packages/core/src/index.gate.ts | 6 +-
packages/core/src/index.ts | 6 +-
.../core/src/postgres/migrations/0000_initial.sql | 19 +++
.../postgres/migrations/0015_global_routines.sql | 19 +++
packages/core/src/postgres/schema-applier.ts | 19 ++-
packages/core/src/postgres/schema/central.ts | 21 ++-
packages/core/src/postgres/startup-factory.ts | 11 ++
packages/core/src/settings-schema.ts | 14 +-
packages/core/src/types.ts | 31 +++-
.../dashboard/app/components/SettingsModal.tsx | 10 +-
.../settings/__tests__/section-keys.test.ts | 1 +
.../app/components/settings/save-split.ts | 2 +
.../search/__tests__/settings-search-index.test.ts | 1 +
.../settings/search/entries.ts | 2 +
.../app/components/settings/section-keys.ts | 4 -
.../settings/sections/BackupsSection.search.ts | 40 -----
.../settings/sections/BackupsSection.tsx | 112 +-----------
.../sections/DatabaseBackupsSection.search.ts | 51 ++++++
.../settings/sections/DatabaseBackupsSection.tsx | 142 ++++++++++++++++
.../settings-default-descriptions.test.tsx | 1 +
packages/dashboard/src/routes.ts | 12 +-
.../src/routes/register-settings-memory-routes.ts | 41 ++---
.../engine/src/__tests__/routine-scheduler.test.ts | 55 +++++-
packages/engine/src/cron-runner.ts | 4 +-
packages/engine/src/routine-runner.ts | 67 +++++---
packages/engine/src/routine-scheduler.ts | 35 +++-
35 files changed, 929 insertions(+), 265 deletions(-)
Fusion-Task-Id: FN-8129
Fusion-Task-Lineage: af17f39a-7f1c-40ff-8a4a-cd63895cd532
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-16 16:34:09 -07:00
gsxdsm
e7c5de0a6e
FN-8138: add restart controls after Settings updates
...
Expose a supervised restart affordance after an in-app update succeeds.
- Detect restart capability while update results are visible and handle scheduled or failed restart requests
- Add accessible restart status, capability guidance, responsive styling, and English translations
- Cover restart states across desktop and mobile Settings modal tests
Files changed:
.../fn-8138-settings-restart-after-update.md | 7 ++
docs/dashboard-guide.md | 2 +-
.../dashboard/app/components/SettingsModal.css | 21 +++-
.../dashboard/app/components/SettingsModal.tsx | 110 ++++++++++++++--
.../__tests__/SettingsModal.general.test.tsx | 139 ++++++++++++++++++++-
.../__tests__/SettingsModal.test-harness.tsx | 4 +
.../components/__tests__/settings-mobile.test.tsx | 4 +-
packages/i18n/locales/en/app.json | 4 +
8 files changed, 274 insertions(+), 17 deletions(-)
Fusion-Task-Id: FN-8138
Fusion-Task-Lineage: 24e8cb9a-ad64-4419-b3ce-461850624365
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-16 14:40:26 -07:00
gsxdsm
4df5c62854
FN-8133: add local codebase context metrics
...
Expose local codebase token estimates and apparent disk size in the project dashboard.
- Add a bounded, cached, symlink-safe codebase metrics service and project API.
- Display token and disk indicators across Command Center overview states.
- Add formatting, route, UI, and metric calibration coverage with a minor changeset.
Files changed:
.changeset/fn-8133-codebase-metrics.md | 7 +
docs/dashboard-guide.md | 2 +-
.../dashboard/app/__tests__/api-projects.test.ts | 12 ++
packages/dashboard/app/api/legacy.ts | 14 ++
.../components/command-center/CommandCenter.css | 5 +
.../components/command-center/CommandCenter.tsx | 65 +++++++--
.../CommandCenter.mobile-chart-layout.test.ts | 4 +
.../__tests__/CommandCenter.test.tsx | 10 ++
.../__tests__/SystemStatsArea.test.tsx | 8 +
.../command-center/areas/SystemStatsArea.tsx | 8 +-
.../app/utils/__tests__/formatBytes.test.ts | 18 +++
packages/dashboard/app/utils/formatBytes.ts | 11 ++
.../src/lib/__tests__/codebase-metrics.test.ts | 62 ++++++++
.../lib/__tests__/fixtures/token-corpus/README.md | 17 +++
.../fixtures/token-corpus/calibration/component.ts | 1 +
.../fixtures/token-corpus/calibration/config.json | 1 +
.../lib/__tests__/fixtures/token-corpus/example.ts | 1 +
.../lib/__tests__/fixtures/token-corpus/notes.md | 3 +
.../fixtures/token-corpus/reference-counts.json | 9 ++
.../__tests__/fixtures/token-corpus/settings.json | 1 +
.../lib/__tests__/fixtures/token-corpus/view.tsx | 1 +
packages/dashboard/src/lib/codebase-metrics.ts | 161 +++++++++++++++++++++
.../__tests__/codebase-metrics-route.test.ts | 34 +++++
.../src/routes/register-project-routes.ts | 19 +++
24 files changed, 456 insertions(+), 18 deletions(-)
Fusion-Task-Id: FN-8133
Fusion-Task-Lineage: d591636b-d4b8-469e-8788-c4516eeb8405
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-16 14:08:43 -07:00
gsxdsm
6f99fdb18b
FN-8137: add PR checks refresh control
...
Let GitHub pull request previews refresh their current check status and comments.
- Add an accessible refresh action that bypasses the selected PR detail cache
- Prevent stale refresh responses from overwriting cached or visible PR details
- Cover refresh behavior across modal and embedded views, and document the control
- Add a minor changeset for the new GitHub import capability
Files changed:
.changeset/fn-8137-refresh-pr-checks.md | 7 ++
docs/dashboard-guide.md | 2 +-
.../dashboard/app/components/GitHubImportModal.css | 29 ++++++
.../dashboard/app/components/GitHubImportModal.tsx | 48 +++++++--
.../__tests__/GitHubImportModal.test.tsx | 115 +++++++++++++++++++++
5 files changed, 191 insertions(+), 10 deletions(-)
Fusion-Task-Id: FN-8137
Fusion-Task-Lineage: 1d4ffa9d-635c-4d59-b17c-63075f6d8c5e
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-16 13:34:54 -07:00
gsxdsm
255e9c19b9
FN-8134: add update banner restart action
...
Offer a supervised Fusion restart directly after an in-app update succeeds.
- Add restart capability detection, scheduling feedback, and manual-restart guidance to the update banner
- Cover supported, unsupported, failed, loading, and mobile restart states
- Document the update flow and add a minor CLI changeset
Files changed:
.changeset/fn-8134-restart-after-update.md | 7 ++
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/UpdateAvailableBanner.css | 10 +-
packages/dashboard/app/components/UpdateAvailableBanner.tsx | 100 +++++++++++++--
packages/dashboard/app/components/__tests__/UpdateAvailableBanner.test.tsx | 139 ++++++++++++++++++---
packages/i18n/locales/en/app.json | 4 +
6 files changed, 236 insertions(+), 26 deletions(-)
Fusion-Task-Id: FN-8134
Fusion-Task-Lineage: 84f9290e-aa87-4144-a9db-da445dcb76e3
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-16 13:29:25 -07:00
gsxdsm
47f9aa7144
FN-8124: reuse dashboard theme dropdown in Settings
...
Unify Settings appearance theme selection with the dashboard control.
- Reuse ThemeDropdown and its custom-color picker in ThemeSelector
- Remove the obsolete Settings color-theme grid styles
- Cover shared dropdown interactions and document the unified control
- Add a patch changeset for the Settings theme selector
Files changed:
.changeset/FN-8124-settings-theme-dropdown.md | 7 +
docs/dashboard-guide.md | 2 +-
.../dashboard/app/components/ThemeDropdown.tsx | 9 +-
.../dashboard/app/components/ThemeSelector.css | 48 --
.../dashboard/app/components/ThemeSelector.tsx | 49 +-
.../components/__tests__/ThemeSelector.test.tsx | 778 ++-------------------
.../__tests__/CommandCenterControls.test.tsx | 18 +-
7 files changed, 109 insertions(+), 802 deletions(-)
Fusion-Task-Id: FN-8124
Fusion-Task-Lineage: 6bd87f2a-d9e1-4374-8f54-1a2266c4004f
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-16 12:48:51 -07:00
gsxdsm
3b6bfeee46
FN-8109: import PR comments as resolve feedback tasks
...
Enable GitHub comment imports to create independent resolve-feedback tasks.
- Add comment import controls, status feedback, and client API support
- Create validated GitHub comment tasks with quoted feedback and provenance
- Label pull request imports as resolve-feedback work and document the workflow
Files changed:
docs/dashboard-guide.md | 4 +-
packages/dashboard/app/api/legacy.ts | 20 ++++++
.../dashboard/app/components/GitHubImportModal.css | 35 +++++++++
.../dashboard/app/components/GitHubImportModal.tsx | 82 +++++++++++++++++++---
.../__tests__/GitHubImportModal.test.tsx | 56 +++++++++++++++
.../dashboard/src/__tests__/routes-github.test.ts | 73 +++++++++++++++++++
.../dashboard/src/routes/register-git-github.ts | 48 ++++++++++++-
7 files changed, 304 insertions(+), 14 deletions(-)
Fusion-Task-Id: FN-8109
Fusion-Task-Lineage: bdb4477b-31b4-4e01-8439-b72437ff692d
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-16 11:58:27 -07:00
gsxdsm
68583b5c68
FN-8110: add failed-check fix task action
...
Add an in-context recovery path for failed GitHub PR checks.
- Add a per-failed-check Create fix task action with progress and result feedback.
- Compose fix-task context from the selected PR, repository, branches, check status, and details URL.
- Cover the GitHub import behavior and document the feature release.
Files changed: .changeset/fn-8110-pr-failed-check-fix-task.md | 7 +
docs/dashboard-guide.md | 2 +-
.../dashboard/app/components/GitHubImportModal.css | 23 ++++
.../dashboard/app/components/GitHubImportModal.tsx | 91 ++++++++++++-
.../__tests__/GitHubImportModal.test.tsx | 148 +++++++++++++++++++++
5 files changed, 269 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-8110
Fusion-Task-Lineage: 0f69a4e2-d950-4a9f-925e-bd56fb6bf45d
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-16 11:16:06 -07:00
gsxdsm
72378cb4f2
FN-8037: add resizable image preview windows
...
Make pending task images compact and inspectable across task creation surfaces.
- Extract shared pending-image thumbnail controls for Quick Add, Task Form, and inline creation.
- Open full images in a responsive, movable, resizable FloatingWindow with Escape focus restoration.
- Add styling, coverage, operator documentation, and a minor changeset.
Files changed:
.changeset/fn-8037-image-preview-modal.md | 7 ++
docs/dashboard-guide.md | 4 +-
.../quick-entry-image-preview-modal.test.tsx | 60 ++++++++++
.../dashboard/app/components/FloatingWindow.css | 22 ++++
.../dashboard/app/components/InlineCreateCard.css | 14 ++-
.../dashboard/app/components/InlineCreateCard.tsx | 26 ++---
.../app/components/PendingImagePreviews.css | 35 ++++++
.../app/components/PendingImagePreviews.tsx | 121 +++++++++++++++++++++
.../dashboard/app/components/QuickEntryBox.tsx | 27 ++---
packages/dashboard/app/components/TaskForm.tsx | 26 ++---
10 files changed, 280 insertions(+), 62 deletions(-)
Fusion-Task-Id: FN-8037
Fusion-Task-Lineage: 3d92f695-67c9-4791-bfcc-ad25f6aa56f4
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-16 04:58:03 -07:00
gsxdsm
566158232b
FN-8069: toggle dashboard keyboard shortcuts
...
Dashboard keyboard shortcuts now toggle their associated dashboard interfaces.
- Dispatch toggle callbacks for every configurable dashboard shortcut.
- Restore retained prior views and preserve repeated Settings/Command Center history entries.
- Add regression coverage, documentation, and a dashboard feature changeset.
Files changed:
.changeset/fn-8069-shortcut-toggle.md | 7 +
docs/dashboard-guide.md | 3 +
packages/dashboard/app/App.tsx | 48 ++++--
.../app/__tests__/App.keyboard-shortcuts.test.tsx | 172 +++++++++++++++++----
.../useDashboardKeyboardShortcuts.test.tsx | 82 +++++-----
.../app/hooks/useDashboardKeyboardShortcuts.ts | 40 ++---
.../app/utils/dashboardShortcutToggles.ts | 41 +++++
7 files changed, 290 insertions(+), 103 deletions(-)
Fusion-Task-Id: FN-8069
Fusion-Task-Lineage: c2e6d67a-d215-46dd-9803-78ffb49fbbda
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-16 03:17:35 -07:00
gsxdsm
99b79e456b
FN-8066: show reverted badges for completed tasks
...
Persist git-revert provenance and display it on completed task cards.
- Stamp source tasks after clean or already-reverted git outcomes.
- Render localized Reverted badges in completed and archived task views.
- Cover metadata, route, and card behavior with regression tests.
Files changed:
.changeset/fn-8066-reverted-badge.md | 7 +++
docs/dashboard-guide.md | 2 +
packages/dashboard/app/components/TaskCard.css | 14 ++++-
packages/dashboard/app/components/TaskCard.tsx | 20 ++++++-
.../app/components/__tests__/TaskCard.test.tsx | 67 ++++++++++++++++++++++
.../app/utils/__tests__/taskRevert.test.ts | 17 ++++++
packages/dashboard/app/utils/taskRevert.ts | 11 ++++
.../src/__tests__/task-revert-route.test.ts | 35 +++++++++++
.../src/routes/register-task-workflow-routes.ts | 30 ++++++++++
packages/i18n/locales/en/app.json | 2 +
packages/i18n/locales/es/app.json | 2 +
packages/i18n/locales/fr/app.json | 2 +
packages/i18n/locales/ko/app.json | 2 +
packages/i18n/locales/zh-CN/app.json | 2 +
packages/i18n/locales/zh-TW/app.json | 2 +
packages/i18n/src/resources.d.ts | 2 +
16 files changed, 213 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-8066
Fusion-Task-Lineage: 2a071c14-7e5d-4161-ab0c-158f47ad9c22
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-16 03:00:59 -07:00
gsxdsm
f3b68c9fff
FN-8065: preview plans before refinement questions
...
Show a read-only plan preview at the Planning Mode deepening checkpoint.
- Persist pending plan details on the checkpoint question for fresh and restored sessions.
- Render formatted plan content and deliverables above refinement choices.
- Cover preview behavior and document the checkpoint flow.
Files changed:
.../fn-8065-planning-checkpoint-plan-preview.md | 7 +++
docs/dashboard-guide.md | 3 +-
packages/core/src/types.ts | 11 ++++
.../dashboard/app/components/PlanningModeModal.css | 60 ++++++++++++++++++++++
.../dashboard/app/components/PlanningModeModal.tsx | 44 ++++++++++++++++
.../PlanningModeModal.planning-flow.test.tsx | 24 ++++++++-
.../planning-interview-formatters.test.ts | 19 +++++++
packages/dashboard/src/planning.ts | 10 ++++
8 files changed, 175 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-8065
Fusion-Task-Lineage: 13cd52c3-af82-4723-a6b1-3366775213e1
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-16 02:54:33 -07:00
gsxdsm
e87b51bd07
FN-8054: add pinned chat conversations
...
Add durable, scoped pinning for Direct chat conversations.
- Add pinned session persistence, migration coverage, and archive-safe row locking.
- Enforce a three-conversation per-project pin limit through the chat API.
- Add desktop and mobile pin controls, sorting, indicators, and regression tests.
Files changed:
.changeset/fn-8054-pin-conversations.md | 7 ++
docs/dashboard-guide.md | 2 +
.../postgres/satellite-db-injected-stores.test.ts | 13 ++++
packages/core/src/async-chat-store.ts | 27 ++++++++
packages/core/src/chat-store.ts | 63 ++++++++++++++++--
packages/core/src/chat-types.ts | 9 +++
.../core/src/postgres/migrations/0000_initial.sql | 1 +
.../postgres/migrations/0012_chat_session_pins.sql | 8 +++
packages/core/src/postgres/postgres-health.ts | 3 +
packages/core/src/postgres/schema-applier.ts | 30 ++++++++-
packages/core/src/postgres/schema/project.ts | 3 +
packages/dashboard/app/api/legacy.ts | 1 +
packages/dashboard/app/components/ChatView.css | 32 +++++++++-
packages/dashboard/app/components/ChatView.tsx | 74 ++++++++++++++++++++--
.../dashboard/app/hooks/__tests__/useChat.test.ts | 21 ++++++
packages/dashboard/app/hooks/useChat.ts | 72 +++++++++++++++++----
.../dashboard/src/routes/register-chat-routes.ts | 25 +++++++-
17 files changed, 366 insertions(+), 25 deletions(-)
Fusion-Task-Id: FN-8054
Fusion-Task-Lineage: 088cb01c-582b-4f56-a222-214da90ff356
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-16 02:35:29 -07:00
gsxdsm
a821bce236
FN-8030: move room thinking control into composer
...
Move room-level thinking effort from the crowded thread header into the composer Brain popover.
- Reuse the thinking-level control in a room-specific level-only mode.
- Preserve room thinking persistence and add desktop, mobile, and failure coverage.
- Update room-chat documentation and publish a patch changeset.
Files changed:
.changeset/fn-8030-room-thinking-composer.md | 7 +++
docs/dashboard-guide.md | 2 +-
.../app/components/ChatThinkingLevelControl.tsx | 12 +++-
packages/dashboard/app/components/ChatView.css | 16 -----
packages/dashboard/app/components/ChatView.tsx | 54 +++++++---------
.../__tests__/ChatThinkingLevelControl.test.tsx | 20 ++++++
.../components/__tests__/ChatView.rooms.test.tsx | 72 +++++++++++++++++++---
.../__tests__/ChatView.thinking-level.test.tsx | 23 ++++---
8 files changed, 137 insertions(+), 69 deletions(-)
Fusion-Task-Id: FN-8030
Fusion-Task-Lineage: 31054538-e620-412d-98ba-26fba34a6af8
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-16 01:38:49 -07:00
gsxdsm
3f5d7c2147
FN-8049: preserve desktop geometry across sheet views
...
Prevent full-screen sheet opens from replacing saved desktop FloatingWindow geometry.
- Suspend geometry restoration and writes for sheet modal surfaces without adding storage keys.
- Preserve Artifact Gallery geometry at both narrow-width and short-height sheet breakpoints.
- Cover sheet persistence behavior and document desktop geometry restoration.
Files changed:
docs/dashboard-guide.md | 3 +
packages/dashboard/app/App.tsx | 4 +
.../dashboard/app/components/ArtifactsGallery.tsx | 3 +
.../dashboard/app/components/FileBrowserModal.tsx | 2 +
.../dashboard/app/components/FloatingWindow.tsx | 25 ++++-
.../dashboard/app/components/GitHubImportModal.tsx | 4 +
.../app/components/MissionInterviewModal.tsx | 2 +
.../dashboard/app/components/PrCreateModal.tsx | 2 +
.../app/components/ScheduledTasksModal.tsx | 2 +
.../app/components/WorkflowNodeEditor.tsx | 2 +
.../components/__tests__/FloatingWindow.test.tsx | 118 ++++++++++++++++++++-
.../app/hooks/__tests__/useViewportMode.test.ts | 13 ++-
packages/dashboard/app/hooks/useViewportMode.ts | 15 +++
13 files changed, 190 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-8049
Fusion-Task-Lineage: 4c659046-694a-42fa-aca1-e702c1d3842a
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-16 01:19:43 -07:00
gsxdsm
d6f94693b2
FN-8028: widen tablet chat message bubbles
...
Increase tablet agent-side chat bubble width while preserving responsive behavior.
- Raise the tablet assistant, streaming, and failure bubble cap to 92%.
- Update the responsive CSS contract and dashboard documentation.
Files changed:
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/ChatView.css | 5 ++++-
packages/dashboard/app/components/__tests__/ChatView.core-contracts.test.tsx | 4 ++--
3 files changed, 7 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-8028
Fusion-Task-Lineage: 2158a4c8-f07b-4e96-bcf2-80ebe6b08515
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-15 23:49:24 -07:00
gsxdsm
728eb1adaf
FN-8003: add planning prompt recovery copy action
...
Preserve original planning prompts for recovery from stalled or off-track interviews.
- Add Copy prompt actions to active interview and error recovery surfaces.
- Restore original prompts for resumable sessions and provide clipboard feedback.
- Cover prompt copying across active, error, resumed, and absent-prompt states.
Files changed:
docs/dashboard-guide.md | 3 +
.../dashboard/app/components/PlanningModeModal.css | 33 +++++
.../dashboard/app/components/PlanningModeModal.tsx | 116 +++++++++++++----
.../PlanningModeModal.planning-flow.test.tsx | 139 +++++++++++++++++++++
4 files changed, 266 insertions(+), 25 deletions(-)
Fusion-Task-Id: FN-8003
Fusion-Task-Lineage: 11c0ec9d-290b-4793-9571-002d4b429c5e
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-15 20:32:19 -07:00
gsxdsm
adcba0eed2
FN-8017: add imported-item filter to task import
...
Add a persisted control that declutters Import Tasks by hiding items already on the board.
- Filter imported GitHub issues, pull requests, and GitLab resources while retaining full imported counts.
- Clear hidden selections, show an all-imported empty state, and preserve the preference per project.
- Document the toggle, add styling, coverage, and a minor changeset.
Files changed:
.changeset/fn-8017-hide-imported-toggle.md | 7 ++
docs/dashboard-guide.md | 4 +-
.../dashboard/app/components/GitHubImportModal.css | 21 ++++
.../dashboard/app/components/GitHubImportModal.tsx | 70 ++++++++++++-
.../__tests__/GitHubImportModal.test.tsx | 108 +++++++++++++++++++++
packages/dashboard/app/hooks/modalPersistence.ts | 6 ++
6 files changed, 209 insertions(+), 7 deletions(-)
Fusion-Task-Id: FN-8017
Fusion-Task-Lineage: 5f03fe92-6dce-4de7-a745-0c8a46dc2dbb
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-15 19:27:00 -07:00
gsxdsm
7cec078054
FN-8016: scope task popups to their opening view
...
Scope task-detail popups to their origin dashboard view by default.
- Default per-view popup scoping while retaining a legacy global-popup opt-out.
- Key popup lifecycle, navigation, and Escape dismissal by task and origin view.
- Update settings copy, documentation, localization, and regression coverage.
Files changed:
.changeset/fn-8016-task-popup-view-scoping.md | 7 ++
docs/dashboard-guide.md | 4 +-
.../core/src/__tests__/settings-defaults.test.ts | 4 +-
packages/core/src/settings-schema.ts | 6 +-
packages/core/src/types.ts | 6 +-
packages/dashboard/app/App.tsx | 67 ++++++-----
.../app/__tests__/App.keyboard-shortcuts.test.tsx | 14 ++-
.../app/__tests__/App.taskPopupViewGating.test.tsx | 125 +++++++--------------
.../dashboard/app/components/SettingsModal.tsx | 2 +-
.../settings/sections/AppearanceSection.tsx | 6 +-
.../sections/__tests__/AppearanceSection.test.tsx | 18 ++-
.../app/hooks/__tests__/useAppSettings.test.ts | 15 +++
.../app/hooks/__tests__/usePoppedOutTasks.test.ts | 28 ++---
packages/dashboard/app/hooks/useAppSettings.ts | 8 +-
packages/dashboard/app/hooks/usePoppedOutTasks.ts | 14 +--
packages/i18n/locales/en/app.json | 4 +-
packages/i18n/src/resources.d.ts | 4 +-
17 files changed, 158 insertions(+), 174 deletions(-)
Fusion-Task-Id: FN-8016
Fusion-Task-Lineage: e33beeae-0ce3-4202-95dc-6fb2d26f9770
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-15 19:03:44 -07:00
gsxdsm
66ae82af5b
FN-8007: align concurrency current-use markers
...
Align dashboard and footer concurrency markers with their native range thumbs.
- Map running counts in min-relative slider coordinates and clamp them to the configured cap
- Standardize native slider thumb dimensions and marker geometry across browsers
- Add dashboard coverage and document the marker behavior
Files changed:
.changeset/fn-8007-concurrency-dot-alignment.md | 7 +
docs/dashboard-guide.md | 8 +-
.../dashboard/app/components/EngineControlMenu.css | 20 ++-
.../dashboard/app/components/EngineControlMenu.tsx | 19 ++-
.../__tests__/EngineControlMenu.test.tsx | 96 +++++-------
.../command-center/CommandCenterControls.css | 22 ++-
.../command-center/CommandCenterControls.tsx | 19 ++-
.../__tests__/CommandCenterControls.test.tsx | 164 +++++++++++++++++++++
8 files changed, 277 insertions(+), 78 deletions(-)
Fusion-Task-Id: FN-8007
Fusion-Task-Lineage: 9ad8ee0b-09da-413e-96bc-530c897cb32e
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-15 18:43:37 -07:00
gsxdsm
22fde62510
FN-8001: open footer planning sessions in Planning view
...
Navigate Background Tasks footer planning rows into the embedded Planning view so resume actually loads planning mode.
- Call handleChangeTaskView("planning") when opening a background planning session
- Extend App tests for footer planning resume and unchanged non-planning session routes
- Update dashboard-guide planning resume entry-point docs
Files changed:
docs/dashboard-guide.md | 4 +-
packages/dashboard/app/App.tsx | 5 ++
.../app/components/__tests__/App.test.tsx | 94 +++++++++++++++++++---
3 files changed, 91 insertions(+), 12 deletions(-)
Fusion-Task-Id: FN-8001
Fusion-Task-Lineage: 402ece21-5f29-4304-a3aa-ef7004a30155
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-15 16:58:56 -07:00
gsxdsm
0b06026c74
FN-7992: open GitHub import issue/PR details in FloatingWindow
...
Show GitHub/GitLab import item details in a draggable FloatingWindow instead of an embedded two-pane preview, simplifying the import modal layout.
- Replace inline list/preview split with FloatingWindow for issue and PR detail
- Remove two-pane resize handle, mobile list/preview switch, and related CSS
- Keep close confirmation when discarding detail-window changes
- Update FloatingWindow styles and dashboard guide for floating import details
- Slim GitHubImportModal tests while restoring core import-modal coverage
Files changed:
docs/dashboard-guide.md | 6 +-
.../dashboard/app/components/FloatingWindow.css | 23 +-
.../dashboard/app/components/GitHubImportModal.css | 359 +-------
.../dashboard/app/components/GitHubImportModal.tsx | 347 ++------
.../components/__tests__/FloatingWindow.test.tsx | 2 +-
.../__tests__/GitHubImportModal.test.tsx | 909 ++-------------------
6 files changed, 139 insertions(+), 1507 deletions(-)
Fusion-Task-Id: FN-7992
Fusion-Task-Lineage: 0991e28c-d793-4a41-9312-6e250e8a09c4
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-15 16:51:34 -07:00
gsxdsm
c0bef0bfbe
FN-7969: deprecate unused builtin Coding (Ideas) workflow
...
Hide builtin:coding-ideas from new selection after occupancy preflight, while keeping it resolvable for any existing task selections.
- Add builtin:coding-ideas to DEPRECATED_BUILTIN_WORKFLOW_IDS so it is excluded from defaultEnabledBuiltinWorkflowIds and listWorkflowDefinitions selection listings
- Keep getBuiltinWorkflow / direct resolution working for pre-existing Coding (Ideas) task selections
- Document deprecation and custom-workflow copy path in dashboard-guide and workflow-steps
- Extend builtin-workflows and settings-sections tests for hide-from-selection + management/resolution retention
- Add minor changeset for @runfusion/fusion
Files changed:
.changeset/fn-7969-deprecate-coding-ideas.md | 7 +++++++
docs/dashboard-guide.md | 2 +-
docs/workflow-steps.md | 2 +-
.../core/src/__tests__/builtin-workflows.test.ts | 28 ++++++++++++++--------
packages/core/src/builtin-workflows.ts | 9 +++----
packages/core/src/types.ts | 9 ++++---
.../app/__tests__/settings-sections.test.tsx | 2 ++
7 files changed, 43 insertions(+), 16 deletions(-)
Fusion-Task-Id: FN-7969
Fusion-Task-Lineage: 578ae727-e1b6-4ff9-a3a2-d1228c50fba6
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-15 16:47:01 -07:00
gsxdsm
e83116a970
FN-7991: mark import-screen items as imported immediately
...
Mark successful GitHub/GitLab import rows as Imported right away via optimistic local URL state, without waiting for the parent tasks prop round-trip.
- Add optimisticImportedUrls unioned with tasks-derived importedUrls via isUrlImported
- Populate on successful GitHub issue/PR and GitLab imports; clear on modal reset and source change
- Disable re-import and show Imported badge on rows, counts, and import buttons for optimistic URLs
- Cover optimistic import surfaces in GitHubImportModal tests
- Document the behavior in the dashboard guide and add a patch changeset
Files changed:
.changeset/fn-7991-import-screen-optimistic-imported.md | 7 +++
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/components/GitHubImportModal.tsx | 57 +++++++++++++++++-----
packages/dashboard/app/components/__tests__/GitHubImportModal.test.tsx | 56 ++++++++++++++++++---
4 files changed, 103 insertions(+), 19 deletions(-)
Fusion-Task-Id: FN-7991
Fusion-Task-Lineage: ddfb249a-e2e8-4723-a86d-7f6edc74305c
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-15 15:51:54 -07:00