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
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