Commit Graph

742 Commits

Author SHA1 Message Date
gsxdsm
fd9e4b2a30 FN-8509: create Coding Ideas Start tasks in Todo
Coding Ideas Start now atomically creates tasks in the validated Todo column.

- Resolve Todo only from captured, visible Coding Ideas workflow metadata.
- Preserve explicit Start destinations through Board and List create hosts without a follow-up move.
- Add regression coverage, documentation, and a patch changeset.

Files changed:
 .changeset/fn-8509-coding-ideas-start-todo.md      |  7 +++++
 docs/dashboard-guide.md                            |  4 +--
 packages/dashboard/app/components/Column.tsx       |  8 +++++-
 packages/dashboard/app/components/ListView.tsx     |  5 ++++
 .../dashboard/app/components/QuickEntryBox.tsx     | 17 +++++++-----
 .../app/components/__tests__/Column.test.tsx       | 16 ++++++++++-
 .../app/components/__tests__/ListView.test.tsx     | 31 +++++++++++++++++++++-
 .../components/__tests__/QuickEntryBox.test.tsx    | 31 ++++++++++------------
 .../app/utils/__tests__/quickAddStart.test.ts      | 25 ++++++++++++++++-
 packages/dashboard/app/utils/quickAddStart.ts      | 21 ++++++++++++++-
 10 files changed, 134 insertions(+), 31 deletions(-)

Fusion-Task-Id: FN-8509

Fusion-Task-Lineage: 951599a0-f277-4499-aaea-90371ddeda72

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-22 19:08:47 -07:00
gsxdsm
1cd06746fe FN-8502: add photo and file attachments to Chat and Quick Add
Enable supported photo and file attachment workflows across Quick Add and Chat.

- Expand Quick Add and Chat picker, paste, and drag/drop attachment intake.
- Preserve pending attachments until direct and room sends are accepted, with accessible previews and retry support.
- Align Chat MIME and size validation with task attachments, including video, Markdown, and TOML support.
- Add regression coverage for attachment previews, delivery behavior, and accepted MIME types.

Files changed:
 .changeset/fn-8502-chat-quick-add-attachments.md   |   7 ++
 docs/dashboard-guide.md                            |   5 +-
 ... quick-entry-attachment-preview-modal.test.tsx} |  50 ++++++--
 packages/dashboard/app/components/ChatView.tsx     |  80 +++++++++++--
 .../dashboard/app/components/InlineCreateCard.tsx  |   6 +-
 .../app/components/PendingAttachmentPreviews.css   |  60 ++++++++++
 ...ePreviews.tsx => PendingAttachmentPreviews.tsx} |  68 ++++++-----
 .../app/components/PendingImagePreviews.css        |  35 ------
 .../dashboard/app/components/QuickEntryBox.tsx     | 127 +++++++++++++--------
 packages/dashboard/app/components/TaskForm.tsx     |   6 +-
 .../__tests__/ChatView.core-interactions.test.tsx  |  61 ++++++++--
 .../__tests__/ChatView.mobile-render.test.tsx      |  20 +++-
 .../components/__tests__/ChatView.rooms.test.tsx   |  27 ++++-
 .../components/__tests__/QuickEntryBox.test.tsx    |  59 ++++++++--
 packages/dashboard/app/hooks/useChat.ts            |  41 ++++++-
 .../src/__tests__/chat-attachment-content.test.ts  |  17 +++
 packages/dashboard/src/chat-attachment-content.ts  |   4 +-
 .../dashboard/src/routes/chat-attachment-config.ts |  16 +++
 .../src/routes/register-chat-room-routes.ts        |   9 +-
 .../dashboard/src/routes/register-chat-routes.ts   |  11 +-
 20 files changed, 534 insertions(+), 175 deletions(-)

Fusion-Task-Id: FN-8502

Fusion-Task-Lineage: 0205187c-7e5b-45f8-a71d-fcfd9fb01e65

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-22 18:46:46 -07:00
gsxdsm
da616e1cf9 FN-8498: add Quick Add Start menu
Add gesture-only Quick Add Start promotion for eligible hold-based workflows.

- Open a Start menu with right-click or touch/pen long-press while preserving ordinary Save and Enter behavior.
- Validate and snapshot workflow routing before creating, then move matching tasks through host callbacks.
- Cover workflow guards, promotion outcomes, and Board/List callback wiring.

Files changed: .changeset/fn-8498-quick-add-start-menu.md         |   7 ++
 docs/dashboard-guide.md                            |   4 +
 packages/dashboard/app/components/Column.tsx       |   1 +
 packages/dashboard/app/components/ListView.tsx     |   1 +
 .../dashboard/app/components/QuickEntryBox.css     |  30 +++++
 .../dashboard/app/components/QuickEntryBox.tsx     | 115 ++++++++++++++++-
 .../app/components/__tests__/Column.test.tsx       |  10 +-
 .../app/components/__tests__/ListView.test.tsx     |  12 ++
 .../components/__tests__/QuickEntryBox.test.tsx    | 137 +++++++++++++++++++++
 .../app/utils/__tests__/quickAddStart.test.ts      |  38 ++++++
 packages/dashboard/app/utils/quickAddStart.ts      |  51 ++++++++
 11 files changed, 400 insertions(+), 6 deletions(-)

Fusion-Task-Id: FN-8498

Fusion-Task-Lineage: 30d8e7d4-59f1-4c4f-9224-1a9d8c27141b

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-22 16:31:24 -07:00
gsxdsm
57af2490fe FN-8489: hard-settle mobile board column swipes
Ensure mobile board pans never stop between columns.

- Detect centered columns before resolving a zero-direction pan
- Snap off-center zero-direction pans to the nearest column center
- Add regression coverage and document the mobile settle behavior

Files changed:
 .changeset/fn-8489-mobile-column-settle.md         |  7 +++++
 docs/dashboard-guide.md                            |  2 +-
 .../app/components/__tests__/board-mobile.test.tsx |  4 +--
 .../hooks/__tests__/useColumnScrollSnap.test.ts    | 32 ++++++++++++++++++++++
 .../dashboard/app/hooks/useColumnScrollSnap.ts     | 29 ++++++++++++++++++--
 5 files changed, 69 insertions(+), 5 deletions(-)

Fusion-Task-Id: FN-8489

Fusion-Task-Lineage: 555bd906-0ac8-4c43-a00b-24d1e716488a

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-22 09:17:14 -07:00
gsxdsm
e514e134da fix: apply project model lanes across workflows (#2400)
## Summary

Project workflow model lanes now apply to tasks on every workflow
instead of only tasks using the active default workflow. Model selection
consistently resolves task-specific choice -> project workflow baseline
-> global lane -> selected-workflow value -> project/global default for
primary models, fallback models, and thinking levels.

The active default workflow remains the storage owner for backward
compatibility, while runtime resolution keeps its project baseline
distinct from lower-priority selected-workflow values. Non-model
workflow policies remain isolated to their selected workflow.

## Validation

- Core workflow/model resolution: 60 tests passed
- Engine effective settings and session resolution: 59 tests passed
- Reviewer: 85 tests passed
- Scheduler: 154 tests passed
- Heartbeat: 90 tests passed
- Settings UI: 67 tests passed
- Workspace lint and core/engine/dashboard typechecks passed
- `pnpm verify:fast` passed workspace builds, the published CLI build,
and real `/api/health` boot smoke

---

[![Compound
Engineering](https://img.shields.io/badge/Built_with-Compound_Engineering-6366f1)](https://github.com/EveryInc/compound-engineering-plugin)


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Added **Project workflow model lanes** to establish a project baseline
for model selection and thinking levels across workflows.
* Updated model/fallback resolution to account for task overrides,
project baselines, global lanes, and selected-workflow values.
* **Bug Fixes**
* Improved effective settings merging so project baselines are applied
correctly (including scheduled/idle and heartbeat flows) while
preserving selected-workflow provenance.
* **Documentation**
* Refreshed settings and dashboard guidance for workflow lane
inheritance and resolution precedence.
* **Tests**
* Expanded unit test coverage for lane precedence, fallback detection,
and thinking-level behavior.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-07-22 08:53:31 -07:00
gsxdsm
4efa7b51c6 fix(dashboard): harden mobile board column snap direction and settle
Lock snap direction at finger-up from the net swipe, page only in that scroll direction, hard-jump and pin until the next touch so residual fling and CSS proximity no longer drift after settle.
2026-07-22 08:32:33 -07:00
flexi767
f21d3ce132 feat(core): support additive archived task documents (#2375)
## Summary

Re-lands the completed Fusion board task FX-005 on current upstream
`main`, stacked on #2374 (FX-004).

- adds a narrowly authorized additive publication path for archived task
documents
- preserves archived task and mission state and keeps ordinary
replacement/deletion writes rejected
- exposes retained archived current/revision reads
- requires project-scoped revision/hash CAS for publication
- maps malformed, unauthorized, missing, inconsistent, and stale states
safely
- rebases preserved dashboard drafts explicitly after CAS conflicts

## Why

Operators need to append a correction or evidence revision to an
archived task without unarchiving it or weakening ordinary archived-task
immutability.

## Dependency

This branch contains #2374 plus the eight FX-005 commits because
cross-fork PRs cannot target a fork-only base branch. After #2374 lands,
this PR should be rebased or refreshed so its diff collapses to FX-005
only.

## Validation

- PostgreSQL task-store and archived-default suites: 33/33
- dashboard route and editor suites: 321/321
- agent document tools: 22/22
- core, dashboard, and engine typechecks pass

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **New Features**
* Added optimistic concurrency controls for task document creation and
editing using revisions and content hashes.
* Added safe, authenticated append-only corrections for documents
retained on archived tasks.
* Archived documents and revision history remain available for direct
reading.
* Agent and dashboard tools now report conflicts clearly and support
explicit draft rebasing.
* **Bug Fixes**
  * Prevented stale updates from overwriting newer document content.
* Preserved archived-task immutability while allowing controlled
corrections.
* **Documentation**
* Updated CLI, dashboard, storage, task-management, and agent guidance
for these workflows.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: fusion-merge-train <merge-train@topkoli.local>
Co-authored-by: Fusion <noreply@runfusion.ai>
Co-authored-by: v <v@v.speedport.ip>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-22 08:30:12 -07:00
gsxdsm
fee920d366 FN-8478: open board deep tabs in task popups
Make board task deep-tab actions preserve their requested popup tab when task popups are enabled.

- Route Changes, Retries, and Workflow board actions through the popup preference.
- Store and refresh each popup's requested initial tab for its task and view.
- Add regression coverage, documentation, and a patch changeset.

Files changed:
 .changeset/task-card-popup-deep-tabs.md            |  7 +++++
 docs/dashboard-guide.md                            |  4 +--
 docs/settings-reference.md                         |  2 +-
 packages/dashboard/app/App.tsx                     | 25 ++++++++++-----
 .../__tests__/App.openTasksInRightSidebar.test.ts  | 36 ++++++++++++----------
 .../__tests__/navigation-history.test.tsx          | 25 ++++++++++++++-
 .../settings/sections/AppearanceSection.tsx        |  4 +--
 .../app/hooks/__tests__/usePoppedOutTasks.test.ts  | 13 ++++++++
 packages/dashboard/app/hooks/usePoppedOutTasks.ts  | 15 ++++++---
 9 files changed, 97 insertions(+), 34 deletions(-)

Fusion-Task-Id: FN-8478

Fusion-Task-Lineage: e12452c0-24d5-4f19-b50c-39526d72d7ab

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-22 00:22:42 -07:00
gsxdsm
cd51e1c0d8 FN-8471: add color theme filtering
Add a searchable shared color-theme picker for Settings and Command Center.

- Filter translated theme labels case- and diacritic-insensitively
- Preserve keyboard navigation, focus management, and selection behavior
- Document the picker and add a minor release changeset

Files changed:
 .changeset/fn-8471-theme-filter.md                 |   7 +
 docs/dashboard-guide.md                            |   3 +-
 .../dashboard/app/components/ThemeDropdown.css     |  32 ++++
 .../dashboard/app/components/ThemeDropdown.tsx     | 172 +++++++++++++++------
 .../components/__tests__/ThemeDropdown.test.tsx    | 106 +++++++++++++
 .../components/__tests__/ThemeSelector.test.tsx    |   1 +
 .../__tests__/CommandCenterControls.test.tsx       |   1 +
 7 files changed, 277 insertions(+), 45 deletions(-)

Fusion-Task-Id: FN-8471

Fusion-Task-Lineage: 1f73dfb8-18bb-48e6-a3ed-0ee3a200cf03

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-21 23:03:35 -07:00
gsxdsm
51fc34f585 FN-8465: align skill toggles with canonical paths
Align session skill filtering with Skills-view path identities.

- Match session inclusions, exclusions, and diagnostics by skills-relative body path.
- Ignore stale flat toggle keys for categorized skills and cover the display/session invariant.
- Document the behavior and add a patch changeset.

Files changed:
 .../fn-8465-legacy-skill-toggle-path-match.md      |   7 ++
 docs/dashboard-guide.md                            |   2 +-
 .../legacy-flat-skill-toggle-session-divergence.md |  41 ++++++++
 .../engine/src/__tests__/skill-resolver.test.ts    |  73 ++++++++++++++
 packages/engine/src/skill-resolver.ts              | 105 ++++++++++++++-------
 5 files changed, 191 insertions(+), 37 deletions(-)

Fusion-Task-Id: FN-8465

Fusion-Task-Lineage: 042fc7f4-08a3-42f4-9a6f-52f066d585e8

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-21 19:17:20 -07:00
gsxdsm
2bf3d81a76 fix(dashboard): restore accurate executing/total column headers
Show live agents over card count (e.g. 3/4) using the shared Running
predicate so unpaused WIP counts without sessionFile, and document the
badge semantics for operators.
2026-07-21 18:59:52 -07:00
gsxdsm
771fe71760 fix(dashboard): restore board card counts and WIP Running totals
FN-8453 column headers showed active/total (always 0/N on Todo) and Running
required sessionFile, which is not a DB/board field, so footer capacity
undercounted live WIP. Show lane card totals again and count unpaused WIP as
Running without durable session/checkout evidence.
2026-07-21 18:52:59 -07:00
gsxdsm
d486bf49dd FN-8456: add Dawn dashboard color theme
Add a persisted Dawn indigo-and-amber color theme across dashboard and desktop first paint.

- Register Dawn in theme persistence, selector metadata, and pre-hydration validation.
- Define dark and light Dawn tokens plus mode-aware selector swatches.
- Cover persistence, theme registries, token completeness, and selector previews with tests.

Files changed:
 .changeset/fn-8456-dawn-theme.md                   |  7 ++
 docs/dashboard-guide.md                            |  3 +-
 docs/settings-reference.md                         |  2 +-
 .../core/src/__tests__/global-settings.test.ts     |  8 ++
 packages/core/src/types/execution-and-ui.ts        |  2 +
 .../dashboard/app/__tests__/dawn-theme.test.ts     | 98 ++++++++++++++++++++++
 .../dashboard/app/components/ThemeSelector.css     | 14 ++++
 .../components/__tests__/ThemeDropdown.test.tsx    | 22 ++---
 .../components/__tests__/ThemeSelector.test.tsx    |  2 +-
 .../__tests__/CommandCenterControls.test.tsx       |  7 +-
 packages/dashboard/app/components/themeOptions.ts  |  1 +
 .../dashboard/app/hooks/__tests__/useTheme.test.ts | 12 +++
 packages/dashboard/app/index.html                  |  2 +-
 packages/dashboard/app/public/theme-data.css       | 86 ++++++++++++++++++-
 packages/desktop/src/renderer/index.html           |  1 +
 15 files changed, 248 insertions(+), 19 deletions(-)

Fusion-Task-Id: FN-8456

Fusion-Task-Lineage: 44d9eb05-210d-4be8-8d35-c66ac4857194

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-21 18:33:22 -07:00
gsxdsm
eef5eb751e FN-8453: unify concurrency accounting and indicators
Unify live-agent capacity accounting across engine and dashboard.

- Derive Running and Waiting from workflow traits and durable agent liveness.
- Apply unified limits to planner, executor, and merge admission while updating dashboard indicators.
- Remove duplicate concurrency controls and document the unified operator model.

Files changed:
 .changeset/fn-8453-unified-concurrency.md          |   7 +
 docs/agent-tool-surface-full-loop.md               |   4 +-
 docs/architecture.md                               |   2 +-
 docs/dashboard-guide.md                            |   4 +-
 docs/settings-reference.md                         |   4 +-
 .../skill/fusion/references/fusion-capabilities.md |   4 +-
 .../core/src/__tests__/live-agent-count.test.ts    |  91 ++++----
 packages/core/src/index.gate.ts                    |   6 +
 packages/core/src/index.ts                         |   6 +
 packages/core/src/live-agent-count.ts              | 107 ++++++---
 packages/dashboard/app/App.tsx                     |  28 ++-
 packages/dashboard/app/api/board-workflows.ts      |   2 +
 packages/dashboard/app/components/Column.tsx       |   6 +-
 .../dashboard/app/components/EngineControlMenu.tsx |  26 ---
 .../dashboard/app/components/ExecutorStatusBar.tsx |  38 ++-
 .../dashboard/app/components/SettingsModal.tsx     |   1 -
 .../app/components/__tests__/Column.test.tsx       |   6 +-
 .../__tests__/EngineControlMenu.test.tsx           |  10 +-
 .../__tests__/ExecutorStatusBar.test.tsx           |  32 ++-
 .../command-center/CommandCenterControls.tsx       |  26 ---
 .../settings/sections/SchedulingSection.search.ts  |   9 -
 .../settings/sections/SchedulingSection.tsx        |  13 --
 .../app/hooks/__tests__/useExecutorStats.test.ts   |  12 +-
 packages/dashboard/app/hooks/useExecutorStats.ts   |  50 ++--
 .../src/__tests__/project-store-resolver.test.ts   |  11 +-
 packages/dashboard/src/project-store-resolver.ts   |  14 +-
 .../register-config-mcp-pi-settings-routes.ts      |   3 +-
 packages/engine/src/__tests__/concurrency.test.ts  | 123 +++++++++-
 .../engine/src/__tests__/project-engine.test.ts    |  34 +++
 packages/engine/src/__tests__/triage.test.ts       |   7 +-
 packages/engine/src/concurrency.ts                 | 207 ++++++++++++++++-
 packages/engine/src/project-engine.ts              | 151 ++++++++++--
 packages/engine/src/scheduler.ts                   |  82 ++++++-
 packages/engine/src/triage.ts                      | 254 +++++++++++++--------
 .../lib/dashboard-browser-safe-core-modules.json   |   5 +
 35 files changed, 991 insertions(+), 394 deletions(-)

Fusion-Task-Id: FN-8453

Fusion-Task-Lineage: 12cfa5df-675d-4fce-b17e-932376544239

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-21 15:30:31 -07:00
gsxdsm
0908e75290 FN-8455: add Calm dashboard color theme
Add a persisted Calm theme with slate, sage, and misty light palettes.

- Register Calm across core settings, dashboard selectors, and web/desktop first-paint validators.
- Define Calm theme tokens and selector swatches for dark and light modes.
- Cover persisted selection, previews, and bootstrap validation with tests.
- Document the new theme and add a minor release changeset.

Files changed:
 .changeset/fn-8455-calm-theme.md                   |  7 ++
 docs/dashboard-guide.md                            |  3 +-
 docs/settings-reference.md                         |  2 +-
 packages/core/src/__tests__/global-settings.test.ts|  8 ++
 packages/core/src/types/execution-and-ui.ts        |  2 +
 packages/dashboard/app/__tests__/calm-theme.test.ts| 98 ++++++++++++++++++++++
 packages/dashboard/app/components/ThemeSelector.css| 14 ++++
 packages/dashboard/app/components/__tests__/ThemeDropdown.test.tsx | 22 ++---
 packages/dashboard/app/components/__tests__/ThemeSelector.test.tsx | 2 +-
 packages/dashboard/app/components/command-center/__tests__/CommandCenterControls.test.tsx | 2 +-
 packages/dashboard/app/components/themeOptions.ts  |  1 +
 packages/dashboard/app/hooks/__tests__/useTheme.test.ts | 12 +++
 packages/dashboard/app/index.html                  |  2 +-
 packages/dashboard/app/public/theme-data.css       | 86 ++++++++++++++++++-
 packages/desktop/src/renderer/index.html           |  1 +
 15 files changed, 245 insertions(+), 17 deletions(-)

Fusion-Task-Id: FN-8455

Fusion-Task-Lineage: c2c4624e-7012-491d-bd79-d3de570018f7

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-21 15:04:07 -07:00
gsxdsm
527f734ad4 FN-8454: add Aurora dashboard theme
Add the Aurora color theme across dashboard and desktop theme surfaces.

- Register Aurora as a selectable global theme with matching UI styles and metadata
- Load Aurora theme data in dashboard and desktop entry points
- Document the theme and cover selection, token, and settings behavior

Files changed:
 .changeset/fn-8454-aurora-theme.md                 |  7 ++
 docs/dashboard-guide.md                            |  3 +-
 docs/settings-reference.md                         |  2 +-
 .../core/src/__tests__/global-settings.test.ts     |  8 ++
 packages/core/src/types/execution-and-ui.ts        |  2 +
 .../dashboard/app/__tests__/aurora-theme.test.ts   | 98 ++++++++++++++++++++++
 .../dashboard/app/components/ThemeSelector.css     | 14 ++++
 .../components/__tests__/ThemeDropdown.test.tsx    | 51 ++++++++++-
 .../components/__tests__/ThemeSelector.test.tsx    |  2 +-
 .../__tests__/CommandCenterControls.test.tsx       |  2 +-
 packages/dashboard/app/components/themeOptions.ts  |  1 +
 .../dashboard/app/hooks/__tests__/useTheme.test.ts | 12 +++
 packages/dashboard/app/index.html                  |  2 +-
 packages/dashboard/app/public/theme-data.css       | 91 ++++++++++++++++++++
 packages/desktop/src/renderer/index.html           |  1 +
 15 files changed, 290 insertions(+), 6 deletions(-)

Fusion-Task-Id: FN-8454

Fusion-Task-Lineage: cbae0854-b884-4744-a2fa-f738a71ceb32

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-21 13:28:24 -07:00
gsxdsm
d83fae3fea fix(FN-8446): keep Copilot banner dismissed
Preserve the browser dismissal across successful Copilot login events while retaining re-arm behavior for other OAuth providers.
2026-07-20 22:58:22 -07:00
gsxdsm
606c320c52 fix(FN-8442): make planning generation durable and detailed
Generate a reviewable initial plan before clarification, persist generation purpose across refreshes, and surface concrete changes and acceptance criteria with focused refinement choices.
2026-07-20 16:00:11 -07:00
gsxdsm
5dd62fe548 FN-8446: preserve dismissed OAuth re-login banners
Keep OAuth re-login dismissals sticky until the matching provider successfully authenticates.

- Preserve dismissed provider IDs across transient healthy auth-status responses.
- Re-arm only the provider identified by an OAuth re-login success event.
- Add Copilot and multi-provider regression coverage plus operator documentation.
- Add a patch changeset for the banner behavior fix.

Files changed:
 .changeset/fn-8446-oauth-relogin-dismiss-sticky.md |   7 ++
 docs/dashboard-guide.md                            |   2 +
 .../app/components/OAuthReloginBanner.tsx          |  30 +++---
 .../__tests__/OAuthReloginBanner.test.tsx          | 113 +++++++++++++++++++--
 4 files changed, 128 insertions(+), 24 deletions(-)

Fusion-Task-Id: FN-8446

Fusion-Task-Lineage: 30574bbc-3efb-4f72-956b-b249d24251c9

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-20 15:41:41 -07:00
gsxdsm
36b3180962 FN-8442: redesign planning mode as sequential Q&A
Guide planning through sequential question-and-answer turns before task creation.

- Add plan review, refinement, validation, creation retry, and idempotent task handoff states
- Atomically claim planning-session task creation and reconcile persisted task links
- Replace retired multi-pane planning UI and consolidate focused flow coverage
- Document the sequential planning workflow and mobile behavior

Files changed:
 .changeset/fn-8442-planning-sequential-qa.md       |    7 +
 MOBILE.md                                          |    2 +-
 docs/dashboard-guide.md                            |    9 +-
 packages/core/src/async-ai-session-store.ts        |   82 +-
 packages/core/src/index.ts                         |    4 +
 packages/core/src/types.ts                         |    5 +
 packages/dashboard/app/api/legacy.ts               |    4 +-
 .../dashboard/app/components/PlanningModeModal.css |  178 +-
 .../dashboard/app/components/PlanningModeModal.tsx |  317 +-
 .../__tests__/PlanningModeModal.initial.test.tsx   |  993 +----
 .../PlanningModeModal.planning-flow.test.tsx       | 4377 +-------------------
 .../PlanningModeModal.ui-interactions.test.tsx     | 1276 +-----
 .../__tests__/planning-e2e-plan-creation.test.ts   |   25 +-
 .../dashboard/src/__tests__/planning-infinite-interview.test.ts  |   44 +-
 .../src/__tests__/routes-planning.test.ts          |  119 +-
 packages/dashboard/src/ai-session-store.ts         |   33 +
 packages/dashboard/src/planning.ts                 |  140 +-
 .../src/routes/register-planning-subtask-routes.ts |  132 +-
 18 files changed, 649 insertions(+), 7098 deletions(-)

Fusion-Task-Id: FN-8442

Fusion-Task-Lineage: da2f335f-b1c9-411a-8575-31db20a2b8d5

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-20 14:59:22 -07:00
gsxdsm
8c347981e4 FN-8439: align Planning Mode with workflow triage prompts
Planning Mode now uses the selected workflow's triage planning template with its interview adapter.

- Resolve planning prompts from workflow seams and explicit overrides
- Pass and persist the selected workflow for planning sessions
- Document the prompt behavior and cover prompt and UI request flow

Files changed:
 .../fn-8439-planning-prompt-triage-template.md     |  7 ++
 docs/dashboard-guide.md                            |  2 +
 packages/core/src/prompt-overrides.ts              | 42 +-----------
 packages/dashboard/app/api/legacy.ts               |  3 +-
 .../dashboard/app/components/PlanningModeModal.tsx |  3 +-
 .../PlanningModeModal.planning-flow.test.tsx       | 10 +++
 packages/dashboard/app/utils/builtinPrompts.ts     |  4 +-
 .../__tests__/planning-prompt-resolution.test.ts   | 40 ++++++++++++
 packages/dashboard/src/planning.ts                 | 74 ++++++++++++++++++----
 .../src/routes/register-planning-subtask-routes.ts | 18 ++++--
 10 files changed, 142 insertions(+), 61 deletions(-)

Fusion-Task-Id: FN-8439

Fusion-Task-Lineage: 1680a0cd-27c8-47f1-8cd2-de808d1404cf

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-20 13:48:04 -07:00
gsxdsm
1d4e8afa7b FN-8444: include planning time in task metrics
Track active planning time alongside execution time for costs, analytics, and task displays.

- Persist planning timing state across task lifecycle transitions and recovery
- Include planning activity in token cost, analytics, and dashboard timing displays
- Add PostgreSQL migration support using the configured migration directory

Files changed:
 .changeset/fn-8444-planning-time-cost.md           |  7 +++
 docs/dashboard-guide.md                            |  3 ++
 docs/task-management.md                            |  5 ++
 packages/core/src/index.ts                         |  1 +
 .../migrations/0029_planning_active_timing.sql     |  3 ++
 packages/core/src/postgres/schema-applier.ts       | 14 ++++-
 packages/core/src/postgres/schema/project.ts       |  2 +
 packages/core/src/productivity-analytics.ts        | 29 +++++-----
 packages/core/src/store.ts                         |  2 +-
 .../core/src/task-store/archive-lifecycle-2.ts     |  2 +
 packages/core/src/task-store/moves.ts              |  7 +++
 packages/core/src/task-store/persistence.ts        |  4 ++
 packages/core/src/task-store/remaining-ops-2.ts    |  2 +-
 packages/core/src/task-store/serialization.ts      |  7 +++
 packages/core/src/task-store/task-row-mappers.ts   |  2 +-
 packages/core/src/task-store/task-update.ts        | 10 ++++
 packages/core/src/task-timing.ts                   | 35 ++++++++++++
 packages/core/src/types.ts                         | 12 +++++
 packages/dashboard/app/components/TaskCard.tsx     | 13 ++---
 .../app/components/TaskTokenStatsPanel.tsx         |  6 ++-
 .../app/components/__tests__/TaskCard.test.tsx     | 17 ++++++
 .../app/utils/__tests__/taskTiming.test.ts         |  9 +++-
 packages/dashboard/app/utils/taskTiming.ts         | 14 +++++
 packages/dashboard/app/utils/taskTokenCost.ts      |  2 +
 .../dashboard/src/task-planner-chat-metrics.ts     | 14 ++++-
 packages/engine/src/__tests__/self-healing.test.ts | 61 +++++++++++++++++++++
 packages/engine/src/executor.ts                    | 50 +++++++++++++++++
 packages/engine/src/runtimes/in-process-runtime.ts |  3 ++
 packages/engine/src/self-healing.ts                | 62 ++++++++++++++++++++++
 packages/engine/src/triage.ts                      | 10 ++++
 packages/i18n/locales/en/app.json                  |  2 +-
 packages/i18n/locales/es/app.json                  |  2 +-
 packages/i18n/locales/fr/app.json                  |  2 +-
 packages/i18n/locales/ko/app.json                  |  2 +-
 packages/i18n/locales/zh-CN/app.json               |  2 +-
 packages/i18n/locales/zh-TW/app.json               |  2 +-
 36 files changed, 384 insertions(+), 36 deletions(-)

Fusion-Task-Id: FN-8444

Fusion-Task-Lineage: 0178e0a7-3018-4ef4-be9b-6de5f964fb58

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-20 13:40:50 -07:00
gsxdsm
625dbc6c5f FN-8441: separate planning artifacts from task prompts
Persist validated planning output as plan.md while keeping task prompts concise.

- Add a reusable plan.md formatter and export it through core entrypoints.
- Store plan and original-description task documents for planning-created tasks and subtasks.
- Direct triage to derive PROMPT.md from the plan artifact and cover the handoff with tests and documentation.

Files changed:
 .changeset/fn-8441-separate-plan-from-prompt.md    |   7 ++
 docs/dashboard-guide.md                            |   3 +
 .../core/src/__tests__/planning-plan-md.test.ts    |  33 ++++++
 packages/core/src/index.gate.ts                    |   1 +
 packages/core/src/index.ts                         |   1 +
 packages/core/src/planning-plan-md.ts              |  42 +++++++
 .../__tests__/planning-e2e-plan-creation.test.ts   |  62 +----------
 .../src/__tests__/routes-planning.test.ts          | 122 ++++++++++++---------
 packages/dashboard/src/planning.ts                 |  12 +-
 .../src/routes/register-planning-subtask-routes.ts |  61 ++++++++++-
 packages/engine/src/__tests__/triage.test.ts       |  17 +++
 packages/engine/src/triage.ts                      |  43 ++++++--
 12 files changed, 278 insertions(+), 126 deletions(-)

Fusion-Task-Id: FN-8441

Fusion-Task-Lineage: e6092bf8-9f59-4b6d-abd1-aaa4a566677a

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-20 13:03:13 -07:00
gsxdsm
f9c1620c1e FN-8438: generate and refine running plans
Planning Mode now generates an initial work-product plan and refines it after every answer.

- Prompt both initial agent paths to create a running plan before asking questions
- Provide meaningful fallback summaries and deliverables when model plan fields are absent
- Cover streaming and non-streaming initial-plan behavior and document the refinement contract

Files changed:
 .changeset/fn-8438-running-plan-generate-refine.md |  7 ++
 docs/dashboard-guide.md                            |  3 +-
 .../__tests__/planning-infinite-interview.test.ts  | 76 ++++++++++++++++++++--
 packages/dashboard/src/planning.ts                 | 58 ++++++++++++-----
 4 files changed, 122 insertions(+), 22 deletions(-)

Fusion-Task-Id: FN-8438

Fusion-Task-Lineage: 29e155ec-480e-462a-be3d-07ac02d7236b

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-20 12:50:06 -07:00
gsxdsm
8c01cc7c7a FN-8437: restore Planning Mode sessions after navigation
Persist active Planning interviews across embedded navigation while honoring explicit dismissal.

- Store the active Planning session per project and restore it through the existing session loader.
- Clear the saved active session for dismissals and terminal session actions.
- Cover leave-and-return, completed-away, fresh-plan, and dismissed-error flows; document the behavior.
- Add a patch changeset for the Planning session recovery fix.

Files changed:
 .changeset/fn-8437-planning-leave-return-restore.md       |  7 ++
 docs/dashboard-guide.md                            |  2 +-
 packages/dashboard/app/components/PlanningModeModal.tsx | 51 ++++++++++++-
 packages/dashboard/app/components/__tests__/PlanningModeModal.planning-flow.test.tsx | 86 ++++++++++++++++++++++
 packages/dashboard/app/hooks/__tests__/modalPersistence.test.ts | 18 +++++
 packages/dashboard/app/hooks/modalPersistence.ts   | 17 +++++
 packages/dashboard/app/utils/__tests__/projectStorage.test.ts |  3 +-
 packages/dashboard/app/utils/projectStorage.ts     |  1 +
 8 files changed, 180 insertions(+), 5 deletions(-)

Fusion-Task-Id: FN-8437

Fusion-Task-Lineage: 892aacb6-139e-4487-a40c-1bedd51237ea

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-20 12:09:23 -07:00
gsxdsm
e43dffad52 FN-8434: preserve evolving running plans
Keep Planning Mode's running plan as an evolving work product alongside every interview question.

- Carry model-authored running-plan updates through question responses without ending the interview
- Merge partial plan updates with prior title, deliverables, dependencies, size, and priority
- Derive safe fallback summaries without turning interview questions into deliverables
- Cover running-plan persistence and document the contract

Files changed:
 .changeset/fn-8434-running-plan-content.md         |   7 +
 docs/dashboard-guide.md                            |   2 +-
 packages/core/src/types.ts                         |   6 +
 .../PlanningModeModal.planning-flow.test.tsx       |  11 +-
 .../__tests__/planning-e2e-plan-creation.test.ts   |  17 ++-
 .../__tests__/planning-infinite-interview.test.ts  |  91 +++++++++++-
 packages/dashboard/src/planning.ts                 | 163 ++++++++++++++-------
 7 files changed, 232 insertions(+), 65 deletions(-)

Fusion-Task-Id: FN-8434

Fusion-Task-Lineage: cdf1c4ff-fd33-4e4a-84f4-b54a5e0a9cf8

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-20 10:33:59 -07:00
gsxdsm
76822d8c4c FN-8432: document responsive Planning Mode navigation
Clarify and verify tablet tab navigation and mobile list-first Planning Mode behavior.

- Add tablet progressive-tab coverage across interview states.
- Assert mobile saved-session list-first navigation and plan visibility.
- Update mobile and dashboard guidance with the intentional session-selection flow.
- Add a patch changeset for the Planning Mode fix.

Files changed:
 .../fn-8432-planning-tablet-mobile-plan-layout.md  |  7 ++++
 MOBILE.md                                          |  2 +-
 docs/dashboard-guide.md                            |  2 +-
 .../PlanningModeModal.planning-flow.test.tsx       | 43 +++++++++++++++++++++-
 .../PlanningModeModal.ui-interactions.test.tsx     | 25 +++++++++++++
 5 files changed, 75 insertions(+), 4 deletions(-)

Fusion-Task-Id: FN-8432

Fusion-Task-Lineage: e412069e-87e2-4a61-9556-6908f86b56c5

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-20 10:07:44 -07:00
gsxdsm
087fd8f881 FN-8429: fix live activity snapshot metrics
Keep Live activity counts current and project-scoped rather than date-range derived.

- Exclude soft-deleted tasks from live board column totals
- Share SSE-refreshed live snapshots between Overview and Mission Control
- Count all in-progress aliases and current active sessions/runs
- Cover live refresh, date-range independence, and deleted-task behavior

Files changed:
 docs/dashboard-guide.md                            |  2 +-
 .../command-center-remaining-analytics.pg.test.ts  | 12 ++-
 packages/core/src/command-center-live.ts           | 15 +++-
 .../components/command-center/CommandCenter.tsx    | 43 +++-------
 .../command-center/MissionControlPanel.tsx         | 46 +++++++----
 .../__tests__/CommandCenter.test.tsx               | 91 ++++++++++++++++++----
 .../command-center/liveSnapshotMetrics.ts          | 32 ++++++++
 7 files changed, 174 insertions(+), 67 deletions(-)

Fusion-Task-Id: FN-8429

Fusion-Task-Lineage: a29a92a1-1d27-4927-9e19-9c42e66a0674

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-20 09:57:38 -07:00
gsxdsm
bd558462ed FN-8427: restore mobile planning session navigation
Restore a full-pane saved-session destination for compact Planning Mode.

- Unmount the running-plan pane while mobile and tablet session lists are open.
- Keep Back and Sessions available from active, completed, and new planning surfaces.
- Cover compact navigation behavior and document the mobile interaction.

Files changed:
 .../fn-8427-planning-mobile-session-list-nav.md    |  7 ++
 MOBILE.md                                          |  2 +-
 docs/dashboard-guide.md                            |  2 +-
 .../dashboard/app/components/PlanningModeModal.css | 56 +++++++++++++++-
 .../dashboard/app/components/PlanningModeModal.tsx | 33 ++++++---
 .../__tests__/PlanningModeModal.css.test.ts        |  5 ++
 .../PlanningModeModal.ui-interactions.test.tsx     | 78 ++++++++++++++++++++++
 7 files changed, 167 insertions(+), 16 deletions(-)

Fusion-Task-Id: FN-8427
Fusion-Task-Lineage: 6664d075-0614-4b5a-ba36-34a0ec6a20a3
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-20 09:51:26 -07:00
gsxdsm
8993e912d2 FN-8426: adapt Planning Mode for compact layouts
Make Planning Mode usable on mobile, tablet, and short-height layouts.

- Collapse compact Planning interviews into selectable question, plan, and history surfaces.
- Keep Sessions navigation synchronized so returning from the session list restores a visible interview pane.
- Document and test mobile, tablet, and short-landscape behavior.

Files changed:
 .../fn-8426-planning-mobile-tablet-layout.md       |  7 ++
 MOBILE.md                                          |  2 +-
 docs/dashboard-guide.md                            |  2 +-
 .../dashboard/app/components/PlanningModeModal.css | 94 ++++++++++++++++++++--
 .../dashboard/app/components/PlanningModeModal.tsx | 51 +++++++++++-
 .../__tests__/PlanningModeModal.css.test.ts        | 17 ++++
 .../PlanningModeModal.planning-flow.test.tsx       | 36 +++++++++
 .../__tests__/PlanningModeModal.test-helpers.ts    | 23 ++++++
 8 files changed, 220 insertions(+), 12 deletions(-)

Fusion-Task-Id: FN-8426

Fusion-Task-Lineage: 489d6f92-326c-4780-bc85-d28967c7ab35

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-20 09:16:12 -07:00
gsxdsm
8166c80bad FN-8420: keep Planning Mode interviews open until validation
Keep the Planning Mode workspace active until the operator explicitly validates its running plan.

- Preserve the answered-question, current-question, and running-plan panes through stream updates and recoverable states.
- Require durable validation before exposing terminal summaries and task creation actions.
- Make every answer request one new high-impact question and update Planning Mode guidance, coverage, and release notes.

Files changed:
 .../fn-8420-planning-mode-user-validation.md       |   7 +
 docs/dashboard-guide.md                            |   6 +-
 docs/settings-reference.md                         |   2 +-
 .../dashboard/app/components/PlanningModeModal.tsx | 163 +++++++++++++--------
 .../__tests__/PlanningModeModal.initial.test.tsx   |  20 ++-
 .../PlanningModeModal.planning-flow.test.tsx       |  99 +++++++++----
 .../PlanningModeModal.ui-interactions.test.tsx     |  14 ++
 .../app/planning-browser-e2e-fixture.html          |   5 +
 .../dashboard/app/planning-browser-e2e-fixture.tsx | 131 +++++++++++++++++
 .../src/__tests__/planning-browser-e2e.test.ts     | 115 +++++++++++++++
 .../__tests__/planning-infinite-interview.test.ts  |   2 +
 .../planning-interview-formatters.test.ts          |   8 +
 packages/dashboard/src/planning.ts                 |  16 +-
 13 files changed, 485 insertions(+), 103 deletions(-)

Fusion-Task-Id: FN-8420

Fusion-Task-Lineage: af88729b-98c1-4141-bad3-a17ddb497181

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-20 02:01:58 -07:00
gsxdsm
e22c65ad11 FN-8397: separate pinned chats and retain failed edits
Separate direct-chat session groups and make message edits safely retryable.

- Render explicit Pinned and Recent sections across desktop and mobile chat lists.
- Keep inline message corrections open until edit-and-resend succeeds in Direct and Planner Chat.
- Add localized Recent labels, documentation, release metadata, and regression coverage.

Files changed:
 .changeset/fn-8397-chat-pin-separation-and-edit-save.md   |  7 +++
 docs/dashboard-guide.md                                    |  5 +-
 packages/dashboard/app/components/ChatView.css             | 10 ++++
 packages/dashboard/app/components/ChatView.tsx             | 31 ++++++++---
 packages/dashboard/app/components/StandardChatSurface.tsx  | 35 +++++++++----
 packages/dashboard/app/components/TaskPlannerChatTab.tsx   | 14 +++--
 packages/dashboard/app/components/__tests__/ChatView.core-contracts.test.tsx | 46 +++++++++++++++++
 packages/dashboard/app/components/__tests__/ChatView.message-edit.test.tsx | 60 ++++++++++++++++++++--
 packages/dashboard/app/components/__tests__/TaskPlannerChatTab.test.tsx | 10 ++--
 packages/dashboard/app/hooks/__tests__/useChat.test.ts     |  4 +-
 packages/dashboard/app/hooks/useChat.ts                    | 13 +++--
 packages/i18n/locales/{en,es,fr,ko,zh-CN,zh-TW}/app.json  |  6 +++
 17 files changed, 205 insertions(+), 36 deletions(-)

Fusion-Task-Id: FN-8397

Fusion-Task-Lineage: 4dbc664a-56a3-48c7-be9a-febd5f411c9e

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-20 00:42:15 -07:00
gsxdsm
2fe1b996bf FN-8400: rework Planning Mode into a guided three-pane flow
Make planning interviews easier to navigate while keeping the evolving plan and validation actions accessible.

- Show answered questions in an editable navigation pane and keep one clear next-question action.
- Keep the generated plan and validation controls visible throughout planning and recovery.
- Add server validation and localized copy for session title updates.

Files changed:
 .changeset/fn-8400-planning-mode-ui.md             |   7 +
 MOBILE.md                                          |   2 +-
 docs/dashboard-guide.md                            |   6 +-
 packages/dashboard/app/api/legacy.ts               |  12 +-
 .../dashboard/app/components/PlanningModeModal.css | 112 +++--
 .../dashboard/app/components/PlanningModeModal.tsx | 408 +++++++++++--------
 .../PlanningModeModal.planning-flow.test.tsx       | 453 ++++++++-------------
 .../PlanningModeModal.ui-interactions.test.tsx     |   4 +-
 .../src/__tests__/routes-planning.test.ts          |  50 +++
 packages/dashboard/src/planning.ts                 |  21 +-
 .../src/routes/register-planning-subtask-routes.ts |  26 ++
 packages/i18n/locales/en/app.json                  |   7 +-
 packages/i18n/locales/es/app.json                  |   7 +-
 packages/i18n/locales/fr/app.json                  |   7 +-
 packages/i18n/locales/ko/app.json                  |   7 +-
 packages/i18n/locales/zh-CN/app.json               |   7 +-
 packages/i18n/locales/zh-TW/app.json               |   7 +-
 packages/i18n/src/resources.d.ts                   |   5 +
 18 files changed, 620 insertions(+), 528 deletions(-)

Fusion-Task-Id: FN-8400
Fusion-Task-Lineage: 032cf0ad-134d-4680-878f-b870eea23cc9
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-19 23:01:44 -07:00
gsxdsm
d4a87accb8 FN-8395: autosave settings changes
Settings edits now persist automatically with safe feedback and close handling.

- Debounce and serialize settings persistence, retaining newer edits through in-flight saves and unmounts.
- Remove the Settings Save action and unsaved-changes prompt while flushing pending section and workflow-lane updates.
- Update Settings documentation, release metadata, and regression coverage for auto-save behavior.

Files changed:
 .changeset/fn-8395-settings-autosave.md            |   7 +
 docs/dashboard-guide.md                            |  11 +-
 docs/settings-reference.md                         |   8 +-
 .../dashboard/app/components/SettingsModal.tsx     | 402 ++++++++++++++++-----
 .../__tests__/SettingsModal.general.test.tsx       | 154 ++++++--
 .../SettingsModal.keyboardShortcuts.test.tsx       |   7 +-
 .../__tests__/SettingsModal.models-auth.test.tsx   |  46 +--
 .../SettingsModal.remote-notifications.test.tsx    |  38 +-
 .../SettingsModal.scheduling-merge.test.tsx        |  58 ++-
 .../__tests__/SettingsModal.test-harness.tsx       |   9 +-
 .../__tests__/SettingsModalNodeRouting.test.tsx    |   2 -
 .../settings/sections/ProjectModelsSection.tsx     |  15 +-
 12 files changed, 548 insertions(+), 209 deletions(-)

Fusion-Task-Id: FN-8395

Fusion-Task-Lineage: 77f4c0d3-d0cc-4973-9831-c70eb2a2b49b

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-19 22:16:11 -07:00
gsxdsm
9e962bb670 FN-8415: scrub report file activity traces
Scrub file-report activity traces before report pipeline processing.

- Sanitize top-level and nested activity traces before parsing report input.
- Add regressions for trace scrubbing and absent-trace behavior.
- Document the report filing scrub boundary and add a security changeset.

Files changed:
 .changeset/fn-8415-report-file-activity-trace-scrub.md    |  7 +++++
 docs/dashboard-guide.md                            |  2 +-
 packages/dashboard/src/__tests__/report-routes.test.ts  | 35 ++++++++++++++++++++++
 packages/dashboard/src/routes/register-report-routes.ts | 16 ++++++++--
 4 files changed, 56 insertions(+), 4 deletions(-)

Fusion-Task-Id: FN-8415

Fusion-Task-Lineage: 90e42370-1682-42fc-bd53-61bb23da84a8

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-19 21:27:25 -07:00
gsxdsm
a11f789b0c FN-8327: fall back to issues when Discussions are disabled
Reports can select a Discussion category and reliably file to Issues when Discussions are unavailable.

- Add Discussion-disabled detection across GitHub GraphQL operations.
- Let report submission select a category and disclose the actual filing destination.
- Preserve duplicate handling and document the fallback behavior.

Files changed:
 .changeset/fn-8327-discussion-fallback.md          |  7 +++
 docs/dashboard-guide.md                            |  4 +-
 packages/dashboard/app/api/report.ts               | 22 +++++--
 packages/dashboard/app/components/ReportModal.tsx  |  7 ++-
 .../app/components/__tests__/ReportModal.test.tsx  | 13 ++++
 .../src/__tests__/github-discussions.test.ts       | 29 +++++++--
 .../src/__tests__/report-pipeline.test.ts          | 63 ++++++++++++++-----
 .../dashboard/src/__tests__/report-routes.test.ts  | 15 +++--
 packages/dashboard/src/github.ts                   | 71 ++++++++++++++++------
 packages/dashboard/src/report-pipeline.ts          | 54 +++++++++++-----
 .../dashboard/src/routes/register-report-routes.ts | 12 +++-
 11 files changed, 227 insertions(+), 70 deletions(-)

Fusion-Task-Id: FN-8327

Fusion-Task-Lineage: 510d3d4f-ffc9-4167-bee8-7043e0ddbd9c

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-19 20:42:05 -07:00
gsxdsm
f6c788dee4 FN-8409: enable coding tools for dashboard chat agents
Enable interactive dashboard chat sessions to use the project coding workspace safely.

- Share the coding tool mode across direct, room, and planner chat sessions.
- Document branch-sticky workspace behavior and durable-agent policy gates.
- Cover coding tool access and prompt guidance with chat tests.
- Add a minor changeset for the published Fusion package.

Files changed:
 .changeset/fn-8409-chat-coding-tools.md            |  7 +++++
 docs/agents.md                                     |  6 +++++
 docs/dashboard-guide.md                            |  2 ++
 .../dashboard/src/__tests__/chat-manager.test.ts   | 31 +++++++++++++++-------
 .../src/__tests__/chat-system-prompt.test.ts       | 11 ++++++++
 packages/dashboard/src/chat.ts                     | 12 ++++++---
 6 files changed, 56 insertions(+), 13 deletions(-)

Fusion-Task-Id: FN-8409

Fusion-Task-Lineage: ca88794d-a5cf-4852-a931-90f61e3751df

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-19 20:36:27 -07:00
gsxdsm
64c1193d1e FN-8333: embed report screenshots in GitHub filings
Enable opt-in report screenshots to be safely hosted and embedded in filed GitHub reports.

- add GitHub Contents API image upload support and CLI-safe payload handling
- validate and resolve report screenshot artifacts before best-effort Markdown embedding
- cover upload, media access, filing, and report modal behavior with tests

Files changed:
 .changeset/github-report-screenshot-embed.md       |  7 +++
 docs/dashboard-guide.md                            |  4 +-
 packages/core/src/__tests__/gh-cli-input.test.ts   | 32 ++++++++++
 packages/core/src/gh-cli.ts                        | 21 ++++++-
 .../app/components/__tests__/ReportModal.test.tsx  |  5 ++
 .../dashboard/src/__tests__/artifact-media.test.ts | 20 ++++++
 .../__tests__/github-upload-image-asset.test.ts    | 39 ++++++++++++
 .../__tests__/report-pipeline-screenshots.test.ts  | 67 ++++++++++++++++++++
 .../dashboard/src/__tests__/report-routes.test.ts  | 36 ++++++++++-
 packages/dashboard/src/artifact-media.ts           | 32 ++++++++++
 packages/dashboard/src/github.ts                   | 57 +++++++++++++++++
 packages/dashboard/src/issue-image-attachments.ts  |  6 +-
 packages/dashboard/src/report-pipeline.ts          | 72 ++++++++++++++++++----
 .../dashboard/src/routes/register-report-routes.ts | 29 ++++++---
 .../src/routes/register-task-workflow-routes.ts    | 24 +-------
 15 files changed, 401 insertions(+), 50 deletions(-)

Fusion-Task-Id: FN-8333

Fusion-Task-Lineage: b706810d-2fec-4053-b57a-1128e5c16e94

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-19 18:45:27 -07:00
gsxdsm
18f1cb743a FN-8308: add selectable GitHub Discussions report targets
Enable configurable GitHub Issue or Discussion destinations for in-app reports.

- Add report target and Discussion category settings with localized controls.
- Validate target overrides before Help shortcuts and route them through report filing.
- Discover and validate GitHub Discussion categories through GraphQL.
- Cover target validation on both draft and file routes.

Files changed:
 .changeset/fn-8308-report-discussions.md           |  7 +++
 docs/dashboard-guide.md                            |  7 +++
 .../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               |  4 ++
 packages/core/src/types.ts                         | 10 ++++
 packages/dashboard/app/api/report.ts               | 13 +++-
 packages/dashboard/app/components/ReportModal.tsx  |  9 ++-
 .../__tests__/SettingsModal.general.test.tsx       | 18 ++++++
 .../settings/sections/GeneralSection.tsx           | 16 ++++-
 .../src/__tests__/github-discussions.test.ts       | 44 ++++++++++++++
 .../src/__tests__/report-pipeline.test.ts          | 70 +++++++++++++++++++++-
 .../dashboard/src/__tests__/report-routes.test.ts  | 19 ++++++
 packages/dashboard/src/github.ts                   | 37 ++++++++++--
 packages/dashboard/src/index.ts                    |  4 +-
 packages/dashboard/src/report-pipeline.ts          | 41 +++++++++----
 .../dashboard/src/routes/register-report-routes.ts | 32 ++++++++--
 packages/i18n/locales/en/app.json                  | 26 +++++++-
 packages/i18n/locales/es/app.json                  | 26 +++++++-
 packages/i18n/locales/fr/app.json                  | 26 +++++++-
 packages/i18n/locales/ko/app.json                  | 26 +++++++-
 packages/i18n/locales/zh-CN/app.json               | 26 +++++++-
 packages/i18n/locales/zh-TW/app.json               | 26 +++++++-
 24 files changed, 453 insertions(+), 47 deletions(-)

Fusion-Task-Id: FN-8308

Fusion-Task-Lineage: f5ac1b67-ecbc-4765-88c7-c524c7e943bf

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-19 18:37:45 -07:00
gsxdsm
365874f7f9 FN-8406: consolidate Command Center report actions
Move the guided report flow to System while ensuring its menu reliably overlays dashboard content.

- Portal the shared ReportActionMenu with a defined dropdown/modal stacking scale.
- Make System the sole Command Center report home and retain Copy diagnostics as a local action.
- Update regression coverage, documentation, and the published package changeset.

Files changed:
 .changeset/fn-8406-report-home-zindex.md           |   7 ++
 docs/dashboard-guide.md                            |   4 +-
 .../dashboard/app/components/ReportActionMenu.css  |   5 +-
 .../dashboard/app/components/ReportActionMenu.tsx  |  72 ++++++++++++-
 .../components/__tests__/ReportActionMenu.test.tsx |  12 +++
 .../components/command-center/CommandCenter.css    |  32 ------
 .../components/command-center/CommandCenter.tsx    |  59 ++++-------
 .../__tests__/CommandCenter.test.tsx               |   8 +-
 .../__tests__/SystemControlsArea.test.tsx          |  94 +----------------
 .../command-center/areas/SystemControlsArea.tsx    | 112 ++++-----------------
 packages/dashboard/app/styles.css                  |  11 ++
 11 files changed, 144 insertions(+), 272 deletions(-)

Fusion-Task-Id: FN-8406

Fusion-Task-Lineage: 957a77b0-fb04-4024-9506-225fec562f5d

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-19 17:39:43 -07:00
gsxdsm
a9c7a6bcc0 FN-8371: store report screenshot artifacts
Store opted-in report screenshots as validated local artifacts rather than GitHub attachments.

- Add multipart report attachment upload with PNG/JPEG validation and provenance metadata.
- Carry validated artifact references through report drafts and filing flows without binary egress.
- Update report UI, tests, documentation, and release metadata.

Files changed:
 .changeset/report-screenshot-artifacts.md          |   7 +
 docs/dashboard-guide.md                            |   2 +-
 packages/core/src/index.gate.ts                    |   2 +-
 packages/core/src/index.ts                         |   2 +-
 packages/core/src/types.ts                         |   7 +
 packages/dashboard/app/api/report.ts               |  14 +-
 packages/dashboard/app/components/ReportModal.css  |   3 +-
 packages/dashboard/app/components/ReportModal.tsx  |  41 ++---
 .../app/components/__tests__/ReportModal.test.tsx  |  58 +++++--
 packages/dashboard/app/utils/report-capture.ts     |  47 ++----
 .../src/__tests__/report-pipeline.test.ts          |  94 ------------
 .../dashboard/src/__tests__/report-routes.test.ts  | 123 +++++++++++----
 packages/dashboard/src/report-pipeline.ts          | 128 +++-------------
 .../dashboard/src/routes/register-report-routes.ts | 169 +++++++--------------
 14 files changed, 279 insertions(+), 418 deletions(-)

Fusion-Task-Id: FN-8371

Fusion-Task-Lineage: 48d0e94d-602f-43e2-a63f-cb497221ac29

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-19 16:44:40 -07:00
gsxdsm
d940bf3d5c FN-8358: add roadmap-item structure previews
Enable native previews and hosted navigation for roadmap items.
- Extend native structure references and API resolution through the roadmap adapter.
- Register the bundled Roadmaps view across desktop and mobile navigation.
- Cover roadmap preview availability, navigation, and route behavior.

Files changed:
 ...n-8358-roadmap-item-native-structure-preview.md |  7 ++++
 docs/dashboard-guide.md                            |  6 ++--
 packages/core/src/types.ts                         | 24 ++++++++-----
 packages/dashboard/app/App.tsx                     | 24 ++++++++-----
 .../dashboard/app/components/LeftSidebarNav.tsx    | 12 +++----
 .../app/components/NativeStructurePreview.tsx      | 10 ++++--
 .../app/components/__tests__/App.test.tsx          | 13 ++++---
 .../app/components/__tests__/Header.test.tsx       |  5 ++-
 .../components/__tests__/LeftSidebarNav.test.tsx   |  5 ++-
 .../app/components/__tests__/MobileNavBar.test.tsx |  4 +--
 .../__tests__/NativeStructurePreview.test.tsx      | 40 ++++++++++++++++------
 .../__tests__/registerBundledPluginViews.test.tsx  | 24 ++++++++++---
 .../app/plugins/registerBundledPluginViews.ts      | 23 +++++++++++++
 packages/dashboard/src/native-structure-preview.ts | 25 +++++++++++++-
 .../native-structure-preview-routes.test.ts        | 31 +++++++++++++++--
 .../src/routes/register-task-workflow-routes.ts    |  4 +--
 packages/dashboard/vite.config.ts                  |  4 +++
 packages/dashboard/vitest.config.ts                |  4 +++
 plugins/fusion-plugin-roadmap/package.json         |  5 +++
 .../fusion-plugin-roadmap/src/dashboard-view.tsx   |  5 +++
 plugins/fusion-plugin-roadmap/src/index.ts         | 14 ++++++--
 21 files changed, 223 insertions(+), 66 deletions(-)

Fusion-Task-Id: FN-8358
Fusion-Task-Lineage: c369ce87-eef0-4d06-bf23-bced9c4363f9
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-19 15:45:45 -07:00
gsxdsm
bea51f7bdb FN-8348: relocate report actions to settings and command center
Relocate guided reporting from the header into durable project and overview surfaces.

- Add Report entry points to Project General settings and Command Center Overview.
- Preserve guided report modal context through a shared route helper.
- Cover relocated controls and update dashboard guidance.

Files changed:
 docs/dashboard-guide.md                            |  2 +-
 packages/dashboard/app/components/Header.tsx       | 33 ++++------------------
 .../dashboard/app/components/SettingsModal.tsx     |  2 +-
 .../app/components/__tests__/Header.test.tsx       |  7 +++++
 .../components/command-center/CommandCenter.css    | 32 +++++++++++++++++++++
 .../components/command-center/CommandCenter.tsx    | 30 +++++++++++++++++++-
 .../__tests__/CommandCenter.test.tsx               | 11 ++++++++
 .../settings/sections/GeneralSection.tsx           | 21 ++++++++++++++
 .../GeneralSection.aiUndoWorkflow.test.tsx         | 20 +++++++++++--
 packages/dashboard/app/utils/reportContextRefs.ts  | 13 +++++++++
 10 files changed, 139 insertions(+), 32 deletions(-)

Fusion-Task-Id: FN-8348

Fusion-Task-Lineage: add1b302-deab-4e17-be2f-832971c1c83d

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-19 15:12:23 -07:00
gsxdsm
da1e445d6b FN-8310: add public-roadmap report deduplication
Add public-roadmap issues as a configurable, reviewable deduplication source for in-app reports.

- Resolve roadmap settings across project, global, and tracking-repository fallbacks
- Search and endorse matching open roadmap issues before filing duplicate reports
- Expose and index roadmap controls with localized default descriptions

Files changed:
 .changeset/fn-8310-public-roadmap-dedupe.md        |  7 ++
 docs/dashboard-guide.md                            |  2 +-
 docs/settings-reference.md                         |  4 +-
 .../core/src/__tests__/settings-parity.test.ts     | 14 +++-
 packages/core/src/settings-schema.ts               |  7 +-
 packages/core/src/types.ts                         | 13 +++-
 packages/dashboard/app/api/report.ts               |  2 +-
 packages/dashboard/app/components/ReportModal.tsx  | 18 ++---
 .../dashboard/app/components/SettingsModal.tsx     | 15 +++-
 .../app/components/__tests__/ReportModal.test.tsx  | 12 ++--
 .../__tests__/SettingsModal.general.test.tsx       |  6 +-
 .../settings/__tests__/section-keys.test.ts        |  5 +-
 .../app/components/settings/save-split.ts          | 14 ++--
 .../app/components/settings/section-keys.ts        |  5 ++
 .../settings/sections/GeneralSection.search.ts     | 34 ++++++---
 .../settings/sections/GeneralSection.tsx           | 29 ++++++--
 .../sections/SourceControlGlobalSection.search.ts  | 27 +++++++
 .../sections/SourceControlGlobalSection.tsx        | 55 ++++++++++----
 .../settings-default-descriptions.test.tsx         |  4 +-
 .../src/__tests__/report-pipeline.test.ts          | 73 ++++++++++++-------
 .../dashboard/src/__tests__/report-routes.test.ts  | 23 +++---
 packages/dashboard/src/report-pipeline.ts          | 84 ++++++++++++++--------
 .../dashboard/src/routes/register-report-routes.ts |  9 +--
 packages/i18n/locales/en/app.json                  | 17 ++++-
 packages/i18n/locales/es/app.json                  | 17 ++++-
 packages/i18n/locales/fr/app.json                  | 17 ++++-
 packages/i18n/locales/ko/app.json                  | 17 ++++-
 packages/i18n/locales/zh-CN/app.json               | 16 ++++-
 packages/i18n/locales/zh-TW/app.json               | 16 ++++-
 29 files changed, 409 insertions(+), 153 deletions(-)

Fusion-Task-Id: FN-8310

Fusion-Task-Lineage: 0efa8d76-e849-4256-bdcd-e9d6dd612e41

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-19 14:51:49 -07:00
gsxdsm
965f15f5ca FN-8368: enforce browser-safe dashboard core imports
Prevent dashboard code from bypassing Vite's browser-safe core boundary.

- Add an allowlist-backed scanner for dashboard core value imports, including dynamic template imports.
- Run the scanner in test and merge-gate prechecks, with regression coverage and import guidance.
- Document reviewed browser-safe core leaves and Vite alias requirements.

Files changed:
 docs/dashboard-guide.md                            |   6 +
 package.json                                       |   6 +-
 packages/dashboard/vite.config.ts                  |   5 +
 ...no-node-only-core-imports-in-dashboard.test.mjs |  80 ++++++++++
 ...heck-no-node-only-core-imports-in-dashboard.mjs | 167 +++++++++++++++++++++
 .../lib/dashboard-browser-safe-core-modules.json   |  59 ++++++++
 6 files changed, 320 insertions(+), 3 deletions(-)

Fusion-Task-Id: FN-8368

Fusion-Task-Lineage: 13e70672-d1da-430c-a360-0a714ad33d9f

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-19 14:08:51 -07:00
gsxdsm
e30f6d851f FN-8293: add native structure drag-and-draft mail composition
Mail composers can attach native structures by drag-and-drop and generate report narratives with AI.

- Add a shared native-structure drag protocol and attachable previews across Mail source views.
- Add a disposable compose-chat panel that drafts narratives around attached embeds.
- Cover drag behavior and compose-chat session lifecycle, and document the Mail interaction.

Files changed:
 .changeset/fn-8293-mail-drag-compose-chat.md       |   7 ++
 docs/dashboard-guide.md                            |   3 +
 .../dashboard/app/components/ComposeChatPanel.css  |  33 ++++++
 .../dashboard/app/components/ComposeChatPanel.tsx  | 117 +++++++++++++++++++++
 packages/dashboard/app/components/EvalsView.tsx    |   3 +-
 packages/dashboard/app/components/GoalsView.tsx    |   6 ++
 packages/dashboard/app/components/InsightsView.tsx |   8 +-
 .../dashboard/app/components/MessageComposer.css   |  22 ++++
 .../dashboard/app/components/MessageComposer.tsx   |  92 ++++++++++++++--
 .../dashboard/app/components/MissionManager.tsx    |  11 +-
 .../components/__tests__/ComposeChatPanel.test.tsx | 102 ++++++++++++++++++
 .../components/__tests__/MessageComposer.test.tsx  |  25 +++++
 .../utils/__tests__/nativeStructureDrag.test.ts    |  56 ++++++++++
 .../dashboard/app/utils/nativeStructureDrag.ts     |  54 ++++++++++
 14 files changed, 525 insertions(+), 14 deletions(-)

Fusion-Task-Id: FN-8293
Fusion-Task-Lineage: 9864e76c-2a0d-41f6-b7f2-de8dd63710b5
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-18 20:30:42 -07:00
gsxdsm
cf3f5e9bf0 FN-8292: embed native structures in mail messages
Embed selected native project structures directly in mailbox messages and drafts.

- Persist native structure embeds in message metadata and expose their shared types.
- Add composer selection, mailbox rendering, previews, and dashboard navigation for linked structures.
- Cover metadata persistence and mailbox embed behavior with core and dashboard tests.

Files changed:
 .changeset/fn-8292-mail-native-structure-embeds.md |  7 ++
 docs/dashboard-guide.md                            |  1 +
 .../message-metadata-native-structures.test.ts     | 25 +++++++
 .../__tests__/postgres/message-store.pg.test.ts    | 21 ++++++
 packages/core/src/index.ts                         |  2 +-
 packages/core/src/types.ts                         | 32 +++++++++
 packages/core/src/types/messages.ts                | 14 ++++
 packages/dashboard/app/components/MailboxModal.css | 29 ++++++++
 packages/dashboard/app/components/MailboxModal.tsx | 13 +++-
 .../components/MailboxNativeStructureEmbeds.tsx    | 37 ++++++++++
 packages/dashboard/app/components/MailboxView.tsx  | 14 +++-
 .../dashboard/app/components/MessageComposer.tsx   | 65 ++++++++++++++++--
 .../app/components/NativeStructurePreview.tsx      |  6 +-
 .../__tests__/MailboxModal.cache.test.tsx          |  8 +--
 .../app/components/__tests__/MailboxModal.test.tsx |  9 +++
 .../MailboxNativeStructureEmbeds.test.tsx          | 42 ++++++++++++
 .../app/components/__tests__/MailboxView.test.tsx  |  9 +++
 .../components/__tests__/MessageComposer.test.tsx  | 25 +++++++
 .../app/components/dashboard/MainContent.tsx       | 78 +++++++++++++++++++++-
 .../MainContent.mailbox-view-task.test.tsx         | 46 ++++++++++++-
 20 files changed, 459 insertions(+), 24 deletions(-)

Fusion-Task-Id: FN-8292

Fusion-Task-Lineage: ae6cfb9c-a764-407c-bd45-cfd879ccdd3e

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-18 19:45:08 -07:00
gsxdsm
bc4b679598 FN-8291: add inline native structure previews to chat
Enable chat users to inspect and open referenced native structures inline.

- Render clickable inline previews for native structure references across chat surfaces.
- Route preview actions to their corresponding task, mission, goal, and other dashboard views.
- Add regression coverage, dashboard documentation, and a CLI changeset.

Files changed:
 ...fn-8291-chat-native-structure-inline-preview.md |   7 +
 docs/dashboard-guide.md                            |   5 +-
 packages/dashboard/app/App.tsx                     |  31 +++
 .../app/components/StandardChatSurface.tsx         | 226 ++++++++++++++++--
 ...andardChatSurface.nativeStructureEmbed.test.tsx | 257 +++++++++++++++++++++
 .../__tests__/nativeStructureChatRef.test.ts       |  54 +++++
 .../app/components/nativeStructureChatRef.ts       |  58 +++++
 .../app/components/nativeStructureNavigation.ts    |  21 ++
 8 files changed, 635 insertions(+), 24 deletions(-)

Fusion-Task-Id: FN-8291

Fusion-Task-Lineage: 9db2c0fa-494e-4779-93f3-3309eed8565a

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-18 19:36:57 -07:00
gsxdsm
12aee016ee FN-8352: promote ideation to top-level navigation
Make ideation independently accessible from desktop and mobile navigation.

- Add an Ideation view backed by the Command Center panel and view-state routing.
- Surface Ideation in desktop/sidebar and mobile primary navigation, with coverage for navigation and rendering.
- Document the experimental setting and add a minor changeset.

Files changed:
 .changeset/fn-8352-ideation-top-level-view.md      |  7 ++++
 docs/dashboard-guide.md                            | 14 +++++++
 docs/settings-reference.md                         |  3 +-
 .../src/__tests__/mobile-nav-primary-items.test.ts | 10 ++++-
 packages/core/src/mobile-nav-primary-items.ts      | 17 +++++++-
 packages/dashboard/app/App.tsx                     | 16 ++++++-
 packages/dashboard/app/components/Header.tsx       | 21 +++++++--
 .../dashboard/app/components/LeftSidebarNav.tsx    |  8 +++-
 packages/dashboard/app/components/MobileNavBar.tsx |  2 +
 .../dashboard/app/components/SettingsModal.tsx     |  6 +++
 .../app/components/__tests__/App.test.tsx          | 20 +++++++++
 .../app/components/__tests__/Header.test.tsx       | 15 +++++++
 .../components/__tests__/LeftSidebarNav.test.tsx   |  5 +++
 .../app/components/__tests__/MobileNavBar.test.tsx | 43 +++++++++++++++---
 .../components/command-center/CommandCenter.tsx    | 12 +++---
 .../__tests__/CommandCenter.test.tsx               |  7 ++--
 .../__tests__/IdeationPanel.test.tsx               | 49 ++++++++++++++++++++++
 .../app/components/dashboard/MainContent.tsx       | 13 ++++++
 .../dashboard/app/components/dashboard/types.ts    |  1 +
 .../settings/sections/GeneralSection.tsx           | 10 ++---
 packages/dashboard/app/hooks/useViewState.ts       |  8 +++-
 21 files changed, 256 insertions(+), 31 deletions(-)

Fusion-Task-Id: FN-8352
Fusion-Task-Lineage: e7791119-2fe5-4e68-b669-0e5bd8df9b49
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-18 19:18:57 -07:00
gsxdsm
482dbe77a4 FN-8340: preserve Quick Chat layout on restore
Keep minimized Quick Chat mounted and layout-stable for instant restores.

- Hide retained floating windows with visibility and disable pointer interaction
- Cover conversation-load, session, and scroll retention across desktop and mobile restores
- Document the retained Quick Chat behavior

Files changed:
 docs/dashboard-guide.md                            |  2 +-
 packages/dashboard/app/components/FloatingWindow.css | 12 +++--
 packages/dashboard/app/components/FloatingWindow.tsx |  9 ++--
 packages/dashboard/app/components/__tests__/FloatingWindow.test.tsx |  4 ++
 packages/dashboard/app/components/__tests__/QuickChat.persist.test.tsx | 58 +++++++++++++++++-----
 5 files changed, 63 insertions(+), 22 deletions(-)

Fusion-Task-Id: FN-8340

Fusion-Task-Lineage: 25027098-b89a-481c-bf00-de64cf302628

Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-18 19:11:56 -07:00