gsxdsm
338dc173ff
feat: pnpm dev --isolated runs against its own database and project
...
Working on Fusion from inside a machine that already runs one, a plain
`pnpm dev` shares that instance's LIVE database. Everything durable hangs off
$HOME/.fusion — settings, credentials, central DB, the embedded Postgres data
dir — and a process pointed at a data dir whose postmaster is already running
attaches to it instead of starting its own.
--isolated spawns the dev child with HOME pointed at a sandbox, so it gets its
own settings, credentials and Postgres cluster on its own port. It also moves
the child's cwd, which is the half that is easy to miss: `fn dashboard`
derives its project from the working directory and has no project flag, so
isolating HOME alone leaves both instances on `<repo>/.fusion` — including
`.fusion/tasks/<id>/`, which the orphaned-task-dir sweep re-imports, so a
fresh dev database would adopt the real instance's tasks.
The sandbox defaults to ~/.fusion-dev/<checkout-name>/{home,project}: outside
the work tree so it neither shows up in git status nor dies on a clean
checkout, and keyed by checkout so two clones cannot collide. The project dir
is git init-ed on first use because Fusion projects are git work trees.
Changing cwd is safe because PRELOAD/LOADER/ENTRY are already absolute.
Verified in a container beside a running Fusion: the isolated instance
reported zero projects while the real one reported two, on separate Postgres
clusters (ports 42617 and 38311).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-08-19 21:14:31 -07:00
gsxdsm
7ae238cc67
fix(FN-061): store medieval theme screenshots as Git LFS pointers
...
These four screenshots/*.png were committed as raw blobs despite the
screenshots/**/*.png LFS rule, so git reported them as files that should
have been pointers. Re-add them through the LFS clean filter.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-08-19 21:04:55 -07:00
ischindl
3d355465c7
feat(missions): done-credit via reverse lineage, feature re-point/unlink tools, and live unlink SSE ( #3491 )
...
## What this PR does
Closes three lifecycle gaps in the Mission → Milestone → Slice →
**Feature** model, where a feature links to exactly one delivery task
(single-valued `feature.taskId`, one-feature-one-task):
1. **Reverse-lineage done-credit** — a terminal, non-failed task
carrying a feature's reverse `missionLineage`
(featureId/sliceId/missionId) now credits the feature as satisfying its
acceptance criteria, independent of where the forward `feature.taskId`
points (e.g. a newer follow-up task). Credit is only applied when
**none** of the feature's lineage candidates is live, so a live
follow-up keeps the feature active. Fixes features that otherwise sit
"in-progress" forever after their delivering task completes.
2. **Re-point / unlink surface** — new `fn_feature_repoint_task` /
`fn_feature_unlink_task` agent tools (engine + CLI) backed by an atomic
`repointFeatureToTask` store primitive, so a mis-linked feature can be
re-attached to the correct delivery task or unlinked — without a manual
DB edit. Single-valued `feature.taskId` and one-feature-one-task
invariants are preserved; unlinking an already-unlinked feature errors
clearly. Classified as mutation tools, same class as the existing
`fn_feature_link_task`.
3. **Live SSE update** — the `feature:unlinked` store event is now
emitted over SSE (`event: feature:unlinked`) so the dashboard refreshes
immediately after a re-point/unlink instead of waiting for the next
poll.
## Why
The forward-only `feature.taskId` link made three real failure modes
unrecoverable from the product surface: stale done-features after task
replacement, permanently mis-linked features, and a stale dashboard
after a repair. This closes the feature lifecycle end-to-end.
## Invariants
- `feature.taskId` stays single-valued; one feature is linked to at most
one task at any time (atomic store primitive).
- Done-credit requires: terminal column, non-failed, and no live lineage
candidate.
- No new run-audit prose; store events carry ids/counts/outcomes only.
## Tests
- `mission-state-reconcile.test.ts` — reverse-lineage credit matrix
(live vs. terminal vs. failed candidates)
- `mission-store.pg.test.ts` — `repointFeatureToTask` atomicity +
invariants (PG; gate-safe auto-skip without Postgres)
- `agent-mission-tools.test.ts` — tool delegation (unlink / re-point
exactly once)
- `heartbeat-executor.test.ts`, `extension.test.ts` — tool exposure and
heartbeat interaction
- Changeset: `@runfusion/fusion: minor`
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Added tools to reassign a feature to another live task or remove its
task link.
- Unlinking resets the feature to a defined state and provides clear
errors when applicable.
- Added live updates for feature unlink events.
- Improved reconciliation to recognize completed reverse-lineage work
while respecting active follow-up tasks and failures.
- Improved relationship consistency when concurrent task-link operations
occur.
- **Documentation**
- Documented feature linking, unlinking, reassignment, lifecycle events,
and reconciliation behavior.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-19 21:01:56 -07:00
Fusion Agent
e099511b10
docs(FN-062): retain merge review architecture guidance
2026-08-20 03:57:56 +00:00
Fusion Agent
29010e0b0a
FN-064: preserve bounded Board mouse panning
...
Keep Board dragging within safe viewport bounds while preserving usable mobile interactions.
- Add a reusable bounded mouse-pan hook and wire it into the Board.
- Preserve Board transforms and cursor behavior through responsive CSS updates.
- Expand desktop and mobile regression coverage and document the interaction.
- Add the published-package changeset for the Board fix.
Files changed:
.changeset/fn-064-board-safe-mouse-pan.md | 7 +
docs/dashboard-guide.md | 4 +-
packages/dashboard/app/components/Board.css | 10 ++
packages/dashboard/app/components/Board.tsx | 17 ++-
.../app/components/__tests__/Board.test.tsx | 40 ++++-
.../app/components/__tests__/board-mobile.test.tsx | 13 +-
.../app/hooks/__tests__/useBoardMousePan.test.tsx | 163 +++++++++++++++++++++
packages/dashboard/app/hooks/useBoardMousePan.ts | 141 ++++++++++++++++++
8 files changed, 374 insertions(+), 21 deletions(-)
Fusion-Task-Id: FN-064
Fusion-Task-Lineage: 22e9dfeb-b565-414b-89cf-eb10725490a8
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:57:39 +00:00
Fusion Agent
14befb76bc
FN-062: enforce AI merge review finding reconciliation
...
Make AI merge reviews preserve actionable reasons and require explicit resolution of prior blockers before landing.
- Recover reviewer rejection reasons and preserve bounded squash-fidelity findings across corrective passes.
- Require explicit prior-finding acknowledgement, reject unknown acknowledgements as new blockers, and keep advisory concerns landable.
- Park typed AI review blocks without git-conflict retries and cover the reconciliation contract with regression tests and release notes.
Files changed:
.changeset/fn-062-ai-merge-review-livelock.md | 7 ++
docs/architecture.md | 1 +
.../src/__tests__/merge-error-recovery.test.ts | 29 ++++-
.../engine/src/__tests__/merger-ai-prompts.test.ts | 25 +++-
packages/engine/src/__tests__/merger-ai.test.ts | 80 ++++++++++---
packages/engine/src/__tests__/workspace-merger.test.ts | 27 +++-
packages/engine/src/merge/merger-ai-prompts.ts | 74 +++++++++---
packages/engine/src/merge/merger-ai.ts | 127 ++++++++++++++-------
packages/engine/src/project-engine.ts | 27 +++++
9 files changed, 325 insertions(+), 72 deletions(-)
Fusion-Task-Id: FN-062
Fusion-Task-Lineage: 59d6d94d-a9e3-4f6a-9d16-d434a335e6a3
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:57:39 +00:00
Fusion Agent
07125886b7
FN-061: refine medieval theme typography
...
Refine the medieval dashboard theme so its typography and responsive presentation are more balanced.
- Reduce oversized theme typography and tune responsive layout styling.
- Load Pixelify Sans and update theme tokens, documentation, and changesets.
- Expand theme and hook coverage with desktop and mobile visual references.
Files changed:
.changeset/fn-058-medieval-theme.md | 2 +-
.changeset/fn-061-medieval-theme-refinement.md | 7 +
docs/dashboard-guide.md | 4 +-
docs/settings-reference.md | 2 +-
.../dashboard/app/__tests__/medieval-theme.test.ts | 172 +++++++++++++++++++--
.../dashboard/app/hooks/__tests__/useTheme.test.ts | 14 ++
packages/dashboard/app/main.tsx | 2 +-
packages/dashboard/app/public/theme-data.css | 22 ++-
packages/dashboard/app/styles.css | 46 +++++-
packages/dashboard/package.json | 2 +-
pnpm-lock.yaml | 8 +-
screenshots/fn-061-medieval-desktop.png | Bin 0 -> 753177 bytes
screenshots/fn-061-medieval-mobile.png | Bin 0 -> 208805 bytes
13 files changed, 244 insertions(+), 37 deletions(-)
Fusion-Task-Id: FN-061
Fusion-Task-Lineage: fe95f1d1-7db4-4098-965f-f4c0aa8860e0
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:57:23 +00:00
Fusion Agent
967ea6ee91
revert(FN-054): FN-054: preserve list-first chat navigation contracts
...
Fusion-Task-Id: FN-054
Reverts work landed by task FN-054 (FN-054: preserve list-first chat navigation contracts @ bdb7fcf9).
2026-08-20 03:57:23 +00:00
Fusion Agent
66ebbb1aa4
FN-054: preserve list-first chat navigation contracts
...
Migrate Chat detail mounting and room coverage to preserve accessible list-to-detail navigation contracts.
- Gate thread anchoring and live-tail updates on detail mode.
- Replace stale room-switcher tests with list selection and explicit detail entry.
- Retain composer, keyboard overlap, gesture, and scroll assertions across room and direct modes.
Files changed:
packages/dashboard/app/components/ChatView.tsx | 13 +-
.../components/__tests__/ChatView.rooms.test.tsx | 334 ++++++++++++++-------
2 files changed, 239 insertions(+), 108 deletions(-)
Fusion-Task-Id: FN-054
Fusion-Task-Lineage: 6b139504-ecf3-4b29-ab72-34a4d593676c
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:57:23 +00:00
Fusion Agent
4d74560ae0
FN-054: add list-first chat conversation navigation
...
Move chat conversations to list-first navigation with explicit detail entry and back navigation.
- Replace room-switcher dropdown contracts with list-to-detail coverage.
- Update room composer, thread, gesture, and scroll tests for explicit detail selection.
- Remove obsolete room-switcher UI and refresh dashboard documentation and release metadata.
Files changed:
.changeset/fn-054-removal.md | 7 +
docs/dashboard-guide.md | 22 +-
packages/dashboard/app/App.tsx | 2 +-
packages/dashboard/app/components/ChatView.css | 365 +--
packages/dashboard/app/components/ChatView.tsx | 446 +---
.../__tests__/ChatView.context-window.test.tsx | 19 +-
.../__tests__/ChatView.core-contracts.test.tsx | 158 +-
.../__tests__/ChatView.mobile-render.test.tsx | 251 +-
.../components/__tests__/ChatView.mobile.test.tsx | 2567 +-------------------
.../__tests__/ChatView.new-chat-default.test.tsx | 20 +-
.../components/__tests__/ChatView.rooms.test.tsx | 346 +--
.../__tests__/ChatView.sessions-rooms.test.tsx | 163 +-
.../__tests__/ChatView.swipe-back.test.tsx | 27 +-
.../components/__tests__/ChatView.test-harness.tsx | 5 +-
.../app/components/overflowViewRegistry.tsx | 2 +-
packages/dashboard/vitest.config.ts | 12 +-
16 files changed, 419 insertions(+), 3993 deletions(-)
Fusion-Task-Id: FN-054
Fusion-Task-Lineage: 6b139504-ecf3-4b29-ab72-34a4d593676c
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:57:23 +00:00
Fusion Agent
2c16a7e9ba
FN-058: add Medieval appearance theme
...
Add a bundled pixel-font Medieval theme with parchment and wood visual styling across dashboard and desktop surfaces.
- Add Medieval theme tokens, swatches, first-paint persistence, and selector integration.\n- Bundle Press Start 2P typography with responsive modal styling and documentation.\n- Add theme behavior tests, screenshots, and a published-package changeset.\n\nFiles changed:\n .changeset/fn-058-medieval-theme.md | 7 ++\n docs/dashboard-guide.md | 5 +-\n docs/settings-reference.md | 2 +-\n packages/core/src/types/ui/execution-and-ui.ts | 5 ++\n .../dashboard/app/__tests__/medieval-theme.test.ts | 71 +++++++++++++++++\n .../dashboard/app/components/ThemeSelector.css | 15 +++\n .../components/__tests__/ThemeDropdown.test.tsx | 2 +-\n .../components/__tests__/ThemeSelector.test.tsx | 14 ++--\n .../__tests__/CommandCenterControls.test.tsx | 10 ++-\n packages/dashboard/app/components/themeOptions.ts | 1 +\n .../dashboard/app/hooks/__tests__/useTheme.test.ts | 28 +++++++\n packages/dashboard/app/index.html | 4 +-\n packages/dashboard/app/main.tsx | 1 +\n packages/dashboard/app/public/theme-data.css | 86 +++++++++++++++++++++\n packages/dashboard/app/styles.css | 24 ++++++\n packages/dashboard/package.json | 1 +\n packages/desktop/src/renderer/index.html | 3 +-\n pnpm-lock.yaml | 8 ++\n screenshots/fn-058-medieval-theme-desktop.png | Bin 0 -> 19898 bytes\n screenshots/fn-058-medieval-theme-mobile.png | Bin 0 -> 14996 bytes\n 20 files changed, 269 insertions(+), 18 deletions(-)
Fusion-Task-Id: FN-058
Fusion-Task-Lineage: b7ce1b83-59ba-4516-8073-c1e8c46bb181
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:57:23 +00:00
Fusion Agent
47a8b53ad2
FN-059: deduplicate failure activity logging
...
Record task failure activity only when a task enters the failed state, while preserving lifecycle metadata compatibility.
- Emit failure-transition metadata only for non-failed to failed updates.
- Preserve warm-cache lane decoration and cold-cache absent metadata.
- Add PostgreSQL parity coverage and a published-package changeset.
Files changed:
.changeset/fn-059-activity-log-failure-dedup.md | 7 +++
.../postgres/activity-log-parity.pg.test.ts | 50 ++++++++++++++++++++++
packages/core/src/store.ts | 13 ++++--
packages/core/src/task-store/lifecycle-ops.ts | 11 +++--
packages/core/src/task-store/task-update.ts | 6 ++-
5 files changed, 80 insertions(+), 7 deletions(-)
Fusion-Task-Id: FN-059
Fusion-Task-Lineage: 28c28c0d-d325-4fa6-844d-33a05a18e5ed
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:57:23 +00:00
Fusion Agent
b533220716
FN-052: remove Board mouse-drag panning
...
Remove scripted desktop Board panning while retaining native scrolling and mobile snapping.
- Remove the Board mouse-pan hook and its cursor styling.
- Update Board interaction tests and mobile coverage for browser-owned scrolling.
- Document the revised navigation behavior and publish a patch changeset.
Files changed:
.changeset/fn-052-remove-board-mouse-pan.md | 7 +
docs/dashboard-guide.md | 4 +-
packages/dashboard/app/components/Board.css | 11 --
packages/dashboard/app/components/Board.tsx | 17 +--
.../app/components/__tests__/Board.test.tsx | 47 +++---
.../app/components/__tests__/board-mobile.test.tsx | 8 +-
.../app/hooks/__tests__/useBoardMousePan.test.tsx | 164 ---------------------
packages/dashboard/app/hooks/useBoardMousePan.ts | 151 -------------------
8 files changed, 39 insertions(+), 370 deletions(-)
Fusion-Task-Id: FN-052
Fusion-Task-Lineage: 7cd4c22f-09cf-4e09-8e24-729b5dd8d3fb
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:57:23 +00:00
Fusion Agent
3fd4bdbc69
FN-051: disable native task dragging
...
Remove native task drag-and-drop while preserving board panning and task actions.
- Remove draggable task movement and drop handling from board, columns, lanes, lists, and cards.
- Add task context-menu movement actions and update related documentation and release metadata.
- Update component tests to cover non-draggable cards and board-pan exclusions.
Files changed:
.changeset/fn-051-task-card-moves.md | 7 +
docs/dashboard-guide.md | 5 +-
docs/task-management.md | 6 +
packages/dashboard/app/components/Board.tsx | 63 +-----
packages/dashboard/app/components/Column.tsx | 140 +-------------
packages/dashboard/app/components/DockTaskList.tsx | 3 +-
packages/dashboard/app/components/Lane.tsx | 9 -
packages/dashboard/app/components/ListView.css | 12 +-
packages/dashboard/app/components/ListView.tsx | 132 ++-----------
packages/dashboard/app/components/TaskCard.css | 8 -
packages/dashboard/app/components/TaskCard.tsx | 58 ++----
.../dashboard/app/components/TaskContextMenu.css | 37 ++++
.../dashboard/app/components/TaskContextMenu.tsx | 145 ++++++++++++--
.../__tests__/Board.canDropTask.test.tsx | 212 ---------------------
.../app/components/__tests__/Board.test.tsx | 8 +-
.../app/components/__tests__/Column.test.tsx | 101 +---------
.../app/components/__tests__/DockTaskList.test.tsx | 5 +-
.../app/components/__tests__/Lane.test.tsx | 26 ---
.../app/components/__tests__/ListView.test.tsx | 178 +----------------
.../app/components/__tests__/TaskCard.test.tsx | 60 ++----
.../components/__tests__/TaskContextMenu.test.tsx | 55 +++++-
.../dashboard/app/components/boardCanDropTask.ts | 56 -----
.../app/components/dashboard/MainContent.tsx | 1 -
.../app/components/useRightDockController.tsx | 1 -
packages/dashboard/app/styles.css | 14 --
25 files changed, 297 insertions(+), 1045 deletions(-)
Fusion-Task-Id: FN-051
Fusion-Task-Lineage: b5614cb1-75f3-4307-a595-123f903adc99
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:57:23 +00:00
Fusion Agent
a736843cd2
FN-017: add authenticated image artifact viewer
...
Protect dashboard image artifacts while providing a dedicated preview experience.
- Fetch image media with header authentication and render revocable blob URLs.
- Add desktop and mobile viewer behavior across gallery, documents, task, and mailbox surfaces.
- Cover viewer, blob-loading, and updated artifact-surface behavior with tests and documentation.
Files changed:
docs/dashboard-guide.md | 1 +
.../app/components/ArtifactImageViewer.css | 9 ++
.../app/components/ArtifactImageViewer.tsx | 100 ++++++++++++++++++
.../dashboard/app/components/ArtifactMedia.tsx | 8 +-
.../dashboard/app/components/ArtifactsGallery.tsx | 10 +-
.../dashboard/app/components/DocumentsView.tsx | 4 +-
.../app/components/MailboxArtifactAttachment.tsx | 29 +++---
.../dashboard/app/components/TaskDocumentsTab.tsx | 114 ++-------------------
.../__tests__/ArtifactImageViewer.test.tsx | 48 +++++++++
.../__tests__/ArtifactsGallery.swipe-back.test.tsx | 7 +-
.../components/__tests__/DocumentsView.test.tsx | 9 +-
.../__tests__/MailboxArtifactAttachment.test.tsx | 34 ++++--
.../components/__tests__/TaskDocumentsTab.test.tsx | 22 ++--
.../hooks/__tests__/useArtifactImageBlob.test.tsx | 92 +++++++++++++++++
.../dashboard/app/hooks/useArtifactImageBlob.ts | 59 +++++++++++
15 files changed, 387 insertions(+), 159 deletions(-)
Fusion-Task-Id: FN-017
Fusion-Task-Lineage: 893c5a50-536a-4f54-a9a4-cba33ea111b5
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:57:23 +00:00
Fusion Agent
da3c280672
FN-049: apply Appearance settings immediately in embedded Settings
...
Mirror Appearance drafts into mounted dashboard surfaces immediately while keeping SettingsModal as the persistence owner.
- Add immediate setters for task routing, popup, cost badge, task-detail ordering, and chat layout settings.
- Wire embedded and overlay Settings controls through the App shell with regression coverage.
- Add the published-package fix changeset.
Files changed:
.changeset/fn-049-live-dashboard-settings.md | 7 +++
packages/dashboard/app/App.tsx | 17 +++++-
packages/dashboard/app/components/AppModals.tsx | 19 ++++++
packages/dashboard/app/components/SettingsModal.tsx | 31 ++++++++++
packages/dashboard/app/components/__tests__/SettingsModal.general.test.tsx | 29 ++++++++++
packages/dashboard/app/components/dashboard/MainContent.tsx | 22 +++++++
packages/dashboard/app/components/dashboard/__tests__/MainContent.graph-popout.test.tsx | 67 +++++++++++++++++++++
packages/dashboard/app/components/dashboard/types.ts | 10 +++
packages/dashboard/app/components/settings/sections/AppearanceSection.tsx | 52 +++++++++++++----
packages/dashboard/app/components/settings/sections/__tests__/AppearanceSection.test.tsx | 41 ++++++++++++-
packages/dashboard/app/hooks/__tests__/useAppSettings.test.ts | 44 ++++++++++++++
packages/dashboard/app/hooks/useAppSettings.ts | 34 ++++++++++-
packages/dashboard/app/task-modal-touch-resize-e2e-fixture.tsx | 2 +-
13 files changed, 359 insertions(+), 16 deletions(-)
Fusion-Task-Id: FN-049
Fusion-Task-Lineage: 4140b47f-2f70-4c8b-ab47-2fc28672a2bb
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:57:23 +00:00
Fusion Agent
67becd9fc2
FN-050: preserve chat transcripts during revalidation
...
Keep populated chat transcripts and reader position stable while background requests refresh data.
- Retain in-memory session and room messages during same-context revalidation.
- Show loading placeholders only for cold or empty transcript loads.
- Add regression coverage for cache behavior and transcript rendering.
- Add the published-package changeset.
Files changed:
.changeset/fn-050-chat-transcript-revalidation.md | 7 ++++
packages/dashboard/app/components/ChatView.tsx | 4 +-
.../__tests__/ChatView.sessions-rooms.test.tsx | 44 ++++++++++++++++++++++
.../app/hooks/__tests__/useChatRooms.cache.test.ts | 27 +++++++++++++
packages/dashboard/app/hooks/useChat.ts | 16 ++++++--
packages/dashboard/app/hooks/useChatRooms.ts | 26 +++++++++----
6 files changed, 111 insertions(+), 13 deletions(-)
Fusion-Task-Id: FN-050
Fusion-Task-Lineage: 688cf159-3ebd-4c40-b56f-21319863de23
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:57:23 +00:00
Fusion Agent
c3aeff5ff1
FN-048: resize chat composers from the top edge and collapse stale heights
...
Resize shared chat composers around a top-edge drag model and clear manual heights when drafts shrink.
- Replace native textarea resizing with desktop/tablet top-edge pointer resizing.
- Collapse stale manual heights back to automatic sizing for shorter drafts.
- Update composer styles, regression coverage, and the published patch changeset.
Files changed:
.changeset/fn-048-chat-composer-resize.md | 7 ++
packages/dashboard/app/components/ChatView.css | 6 +-
packages/dashboard/app/components/TaskChatTab.css | 6 +-
.../app/components/TaskPlannerChatTab.css | 6 +-
.../__tests__/ChatView.autosize.test.tsx | 54 ++++++++++--
.../ChatView.chat-input-autosize.test.tsx | 80 +++++++++++++-----
.../app/components/__tests__/TaskChatTab.test.tsx | 24 ++++--
.../__tests__/TaskPlannerChatTab.test.tsx | 24 ++++--
packages/dashboard/app/utils/chatInputAutosize.ts | 96 ++++++++++++++++------
9 files changed, 223 insertions(+), 80 deletions(-)
Fusion-Task-Id: FN-048
Fusion-Task-Lineage: 83d573b2-fdaa-48bb-906a-c1e0b074539f
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:57:23 +00:00
Fusion Agent
ef22fa478a
FN-047: preserve project-scoped Chat context
...
Keep task Chat bound to the selected project even when its engine is unavailable.
- Resolve request-scoped TaskStore and ChatStore pairs without falling back to the default project.
- Apply the project-safe resolution to task planner and room chat routes.
- Add regression coverage and document the selected-project context guarantee.
Files changed:
.../fn-047-task-chat-context-project-scope.md | 7 ++
docs/dashboard-guide.md | 2 +-
.../dashboard/src/__tests__/chat-manager.test.ts | 49 +++++++-----
.../src/__tests__/chat-project-services.test.ts | 18 +++++
.../src/__tests__/routes-chat-cancellation.test.ts | 2 +-
packages/dashboard/src/chat-project-services.ts | 20 ++++-
.../src/routes/register-chat-room-routes.ts | 7 ++
.../dashboard/src/routes/register-chat-routes.ts | 86 +++++++++++++---------
8 files changed, 135 insertions(+), 56 deletions(-)
Fusion-Task-Id: FN-047
Fusion-Task-Lineage: 008eefad-e495-40ba-9243-d46ec913c9db
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:57:23 +00:00
Fusion Agent
7563fcfe1b
FN-037: configure AI-authored task output language
...
Configure a persisted output-language setting and apply it across AI-authored task text and workflow summaries.
- Add project/global output-language settings with defaults, validation, UI controls, translations, and documentation.
- Propagate the selected language through planning, execution, review, summaries, and task creation.
- Add focused coverage for language resolution and update affected dashboard, engine, and localization tests.
Files changed:
.changeset/fn-037-task-output-language.md | 7 ++
docs/settings-reference.md | 4 +
docs/task-management.md | 4 +
.../core/src/__tests__/ai-output-language.test.ts | 21 +++++
packages/core/src/ai/ai-output-language.ts | 42 +++++++++
packages/core/src/ai/ai-summarize.ts | 16 +++-
packages/core/src/config/settings-schema.ts | 2 +
packages/core/src/index.gate.ts | 2 +
packages/core/src/index.ts | 2 +
packages/core/src/task-store/settings-ops.ts | 7 ++
packages/core/src/task-store/task-creation.ts | 4 +
packages/core/src/types/settings/settings-scope.ts | 2 +
.../app/__tests__/settings-sections.test.tsx | 21 +++--
.../__tests__/SettingsModal.models-auth.test.tsx | 10 +-
.../app/components/settings/section-keys.ts | 2 +-
.../sections/ProjectModelsSection.search.ts | 13 ++-
.../settings/sections/ProjectModelsSection.tsx | 28 ++++--
.../settings-default-descriptions.test.tsx | 4 +-
.../src/__tests__/github-tracking.test.ts | 4 +-
.../__tests__/planning-prompt-resolution.test.ts | 29 ++++--
.../src/__tests__/routes-planning.test.ts | 32 ++++++-
packages/dashboard/src/ai-session-store.ts | 15 ++-
packages/dashboard/src/github-tracking.ts | 3 +
packages/dashboard/src/planning.ts | 75 +++++++++++++--
.../routes/register-ai-text-assistant-routes.ts | 11 ++-
.../src/routes/register-planning-subtask-routes.ts | 6 +-
.../src/routes/register-task-workflow-routes.ts | 9 +-
packages/dashboard/src/shared/settings-sections.ts | 2 +-
.../__tests__/ce-workflow-step-executor.test.ts | 45 ++++++++-
.../__tests__/executor-review-artifacts.test.ts | 65 +++++++++++++
packages/engine/src/__tests__/triage.test.ts | 7 +-
.../src/__tests__/workflow-task-runtime.test.ts | 23 +++++
.../create-authoritative-workflow-primitives.ts | 14 ++-
.../create-authoritative-workflow-seams.ts | 17 +++-
.../engine/src/executor/execute-workflow-graph.ts | 19 +++-
.../engine/src/executor/execute-workflow-step.ts | 13 ++-
packages/engine/src/executor/execution-prompt.ts | 10 +-
.../engine/src/executor/handoff-task-to-review.ts | 10 +-
.../engine/src/executor/run-graph-custom-node.ts | 6 +-
.../src/executor/task-executor-graph-facades.ts | 8 +-
packages/engine/src/triage.ts | 35 ++-----
.../src/workflows/workflow-completion-summary.ts | 101 ++++++++++++++++++---
.../engine/src/workflows/workflow-task-runtime.ts | 12 +++
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/pt-BR/app.json | 14 ++-
packages/i18n/locales/zh-CN/app.json | 7 +-
packages/i18n/locales/zh-TW/app.json | 7 +-
packages/i18n/src/resources.d.ts | 13 ++-
51 files changed, 680 insertions(+), 151 deletions(-)
Fusion-Task-Id: FN-037
Fusion-Task-Lineage: 968a707e-7ffe-43ba-b983-d679b031f7a5
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:57:23 +00:00
Fusion Agent
ef5ebd21e5
FN-044: show bounded description fallbacks for titleless tasks
...
Display titleless tasks consistently across cards and list views without persisting generated fallback titles.
- Centralize title, description, and ID display fallback selection.
- Bound long description fallbacks to 200 characters with literal dots and preserve full tooltips.
- Cover desktop, mobile, whitespace, length-boundary, and explicit-title behavior.
Files changed:
packages/dashboard/app/components/ListView.tsx | 5 +-
packages/dashboard/app/components/TaskCard.css | 12 +++
packages/dashboard/app/components/TaskCard.tsx | 18 +++++-
.../app/components/__tests__/ListView.test.tsx | 64 ++++++++++++++++++++++
.../app/components/__tests__/TaskCard.test.tsx | 43 +++++++++++++++
packages/dashboard/app/utils/taskTitleDisplay.ts | 51 +++++++++++++++++
6 files changed, 188 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-044
Fusion-Task-Lineage: 822f17f3-4839-4f9e-9aa7-cd90037b67de
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:57:23 +00:00
Fusion Agent
b1893a63af
FN-043: add canonical thinking levels for custom providers
...
Custom-provider models now expose the full thinking-level selector and faithfully transmit the selected effort.
- Register all canonical thinking levels and preserve provider-specific API dialects.
- Remove the redundant reasoning toggle and update provider status and settings documentation.
- Add dashboard, engine, and provider registration coverage for thinking-level behavior.
- Add a minor changeset for the published CLI package.
Files changed:
.../fn-043-custom-provider-thinking-levels.md | 7 ++
docs/settings-reference.md | 2 +
.../dashboard/app/api/settings/provider-status.ts | 1 -
.../app/components/CustomProviderForm.css | 5 +-
.../app/components/CustomProviderForm.tsx | 18 ++---
.../__tests__/CustomProviderForm.test.tsx | 35 ++++++---
...r-model-routes-custom-provider-thinking.test.ts | 91 ++++++++++++++++++++++
.../custom-provider-thinking-levels.test.ts | 49 ++++++++++++
.../custom-providers-openai-completions.test.ts | 2 +-
.../custom-providers-openai-responses.test.ts | 3 +-
.../src/__tests__/pi-create-fn-agent.test.ts | 31 +++++++-
.../src/__tests__/provider-registration.test.ts | 20 ++++-
.../engine/src/auth/custom-provider-registry.ts | 14 +++-
packages/engine/src/pi.ts | 9 ++-
14 files changed, 251 insertions(+), 36 deletions(-)
Fusion-Task-Id: FN-043
Fusion-Task-Lineage: fdd3308a-d5bd-4f54-911a-226c2b46a927
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:57:23 +00:00
Fusion Agent
a81c9b80d9
FN-036: make task title summarization project-controlled
...
Make generated task titles project-controlled while preserving useful summaries at any length.
- Add project-level title summarization settings and UI controls.
- Make summarization length-independent across task creation, planning, GitHub, and agent flows.
- Update localization, documentation, and regression coverage.
Files changed:
.../fn-036-systematic-title-summarization.md | 7 +
docs/settings-reference.md | 2 +-
docs/storage.md | 2 +-
docs/task-management.md | 4 +-
packages/core/src/__tests__/ai-summarize.test.ts | 34 ++--
.../__tests__/store-create-intake-column.test.ts | 186 +++++++++++++++++++++
packages/core/src/ai/ai-summarize.ts | 32 ++--
packages/core/src/task-store/task-creation.ts | 83 +++++++--
packages/core/src/types/settings/settings-scope.ts | 9 +-
packages/core/src/types/task/task-core.ts | 2 +-
.../dashboard/app/__tests__/api-projects.test.ts | 4 +-
.../app/__tests__/settings-sections.test.tsx | 2 +-
.../dashboard/app/api/planning/ai-summarize.ts | 2 +-
.../__tests__/SettingsModal.search.test.ts | 5 +-
.../search/__tests__/settings-search-index.test.ts | 2 +-
.../sections/ProjectModelsSection.search.ts | 4 +-
.../settings/sections/ProjectModelsSection.tsx | 11 +-
.../src/__tests__/github-tracking.test.ts | 12 +-
.../src/__tests__/routes-planning.test.ts | 28 +++-
.../dashboard/src/__tests__/routes-tasks.test.ts | 19 +++
packages/dashboard/src/github-tracking.ts | 9 +-
.../routes/register-ai-text-assistant-routes.ts | 7 +-
.../src/__tests__/agent-tools-delegation.test.ts | 1 +
.../src/__tests__/heartbeat-executor.test.ts | 1 -
packages/engine/src/__tests__/triage.test.ts | 7 +-
packages/engine/src/agent-tools.ts | 7 +-
packages/engine/src/triage.ts | 12 +-
packages/i18n/locales/en/app.json | 6 +-
packages/i18n/locales/pt-BR/app.json | 8 +-
packages/i18n/src/resources.d.ts | 6 +-
30 files changed, 418 insertions(+), 96 deletions(-)
Fusion-Task-Id: FN-036
Fusion-Task-Lineage: df603386-e63e-4be8-a8e5-bae9aa1d4a80
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:57:23 +00:00
Fusion Agent
06649a0288
FN-041: add chat message layout to Settings search
...
Make the conversation layout setting discoverable across Settings search presentations.
- Add the project-scoped chat message layout entry to the Appearance search index.
- Cover desktop, mobile, and embedded Settings search with regression tests.
- Add a patch changeset for the published Fusion package.
Files changed:
.changeset/fn-041-settings-search-chat-layout.md | 7 +++
.../__tests__/SettingsModal.general.test.tsx | 51 ++++++++++++++++++++++
.../settings/sections/AppearanceSection.search.ts | 15 +++++++
3 files changed, 73 insertions(+)
Fusion-Task-Id: FN-041
Fusion-Task-Lineage: 614cded0-a97a-4343-96f7-22eeb483a54b
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:57:23 +00:00
Fusion Agent
e80fef3fe0
FN-040: fix chat source-link integrity and contrast
...
Harden chat source links across streaming providers while improving new-tab behavior and visual contrast.
- Preserve source-link metadata through streamed delta and event bridges.
- Open chat source links safely in new tabs across desktop and mobile surfaces.
- Improve source-link contrast and add regression coverage plus user-facing guidance.
Files changed:
.changeset/fn-040-chat-source-links.md | 7 +++
docs/dashboard-guide.md | 3 +
.../ui-bugs/chat-streamed-source-link-integrity.md | 53 ++++++++++++++++
packages/dashboard/app/components/ChatView.css | 24 ++++++++
.../app/components/StandardChatSurface.tsx | 8 ++-
.../components/__tests__/ChatView.core.test.tsx | 38 ++++++++++++
.../components/__tests__/ChatView.mobile.test.tsx | 70 ++++++++++++++++++++--
.../__tests__/ChatView.sessions-rooms.test.tsx | 49 +++++++++++++++
...andardChatSurface.nativeStructureEmbed.test.tsx | 52 +++++++++++++++-
.../__tests__/TaskPlannerChatTab.test.tsx | 48 +++++++++++++++
.../engine/src/__tests__/streaming-delta.test.ts | 36 +++++++++++
packages/engine/src/execution/streaming-delta.ts | 17 +++++-
.../src/__tests__/event-bridge.test.ts | 30 +++++++++-
packages/pi-claude-cli/src/event-bridge.ts | 14 +++--
.../src/__tests__/event-bridge.test.ts | 42 +++++++++++++
.../fusion-plugin-acp-runtime/src/event-bridge.ts | 8 ++-
.../src/__tests__/provider.test.ts | 34 +++++++++++
.../src/acp/event-bridge.ts | 8 ++-
.../src/__tests__/event-bridge.test.ts | 28 +++++++++
.../src/event-bridge.ts | 14 +++--
.../src/__tests__/provider.test.ts | 34 +++++++++++
.../src/acp/event-bridge.ts | 8 ++-
.../src/__tests__/runtime-adapter.test.ts | 34 +++++++++++
.../src/acp/event-bridge.ts | 8 ++-
24 files changed, 642 insertions(+), 25 deletions(-)
Fusion-Task-Id: FN-040
Fusion-Task-Lineage: 364ad678-df3e-4fb2-b19c-29eb44d8a429
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:57:23 +00:00
Fusion Agent
bcc77c9608
FN-035: require automatic task recommendations
...
Require task recommendations to be explicitly enabled and consistently surfaced across execution and settings.
- Add the automatic task recommendations setting, persistence, validation, and localized UI copy.
- Gate executor recommendation prompts and completion-tool behavior on the setting.
- Update dashboard/API coverage, documentation, and regression tests.
Files changed:
.changeset/fn-035-required-task-recommendations.md | 7 +++
docs/dashboard-guide.md | 3 +-
docs/settings-reference.md | 2 +
.../postgres/settings-persistence.pg.test.ts | 18 +++++++
.../core/src/__tests__/settings-parity.test.ts | 3 ++
packages/core/src/config/settings-schema.ts | 2 +
packages/core/src/task-store/settings-ops.ts | 16 ++++--
packages/core/src/types/settings/settings-scope.ts | 8 +++
.../app/__tests__/settings-save-split.test.ts | 16 ++++++
.../__tests__/SettingsModal.general.test.tsx | 36 +++++++++++++
.../app/components/settings/section-keys.ts | 1 +
.../settings/sections/GeneralSection.search.ts | 10 ++++
.../settings/sections/GeneralSection.tsx | 15 +++++-
.../settings-default-descriptions.test.tsx | 2 +
.../register-settings-memory-worktrunk.test.ts | 28 ++++++++++
.../src/routes/register-settings-memory-routes.ts | 5 ++
...cutor-prompt-completion-recommendations.test.ts | 31 +++++++++++
.../executor-task-recommendations.test.ts | 61 ++++++++++++++++++++--
.../engine/src/executor/create-task-done-tool.ts | 18 +++++--
packages/engine/src/executor/system-prompt.ts | 20 +++++--
packages/i18n/locales/en/app.json | 3 ++
packages/i18n/locales/es/app.json | 3 ++
packages/i18n/locales/fr/app.json | 3 ++
packages/i18n/locales/ko/app.json | 3 ++
packages/i18n/locales/pt-BR/app.json | 5 +-
packages/i18n/locales/zh-CN/app.json | 3 ++
packages/i18n/locales/zh-TW/app.json | 3 ++
packages/i18n/src/resources.d.ts | 3 ++
28 files changed, 307 insertions(+), 21 deletions(-)
Fusion-Task-Id: FN-035
Fusion-Task-Lineage: 336d4d99-3105-43df-b82c-ca413b9c5892
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:57:23 +00:00
Fusion Agent
29f4de39c4
FN-038: prepare projects for Git during onboarding
...
Make project initialization and registration produce Git-ready projects consistently.\n\n- Centralize repository readiness and initialization behavior.\n- Update CLI onboarding and dashboard registration flows to use the Git-ready setup.\n- Add regression coverage and document the new project preparation behavior.\n\nFiles changed:\n .changeset/fn-038-git-ready-projects.md | 7 +\n docs/cli-reference.md | 11 +-\n docs/getting-started.md | 17 +-\n docs/workspaces.md | 4 +-\n packages/cli/src/commands/__tests__/init.test.ts | 39 ++--\n packages/cli/src/commands/init.ts | 115 ++--------\n packages/core/src/__tests__/git-repository.test.ts | 125 +++++++++-\n packages/core/src/central/central-core.ts | 57 +++--\n packages/core/src/git/git-repository.ts | 254 +++++++++++++++++----\n packages/dashboard/app/api/projects/projects.ts | 2 -\n packages/dashboard/app/components/SetupWizardModal.tsx | 46 +---\n packages/dashboard/app/components/__tests__/SetupWizardModal.git-missing.test.tsx | 74 +++---\n packages/dashboard/src/routes/__tests__/register-project-git-readiness.test.ts | 165 +++++++++++++\n packages/dashboard/src/routes/register-project-routes.ts | 11 -\n 14 files changed, 647 insertions(+), 280 deletions(-)
Fusion-Task-Id: FN-038
Fusion-Task-Lineage: 83634184-569b-4190-a88f-4a09eb832e9d
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:57:23 +00:00
Fusion Agent
aad4b73a47
FN-033: use default chat model for task chat
...
Task chat now uses the resolved project default while matching general chat controls and session behavior.
- Resolve the effective task-chat model and expose model/thinking selectors in the task chat composer.
- Persist per-session model and thinking overrides through scoped task-chat routes.
- Refresh task-chat UI, documentation, tests, and release metadata for the new behavior.
Files changed:
.changeset/fn-033-task-chat-default-model.md | 7 +
docs/agents.md | 4 +-
docs/dashboard-guide.md | 26 +--
packages/dashboard/app/api/chat/chat.ts | 26 +--
.../dashboard/app/components/TaskDetailModal.tsx | 4 +-
.../app/components/TaskPlannerChatTab.css | 38 ++-
.../app/components/TaskPlannerChatTab.tsx | 211 +++++++++++++++++----
.../__tests__/TaskDetailModal.test-helpers.ts | 2 +
.../components/__tests__/TaskDetailModal.test.tsx | 4 +-
.../__tests__/TaskPlannerChatTab.test.tsx | 149 +++++++++------
.../__tests__/effective-model-resolution.test.ts | 32 +++
.../app/components/effective-model-resolution.ts | 30 ++-
.../dashboard/src/__tests__/chat-manager.test.ts | 14 +-
.../routes-task-planner-chat-session.test.ts | 210 +++++++++++++++++++
.../dashboard/src/routes/register-chat-routes.ts | 116 +++++++----
15 files changed, 700 insertions(+), 173 deletions(-)
Fusion-Task-Id: FN-033
Fusion-Task-Lineage: 10cffb5e-1a38-47e1-9b29-cd3cb0b99b81
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:56:41 +00:00
Fusion Agent
3f85c4cf84
FN-034: route workspace tasks through repository worktrees
...
Route multi-repository planning and graph execution through declared repository worktrees instead of workspace roots.
- Acquire declared repository worktrees for planning and custom graph nodes.
- Filter planning coordinator selection to configured repositories and preserve workspace routing metadata.
- Add workspace worktree recovery, concurrency coverage, and release documentation.
Files changed:
.changeset/fn-034-workspace-worktree-routing.md | 7 ++
docs/architecture.md | 1 +
...workspace-worktrees-concurrent-merge.pg.test.ts | 36 +++++++
packages/core/src/store.ts | 10 ++
packages/core/src/task-store/task-mutation-ops.ts | 60 +++++++++++-
.../executor-workspace-session-cwd.test.ts | 29 ++++--
packages/engine/src/__tests__/self-healing.test.ts | 17 ++--
.../workspace-root-worktree-routing.test.ts | 107 +++++++++++++++++++++
.../create-authoritative-workflow-seams.ts | 48 ++++++---
.../executor/ensure-graph-custom-node-worktree.ts | 45 +++++++-
.../executor/ensure-task-worktree-for-planning.ts | 38 ++++++--
.../src/executor/reset-steps-if-work-lost.ts | 12 ++-
.../engine/src/executor/run-graph-custom-node.ts | 83 ++++++++++++++--
packages/engine/src/executor/run-implementation.ts | 59 ++++++++++--
.../src/executor/workspace-config-resolver.ts | 30 +++++-
.../src/executor/workspace-review-per-repo.ts | 29 +++++-
.../executor/worktree-missing-session-recovery.ts | 26 ++++-
packages/engine/src/self-healing.ts | 50 +++++++---
.../self-healing/auto-recover-worktree-session.ts | 31 +++++-
.../engine/src/worktree/worktree-acquisition.ts | 65 +++++++++++-
20 files changed, 702 insertions(+), 81 deletions(-)
Fusion-Task-Id: FN-034
Fusion-Task-Lineage: 59c5f273-d676-4b7f-b006-c12dc6c3abe6
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:56:41 +00:00
Fusion Agent
5a0117a362
FN-031: add task reset lifecycle handling
...
Add durable task reset lifecycle support across core, dashboard, and engine integrations.
- Add reset lifecycle publication and disposal primitives with coverage.
- Expose reset lifecycle behavior through task workflow routes and dashboard task details.
- Update workflow intake, engine exports, and worktree integration documentation.
Files changed:
docs/dashboard-guide.md | 8 +
.../postgres/task-reset-publication.pg.test.ts | 99 +++++++
.../core/src/__tests__/task-move-disposer.test.ts | 52 +++
packages/core/src/index.gate.ts | 6 +
packages/core/src/index.ts | 6 +
packages/core/src/store.ts | 6 +
packages/core/src/task-store/reset-lifecycle.ts | 193 ++++++++++++++
packages/core/src/tasks/task-move-disposer.ts | 25 ++
.../dashboard/app/components/TaskDetailModal.tsx | 8 +-
.../components/__tests__/TaskDetailModal.test.tsx | 28 +-
.../__tests__/plan-approval-intake-column.test.ts | 80 ++----
.../src/__tests__/task-reset-lifecycle.test.ts | 171 +++++++++++++
.../src/routes/register-task-workflow-routes.ts | 285 ++++++++++-----------
packages/engine/src/index.ts | 10 +-
packages/engine/src/worktree/worktree-backend.ts | 1 +
15 files changed, 766 insertions(+), 212 deletions(-)
Fusion-Task-Id: FN-031
Fusion-Task-Lineage: 183bb709-485e-4069-bd2a-98f787b2bd73
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:55:39 +00:00
Fusion Agent
21b3baa62d
FN-029: unify direct and planner chat queues
...
Standardize queued-message controls across Direct Chat and planner conversations while preserving force-send ordering during cancellation reconciliation.
- Add shared pending-message queue UI with edit, reorder, delete, and force-send actions.
- Coordinate durable cancellation reconciliation before dispatching selected queued messages.
- Disable the Direct composer and related controls until force-send reconciliation completes.
- Add localized queue copy, documentation, styling, and regression coverage.
Files changed:
docs/dashboard-guide.md | 8 +
packages/dashboard/app/components/ChatView.css | 63 ------
packages/dashboard/app/components/ChatView.tsx | 55 +++--
packages/dashboard/app/components/PendingChatMessageQueue.css | 94 +++++++++
packages/dashboard/app/components/PendingChatMessageQueue.tsx | 200 ++++++++++++++++++
packages/dashboard/app/components/TaskPlannerChatTab.css | 84 --------
packages/dashboard/app/components/TaskPlannerChatTab.tsx | 113 ++---------
packages/dashboard/app/components/__tests__/ChatView.core-interactions.test.tsx | 24 ++-
packages/dashboard/app/components/__tests__/PendingChatMessageQueue.test.tsx | 76 +++++++
packages/dashboard/app/hooks/__tests__/useChat.test.ts | 39 +++
packages/dashboard/app/hooks/useChat.ts | 224 ++++++++++++++++-----
packages/i18n/locales/en/app.json | 25 +--
packages/i18n/locales/es/app.json | 25 +--
packages/i18n/locales/fr/app.json | 25 +--
packages/i18n/locales/ko/app.json | 25 +--
packages/i18n/locales/pt-BR/app.json | 25 +--
packages/i18n/locales/zh-CN/app.json | 25 +--
packages/i18n/locales/zh-TW/app.json | 25 +--
packages/i18n/src/resources.d.ts | 25 +--
19 files changed, 746 insertions(+), 434 deletions(-)
Fusion-Task-Id: FN-029
Fusion-Task-Lineage: 3330d0e7-ba77-4392-98f7-69425070cfd1
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:55:39 +00:00
Fusion Agent
a7afb020e9
FN-032: use deterministic titles for short descriptions
...
Short untitled task descriptions now receive stable planning titles instead of an empty placeholder.
- Derive short-task titles from the first meaningful description line with shared normalization and length safety.
- Preserve explicit titles and leave long or empty descriptions on existing AI/none behavior.
- Persist the planning heading title through normal task metadata finalization and document the threshold.
Files changed:
.changeset/fn-032-short-description-title.md | 7 ++
docs/settings-reference.md | 2 +-
docs/task-management.md | 4 +-
packages/engine/src/__tests__/triage.test.ts | 115 ++++++++++++++++++++++++---
packages/engine/src/triage.ts | 23 +++++-
5 files changed, 137 insertions(+), 14 deletions(-)
Fusion-Task-Id: FN-032
Fusion-Task-Lineage: 886f5a32-7eb5-460d-bf1a-93ebf5dc0b93
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:55:39 +00:00
Fusion Agent
c3ff663c1c
FN-030: route refinement tasks directly to planning
...
Route refinement and duplicate-task handling through the planning path while preserving task metadata and API behavior.\n\n- Route CLI refinement commands directly into planning.\n- Harden dependency updates and duplicate-task refinement persistence.\n- Expand PostgreSQL, CLI, and dashboard authorization coverage.\n- Document the refined task lifecycle and add the published-package changeset.\n\nFiles changed:\n .changeset/fn-030-refinement-planning-route.md | 7 ++\n docs/architecture.md | 20 ++--\n docs/task-management.md | 11 +-\n packages/cli/src/commands/__tests__/task.test.ts | 9 +-\n packages/cli/src/commands/task.ts | 2 +-\n .../postgres/refine-duplicate-task.pg.test.ts | 130 +++++++++++++++++++++\n .../__tests__/postgres/store-comments.pg.test.ts | 32 +++++\n packages/core/src/task-store/update-task-deps.ts | 17 +--\n packages/dashboard/app/__tests__/api-auth.test.ts | 5 +-\n 9 files changed, 207 insertions(+), 26 deletions(-)
Fusion-Task-Id: FN-030
Fusion-Task-Lineage: 885c0a9f-d8bf-4abf-9ec9-dca5a01648e8
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:55:39 +00:00
Fusion Agent
9cff3d26ee
FN-028: preserve interrupted chat context
...
Preserve streamed chat prefixes and durable context when users stop generation.
- Persist interrupted assistant text in the reopened model session and chat history.
- Keep optimistic prefixes visible when cancellation persistence is incomplete.
- Add cancellation coverage, documentation, and a patch changeset.
Files changed:
.changeset/fn-028-chat-interrupted-context.md | 7 ++
docs/dashboard-guide.md | 2 +
.../app/components/TaskPlannerChatTab.tsx | 11 +-
.../dashboard/app/hooks/__tests__/useChat.test.ts | 28 +++++
packages/dashboard/app/hooks/chatTypes.ts | 5 +
packages/dashboard/app/hooks/useChat.ts | 14 ++-
.../__tests__/chat-manager-rewind-session.test.ts | 65 +++++++++++-
.../dashboard/src/__tests__/chat-manager.test.ts | 1 +
.../src/__tests__/routes-chat-cancellation.test.ts | 113 +++++++++++++++++++++
packages/dashboard/src/chat.ts | 72 +++++++++++--
10 files changed, 305 insertions(+), 13 deletions(-)
Fusion-Task-Id: FN-028
Fusion-Task-Lineage: d26c55a8-1b1f-42cc-89f8-cd39f3ff8ea5
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:55:39 +00:00
Fusion Agent
519180b9e2
FN-026: fix chat editing and conversation rewind
...
Make edited chat messages replace their prior turns while rewinding conversation state consistently across the dashboard and API.\n\n- Add message-edit and rewind-session server routes and persistence behavior.\n- Update chat hooks, planner UI, and legacy streaming compatibility for replacement edits.\n- Add regression coverage and document the editing and rewind behavior.\n\nFiles changed:\n .changeset/fn-026-chat-message-edit-replacement.md | 7 +\n docs/dashboard-guide.md | 8 +\n .../app/api/__tests__/legacy-chat-stream.test.ts | 23 +++\n packages/dashboard/app/api/chat/chat.ts | 42 ++---\n packages/dashboard/app/api/legacy.ts | 2 +-\n packages/dashboard/app/components/TaskPlannerChatTab.tsx | 101 +++++++----\n .../__tests__/TaskPlannerChatTab.test.tsx | 81 +++++----\n packages/dashboard/app/hooks/__tests__/useChat.resync.test.ts | 1 -\n packages/dashboard/app/hooks/__tests__/useChat.test.ts | 45 +++--\n packages/dashboard/app/hooks/useChat.ts | 108 ++++++------\n .../__tests__/chat-manager-rewind-session.test.ts | 49 ++++++\n .../src/__tests__/routes-chat-message-edit.test.ts | 195 +++++++++++++++++++++\n packages/dashboard/src/chat.ts | 106 ++++++++++-\n .../dashboard/src/routes/register-chat-routes.ts | 150 ++++++----------\n 14 files changed, 660 insertions(+), 258 deletions(-)
Fusion-Task-Id: FN-026
Fusion-Task-Lineage: ea69be74-def9-4c68-ac13-c1b51b8b5f69
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:55:39 +00:00
Fusion Agent
df5c580a50
FN-024: cap and resize chat composers
...
Keep chat drafts compact by default while allowing intentional desktop resizing.
- Autosize Chat, Rooms, Activity, and Planner Chat composers through five lines.
- Cap overflow with internal scrolling and provide desktop/tablet-only manual resize behavior.
- Reset transient composer sizing on draft and target lifecycle changes, with regression coverage and operator documentation.
- Preserve shared terminal session documentation, including detach, end, and reopen behavior.
Files changed:
.changeset/fn-024-chat-composer-height.md | 7 +
docs/dashboard-guide.md | 3 +
packages/dashboard/app/components/ChatView.css | 28 ++-
packages/dashboard/app/components/ChatView.tsx | 65 +++----
packages/dashboard/app/components/TaskChatTab.css | 9 +-
packages/dashboard/app/components/TaskChatTab.tsx | 32 ++--
packages/dashboard/app/components/TaskPlannerChatTab.css | 11 +-
packages/dashboard/app/components/TaskPlannerChatTab.tsx | 27 ++-
packages/dashboard/app/components/__tests__/ChatView.autosize.test.tsx | 64 +++++--
packages/dashboard/app/components/__tests__/ChatView.chat-input-autosize.test.tsx | 148 ++++++++++------
packages/dashboard/app/components/__tests__/TaskChatTab.test.tsx | 34 ++++
packages/dashboard/app/components/__tests__/TaskPlannerChatTab.test.tsx | 41 ++++-
packages/dashboard/app/utils/chatInputAutosize.ts | 192 +++++++++++++++++++--
13 files changed, 516 insertions(+), 145 deletions(-)
Fusion-Task-Id: FN-024
Fusion-Task-Lineage: 663b9f18-87ac-467b-b67c-6d2e27f34ba4
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:55:39 +00:00
Fusion Agent
5089f1b88e
FN-027: route dependency replans safely
...
Make dependency changes reliably replan Coding (Ideas) cards without sending them into manual intake.
- Derive dependency-replan destinations from workflow lifecycle traits.
- Preserve specifications while resetting approval evidence and re-entering planning.
- Cover dedicated and generic dependency writers, continuation states, and manual-intake admission.
Files changed:
.../postgres/task-dependency-mutation.pg.test.ts | 110 +++++++++++++++++++--
packages/core/src/task-store/task-update.ts | 28 ++----
packages/core/src/task-store/update-task-deps.ts | 35 ++++---
.../src/workflows/workflow-lifecycle-traits.ts | 29 ++++++
.../src/__tests__/manual-intake-admission.test.ts | 20 ++++
5 files changed, 181 insertions(+), 41 deletions(-)
Fusion-Task-Id: FN-027
Fusion-Task-Lineage: 63ee58e6-550d-4f56-a1e0-9c878f957b66
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:55:38 +00:00
Fusion Agent
5fe1c8e379
FN-025: preserve user-controlled chat disclosures
...
Keep thinking and tool disclosure state under operator control across chat surfaces.\n\n- Start new thinking and tool groups collapsed instead of auto-opening during streaming.\n- Preserve disclosure state across streaming updates and reattached planner sessions.\n- Allow non-interactive disclosure content to dismiss expanded blocks while preserving interactive descendants.\n- Add desktop and mobile regression coverage for chat, task activity, and planner views.\n\nFiles changed:\n .../app/components/StandardChatSurface.tsx | 33 +++++++++++--\n packages/dashboard/app/components/TaskChatTab.tsx | 19 ++++++--\n .../__tests__/ChatView.core-interactions.test.tsx | 23 +++++++--\n .../components/__tests__/ChatView.core.test.tsx | 55 +++++++++++++++++++++-\n .../app/components/__tests__/TaskChatTab.test.tsx | 36 +++++++++-----\n .../__tests__/TaskPlannerChatTab.test.tsx | 49 ++++++++++++++++++-\n 6 files changed, 186 insertions(+), 29 deletions(-)
Fusion-Task-Id: FN-025
Fusion-Task-Lineage: 294eadc8-d8fe-48da-8a1e-96aed559e54d
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:55:38 +00:00
Fusion Agent
b88bb1d532
FN-023: respect disabled built-in workflows
...
Make disabled built-in workflows unavailable for new selections while preserving existing task resolution.
- Validate enabled built-in workflow settings atomically and require a valid available option.
- Resolve defaults and origin pins through the effective enabled workflow set.
- Filter dashboard selectors while retaining management and direct-resolution paths.
- Add core and dashboard regression coverage plus operator-facing documentation.
Files changed:
.changeset/fn-023-disabled-builtin-workflows.md | 7 +++
docs/dashboard-guide.md | 5 +-
docs/workflow-steps.md | 6 +-
packages/core/src/__tests__/builtin-workflows.test.ts | 35 +++++++++--
packages/core/src/index.ts | 6 ++
packages/core/src/task-store/moves.ts | 17 +++--
packages/core/src/task-store/settings-ops.ts | 22 +++++++
packages/core/src/task-store/task-store-helpers.ts | 33 +++++++++-
packages/core/src/workflows/builtin-workflows.ts | 70 +++++++++++++++++++--
packages/dashboard/app/__tests__/workflow-selection-cross-surface.test.tsx | 45 ++++++++++++++
packages/dashboard/app/api/projects/board-workflows.ts | 2 +
packages/dashboard/app/components/__tests__/Board.test.tsx | 22 +++++++
packages/dashboard/app/components/__tests__/ListView.test.tsx | 38 ++++++++++++
packages/dashboard/app/components/settings/sections/GeneralSection.tsx | 19 +++++-
packages/dashboard/app/components/settings/sections/__tests__/GeneralSection.builtin-workflows.test.tsx | 72 ++++++++++++++++++++++
packages/dashboard/app/hooks/__tests__/useBoardWorkflows.test.ts | 20 ++++++
packages/dashboard/app/hooks/useBoardWorkflows.ts | 18 ++++--
packages/dashboard/src/__tests__/board-workflows.test.ts | 35 +++++++++--
packages/dashboard/src/routes/__tests__/register-settings-memory-worktrunk.test.ts | 37 +++++++++++
packages/dashboard/src/routes/board-workflows.ts | 41 +++++++++---
packages/dashboard/src/routes/register-settings-memory-routes.ts | 46 +++++++++++++-
21 files changed, 553 insertions(+), 43 deletions(-)
Fusion-Task-Id: FN-023
Fusion-Task-Lineage: 1043fc42-2a02-49dd-b695-d9ae3af60e90
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:55:38 +00:00
Fusion Agent
612195fde6
FN-022: add workflow selection and start action
...
Add workflow-aware task creation controls and a guarded Start action for quick task intake.
- Add workflow selection and resolved board metadata loading to New Task modal.
- Support starting eligible tasks in their workflow destination with clear success or partial-failure feedback.
- Wire move-task handling through modal callers and cover workflow/start behavior with tests and documentation.
Files changed:
.changeset/fn-022-new-task-workflow-start.md | 7 +
docs/dashboard-guide.md | 4 +-
packages/dashboard/app/components/AppModals.tsx | 1 +
packages/dashboard/app/components/NewTaskModal.tsx | 158 +++++++++++++++--
.../dashboard/app/components/QuickEntryBox.tsx | 5 +-
packages/dashboard/app/components/TaskForm.tsx | 28 ++-
.../app/components/__tests__/AppModals.test.tsx | 33 +++-
.../app/components/__tests__/NewTaskModal.test.tsx | 192 ++++++++++++++++++++-
.../app/utils/__tests__/quickAddStart.test.ts | 16 +-
packages/dashboard/app/utils/quickAddStart.ts | 15 ++
10 files changed, 441 insertions(+), 18 deletions(-)
Fusion-Task-Id: FN-022
Fusion-Task-Lineage: ce794b44-3c31-4bfc-a259-ecfd78531be1
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:55:38 +00:00
Fusion Agent
4d7e7dba4c
FN-021: expose model-supported thinking levels, including max
...
Expose thinking-level options from model capabilities through API, workflows, and dashboard controls.
- Add model-supported thinking-level metadata, including max, across core and model routes.
- Propagate capability-aware levels through planning, agent creation, and chat/task UI.
- Update localized labels, documentation, tests, dependencies, and add a release changeset.
Files changed:
.changeset/fn-021-thinking-levels.md | 7 ++++
docs/settings-reference.md | 8 +++-
docs/workflow-steps.md | 8 ++--
packages/core/src/__tests__/openai-models.test.ts | 1 +
.../core/src/__tests__/thinking-levels.test.ts | 4 +-
packages/core/src/__tests__/workflow-ir.test.ts | 2 +-
packages/core/src/ai/openai-models.ts | 5 ++-
packages/core/src/types/board/board.ts | 8 ++--
.../app/api/agents/agent-import-generation.ts | 4 +-
.../dashboard/app/api/planning/models-usage.ts | 13 +++++++
packages/dashboard/app/api/planning/planning.ts | 5 ++-
.../dashboard/app/components/AgentDetailView.tsx | 2 +-
.../app/components/ChatThinkingLevelControl.tsx | 28 +++++++++++---
.../app/components/CustomModelDropdown.tsx | 29 ++++++++++----
packages/dashboard/app/components/NewTaskModal.tsx | 4 +-
.../dashboard/app/components/TaskDetailModal.tsx | 4 +-
.../__tests__/AgentDetailView.test-helpers.ts | 2 +-
.../__tests__/AgentOnboardingModal.test.tsx | 2 +-
.../__tests__/ChatThinkingLevelControl.test.tsx | 27 ++++++++++++-
.../__tests__/CustomModelDropdown.test.tsx | 33 +++++++++++++++-
.../__tests__/ModelSelectionModal.test.tsx | 3 +-
.../components/__tests__/NewAgentDialog.test.tsx | 2 +
.../components/__tests__/QuickEntryBox.test.tsx | 3 +-
.../components/agent-presets/agentCreatePayload.ts | 3 +-
.../settings/sections/GlobalModelsSection.tsx | 8 ++--
packages/dashboard/package.json | 2 +-
.../dashboard/src/__tests__/chat-manager.test.ts | 8 ++--
packages/dashboard/src/__tests__/chat.test.ts | 2 +-
...-model-routes-openai-codex-supplemental.test.ts | 44 +++++++++++++++++++++-
.../src/__tests__/routes-automation.test.ts | 4 +-
.../dashboard/src/__tests__/routes-tasks.test.ts | 8 ++--
packages/dashboard/src/agent-generation.ts | 9 +++--
packages/dashboard/src/agent-onboarding.ts | 8 ++--
packages/dashboard/src/routes.ts | 14 ++++++-
.../src/routes/register-chat-room-routes.ts | 2 +-
.../dashboard/src/routes/register-model-routes.ts | 43 ++++++++++++++++-----
packages/i18n/locales/en/app.json | 1 +
packages/i18n/locales/es/app.json | 1 +
packages/i18n/locales/fr/app.json | 1 +
packages/i18n/locales/ko/app.json | 1 +
packages/i18n/locales/pt-BR/app.json | 1 +
packages/i18n/locales/zh-CN/app.json | 1 +
packages/i18n/locales/zh-TW/app.json | 1 +
packages/i18n/src/resources.d.ts | 1 +
pnpm-lock.yaml | 6 +--
45 files changed, 289 insertions(+), 84 deletions(-)
Fusion-Task-Id: FN-021
Fusion-Task-Lineage: af1b0e09-6375-4f0c-9501-66a10c8b9168
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:55:38 +00:00
Fusion Agent
2fe3382279
FN-020: add queued Planner Chat message management
...
Add browser-local queued follow-up management to Planner Chat while preserving ordered, session-scoped dispatch.
- Queue follow-up messages during active responses and dispatch them FIFO after completion or Stop reconciliation.
- Add editing, reordering, deletion, duplicate-safe force-send, persistence, responsive styling, documentation, translations, and regression coverage.
Files changed:
docs/dashboard-guide.md | 2 +
.../app/components/TaskPlannerChatTab.css | 84 ++++++
.../app/components/TaskPlannerChatTab.tsx | 301 ++++++++++++++++++---
.../__tests__/TaskPlannerChatTab.test.tsx | 216 +++++++++++++++
packages/i18n/locales/en/app.json | 13 +
packages/i18n/locales/es/app.json | 13 +
packages/i18n/locales/fr/app.json | 13 +
packages/i18n/locales/ko/app.json | 13 +
packages/i18n/locales/pt-BR/app.json | 13 +
packages/i18n/locales/zh-CN/app.json | 13 +
packages/i18n/locales/zh-TW/app.json | 13 +
packages/i18n/src/resources.d.ts | 13 +
12 files changed, 673 insertions(+), 34 deletions(-)
Fusion-Task-Id: FN-020
Fusion-Task-Lineage: 5627cdbd-00dd-4e17-a4bd-53d49efa836d
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:55:38 +00:00
Fusion Agent
b17c6de32b
FN-019: recognize custom providers and refresh model catalogs
...
Add support for custom AI providers and refresh the built-in model catalog from settings.
- Recognize custom provider configuration in provider status and onboarding readiness.
- Add bounded model-catalog refresh endpoints and settings controls with localized copy.
- Cover provider discovery, cache refresh, routes, and authentication UI behavior with tests.
Files changed:
.changeset/fn-019-provider-catalog.md | 7 ++
docs/dashboard-guide.md | 6 ++
.../dashboard/app/__tests__/api-models.test.ts | 29 +++++++++
.../dashboard/app/api/settings/provider-status.ts | 15 +++++
...thenticationSection.modelsCacheRefresh.test.tsx | 46 +++++++++++++-
.../__tests__/AuthenticationSection.test.tsx | 10 +++
.../settings/sections/AuthenticationSection.css | 20 ++++++
.../settings/sections/AuthenticationSection.tsx | 37 ++++++++++-
.../app/hooks/__tests__/useAuthOnboarding.test.ts | 29 +++++++++
.../app/hooks/__tests__/useSetupReadiness.test.ts | 14 ++++
packages/dashboard/app/hooks/useAuthOnboarding.ts | 9 +--
packages/dashboard/app/hooks/useSetupReadiness.ts | 8 ++-
.../register-model-routes-refresh-bounding.test.ts | 74 ++++++++++++++++++++++
.../dashboard/src/__tests__/routes-auth.test.ts | 18 ++++++
.../dashboard/src/routes/register-auth-routes.ts | 17 ++++-
.../dashboard/src/routes/register-model-routes.ts | 22 ++++++-
packages/i18n/locales/en/app.json | 6 ++
packages/i18n/locales/es/app.json | 6 ++
packages/i18n/locales/fr/app.json | 6 ++
packages/i18n/locales/ko/app.json | 6 ++
packages/i18n/locales/pt-BR/app.json | 6 ++
packages/i18n/locales/zh-CN/app.json | 6 ++
packages/i18n/locales/zh-TW/app.json | 6 ++
packages/i18n/src/resources.d.ts | 6 ++
24 files changed, 397 insertions(+), 12 deletions(-)
Fusion-Task-Id: FN-019
Fusion-Task-Lineage: 1e9daf0e-8aa8-4205-9fc7-686fbdd5bd35
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:55:38 +00:00
Fusion Agent
d80367fa30
FN-018: fix KnowledgeGraphPanel hop typing
...
Normalize absent path hop counts for the typed graph path interpolation while preserving zero-hop results.
- Use undefined for non-found path hop counts to satisfy the typed interpolation contract.
- Add regression coverage that renders a found zero-hop path.
Files changed:
packages/dashboard/app/components/KnowledgeGraphPanel.tsx | 3 ++-
.../dashboard/app/components/__tests__/KnowledgeGraphPanel.test.tsx | 5 ++++-
2 files changed, 6 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-018
Fusion-Task-Lineage: 28254bbd-967b-463e-87de-8dfa847ca42d
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:55:38 +00:00
Fusion Agent
0899d49e5c
FN-016: preserve interrupted chat responses
...
Persist partial assistant output when chat streaming is stopped so users can resume from an honest interrupted transcript.
- Snapshot streamed text, thinking, and tool calls before cancellation.
- Persist and reconcile interrupted responses for main chat and planner chat surfaces.
- Add cancellation routes, manager handling, changeset metadata, and desktop/mobile regression coverage.
Files changed:
.changeset/fn-016-chat-cancel-partial.md | 7 +
packages/dashboard/app/api/chat/chat.ts | 13 +-
.../app/components/TaskPlannerChatTab.tsx | 91 ++++++++-
.../__tests__/ChatView.streaming-thread.test.tsx | 54 ++++++
.../__tests__/TaskPlannerChatTab.test.tsx | 53 +++++-
.../dashboard/app/hooks/__tests__/useChat.test.ts | 84 ++++++++
packages/dashboard/app/hooks/useChat.ts | 131 +++++++++++--
.../dashboard/src/__tests__/chat-manager.test.ts | 80 ++++++--
packages/dashboard/src/chat.ts | 208 ++++++++++++++-----
.../dashboard/src/routes/register-chat-routes.ts | 7 +-
10 files changed, 641 insertions(+), 87 deletions(-)
Fusion-Task-Id: FN-016
Fusion-Task-Lineage: 3e14b9b7-967b-4f80-b941-2216bfa9c69e
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:55:38 +00:00
Fusion Agent
6a28811d1a
FN-012: sort tasks in every board column
...
Add independent task ordering controls across all board lanes and keep archive pagination aligned with the selected order.
- Add arrival and task-ID sorting to every board column, including archived tasks.
- Thread bounded, server-backed archive sorting through the API, store, hook, and UI.
- Preserve selected archive order for subsequent pages and add localized labels, typings, tests, and dashboard documentation.
Files changed:
.changeset/fn-012-column-task-sorting.md | 7 ++
docs/dashboard-guide.md | 17 +--
.../postgres/archive-pagination.pg.test.ts | 19 ++++
packages/core/src/__tests__/task-priority.test.ts | 13 +++
packages/core/src/async-stores/async-archive-db.ts | 18 ++--
packages/core/src/index.gate.ts | 2 +
packages/core/src/index.ts | 2 +
packages/core/src/store.ts | 2 +-
.../core/src/task-store/archive-lifecycle-2.ts | 13 ++-
packages/core/src/tasks/task-priority.ts | 41 +++++---
packages/core/src/types.ts | 2 +-
packages/dashboard/app/App.tsx | 4 +-
packages/dashboard/app/api/tasks/tasks.ts | 3 +
packages/dashboard/app/components/Board.tsx | 62 +++++++---
packages/dashboard/app/components/Column.tsx | 54 ++++++----
.../app/components/__tests__/Board.test.tsx | 74 +++++++------
.../app/components/__tests__/Column.test.tsx | 8 +-
.../app/components/dashboard/MainContent.tsx | 6 ++
.../dashboard/app/components/dashboard/types.ts | 5 +
.../dashboard/app/hooks/__tests__/useTasks.test.ts | 61 ++++++++++-
packages/dashboard/app/hooks/useTasks.ts | 116 ++++++++++++++++-----
...task-workflow-routes.archive-pagination.test.ts | 78 ++++++++++++++
.../src/routes/register-task-workflow-routes.ts | 20 ++--
packages/i18n/locales/en/app.json | 5 +
packages/i18n/locales/es/app.json | 7 +-
packages/i18n/locales/fr/app.json | 7 +-
packages/i18n/locales/ko/app.json | 7 +-
packages/i18n/locales/pt-BR/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 +
31 files changed, 537 insertions(+), 142 deletions(-)
Fusion-Task-Id: FN-012
Fusion-Task-Lineage: 18dff987-18d5-401d-9fe0-290a71f12e15
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:55:38 +00:00
Fusion Agent
3ae22c23d1
FN-011: add project chat message width preference
...
Add a project-scoped conversation layout preference and apply full-width rendering consistently across dashboard chat surfaces.
- Add bubbles/full-width project settings with localized Appearance controls.
- Apply the preference to Chat, Activity, Planner Chat, Quick Chat, and docked hosts with responsive safeguards.
- Add regression coverage, documentation, and the published-package changeset.
Files changed:
.changeset/fn-011-chat-message-layout.md | 7 ++++
docs/dashboard-guide.md | 4 ++
.../core/src/__tests__/settings-defaults.test.ts | 14 ++++++-
.../core/src/__tests__/settings-parity.test.ts | 4 ++
packages/core/src/config/settings-schema.ts | 5 +++
packages/core/src/types/settings/settings-scope.ts | 5 +++
packages/dashboard/app/App.tsx | 7 +++-
packages/dashboard/app/components/AppModals.tsx | 5 +++
packages/dashboard/app/components/ChatView.css | 23 +++++++++++
packages/dashboard/app/components/ChatView.tsx | 4 +-
.../dashboard/app/components/SettingsModal.tsx | 14 +++++++
packages/dashboard/app/components/TaskChatTab.css | 42 +++++++++++++++++++++
packages/dashboard/app/components/TaskChatTab.tsx | 4 +-
.../app/components/TaskPlannerChatTab.css | 22 +++++++++++
.../app/components/TaskPlannerChatTab.tsx | 4 +-
.../components/__tests__/ChatView.core.test.tsx | 34 +++++++++++++++++
.../__tests__/SettingsModal.general.test.tsx | 42 +++++++++++++++++++++
.../app/components/__tests__/TaskChatTab.test.tsx | 31 +++++++++++++++
.../__tests__/TaskPlannerChatTab.test.tsx | 32 ++++++++++++++++
.../settings/sections/AppearanceSection.tsx | 24 +++++++++++-
.../sections/__tests__/AppearanceSection.test.tsx | 22 ++++++++++-
.../app/context/ChatMessageLayoutContext.tsx | 16 ++++++++
.../app/hooks/__tests__/useAppSettings.test.ts | 44 ++++++++++++++++++++++
packages/dashboard/app/hooks/useAppSettings.ts | 29 ++++++++++++++
.../app/task-modal-touch-resize-e2e-fixture.tsx | 2 +-
packages/i18n/locales/en/app.json | 6 ++-
packages/i18n/locales/es/app.json | 6 ++-
packages/i18n/locales/fr/app.json | 6 ++-
packages/i18n/locales/ko/app.json | 6 ++-
packages/i18n/locales/pt-BR/app.json | 6 ++-
packages/i18n/locales/zh-CN/app.json | 6 ++-
packages/i18n/locales/zh-TW/app.json | 6 ++-
packages/i18n/src/resources.d.ts | 4 ++
33 files changed, 471 insertions(+), 15 deletions(-)
Fusion-Task-Id: FN-011
Fusion-Task-Lineage: d858d00f-e05b-4dc2-8ddb-cfc5b9973871
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:55:38 +00:00
Fusion Agent
d295202768
FN-013: establish i18n lint baseline and localize dashboard copy
...
Add a production i18n lint baseline while replacing dashboard copy with translation keys.
- Localize task, board, mailbox, report, graph, settings, and shared dashboard surfaces.
- Regenerate locale catalogs and resource types for the migration keys.
- Add the i18n lint-baseline regression test and contributor guidance.
Files changed:
.changeset/fn-013-i18n-lint-baseline.md | 7 +
docs/i18n-contributing.md | 11 +
.../dashboard/app/components/ActiveAgentsPanel.tsx | 2 +-
.../dashboard/app/components/AgentDetailView.tsx | 2 +-
packages/dashboard/app/components/Board.tsx | 19 +-
packages/dashboard/app/components/ChatView.tsx | 2 +-
.../dashboard/app/components/ComposeChatPanel.tsx | 14 +-
packages/dashboard/app/components/DockTaskList.tsx | 16 +-
.../dashboard/app/components/FloatingWindow.tsx | 6 +-
.../dashboard/app/components/GitHubImportModal.tsx | 4 +-
.../dashboard/app/components/KnowledgeGraphPanel.tsx | 21 +-
packages/dashboard/app/components/ListView.tsx | 2 +-
.../app/components/MailboxArtifactAttachment.tsx | 16 +-
packages/dashboard/app/components/MailboxModal.tsx | 12 +-
.../app/components/MailboxStructuralItem.tsx | 13 +-
.../app/components/MailboxTaskProposal.tsx | 10 +-
.../app/components/MailboxTaskRecommendations.tsx | 12 +-
packages/dashboard/app/components/MailboxView.tsx | 14 +-
packages/dashboard/app/components/MermaidDiagram.tsx | 4 +-
packages/dashboard/app/components/MeshTopology.tsx | 6 +-
.../dashboard/app/components/MessageComposer.tsx | 24 +-
.../app/components/NativeStructurePreview.tsx | 14 +-
packages/dashboard/app/components/ProviderLoginDialog.tsx | 24 +-
packages/dashboard/app/components/ReportActionMenu.tsx | 6 +-
packages/dashboard/app/components/ReportModal.tsx | 26 +-
packages/dashboard/app/components/TaskChatTab.tsx | 10 +-
packages/dashboard/app/components/TaskDetailModal.tsx | 28 +-
.../app/components/TaskVerificationStatus.tsx | 10 +-
.../dashboard/app/components/WhatsAppChatPairingPanel.tsx | 38 +-
.../components/command-center/CommandCenter.tsx | 4 +-
.../components/command-center/IdeationPanel.tsx | 12 +-
.../components/settings/sections/McpServersCard.tsx | 2 +-
.../components/settings/sections/MemorySection.tsx | 4 +-
.../app/task-modal-touch-resize-e2e-fixture.tsx | 28 +-
packages/i18n/locales/en/app.json | 247 +++++++-
packages/i18n/locales/es/app.json | 256 +++++++-
packages/i18n/locales/fr/app.json | 256 +++++++-
packages/i18n/locales/ko/app.json | 256 +++++++-
packages/i18n/locales/pt-BR/app.json | 705 ++++++++++++++++++++
packages/i18n/locales/zh-CN/app.json | 256 +++++++-
packages/i18n/locales/zh-TW/app.json | 256 +++++++-
.../i18n/src/__tests__/i18n-lint-baseline.test.ts | 31 +
packages/i18n/src/resources.d.ts | 229 ++++++-
43 files changed, 2627 insertions(+), 288 deletions(-)
Fusion-Task-Id: FN-013
Fusion-Task-Lineage: 846ac221-c7c3-4ff0-a30d-69479b614765
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:55:38 +00:00
Fusion Agent
561e0f4cd8
FN-015: remove legacy lane-columns CSS
...
Remove the retired lane compatibility selector while preserving live Board scrolling and overscroll behavior.
- Remove legacy .lane-columns styling from Lane.css.
- Update mobile Board regression fixtures and solution documentation for current workflow-column paths.
- Add a patch changeset documenting the internal cleanup.
Files changed:
.changeset/fn-015-removal.md | 7 ++++
...-board-ios-horizontal-overscroll-containment.md | 32 +++++++++--------
.../__tests__/board-mobile-column-swipe.test.ts | 11 +++---
.../__tests__/board-mobile-overscroll-containment.test.ts | 28 ++++++++-------
packages/dashboard/app/components/Lane.css | 41 +++-------------------
5 files changed, 51 insertions(+), 68 deletions(-)
Fusion-Task-Id: FN-015
Fusion-Task-Lineage: 78128638-a319-4589-8cdd-a6497efe226f
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:55:38 +00:00
Fusion Agent
c0966fb3c2
FN-010: animate mobile board column releases
...
Smooth mobile Board releases now settle continuously on the existing reachable column target.
- Animate directional and nearest-column corrections with safe immediate fallbacks.
- Cancel in-flight settling and restore styles on unmount while preserving snap wiring.
- Update regression coverage, mobile board documentation, and the published fix changeset.
Files changed:
.changeset/fn-010-smooth-mobile-board-release.md | 7 ++
docs/dashboard-guide.md | 5 +-
.../app/components/__tests__/board-mobile.test.tsx | 3 +-
.../hooks/__tests__/useColumnScrollSnap.test.ts | 109 +++++++++++++++++++--
.../dashboard/app/hooks/useColumnScrollSnap.ts | 46 ++++++---
5 files changed, 146 insertions(+), 24 deletions(-)
Fusion-Task-Id: FN-010
Fusion-Task-Lineage: 16d3810b-8498-4436-8c41-12676778408a
Co-authored-by: Fusion <noreply@runfusion.ai >
2026-08-20 03:55:38 +00:00