gsxdsm
7e7c3c999b
FN-8317: add reviewed report screenshots and activity traces
...
Capture optional report context while preserving scrubbed text-first filing.\n\n- Add browser screenshot capture, review, validation, and compensating upload cleanup.\n- Include bounded activity traces in report drafts and filing flows.\n- Preserve roadmap deduplication and document report privacy behavior.\n\nFiles changed:\n .changeset/fn-8317-report-context.md | 7 +
docs/dashboard-guide.md | 4 +-
packages/dashboard/app/api/report.ts | 15 +-
packages/dashboard/app/components/ReportModal.css | 5 +-
packages/dashboard/app/components/ReportModal.tsx | 52 +++----
.../app/components/__tests__/ReportModal.test.tsx | 14 ++
packages/dashboard/app/hooks/useViewState.ts | 7 +
.../app/utils/__tests__/report-capture.test.ts | 17 +++
packages/dashboard/app/utils/report-capture.ts | 47 +++++++
packages/dashboard/package.json | 1 -
.../src/__tests__/report-pipeline.test.ts | 100 +++++++++++++-
.../dashboard/src/__tests__/report-routes.test.ts | 17 +++
.../dashboard/src/__tests__/report-scrub.test.ts | 8 ++
packages/dashboard/src/github.ts | 107 +++++++++++++++
packages/dashboard/src/report-pipeline.ts | 152 ++++++++++++++++-----
packages/dashboard/src/report-scrub.ts | 8 ++
.../dashboard/src/routes/register-report-routes.ts | 103 ++++++--------
pnpm-lock.yaml | 129 +++++++++--------
18 files changed, 590 insertions(+), 203 deletions(-)
Fusion-Task-Id: FN-8317
Fusion-Task-Lineage: 9d200cee-cf69-4827-9e1e-f7789adf09e0
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 17:06:34 -07:00
gsxdsm
1215c76d9a
FN-8326: add roadmap report deduplication
...
Add an optional public-roadmap source for report deduplication.
- Add project settings and localized controls for roadmap matching.
- Resolve roadmap entries through the plugin API and stop strong duplicate reports before filing.
- Cover report pipeline, route, UI, and roadmap store behavior with tests.
Files changed:
.changeset/fn-8326-roadmap-report-dedup.md | 7 +++
docs/dashboard-guide.md | 2 +
docs/settings-reference.md | 1 +
.../core/src/__tests__/settings-parity.test.ts | 3 +
packages/core/src/settings-schema.ts | 1 +
packages/core/src/types.ts | 6 ++
packages/dashboard/app/components/ReportModal.tsx | 11 +++-
.../app/components/__tests__/ReportModal.test.tsx | 14 +++++
.../__tests__/SettingsModal.general.test.tsx | 2 +
.../settings/sections/GeneralSection.tsx | 10 ++++
.../settings-default-descriptions.test.tsx | 1 +
.../src/__tests__/report-pipeline.test.ts | 31 +++++++++++
.../src/__tests__/report-roadmap-source.test.ts | 32 +++++++++++
.../dashboard/src/__tests__/report-routes.test.ts | 27 +++++++--
packages/dashboard/src/index.ts | 1 +
packages/dashboard/src/report-pipeline.ts | 36 +++++++++++-
packages/dashboard/src/report-roadmap-source.ts | 64 ++++++++++++++++++++++
.../dashboard/src/routes/register-report-routes.ts | 3 +
packages/i18n/locales/en/app.json | 10 +++-
packages/i18n/locales/es/app.json | 10 +++-
packages/i18n/locales/fr/app.json | 10 +++-
packages/i18n/locales/ko/app.json | 10 +++-
packages/i18n/locales/zh-CN/app.json | 10 +++-
packages/i18n/locales/zh-TW/app.json | 10 +++-
.../src/__tests__/roadmap-store-factory.test.ts | 25 +++++++++
.../src/routes/roadmap-routes.ts | 24 +-------
plugins/fusion-plugin-roadmap/src/server/index.ts | 34 ++++++++++++
27 files changed, 360 insertions(+), 35 deletions(-)
Fusion-Task-Id: FN-8326
Fusion-Task-Lineage: e9731c3f-dd92-44ac-910b-0e0efbaaf288
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 14:23:14 -07:00
gsxdsm
02ee8a4fd5
fix: hide stale task-card oversight icons ( #2318 )
...
## Summary
Task cards now remove the overseer eye as soon as their workflow's
effective oversight becomes `off`, instead of reusing an active value
cached before the setting changed.
The invalidation covers card remounts as well as mounted cards, and
authoritative writes from the dashboard, agents, and configuration
rollback reach the board through the existing project-scoped SSE stream.
Older in-flight responses cannot restore the eye after a newer `off`
value wins, while unrelated workflow-setting saves leave active
indicators undisturbed.
## Validation
- 99 focused dashboard regression tests passed across selected and
aggregate cards, desktop and mobile, SSE delivery, and out-of-order
responses
- Core and dashboard typechecks passed
- `pnpm lint` and `pnpm check:changesets` passed
- `pnpm verify:fast` passed production builds and the CLI/server boot
smoke
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **Bug Fixes**
- Planner-overseer eye badges now disappear immediately when workflow
oversight is turned off.
- Prevented stale or out-of-order updates from displaying incorrect
oversight status.
- Oversight indicators now remain hidden when the effective setting
cannot be confirmed.
- Live workflow setting changes now update task cards without requiring
a page refresh.
- **Documentation**
- Clarified eye badge visibility rules, tooltip meaning, and active
oversight states in the dashboard guide.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-07-18 13:50:58 -07:00
gsxdsm
e0d2fd6085
FN-8332: preserve planning session progress after reload
...
Restore persisted Planning Mode sessions without starting a new generation.
- Limit automatic retries to generations started by the current mounted UI
- Render saved questions, summaries, thinking, and errors with manual retry after reload or resume
- Cover desktop, mobile, stream, and polling recovery paths and document the behavior
- Add a patch changeset for the published package
Files changed:
.changeset/fn-8332-planning-reload-resume.md | 7 +
docs/dashboard-guide.md | 4 +-
.../dashboard/app/components/PlanningModeModal.tsx | 36 ++++-
.../PlanningModeModal.planning-flow.test.tsx | 175 +++++++++++++++++----
4 files changed, 180 insertions(+), 42 deletions(-)
Fusion-Task-Id: FN-8332
Fusion-Task-Lineage: 6b128dc3-a091-4e81-bc6a-9c541d8e4cf5
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 13:32:33 -07:00
gsxdsm
551074537f
FN-8331: require planning interview before summaries
...
Ensure Planning Mode collects mandatory user context before it can generate a plan.
- Reject and re-prompt first-turn completion responses until a clarifying question is available.
- Preserve the interview invariant for streaming sessions and legacy session rehydration.
- Update Planning Mode defaults, documentation, regression coverage, and release metadata.
Files changed:
.changeset/fn-8331-planning-interview.md | 7 +
docs/dashboard-guide.md | 2 +-
docs/settings-reference.md | 2 +-
.../dashboard/app/components/PlanningModeModal.tsx | 10 +-
.../PlanningModeModal.planning-flow.test.tsx | 4 +-
.../src/__tests__/routes-planning.test.ts | 120 ++++++++++++++++-
packages/dashboard/src/planning.ts | 145 ++++++++++++++-------
7 files changed, 233 insertions(+), 57 deletions(-)
Fusion-Task-Id: FN-8331
Fusion-Task-Lineage: 6fc98f2e-f263-4830-b88c-e52d1ba6551f
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 13:01:35 -07:00
gsxdsm
500275ac0c
FN-8311: capture report activity context safely
...
Keep report traces useful while preserving local-only screenshot retention.
- Record report submissions, toast messages, and uncaught client errors in bounded report context
- Preserve single-upload screenshot artifacts across draft review and filing
- Document report-context capture and add a release changeset
Files changed:
.changeset/fn-8311-report-context.md | 7 +++++++
docs/dashboard-guide.md | 2 +-
packages/dashboard/app/App.tsx | 11 ++++++++++-
packages/dashboard/app/components/ReportModal.tsx | 1 +
4 files changed, 19 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-8311
Fusion-Task-Lineage: bca77264-7607-45d6-99f0-a83a4ba6631d
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 12:57:04 -07:00
gsxdsm
88b0db0f4d
FN-8309: add report screenshot and activity capture
...
Add opt-in local screenshot attachments and scrubbed activity traces to reports.
- Capture, preview, confirm, and locally retain report screenshots without GitHub egress.
- Include bounded activity traces in draft and filing context with server-side validation.
- Add report pipeline coverage, documentation, and release metadata.
Files changed:
.changeset/fn-8309-report-capture.md | 7 ++
docs/dashboard-guide.md | 2 +
packages/dashboard/app/App.tsx | 10 ++
packages/dashboard/app/api/report.ts | 16 ++-
packages/dashboard/app/components/ReportModal.css | 3 +
packages/dashboard/app/components/ReportModal.tsx | 45 ++++++-
.../app/utils/__tests__/activity-trace.test.ts | 19 +++
packages/dashboard/app/utils/activity-trace.ts | 37 ++++++
packages/dashboard/app/utils/capture-screenshot.ts | 22 ++++
packages/dashboard/package.json | 5 +-
.../src/__tests__/report-pipeline.test.ts | 13 +++
packages/dashboard/src/report-pipeline.ts | 29 ++++-
packages/dashboard/src/routes.ts | 2 +-
.../dashboard/src/routes/register-report-routes.ts | 85 +++++++++++++-
packages/dashboard/src/routes/types.ts | 4 +-
pnpm-lock.yaml | 129 ++++++++++-----------
16 files changed, 341 insertions(+), 87 deletions(-)
Fusion-Task-Id: FN-8309
Fusion-Task-Lineage: db9c14a6-1721-4e81-8891-cfd301473cd0
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 12:41:42 -07:00
gsxdsm
d5db5fd58d
FN-8304: detect foreign issue-form content for translation
...
Recognize foreign GitHub and GitLab issue-form prose so import translation remains available.
- Remove issue-form scaffolding before content-language scoring.
- Identify Czech as unsupported foreign Latin content and offer translation.
- Cover automatic and manual translation paths with issue-form fixtures.
- Document the expanded import translation behavior and add a patch changeset.
Files changed:
.changeset/fn-8304-issue-form-translation.md | 7 ++
docs/dashboard-guide.md | 2 +-
docs/settings-reference.md | 2 +-
packages/core/src/detect-content-language.ts | 66 ++++++++++--
.../__tests__/GitHubImportAutoTranslate.test.tsx | 42 +++++++-
.../utils/__tests__/detectContentLanguage.test.ts | 120 +++++++++++++++++++++
.../src/__tests__/import-translate-service.test.ts | 56 ++++++++++
7 files changed, 284 insertions(+), 11 deletions(-)
Fusion-Task-Id: FN-8304
Fusion-Task-Lineage: ef6ca70c-aa67-40ff-a23a-077940b5a5f0
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 12:32:07 -07:00
gsxdsm
9debeaa951
FN-8300: show planner activity on status-null cards
...
Keep planning cards visibly active while fresh planner logs precede authoritative task status updates.
- Track bounded client-only planner activity from fresh triage log events
- Render matching pulsing Planning badges in board and list card views
- Cover transient activity, authoritative clearing, and inactive edge cases
Files changed:
docs/dashboard-guide.md | 2 +
packages/core/src/types.ts | 6 +++
packages/dashboard/app/components/ListView.tsx | 26 ++++++++---
packages/dashboard/app/components/TaskCard.tsx | 20 +++++---
.../app/components/__tests__/ListView.test.tsx | 38 +++++++++++++++
.../app/components/__tests__/TaskCard.test.tsx | 19 +++++++-
.../dashboard/app/hooks/__tests__/useTasks.test.ts | 54 ++++++++++++++++++++++
packages/dashboard/app/hooks/useTasks.ts | 44 +++++++++++++-----
.../app/utils/__tests__/taskActivity.test.ts | 22 ++++++++-
packages/dashboard/app/utils/taskActivity.ts | 15 +++++-
10 files changed, 219 insertions(+), 27 deletions(-)
Fusion-Task-Id: FN-8300
Fusion-Task-Lineage: e12f1277-5628-45a1-b731-54310027540e
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 12:13:20 -07:00
gsxdsm
3568a86a66
FN-8284: add organization portability controls
...
Add Command Center tools for safe organization portability and configuration recovery.
- Register project-scoped organization export/import and revision rollback routes.
- Add localized, responsive Command Center controls for bundle preview, import, and rollback.
- Invalidate stale dry-run responses and retain only the exact previewed bundle for import.
- Cover portability routes and editing-during-preview behavior with tests.
Files changed:
docs/dashboard-guide.md | 2 +
.../command-center/CommandCenterControls.tsx | 3 +
.../command-center/OrgPortabilityControls.css | 81 +++++++++
.../command-center/OrgPortabilityControls.tsx | 184 +++++++++++++++++++++
.../__tests__/CommandCenter.mobile-scroll.test.tsx | 2 +
.../__tests__/OrgPortabilityControls.test.tsx | 94 +++++++++++
packages/dashboard/src/routes.ts | 2 +
.../register-org-portability-routes.test.ts | 109 ++++++++++++
.../src/routes/register-org-portability-routes.ts | 129 +++++++++++++++
packages/i18n/locales/en/app.json | 37 +++++
10 files changed, 643 insertions(+)
Fusion-Task-Id: FN-8284
Fusion-Task-Lineage: 1fa06550-8064-417f-a8d0-40f693206404
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 12:06:00 -07:00
gsxdsm
e8c37b076e
FN-8277: add in-app agentic reporting
...
Add guided in-app reporting that safely files or endorses GitHub issues and discussions.
- Add report actions, modal UI, API routes, and configurable per-action filing modes.
- Scrub report payloads, self-check Help requests, and deduplicate before filing or endorsing.
- Extend GitHub discussion support and cover the report pipeline with tests and documentation.
Files changed:
.changeset/fn-8277-agentic-reports.md | 7 +
docs/dashboard-guide.md | 8 +
docs/settings-reference.md | 2 +
.../core/src/__tests__/settings-parity.test.ts | 9 +
packages/core/src/index.gate.ts | 2 +-
packages/core/src/index.ts | 2 +-
packages/core/src/settings-schema.ts | 2 +
packages/core/src/types.ts | 10 +
packages/dashboard/app/api.ts | 1 +
packages/dashboard/app/api/report.ts | 11 +
packages/dashboard/app/components/Header.tsx | 30 +++
.../dashboard/app/components/ReportActionMenu.css | 6 +
.../dashboard/app/components/ReportActionMenu.tsx | 22 ++
packages/dashboard/app/components/ReportModal.css | 6 +
packages/dashboard/app/components/ReportModal.tsx | 81 ++++++++
.../app/components/__tests__/Header.test.tsx | 7 +-
.../components/__tests__/ReportActionMenu.test.tsx | 18 ++
.../app/components/__tests__/ReportModal.test.tsx | 94 +++++++++
.../__tests__/SettingsModal.general.test.tsx | 15 ++
.../settings/sections/GeneralSection.tsx | 31 ++-
.../src/__tests__/report-pipeline.test.ts | 127 ++++++++++++
.../dashboard/src/__tests__/report-routes.test.ts | 51 +++++
.../dashboard/src/__tests__/report-scrub.test.ts | 47 +++++
packages/dashboard/src/github.ts | 151 +++++++++++++-
packages/dashboard/src/index.ts | 3 +
packages/dashboard/src/report-help-selfcheck.ts | 13 ++
packages/dashboard/src/report-pipeline.ts | 225 +++++++++++++++++++++
packages/dashboard/src/report-scrub.ts | 66 ++++++
packages/dashboard/src/routes.ts | 2 +
.../dashboard/src/routes/register-report-routes.ts | 118 +++++++++++
30 files changed, 1156 insertions(+), 11 deletions(-)
Fusion-Task-Id: FN-8277
Fusion-Task-Lineage: d50dc1da-7534-4324-ab05-1f8a0ad77c6a
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 10:55:50 -07:00
gsxdsm
a6f1ed07e2
FN-8287: unify task-detail action button sizing
...
Standardize task-detail inline action controls across themes.
- Apply shared tokenized square sizing, borders, and radii to all inline metadata actions.
- Add a regression test for the common sizing rule and document the control cluster.
- Add a patch changeset for consistent task-detail action buttons.
Files changed:
.changeset/fn-8287-task-detail-button-sizes.md | 7 +++
docs/dashboard-guide.md | 2 +-
.../dashboard/app/components/TaskDetailModal.css | 73 ++++++++--------------
...etailModal.responsive-and-dependencies.test.tsx | 24 +++++++
4 files changed, 57 insertions(+), 49 deletions(-)
Fusion-Task-Id: FN-8287
Fusion-Task-Lineage: 21ce01e1-7443-4a41-8a7d-faaa2bcddb28
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 10:08:33 -07:00
gsxdsm
119fcedcfe
FN-8276: unify mobile board snap behavior
...
Make JavaScript the sole authority for mobile Kanban pan settlement.
- Suspend native proximity snapping while a user pan settles, then restore its inline baseline.
- Restore snapping after wheels with no horizontal scroll as well as pointer and touch completion.
- Document the unified magnetism behavior and cover restoration paths with hook tests.
Files changed:
.changeset/fn-8276-unify-board-magnetism.md | 7 +++
docs/dashboard-guide.md | 3 +-
.../hooks/__tests__/useColumnScrollSnap.test.ts | 53 +++++++++++++++--
.../dashboard/app/hooks/useColumnScrollSnap.ts | 66 ++++++++++++++++++++--
4 files changed, 119 insertions(+), 10 deletions(-)
Fusion-Task-Id: FN-8276
Fusion-Task-Lineage: 1ff3ae24-51e8-4c4f-aa5a-7a7b7c84d37c
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 09:05:51 -07:00
gsxdsm
7c23771433
FN-8265: add task follow-up proposal creation
...
Enable configured ephemeral workers to propose and create follow-up tasks from mailbox messages.
- Add persisted task-proposal claim state, migrations, and async messaging APIs.
- Register task-proposal creation routes, SSE events, agent tool support, and CLI integration.
- Add mailbox creation controls, settings, documentation, localization, and regression coverage.
Files changed:
.changeset/fn-8265-task-follow-up-policy.md | 7 ++
docs/dashboard-guide.md | 2 +-
docs/settings-reference.md | 12 ++-
packages/cli/src/extension.ts | 34 ++++---
.../src/__tests__/postgres/sqlite-migrator.test.ts | 14 ++-
.../postgres/task-proposal-claim.pg.test.ts | 51 +++++++++++
packages/core/src/async-message-store.ts | 39 ++++++++
packages/core/src/index.gate.ts | 4 +-
packages/core/src/index.ts | 4 +-
packages/core/src/message-store.ts | 46 ++++++++++
.../core/src/postgres/migrations/0000_initial.sql | 2 +
.../migrations/0020_task_proposal_claim.sql | 4 +
packages/core/src/postgres/schema-applier.ts | 13 ++-
packages/core/src/postgres/schema/project.ts | 3 +
packages/core/src/settings-schema.ts | 19 +++-
packages/core/src/task-store/async-persistence.ts | 2 +-
packages/core/src/task-store/persistence.ts | 4 +-
packages/core/src/task-store/serialization.ts | 1 +
packages/core/src/task-store/task-creation.ts | 51 +++++++++++
packages/core/src/task-store/task-row-mappers.ts | 2 +-
packages/core/src/types.ts | 56 +++++++++++-
packages/dashboard/app/api/legacy.ts | 5 +
packages/dashboard/app/components/MailboxModal.tsx | 4 +
.../app/components/MailboxTaskProposal.css | 3 +
.../app/components/MailboxTaskProposal.tsx | 33 +++++++
packages/dashboard/app/components/MailboxView.tsx | 4 +
.../__tests__/MailboxTaskProposal.test.tsx | 43 +++++++++
.../app/components/settings/section-keys.ts | 2 +-
.../settings/sections/GeneralSection.search.ts | 13 ++-
.../settings/sections/GeneralSection.tsx | 22 +++--
.../settings-default-descriptions.test.tsx | 4 +-
.../routes/__tests__/task-proposal-routes.test.ts | 99 ++++++++++++++++++++
.../src/routes/register-messaging-scripts.ts | 101 +++++++++++++++++++++
packages/dashboard/src/sse.ts | 7 ++
packages/engine/src/agent-tools.ts | 30 ++++--
packages/engine/src/executor.ts | 9 +-
packages/engine/src/step-session-executor.ts | 8 +-
packages/i18n/locales/en/app.json | 5 +
38 files changed, 696 insertions(+), 66 deletions(-)
Fusion-Task-Id: FN-8265
Fusion-Task-Lineage: 4e864a2f-3485-4a54-8be7-1699b5479a94
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 03:48:38 -07:00
gsxdsm
91eb1b088a
FN-8266: add GitHub import Chat prefill
...
Let operators open Chat from a selected GitHub issue or pull request with its link ready in the composer.
- Add GitHub-only Chat actions to import detail views and route their prefill through modal and embedded surfaces.
- Seed and focus the direct Chat composer without sending, while preserving saved drafts after failed default-session creation.
- Document the workflow and cover import, prefill, and draft-restoration behavior.
Files changed:
docs/dashboard-guide.md | 12 +++-
packages/dashboard/app/App.tsx | 16 +++++
packages/dashboard/app/components/AppModals.tsx | 3 +
packages/dashboard/app/components/ChatView.tsx | 70 +++++++++++++++++++-
.../dashboard/app/components/GitHubImportModal.tsx | 28 +++++++-
.../components/__tests__/ChatView.draft.test.tsx | 74 ++++++++++++++++++++++
.../__tests__/GitHubImportModal.test.tsx | 49 ++++++++++++++
.../app/components/dashboard/MainContent.tsx | 5 ++
.../dashboard/app/components/dashboard/types.ts | 3 +
9 files changed, 255 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-8266
Fusion-Task-Lineage: 30102ce8-5aca-4e34-8bb0-6f3c23e64044
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 02:41:35 -07:00
gsxdsm
ce3f55fec9
FN-8263: reflect session advisor state in task-detail eye
...
Keep the task-detail oversight indicator aligned with the effective session advisor state.
- Show and light the oversight eye for enabled advisor inheritance while lifecycle oversight is off or unresolved.
- Limit unresolved advisor-only menus to the session advisor toggle and repaint the icon after toggles.
- Cover desktop and mobile behavior and document the interaction.
Files changed:
.changeset/fn-8263-session-advisor-detail-eye.md | 7 ++
docs/dashboard-guide.md | 6 +-
.../dashboard/app/components/TaskDetailModal.tsx | 47 ++++++----
.../TaskDetailModal.oversight-controls.test.tsx | 101 +++++++++++++++++++++
.../TaskDetailModal.oversight-mobile.test.tsx | 40 ++++++++
5 files changed, 183 insertions(+), 18 deletions(-)
Fusion-Task-Id: FN-8263
Fusion-Task-Lineage: 61cd134c-7721-4e19-89a9-a406358f54a9
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 02:20:31 -07:00
gsxdsm
4fd9ccd5ae
FN-8267: dismiss mobile artifact viewers on back
...
Ensure mobile artifact viewers close before dashboard navigation.
- Register mobile viewer entries with navigation history.
- Consume entries for header and Escape dismissals.
- Cover browser and native Back behavior and document it.
Files changed:
docs/dashboard-guide.md | 3 +-
.../dashboard/app/components/ArtifactsGallery.tsx | 26 +++-
.../__tests__/ArtifactsGallery.swipe-back.test.tsx | 170 +++++++++++++++++++++
3 files changed, 194 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-8267
Fusion-Task-Lineage: 5a5edb10-b6c5-4b9d-89a8-6623306953f6
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 02:05:35 -07:00
gsxdsm
44e20274d7
FN-8261: add GitHub issue planning import option
...
Add a Planning Mode path alongside direct GitHub issue imports.
- Pass selected issue context into Planning Mode after closing the import surface
- Preserve direct-import tracking while labeling its action clearly
- Cover issue planning behavior and document desktop and mobile flows
Files changed:
docs/dashboard-guide.md | 9 ++-
packages/dashboard/app/components/AppModals.tsx | 1 +
packages/dashboard/app/components/GitHubImportModal.tsx | 46 ++++++++++-
packages/dashboard/app/components/__tests__/GitHubImportModal.test.tsx | 91 ++++++++++++++++++++--
packages/dashboard/app/components/dashboard/MainContent.tsx | 1 +
5 files changed, 137 insertions(+), 11 deletions(-)
Fusion-Task-Id: FN-8261
Fusion-Task-Lineage: 6b121563-7cfa-4ba1-82c9-9ad574738a20
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 02:00:34 -07:00
gsxdsm
d88e4f9c90
FN-8255: hide inherited-default oversight eye
...
Suppress transient task-card oversight eyes for unconfigured inherited autonomous workflows.
- Reuse the meaningful oversight badge gate for planner-overseer eye rendering.
- Cover aggregate, selected-workflow, explicit override, and mobile states.
- Document the inherited-default suppression and add a patch changeset.
Files changed:
.changeset/fn-8255-card-eye-inherited-default-oversight.md | 7 ++
docs/dashboard-guide.md | 3 +-
packages/dashboard/app/components/TaskCard.tsx | 21 +++---
.../__tests__/TaskCard.oversight.test.tsx | 78 +++++++++++++++++++---
4 files changed, 88 insertions(+), 21 deletions(-)
Fusion-Task-Id: FN-8255
Fusion-Task-Lineage: 2c48f96f-9f06-4def-b7bb-1020e8505d7b
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 01:53:14 -07:00
gsxdsm
2bd25b0605
FN-8260: prevent truncated planning completions
...
Prevent incomplete AI responses from reaching the Planning Complete checkpoint.
- Reject completion payloads repaired from truncated JSON and retry once
- Preserve tolerant question parsing and add regression coverage
- Document the retryable incomplete-response behavior and add a patch changeset
Files changed:
.../fn-8260-planning-truncated-completion.md | 7 ++
docs/dashboard-guide.md | 3 +-
.../planning-truncated-completion.test.ts | 35 +++++++++
packages/dashboard/src/planning.ts | 85 +++++++++++++++++++---
4 files changed, 117 insertions(+), 13 deletions(-)
Fusion-Task-Id: FN-8260
Fusion-Task-Lineage: aff1a1de-7b01-4cad-83a1-06b9684ed9de
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai >
2026-07-18 01:36:38 -07:00
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