e259b1a290ea2ea132ef8f19c2fb46a4bbd8d53d
897 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
3d37cfa7db |
FN-9201: Prevent mobile nav lift when the iOS keyboard opens
Keep mobile bottom chrome pinned or hidden during keyboard focus transitions, including landscape phone layouts. - track keyboard-focus intent before visual viewport metrics settle - clamp focused iOS viewport offsets so fixed bars remain behind the keyboard - cover runtime bootstrap, landscape integration, nav, focus, and offset behavior - document the mobile keyboard layout contract and add a patch changeset Files changed: .changeset/fn-9201-mobile-nav-keyboard-lift.md | 7 ++ docs/dashboard-guide.md | 4 +- packages/dashboard/app/App.tsx | 43 ++++++++-- ...ile-nav-keyboard-landscape.integration.test.tsx | 91 ++++++++++++++++++++ .../__tests__/icb-inline-script.runtime.test.ts | 74 ++++++++++++++++ .../mobile-bottom-bars-keyboard-layout.test.ts | 15 +++- .../viewport-compensation-keyboard.test.ts | 5 +- .../__tests__/MobileNavBar.keyboard-lift.test.tsx | 65 ++++++++++++++ .../__tests__/useKeyboardFocusPending.test.tsx | 99 ++++++++++++++++++++++ .../dashboard/app/hooks/useKeyboardFocusPending.ts | 43 ++++++++++ packages/dashboard/app/index.html | 12 ++- .../utils/__tests__/mobileBarKeyboardFlags.test.ts | 22 +++++ .../app/utils/__tests__/viewportOffset.test.ts | 32 +++++++ .../dashboard/app/utils/mobileBarKeyboardFlags.ts | 10 ++- packages/dashboard/app/utils/viewportOffset.ts | 8 ++ 15 files changed, 510 insertions(+), 20 deletions(-) Fusion-Task-Id: FN-9201 Fusion-Task-Lineage: 4b3b01d3-8968-432b-9537-a63ee6bbde31 Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai> |
||
|
|
52d124bde2 |
FN-9195: Keep the chat composer visible above iOS keyboards
Keep Chat input reachable across software-keyboard viewport changes. - Track visual viewport changes across phones, tablets, compact docks, and narrow floating Chat hosts. - Clamp thread height using the measured host offset while preserving iOS focus behavior. - Add regression coverage, shared viewport test helpers, operator documentation, and a patch changeset. Files changed: .changeset/fn-9195-chat-ios-keyboard-composer.md | 7 + docs/dashboard-guide.md | 2 +- packages/dashboard/app/components/ChatView.css | 44 +-- packages/dashboard/app/components/ChatView.tsx | 43 ++- .../__tests__/ChatView.ios-keyboard.test.tsx | 335 +++++++++++++++++++++ .../components/__tests__/ChatView.test-harness.tsx | 103 ++++++- 6 files changed, 506 insertions(+), 28 deletions(-) Fusion-Task-Id: FN-9195 Fusion-Task-Lineage: cdada0cc-af6c-4cf8-8ffd-0940d280b07a Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai> |
||
|
|
3857e0dc14 |
FN-9198: Fix narrow chat switcher dropdown rendering
Anchor the direct-conversation switcher to the visible thread header across narrow Chat surfaces. - position narrow-host switcher menus relative to the thread header - cover mobile, compact dock, floating, desktop, and empty-menu states - add the shared 2px spacing token and document the corrected behavior - add a patch changeset for the published Fusion package Files changed: .../fn-9198-chat-title-switcher-menu-anchor.md | 7 + docs/dashboard-guide.md | 2 +- .../app/components/ChatThreadTitleSwitcher.css | 11 +- .../__tests__/ChatView.title-switcher.test.tsx | 144 ++++++++++++++++++++- packages/dashboard/app/styles.css | 2 + 5 files changed, 160 insertions(+), 6 deletions(-) Fusion-Task-Id: FN-9198 Fusion-Task-Lineage: 9a1132d2-9b1a-4150-918a-085b42b22e02 Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai> |
||
|
|
3f448f7292 |
FN-9194: fix mailbox task ID interpolation
Show concrete destination IDs in mailbox task links instead of leaking untranslated placeholders. - Pass the catalog's `id` variable to visible and accessible task-link labels. - Cover shared links and all mailbox host, viewport, and conversation-layout surfaces with the shipping catalog. - Document the task-link label and add a patch changeset. Files changed: .changeset/fn-9194-mailbox-task-link-id.md | 7 ++ docs/dashboard-guide.md | 2 +- .../app/components/MailboxRelatedWorkLink.tsx | 9 +- .../__tests__/MailboxRelatedWorkLink.test.tsx | 50 ++++++++ .../MailboxTaskLinkInterpolation.surfaces.test.tsx | 128 +++++++++++++++++++++ 5 files changed, 193 insertions(+), 3 deletions(-) Fusion-Task-Id: FN-9194 Fusion-Task-Lineage: d7afd16a-c951-40c4-aa12-d7b56f9cba7e Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai> |
||
|
|
eaa1d47cf0 |
FN-9193: add docked chat conversation sidebar
Add a persistent, resizable conversation sidebar to non-floating chat on tablet and desktop layouts. - Keep conversation lists visible beside selected direct and room threads on eligible viewports. - Persist sidebar visibility and width while preserving mobile, compact, and floating one-pane behavior. - Add responsive styling, operator documentation, a release changeset, and focused regression coverage. Files changed: .changeset/fn-9193-chat-docked-sidebar.md | 7 ++ docs/dashboard-guide.md | 12 +- packages/dashboard/app/components/ChatView.css | 58 +++++++++- packages/dashboard/app/components/ChatView.tsx | 120 ++++++++++++++++--- .../__tests__/ChatView.docked-sidebar.test.tsx | 128 +++++++++++++++++++++ .../__tests__/ChatView.sessions-rooms.test.tsx | 29 ++--- .../components/__tests__/ChatView.test-harness.tsx | 41 ++++++- 7 files changed, 360 insertions(+), 35 deletions(-) Fusion-Task-Id: FN-9193 Fusion-Task-Lineage: 58266e56-9d09-4472-98f4-f9d1d80635a7 Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai> |
||
|
|
0fc2c23f24 |
FN-9192: add direct chat title switcher
Make Direct conversation titles open an in-place, keyboard-accessible chat switcher. - Add a responsive title dropdown with pinned, recent, unread, and active conversation states. - Reuse existing session-selection and back-navigation paths from ChatView. - Cover interaction, ordering, limits, keyboard behavior, and Room-title exclusions. - Document the switcher and add a minor release changeset. Files changed: .changeset/fn-9192-chat-title-switcher.md | 7 + docs/dashboard-guide.md | 4 + .../app/components/ChatThreadTitleSwitcher.css | 139 +++++++++++++++ .../app/components/ChatThreadTitleSwitcher.tsx | 191 +++++++++++++++++++++ packages/dashboard/app/components/ChatView.tsx | 17 +- .../__tests__/ChatView.title-switcher.test.tsx | 171 ++++++++++++++++++ 6 files changed, 528 insertions(+), 1 deletion(-) Fusion-Task-Id: FN-9192 Fusion-Task-Lineage: 1e499595-6d82-4ba3-8599-2470d2e89429 Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai> |
||
|
|
3af54418cf |
FN-9191: add the Iceberg dashboard theme
Add a persisted Iceberg palette across dashboard and desktop theme surfaces. - Define coordinated dark and light Iceberg color tokens and selector swatches. - Register Iceberg in shared persistence, theme selectors, and first-paint validation. - Add registry coverage, documentation, visual references, and a release changeset. Files changed: .changeset/fn-9191-iceberg-theme.md | 6 ++ docs/dashboard-guide.md | 5 +- docs/settings-reference.md | 4 +- packages/core/src/types/ui/execution-and-ui.ts | 2 + .../dashboard/app/__tests__/iceberg-theme.test.ts | 102 +++++++++++++++++++++ .../dashboard/app/components/ThemeSelector.css | 15 +++ .../components/__tests__/ThemeDropdown.test.tsx | 3 +- .../components/__tests__/ThemeSelector.test.tsx | 3 +- .../__tests__/CommandCenterControls.test.tsx | 3 +- packages/dashboard/app/components/themeOptions.ts | 2 + packages/dashboard/app/index.html | 3 +- packages/dashboard/app/public/theme-data.css | 85 +++++++++++++++++ packages/desktop/src/renderer/index.html | 2 + screenshots/fn-9191-iceberg-theme-dark.png | 3 + screenshots/fn-9191-iceberg-theme-light.png | 3 + 15 files changed, 234 insertions(+), 7 deletions(-) Fusion-Task-Id: FN-9191 Fusion-Task-Lineage: a8b441c6-763a-4c38-a682-bffab1fdd293 Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai> |
||
|
|
9d8c14b4e8 |
FN-165: use session context usage for chat indicator
Use provider-reported pi session context usage to drive the Chat context indicator. - Track measured and pending session context usage in the dashboard. - Expose bounded context metadata from chat sessions and update token estimation. - Add regression coverage, localized labels, documentation, and a changeset. Files changed: .changeset/fn-165-chat-context-usage.md | 7 ++ docs/dashboard-guide.md | 4 +- packages/dashboard/app/components/ChatView.tsx | 49 ++++++++---- .../__tests__/ChatView.context-window.test.tsx | 84 +++++++++++++++++++- .../app/utils/__tests__/chatContextUsage.test.ts | 66 ++++++++++++++++ .../app/utils/__tests__/estimateChatTokens.test.ts | 10 +++ packages/dashboard/app/utils/chatContextUsage.ts | 73 ++++++++++++++++++ packages/dashboard/app/utils/estimateChatTokens.ts | 39 ++++++++-- .../dashboard/src/__tests__/chat-manager.test.ts | 89 +++++++++++++++++++++ packages/dashboard/src/chat.ts | 65 +++++++++++++--- 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 | 3 + packages/i18n/locales/zh-CN/app.json | 3 + packages/i18n/locales/zh-TW/app.json | 3 + packages/i18n/src/resources.d.ts | 19 +++-- 18 files changed, 483 insertions(+), 43 deletions(-) Fusion-Task-Id: FN-165 Fusion-Task-Lineage: a95a9c7f-80aa-41be-8807-1fbd383f0f1d Co-authored-by: Fusion <noreply@runfusion.ai> |
||
|
|
c1818ea819 |
FN-151: make task reset always complete
Make reset a reliable description-only fresh start by fencing active planning work and cleaning discarded execution state. - Add reset lifecycle disposal for planning sessions, locks, artifacts, and reset worktrees. - Preserve operator-provided descriptions while clearing stale execution and planning projections. - Expose reset routes and add core, dashboard, and engine regression coverage. Files changed: .changeset/fn-151-task-reset-always-completes.md | 7 + docs/architecture.md | 3 + docs/dashboard-guide.md | 6 +- .../postgres/task-reset-publication.pg.test.ts | 71 +++++++++- .../core/src/__tests__/task-move-disposer.test.ts | 38 ++++++ packages/core/src/index.gate.ts | 2 + packages/core/src/index.ts | 2 + packages/core/src/task-store/reset-lifecycle.ts | 38 +++++- packages/core/src/tasks/task-move-disposer.ts | 36 +++++- .../src/__tests__/task-reset-lifecycle.test.ts | 110 +++++++++++++++- .../src/routes/register-task-workflow-routes.ts | 29 +++-- .../src/__tests__/agent-document-tools.test.ts | 49 +++++++ .../src/__tests__/reset-worktree-removal.test.ts | 77 +++++++++++ .../__tests__/triage-reset-planning-fence.test.ts | 118 +++++++++++++++++ packages/engine/src/agent-tools.ts | 60 +++++++-- packages/engine/src/agents/planning-liveness.ts | 19 +++ packages/engine/src/index.ts | 4 + packages/engine/src/plan-artifact-writeback.ts | 27 +++- packages/engine/src/planning-reset-fence.ts | 26 +++ packages/engine/src/triage.ts | 143 +++++++++++++++++++-- packages/engine/src/worktree/remove-reset-worktree.ts | 65 ++++++++++ 21 files changed, 882 insertions(+), 48 deletions(-) Fusion-Task-Id: FN-151 Fusion-Task-Lineage: 1c25d58e-2d23-4340-a489-51f3e2d8a7f4 Co-authored-by: Fusion <noreply@runfusion.ai> |
||
|
|
a786c45bb9 |
FN-149: converge review cycles before human escalation
Add bounded review convergence so disputed review gates can resolve independently before requiring operator intervention. - Add staged remediation, arbitration, dispute tooling, and stale-attempt fencing. - Preserve review history and findings while exposing convergence state in core, dashboard, and audit paths. - Add migration, configuration, documentation, changeset, and regression coverage. Files changed: .changeset/fn-149-review-convergence.md | 7 + AGENTS.md | 2 + docs/architecture.md | 4 + docs/dashboard-guide.md | 4 + docs/run-audit.md | 4 + docs/settings-reference.md | 4 + docs/workflow-steps.md | 8 + .../src/__tests__/default-workflow-hooks.test.ts | 13 + packages/core/src/__tests__/plan-approval.test.ts | 21 ++ .../src/__tests__/reopen-semantics-by-role.test.ts | 25 ++ packages/core/src/__tests__/review-severity-gate.test.ts | 18 +- packages/core/src/__tests__/workflow-step-results.test.ts | 52 +++- packages/core/src/config/settings-schema.ts | 6 + packages/core/src/index.gate.ts | 9 + packages/core/src/index.ts | 9 + packages/core/src/planner/plan-approval.ts | 27 +- .../0065_fn_149_review_convergence_stage.sql | 3 + packages/core/src/postgres/schema-applier.ts | 10 + packages/core/src/postgres/schema/project.ts | 2 + packages/core/src/store.ts | 2 +- packages/core/src/task-store/persistence.ts | 4 + packages/core/src/task-store/reset-lifecycle.ts | 2 + packages/core/src/task-store/serialization.ts | 2 + packages/core/src/task-store/task-mutation-ops.ts | 2 +- packages/core/src/task-store/task-row-mappers.ts | 2 +- packages/core/src/task-store/task-update.ts | 4 + packages/core/src/tasks/in-review-stall.ts | 21 ++ packages/core/src/tasks/manual-retry-reset.ts | 2 + packages/core/src/types/settings/settings-scope.ts | 7 + packages/core/src/types/task/task-core.ts | 3 + packages/core/src/types/task/task-review.ts | 2 +- packages/core/src/types/workflow/workflow-steps.ts | 24 +- .../src/workflows/builtin-workflow-settings.ts | 43 +++ .../core/src/workflows/default-workflow-hooks.ts | 10 +- .../core/src/workflows/workflow-step-results.ts | 185 ++++++++++++- .../dashboard/app/components/TaskReviewTab.tsx | 6 +- .../components/__tests__/TaskReviewTab.test.tsx | 6 +- .../dashboard/src/__tests__/routes-tasks.test.ts | 7 + .../src/routes/register-task-workflow-routes.ts | 4 +- .../__tests__/review-arbitration-release.test.ts | 46 ++++ .../src/__tests__/review-arbitration.test.ts | 57 ++++ .../__tests__/review-convergence-context.test.ts | 95 +++++++ .../review-convergence-escalation.test.ts | 135 +++++++++ .../src/__tests__/review-dispute-tool.test.ts | 113 +++++++ .../__tests__/review-finding-supersession.test.ts | 55 ++- .../review-findings-injection.test.ts | 19 +- .../__tests__/review-history-preservation.test.ts | 186 +++++++++++++ .../__tests__/review-ladder-entry-points.test.ts | 304 +++++++++++++++++++++ ...un-audit-sink-health-review-convergence.test.ts | 251 +++++++++++++++++ .../workflow-graph-optional-step-fix.test.ts | 59 ++-- packages/engine/src/execution/replan-target.ts | 6 +- .../clear-terminal-step-failures-for-retry.ts | 8 +- .../src/executor/create-review-dispute-tool.ts | 126 +++++++++ packages/engine/src/executor/deps-bags.ts | 2 +- .../engine/src/executor/execute-workflow-graph.ts | 71 ++++- packages/engine/src/executor/execute-workflow-step.ts | 16 +- packages/engine/src/executor/free-reexports.ts | 1 + packages/engine/src/executor/impl-bindings.ts | 1 + .../engine/src/executor/optional-step-revision.ts | 33 ++- .../src/executor/recover-failed-pre-merge-step.ts | 43 ++- .../request-pre-merge-optional-step-fix.ts | 85 +++--- packages/engine/src/executor/review-arbitration.ts | 233 +++++++++++++++ .../src/executor/review-convergence-ladder.ts | 237 +++++++++++++++ .../route-graph-failure-to-execution-resume.ts | 16 +- .../route-retryable-remediation.ts | 9 +- .../engine/src/executor/run-graph-custom-node.ts | 1 + packages/engine/src/executor/run-implementation.ts | 2 + .../src/executor/task-executor-session-facades.ts | 3 +- .../engine/src/executor/workflow-rerun-bounce.ts | 13 +- .../executor/workflow-step-failure-injection.ts | 23 +- .../engine/src/executor/workflow-step-failures.ts | 16 +- .../engine/src/executor/workflow-step-verdict.ts | 2 + packages/engine/src/self-healing.ts | 5 +- packages/engine/src/util/run-audit.ts | 9 +- .../src/workflows/workflow-graph-executor.ts | 8 +- .../engine/src/worktree/review-diff-fingerprint.ts | 21 +++ .../src/worktree/workspace-review-evidence.ts | 9 +- 77 files changed, 2719 insertions(+), 166 deletions(-) Fusion-Task-Id: FN-149 Fusion-Task-Lineage: 9330df9d-5086-4b40-8daa-66f0ea31cf3e Co-authored-by: Fusion <noreply@runfusion.ai> |
||
|
|
e67403cd6a |
FN-155: add expandable thinking traces to transcripts
Add a reusable expandable thinking trace across chat and agent transcript surfaces. - Add the ThinkingTrace component, styling, localized labels, and documentation. - Render trace sections across chat, planning, mission, milestone, workflow, and agent log views. - Preserve streaming trace data and add regression and surface coverage. Files changed: .changeset/fn-155-thinking-trace.md | 7 ++ docs/dashboard-guide.md | 4 + .../dashboard/app/components/AgentLogViewer.tsx | 11 +- packages/dashboard/app/components/ChatView.css | 10 +- .../app/components/ConversationHistory.tsx | 3 +- .../components/MilestoneSliceInterviewModal.tsx | 3 +- .../app/components/MissionInterviewModal.tsx | 3 +- .../dashboard/app/components/PlanningModeModal.tsx | 9 +- .../app/components/StandardChatSurface.tsx | 21 ++-- packages/dashboard/app/components/TaskChatTab.tsx | 17 +-- .../dashboard/app/components/ThinkingTrace.css | 7 ++ .../dashboard/app/components/ThinkingTrace.tsx | 99 ++++++++++++++++++ .../app/components/WorkflowResultsTab.tsx | 4 + .../__tests__/ChatView.core-interactions.test.tsx | 25 +++++ .../MilestoneSliceInterviewModal.test.tsx | 15 ++- .../__tests__/MissionInterviewModal.test.tsx | 15 ++- .../PlanningModeModal.planning-flow.test.tsx | 33 +++++- .../app/components/__tests__/TaskChatTab.test.tsx | 16 +++ .../__tests__/ThinkingTrace.surfaces.test.tsx | 70 +++++++++++++ .../components/__tests__/ThinkingTrace.test.tsx | 115 +++++++++++++++++++++ .../dashboard/src/__tests__/chat-manager.test.ts | 11 ++ packages/engine/src/__tests__/agent-logger.test.ts | 15 +++ packages/engine/src/__tests__/streaming-delta.test.ts | 13 +++ packages/engine/src/execution/streaming-delta.ts | 4 + packages/i18n/locales/en/app.json | 8 ++ packages/i18n/locales/es/app.json | 8 ++ packages/i18n/locales/fr/app.json | 8 ++ packages/i18n/locales/ko/app.json | 8 ++ packages/i18n/locales/pt-BR/app.json | 8 ++ packages/i18n/locales/zh-CN/app.json | 8 ++ packages/i18n/locales/zh-TW/app.json | 8 ++ packages/i18n/src/resources.d.ts | 8 ++ 32 files changed, 539 insertions(+), 55 deletions(-) Fusion-Task-Id: FN-155 Fusion-Task-Lineage: 2aafff54-2146-4480-874b-393dc991d52b Co-authored-by: Fusion <noreply@runfusion.ai> |
||
|
|
8b681775ae |
FN-122: fix local workspace integration across repositories
Make multi-repository workspace merges resolve and land against the correct local integration targets. - Add local integration-target resolution and durable merge-dispatch leasing. - Harden workspace merge fencing, failure handling, audit logging, and CLI/dashboard controls. - Document the workflow and add regression coverage for workspace integration and task-log deduplication. - Complete the CLI engine mock for the new public lease export. Files changed: .changeset/fn-122-local-workspace-integration.md | 7 + docs/architecture.md | 1 + docs/dashboard-guide.md | 4 + docs/settings-reference.md | 4 +- docs/testing.md | 10 ++ .../task-command-github-import-tracking.test.ts | 2 + packages/cli/src/commands/__tests__/task.test.ts | 1 + packages/cli/src/commands/dashboard.ts | 15 +- packages/cli/src/commands/task.ts | 14 +- .../__tests__/postgres/task-log-dedupe.pg.test.ts | 30 ++++ packages/core/src/index.ts | 2 +- packages/core/src/store.ts | 5 +- packages/core/src/task-store/audit-ops.ts | 38 ++++ packages/core/src/types.ts | 2 + packages/core/src/types/task/task-core.ts | 16 +- packages/core/src/types/task/task-log.ts | 2 + .../app/components/WorkspaceWorktreesSummary.tsx | 15 +- .../settings/sections/WorktreesSection.tsx | 3 +- .../engine/src/__tests__/workspace-e2e.test.ts | 198 ++++++++++++++++----- .../__tests__/workspace-integration-target.test.ts | 75 ++++++++ .../src/__tests__/workspace-merger-lease.test.ts | 42 ++++- packages/engine/src/index.ts | 6 + packages/engine/src/merge/merger-ai.ts | 152 +++++++++++----- packages/engine/src/merge/workspace-fence-ref.ts | 17 +- .../src/merge/workspace-integration-target.ts | 87 +++++++++ .../engine/src/merge/workspace-land-failure.ts | 6 +- .../src/merge/workspace-merge-dispatch-lease.ts | 54 ++++++ packages/engine/src/project-engine.ts | 25 +++ 28 files changed, 715 insertions(+), 118 deletions(-) Fusion-Task-Id: FN-122 Fusion-Task-Lineage: 9364bba4-cebc-44e7-b2ae-60967fbc025c Co-authored-by: Fusion <noreply@runfusion.ai> |
||
|
|
0b4dbd219b |
FN-125: prevent workflow agents from creating tasks
Stop workflow executor agents from creating ordinary tasks while preserving explicit self-spawned dependency handling. - Gate task creation by session identity and execution context. - Add self-spawned dependency support, validation, and persistence coverage. - Update agent prompts, tools, documentation, and CLI integration. - Add a published-package changeset. Files changed: .changeset/fn-125-removal.md | 7 +++ docs/agents.md | 2 +- docs/dashboard-guide.md | 2 +- docs/settings-reference.md | 6 +- .../cli/skill/fusion/references/engine-tools.md | 10 ++-- .../extension-task-execution-task-creation.test.ts | 70 ++++++++++++++++++++++ packages/cli/src/extension.ts | 49 +++++++++++++-- .../postgres/store-self-spawned-dep.pg.test.ts | 56 +++++++++++++++++ .../src/__tests__/self-spawned-dependency.test.ts | 18 ++++++ .../__tests__/session-identity-registry.test.ts | 14 ++++- packages/core/src/agents/agent-prompts.ts | 27 ++++----- .../src/agents/task-execution-task-creation.ts | 19 ++++++ packages/core/src/index.ts | 7 +++ packages/core/src/session-identity-registry.ts | 7 +++ packages/core/src/store.ts | 2 + packages/core/src/task-store/errors.ts | 21 +++++++ packages/core/src/task-store/task-update.ts | 10 +++- packages/core/src/task-store/update-task-deps.ts | 12 +++- .../__tests__/ephemeral-task-create-gate.test.ts | 18 +++--- .../src/__tests__/executor-review-verdicts.test.ts | 3 +- packages/engine/src/agent-tools.ts | 4 ++ packages/engine/src/agents/agent-runtime.ts | 2 + .../engine/src/execution/step-session-executor.ts | 15 ++--- .../executor/attempt-executor-verification-fix.ts | 1 + .../engine/src/executor/create-spawn-agent-tool.ts | 1 + .../engine/src/executor/create-task-done-tool.ts | 18 +++++- .../engine/src/executor/create-task-update-tool.ts | 12 +++- .../engine/src/executor/execute-workflow-step.ts | 1 + packages/engine/src/executor/run-implementation.ts | 18 +++--- packages/engine/src/executor/system-prompt.ts | 21 +++---- packages/engine/src/executor/task-add-dep-tool.ts | 14 ++++- packages/engine/src/pi.ts | 15 ++++- 32 files changed, 401 insertions(+), 81 deletions(-) Fusion-Task-Id: FN-125 Fusion-Task-Lineage: da3d69f6-c9cb-45fd-8691-3dfaf7007514 Co-authored-by: Fusion <noreply@runfusion.ai> |
||
|
|
35f0247028 |
FN-115: restore task-card detail clicks
Restore native task-card activation while preserving intentional board panning. - Start board panning only after horizontal intent is established. - Preserve stationary card clicks and add regression coverage for detail locators and touch resizing. - Document the restored interaction behavior and publish a patch changeset. Files changed: .changeset/fn-115-restore-board-card-click.md | 7 ++ docs/dashboard-guide.md | 8 +- packages/dashboard/app/components/Board.tsx | 9 +- .../app/components/__tests__/Board.test.tsx | 47 ++++++--- .../__tests__/board-card-detail-locators.test.tsx | 108 +++++++++++++++++++++ .../app/hooks/__tests__/useBoardMousePan.test.tsx | 75 ++++++++++++++ packages/dashboard/app/hooks/useBoardMousePan.ts | 39 ++++++-- .../app/task-modal-touch-resize-e2e-fixture.tsx | 20 +++- .../task-modal-touch-resize-browser.test.ts | 75 +++++++++++++- 9 files changed, 354 insertions(+), 34 deletions(-) Fusion-Task-Id: FN-115 Fusion-Task-Lineage: 158de270-2a5c-4590-8347-a3c4d6a5db03 Co-authored-by: Fusion <noreply@runfusion.ai> |
||
|
|
c47d555123 |
FN-116: open multiple Quick Chats from conversations
Add in-app Quick Chat windows that open exact Direct conversation snapshots without disturbing the source chat. - Add pop-out window state, rendering, and close controls for multiple Quick Chats. - Add context-menu launching and isolated session/preferences handling. - Add localized labels, dashboard documentation, regression tests, and a release changeset. Files changed: .changeset/fn-116-multiple-quick-chats.md | 7 +++ docs/dashboard-guide.md | 2 + packages/dashboard/app/App.tsx | 34 ++++++++++++-- packages/dashboard/app/components/ChatView.tsx | 36 +++++++++++++-- .../app/components/PoppedOutChatWindows.tsx | 53 ++++++++++++++++++++++ .../__tests__/ChatView.core-contracts.test.tsx | 15 ++++++ .../__tests__/PoppedOutChatWindows.test.tsx | 25 +++++++++ .../app/components/dashboard/MainContent.tsx | 2 + .../dashboard/app/components/dashboard/types.ts | 2 + .../app/components/overflowViewRegistry.tsx | 3 ++ .../app/components/useRightDockController.tsx | 3 ++ .../app/hooks/__tests__/usePoppedOutChats.test.ts | 24 +++++++++ packages/dashboard/app/hooks/useChat.ts | 42 ++++++++++++++-- packages/dashboard/app/hooks/usePoppedOutChats.ts | 42 +++++++++++++++++ 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 | 38 ++++++++++++++--- 22 files changed, 313 insertions(+), 22 deletions(-) Fusion-Task-Id: FN-116 Fusion-Task-Lineage: 486e3092-c4db-4e50-a9df-f2adfeb6fddf Co-authored-by: Fusion <noreply@runfusion.ai> |
||
|
|
294e826ea0 |
FN-110: integrate Ctrl+F search into chat lists and conversations
Add keyboard-driven search across chat navigation and conversation content. - Add Ctrl+F search controls for chat lists and conversation messages. - Support result navigation, highlighting, and localized labels across all dashboard locales. - Update chat surfaces, documentation, changeset metadata, and regression coverage. Files changed: .changeset/fn-110-chat-find.md | 7 + docs/dashboard-guide.md | 5 + packages/dashboard/app/App.tsx | 1 + packages/dashboard/app/components/ChatView.css | 41 +++++ packages/dashboard/app/components/ChatView.tsx | 162 +++++++++++++++-- .../dashboard/app/components/CliChatSurface.tsx | 5 +- .../dashboard/app/components/StandardChatSurface.tsx | 14 +- .../__tests__/ChatView.content-search.test.tsx | 197 ++++++++++++++++++++- packages/dashboard/vitest.config.ts | 1 + 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 | 7 + packages/i18n/locales/zh-CN/app.json | 7 + packages/i18n/locales/zh-TW/app.json | 7 + packages/i18n/src/resources.d.ts | 7 + 17 files changed, 467 insertions(+), 22 deletions(-) Fusion-Task-Id: FN-110 Fusion-Task-Lineage: 33ef1888-d250-489a-80b8-f3c5069da532 Co-authored-by: Fusion <noreply@runfusion.ai> |
||
|
|
eab7635f83 |
FN-109: enable task-card board panning
Allow users to pan the desktop and tablet board from noninteractive task-card surfaces without disrupting controls or mobile scrolling. - Start horizontal panning from eligible task-card bodies and text while preserving native controls and editing behavior. - Wire board pan state and cursor styling across live board roots while keeping mobile snap and touch scrolling unchanged. - Add regression coverage, documentation updates, and a patch changeset. Files changed: .changeset/fn-109-board-card-pan.md | 7 ++ docs/dashboard-guide.md | 5 +- docs/task-management.md | 4 +- packages/dashboard/app/components/Board.css | 7 +- packages/dashboard/app/components/Board.tsx | 8 +- .../app/components/__tests__/Board.test.tsx | 98 ++++++++++++++++------ .../app/hooks/__tests__/useBoardMousePan.test.tsx | 47 ++++++++++- packages/dashboard/app/hooks/useBoardMousePan.ts | 12 +-- 8 files changed, 146 insertions(+), 42 deletions(-) Fusion-Task-Id: FN-109 Fusion-Task-Lineage: 456bd9d3-9767-4b82-9f99-f191abc44b18 Co-authored-by: Fusion <noreply@runfusion.ai> |
||
|
|
a010dc42bf |
FN-9185: enforce effective task concurrency limits
Unify task concurrency around authoritative project settings and expose the effective admission ceiling. - Resolve maxConcurrent and maxWorktrees through a shared core capacity model with consistent defaults. - Apply the effective limit across scheduler, engine, runtime, CLI, API, and project-manager admission paths. - Surface configured and binding concurrency values in dashboard controls, status views, diagnostics, and documentation. - Add regression coverage for settings persistence, routing, scheduling, UI surfaces, and worktree-bound capacity. Files changed: .../fn-9185-max-concurrent-effective-limit.md | 7 + docs/architecture.md | 8 +- docs/cli-reference.md | 1 + docs/dashboard-guide.md | 4 + docs/settings-reference.md | 4 +- .../dashboard-concurrency-settings.test.ts | 166 +++++++++++++++++++++ packages/cli/src/commands/dashboard.ts | 28 ++-- packages/cli/src/commands/onboard.ts | 4 +- packages/cli/src/project-resolver.ts | 27 +++- .../concurrency-capacity-resolver.test.ts | 46 ++++++ .../src/__tests__/worktree-capacity-limit.test.ts | 51 +++++-- packages/core/src/index.gate.ts | 2 +- packages/core/src/index.ts | 2 +- packages/core/src/workflows/workflow-capacity.ts | 61 ++++++-- packages/dashboard/app/App.tsx | 2 + .../app/__tests__/concurrency-ui-surfaces.test.tsx | 155 +++++++++++++++++++ .../scheduling-effective-concurrency.test.tsx | 48 ++++++ packages/dashboard/app/api/projects/projects.ts | 10 +- packages/dashboard/app/api/settings/settings.ts | 14 +- packages/dashboard/app/components/Board.tsx | 7 +- packages/dashboard/app/components/Column.tsx | 13 +- .../dashboard/app/components/EngineControlMenu.tsx | 17 ++- .../command-center/CommandCenterControls.tsx | 17 ++- .../components/command-center/areas/TeamArea.tsx | 10 +- .../app/components/dashboard/MainContent.tsx | 3 + .../dashboard/app/components/dashboard/types.ts | 2 + .../settings/sections/SchedulingSection.tsx | 12 +- packages/dashboard/app/hooks/useAppSettings.ts | 9 +- packages/dashboard/app/hooks/useExecutorStats.ts | 10 +- .../app/utils/__tests__/worktreeGrouping.test.ts | 12 +- packages/dashboard/app/utils/worktreeGrouping.ts | 8 +- packages/dashboard/src/routes.ts | 6 +- ...concurrency-authoritative-source-routes.test.ts | 90 +++++++++++ .../register-config-mcp-pi-settings-routes.test.ts | 29 +++- .../register-config-mcp-pi-settings-routes.ts | 17 ++- .../src/routes/register-project-routes.ts | 14 +- .../concurrency-effective-limit-surfaces.test.ts | 34 +++++ .../src/__tests__/project-engine-manager.test.ts | 19 +++ .../__tests__/scheduler-workflow-cutover.test.ts | 6 +- packages/engine/src/concurrency/concurrency.ts | 23 ++- packages/engine/src/concurrency/hybrid-executor.ts | 35 ++++- .../engine/src/executor/create-spawn-agent-tool.ts | 8 +- packages/engine/src/project-engine-manager.ts | 50 +++++-- packages/engine/src/project-engine.ts | 12 +- packages/engine/src/project/project-manager.ts | 26 +++- packages/engine/src/runtimes/in-process-runtime.ts | 12 +- packages/engine/src/scheduler.ts | 31 ++-- packages/engine/src/triage.ts | 15 +- 48 files changed, 1028 insertions(+), 159 deletions(-) Fusion-Task-Id: FN-9185 Fusion-Task-Lineage: 6294456c-d417-40a5-a5fa-2035c6b964a6 Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai> |
||
|
|
74dacd0758 |
FN-9188: respect externally managed updates
Managed deployments can now suppress self-update offers while unsupported installs receive actionable guidance. - Add an install-level environment policy for externally managed updates across CLI, server, and dashboard surfaces. - Detect missing npm shell failures and replace raw stderr with deployment-aware remediation. - Document managed-update behavior and add regression coverage for checks, installs, automation, and UI actions. Files changed: .changeset/fn-9188-managed-updates.md | 7 +++ docs/architecture.md | 6 +-- docs/cli-reference.md | 2 +- docs/dashboard-guide.md | 2 +- docs/settings-reference.md | 4 +- packages/cli/src/__tests__/update-cache.test.ts | 11 ++++- .../update-command-externally-managed.test.ts | 39 +++++++++++++++ packages/cli/src/commands/update.ts | 42 +++++++++++----- packages/cli/src/update-cache.ts | 3 +- .../core/src/__tests__/update-management.test.ts | 15 ++++++ packages/core/src/config/update-management.ts | 21 ++++++++ packages/core/src/index.gate.ts | 5 ++ packages/core/src/index.ts | 5 ++ packages/dashboard/app/api/client/health.ts | 3 ++ .../dashboard/app/components/SettingsModal.tsx | 4 ++ .../__tests__/SettingsModal.general.test.tsx | 20 ++++++++ .../__tests__/UpdateAvailableBanner.test.tsx | 26 ++++++++++ .../components/__tests__/settings-mobile.test.tsx | 24 +++++++++- .../__tests__/SystemControlsArea.test.tsx | 20 ++++++++ .../command-center/areas/SystemControlsArea.tsx | 6 +++ .../app/hooks/__tests__/useUpdateCheck.test.ts | 1 + packages/dashboard/app/hooks/useUpdateCheck.ts | 3 +- .../dashboard/src/__tests__/auto-update.test.ts | 10 ++++ .../dashboard/src/__tests__/update-check.test.ts | 56 ++++++++++++++++++++++ packages/dashboard/src/auto-update.ts | 9 +++- .../__tests__/register-update-check-routes.test.ts | 24 +++++++++- .../src/routes/register-update-check-routes.ts | 47 +++++++++++++++++- packages/dashboard/src/update-check.ts | 50 ++++++++++++++++--- 28 files changed, 433 insertions(+), 32 deletions(-) Fusion-Task-Id: FN-9188 Fusion-Task-Lineage: 60b114b9-8bf7-434f-9d26-0c954aea45ba Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai> |
||
|
|
b2125aeb2d |
FN-104: preserve update restart state
Preserve a pending update across Settings reopen while coordinating installation and restart behavior. - Add pending-update install state and coordinator flows across dashboard and system controls. - Expose health/settings update APIs and retain restart state through modal reopen. - Cover desktop/mobile UX, route behavior, coordinator logic, and document the update flow. Files changed: .changeset/fn-104-pending-update-restart.md | 7 ++ docs/architecture.md | 3 + docs/assets/fn-104-pending-update-desktop.png | Bin 0 -> 10926 bytes docs/assets/fn-104-pending-update-mobile.png | Bin 0 -> 6101 bytes docs/dashboard-guide.md | 2 +- docs/settings-reference.md | 2 +- packages/core/src/task-store/task-creation.ts | 1 - packages/dashboard/app/api/client/health.ts | 12 ++++ packages/dashboard/app/api/settings/settings.ts | 3 + .../dashboard/app/components/SettingsModal.tsx | 46 ++++++++----- .../app/components/UpdateAvailableBanner.tsx | 20 ++++-- .../__tests__/SettingsModal.general.test.tsx | 6 ++ .../__tests__/SettingsModal.models-auth.test.tsx | 72 +++++++++++++++++++ .../__tests__/UpdateAvailableBanner.test.tsx | 2 + .../components/__tests__/settings-mobile.test.tsx | 3 + .../command-center/areas/SystemControlsArea.tsx | 18 +++-- .../__tests__/usePendingUpdateInstall.test.ts | 44 ++++++++++++ .../dashboard/app/hooks/usePendingUpdateInstall.ts | 76 +++++++++++++++++++++ packages/dashboard/app/hooks/useUpdateCheck.ts | 8 +++ .../dashboard/src/__tests__/auto-update.test.ts | 18 +++++ .../__tests__/update-install-coordinator.test.ts | 36 ++++++++++ packages/dashboard/src/auto-update.ts | 14 +++- .../__tests__/register-update-check-routes.test.ts | 14 ++++ .../src/routes/register-update-check-routes.ts | 31 ++++++++- .../dashboard/src/update-install-coordinator.ts | 23 +++++++ 25 files changed, 425 insertions(+), 36 deletions(-) Fusion-Task-Id: FN-104 Fusion-Task-Lineage: c754b258-654d-4efe-9b12-1addc7ed190b Co-authored-by: Fusion <noreply@runfusion.ai> |
||
|
|
c21f628174 |
FN-101: separate update installation and restart automation
Separate automatic update installation from restart recovery so dashboard reloads only after the replacement host is healthy. - Add scoped update automation settings and localized descriptions. - Coordinate update installation, restart recovery, timeout handling, and manual refresh guidance. - Update settings UI, banner behavior, API routes, documentation, screenshots, and regression coverage. Files changed: .changeset/fn-101-update-restart-lifecycle.md | 7 ++ docs/assets/fn-101-update-automation-desktop.png | Bin 0 -> 17744 bytes docs/assets/fn-101-update-automation-mobile.png | Bin 0 -> 11367 bytes docs/dashboard-guide.md | 6 +- docs/settings-reference.md | 12 ++- packages/core/src/config/settings-schema.ts | 9 ++ packages/core/src/config/update-automation.ts | 17 +++ packages/core/src/index.gate.ts | 1 + packages/core/src/index.ts | 1 + packages/core/src/types/settings/settings-scope.ts | 8 ++ packages/dashboard/app/api/settings/settings.ts | 4 + .../dashboard/app/components/SettingsModal.tsx | 38 +++++-- .../app/components/UpdateAvailableBanner.tsx | 33 +++++- .../__tests__/SettingsModal.general.test.tsx | 39 +++++++ .../__tests__/UpdateAvailableBanner.test.tsx | 59 ++++++++++- .../app/components/settings/save-split.ts | 5 +- .../sections/GlobalGeneralSection.search.ts | 22 ++-- .../settings/sections/GlobalGeneralSection.tsx | 29 +++-- .../settings-default-descriptions.test.tsx | 2 + .../__tests__/useSystemRestartRecovery.test.ts | 118 +++++++++++++++++++++ .../app/hooks/useSystemRestartRecovery.ts | 118 +++++++++++++++++++++ packages/dashboard/src/auto-update.ts | 22 +++- .../src/routes/register-update-check-routes.ts | 24 +++- .../dashboard/src/update-install-coordinator.ts | 37 +++++++ packages/i18n/locales/en/app.json | 4 + packages/i18n/locales/es/app.json | 4 + packages/i18n/locales/fr/app.json | 4 + packages/i18n/locales/ko/app.json | 4 + packages/i18n/locales/pt-BR/app.json | 8 ++ packages/i18n/locales/zh-CN/app.json | 4 + packages/i18n/locales/zh-TW/app.json | 4 + packages/i18n/src/resources.d.ts | 4 + 32 files changed, 602 insertions(+), 45 deletions(-) Fusion-Task-Id: FN-101 Fusion-Task-Lineage: 2d00e84e-a01d-4d19-bb02-aa87a818165b Co-authored-by: Fusion <noreply@runfusion.ai> |
||
|
|
bbca7a1ffc |
FN-094: add mono- and multi-repository lifecycle parity
Extend workspace lifecycle behavior so mono-repository and multi-repository tasks share the same durable scope, workflow, review, and merge semantics. - Add repository-scope persistence, migrations, serialization, and task mutation support. - Align dashboard task creation, detail, and workspace worktree views with repository-aware lifecycle state. - Extend executor, reviewer, merger, triage, and self-healing paths with parity coverage and tests. - Document the lifecycle contract and publish the operator-facing changeset. Files changed: .changeset/fn-094-multi-repository-lifecycle.md | 7 + docs/agents.md | 8 + docs/architecture.md | 6 + docs/dashboard-guide.md | 4 + docs/multi-project.md | 6 + docs/settings-reference.md | 2 +- docs/testing.md | 12 ++ docs/workspaces.md | 6 + ...workspace-worktrees-concurrent-merge.pg.test.ts | 19 +++ packages/core/src/index.ts | 2 +- .../core/src/postgres/migrations/0000_initial.sql | 1 + .../0064_fn_094_task_repository_scope.sql | 2 + packages/core/src/postgres/schema-applier.ts | 13 +- packages/core/src/postgres/schema/project.ts | 2 + packages/core/src/store.ts | 21 ++- .../core/src/task-store/branch-and-pr-entities.ts | 2 +- packages/core/src/task-store/persistence.ts | 4 +- packages/core/src/task-store/serialization.ts | 2 + packages/core/src/task-store/task-creation.ts | 31 ++++ packages/core/src/task-store/task-mutation-ops.ts | 131 +++++++++++++++- packages/core/src/task-store/task-row-mappers.ts | 2 +- packages/core/src/task-store/task-update.ts | 55 +++++-- packages/core/src/tasks/repository-scope.ts | 29 ++++ packages/core/src/types.ts | 4 + packages/core/src/types/task/task-core.ts | 35 ++++- packages/core/src/types/workflow/workflow-steps.ts | 21 +++ packages/dashboard/app/api/tasks/tasks.ts | 14 ++ packages/dashboard/app/components/NewTaskModal.tsx | 16 +- .../dashboard/app/components/TaskDetailModal.css | 27 ++++ .../dashboard/app/components/TaskDetailModal.tsx | 15 +- .../app/components/WorkspaceWorktreesSummary.tsx | 68 ++++++++- .../app/components/__tests__/NewTaskModal.test.tsx | 1 + .../__tests__/WorkspaceWorktreesSummary.test.tsx | 27 +++- .../src/routes/register-task-workflow-routes.ts | 48 ++++++ .../__tests__/executor-workspace-taskdone.test.ts | 20 +++ .../src/__tests__/reviewer-workspace.test.ts | 170 ++++++++++++++++++++- .../src/__tests__/self-healing-workspace.test.ts | 4 + .../workflow-graph-optional-group.test.ts | 32 ++++ .../workflow-graph-optional-step-fix.test.ts | 58 +++++++ .../engine/src/__tests__/workspace-e2e.test.ts | 91 ++++++++++- .../__tests__/workspace-lifecycle-parity.test.ts | 61 ++++++++ .../src/__tests__/workspace-merger-lease.test.ts | 25 +++ .../__tests__/workspace-merger-scope-gates.test.ts | 58 +++++++ .../engine/src/__tests__/workspace-merger.test.ts | 59 ++++++- packages/engine/src/agent-tools.ts | 92 ++++++++++- packages/engine/src/execution/reviewer.ts | 10 +- .../create-authoritative-workflow-seams.ts | 95 ++++++++++-- .../engine/src/executor/execute-workflow-graph.ts | 37 ++++- .../request-pre-merge-optional-step-fix.ts | 70 +++++++++ .../engine/src/executor/run-graph-custom-node.ts | 124 ++++++++++----- .../engine/src/executor/workflow-step-verdict.ts | 6 +- .../src/executor/workspace-review-per-repo.ts | 118 +++++++++++++- .../src/executor/worktree-task-done-scope-leak.ts | 109 ++++++++++++- packages/engine/src/merge/merger-ai.ts | 88 ++++++++++- packages/engine/src/self-healing.ts | 19 ++- packages/engine/src/triage.ts | 9 ++ .../src/workflows/workflow-graph-executor.ts | 73 +++++++-- .../engine/src/workflows/workflow-node-handlers.ts | 12 +- 58 files changed, 1962 insertions(+), 121 deletions(-) Fusion-Task-Id: FN-094 Fusion-Task-Lineage: 483f958f-cc67-474e-9383-26856c329543 Co-authored-by: Fusion <noreply@runfusion.ai> |
||
|
|
3066123516 |
FN-100: prevent false interrupted-response save errors on new chats
Make starting or clearing an idle chat a successful cancellation no-op while preserving durable cancellation barriers for active responses. - Return success for idle generation cancellation instead of showing a false save warning. - Await cancellation and reconciliation from the chat hook before queue/session transitions. - Update chat API, route handling, documentation, regression tests, and the published fix changeset. Files changed: .changeset/fn-100-chat-new-cancel.md | 7 +++ docs/dashboard-guide.md | 2 +- packages/dashboard/app/api/chat/chat.ts | 5 +- packages/dashboard/app/components/ChatView.tsx | 25 +++++---- .../__tests__/ChatView.streaming-thread.test.tsx | 59 ++++++++++++++++++++++ .../dashboard/app/hooks/__tests__/useChat.test.ts | 37 ++++++++++++++ packages/dashboard/app/hooks/useChat.ts | 14 ++--- .../dashboard/src/__tests__/chat-manager.test.ts | 11 +++- .../src/__tests__/routes-chat-cancellation.test.ts | 7 +-- packages/dashboard/src/chat.ts | 8 ++- .../dashboard/src/routes/register-chat-routes.ts | 6 +-- 11 files changed, 153 insertions(+), 28 deletions(-) Fusion-Task-Id: FN-100 Fusion-Task-Lineage: caa5fe20-4abd-4884-ba1d-f9473c12b52f Co-authored-by: Fusion <noreply@runfusion.ai> |
||
|
|
b5e366da62 |
FN-099: match task Chat model menu width to Direct Chat
Match the task Chat model selector to Direct Chat sizing so provider and model names remain readable across desktop and mobile. - Apply the shared readable, viewport-clamped dropdown width to Task Chat. - Add regression coverage and desktop/mobile screenshots. - Document the behavior and publish a patch changeset. Files changed: .changeset/fn-099-task-chat-model-menu-width.md | 7 ++ docs/dashboard-guide.md | 2 +- .../app/components/TaskPlannerChatTab.tsx | 5 ++ .../ChatThinkingLevelControl.portal.test.tsx | 3 +- .../__tests__/TaskPlannerChatTab.test.tsx | 92 ++++++++++++++++++++- .../fn-099-task-chat-model-menu-desktop.png | Bin 0 -> 9534 bytes screenshots/fn-099-task-chat-model-menu-mobile.png | Bin 0 -> 7240 bytes 7 files changed, 105 insertions(+), 4 deletions(-) Fusion-Task-Id: FN-099 Fusion-Task-Lineage: fec67d58-9ca9-4878-8a0a-ac83984a3766 Co-authored-by: Fusion <noreply@runfusion.ai> |
||
|
|
3903d3c383 |
FN-096: add New Chat to active conversation headers
Expose the shared New Chat action wherever an active conversation is open. - Keep New Chat available in list and selected-detail headers across Chat hosts. - Reset room launches to a persisted Direct session and preserve existing navigation behavior. - Update responsive styling, documentation, regression coverage, screenshots, and release metadata. Files changed: .changeset/fn-096-chat-header-new-chat.md | 7 +++ docs/dashboard-guide.md | 6 +-- packages/dashboard/app/components/ChatView.css | 3 ++ packages/dashboard/app/components/ChatView.tsx | 23 +++++---- .../components/__tests__/ChatView.mobile.test.tsx | 15 +++++- .../__tests__/ChatView.new-chat-default.test.tsx | 53 +++++++++++++++++++-- .../__tests__/ChatView.sessions-rooms.test.tsx | 36 +++++++++++--- screenshots/fn-096-chat-header-new-desktop.png | Bin 0 -> 7476 bytes screenshots/fn-096-chat-header-new-mobile.png | Bin 0 -> 4881 bytes 9 files changed, 120 insertions(+), 23 deletions(-) Fusion-Task-Id: FN-096 Fusion-Task-Lineage: b63ddd12-87bb-470e-9cc9-a80817270257 Co-authored-by: Fusion <noreply@runfusion.ai> |
||
|
|
89427dab11 |
FN-076: disable chat textarea mouse resizing
Disable mouse-driven composer resizing while preserving automatic five-line sizing across chat surfaces. - Remove pointer-based manual resize handling and related CSS affordances. - Apply consistent autosizing and shrink-to-minimum behavior to all chat composers. - Update regression coverage, documentation, and the published package changeset. Files changed: .changeset/fn-076-removal.md | 7 ++ docs/dashboard-guide.md | 6 +- .../app/components/ChatQuestionResponse.css | 4 +- .../app/components/ChatQuestionResponse.tsx | 23 ++-- packages/dashboard/app/components/ChatView.css | 8 +- packages/dashboard/app/components/ChatView.tsx | 18 +-- .../dashboard/app/components/ComposeChatPanel.css | 4 +- .../dashboard/app/components/ComposeChatPanel.tsx | 20 +++- .../app/components/StandardChatSurface.tsx | 20 +++- packages/dashboard/app/components/TaskChatTab.css | 4 +- packages/dashboard/app/components/TaskChatTab.tsx | 12 +- .../app/components/TaskPlannerChatTab.css | 4 +- .../app/components/TaskPlannerChatTab.tsx | 8 +- .../__tests__/ChatQuestionResponse.test.tsx | 38 ++++++ .../__tests__/ChatView.autosize.test.tsx | 26 ++-- .../ChatView.chat-input-autosize.test.tsx | 61 ++-------- .../__tests__/ChatView.message-edit.test.tsx | 10 ++ .../components/__tests__/ComposeChatPanel.test.tsx | 25 ++++ .../app/components/__tests__/TaskChatTab.test.tsx | 13 +- .../__tests__/TaskPlannerChatTab.test.tsx | 13 +- packages/dashboard/app/utils/chatInputAutosize.ts | 132 ++------------------- 21 files changed, 195 insertions(+), 261 deletions(-) Fusion-Task-Id: FN-076 Fusion-Task-Lineage: d4580427-640b-41c1-b5d1-837da43c7438 Co-authored-by: Fusion <noreply@runfusion.ai> |
||
|
|
eb3eeb887a |
FN-074: remove task splitting and parent deletion
Remove complex-task splitting and parent-deletion behavior across core, dashboard, and engine. - Remove subtask splitting, breakdown UI, and related API routes and lifecycle handling. - Add the migration and prompt/documentation updates that enforce the simplified task model. - Update affected tests and integrations for the removed behavior. Files changed: .changeset/fn-074-removal.md | 7 + docs/dashboard-guide.md | 17 +- docs/gitlab-parity-inventory.md | 7 +- docs/mcp.md | 6 +- docs/settings-reference.md | 16 +- docs/task-management.md | 31 +- docs/workflow-steps.md | 10 +- .../cli/skill/fusion/references/task-structure.md | 2 +- .../cli/skill/fusion/workflows/specifications.md | 4 +- packages/core/src/__tests__/agent-prompts.test.ts | 19 +- .../builtin-workflow-settings-triage.test.ts | 32 +- .../src/__tests__/postgres/schema-applier.test.ts | 2 +- .../core/src/__tests__/prompt-overrides.test.ts | 3 +- ...-deleted-observed-dispatch-side-effects.test.ts | 3 - .../task-deleted-outbox-consumer-backoff.test.ts | 1 - packages/core/src/agents/agent-prompts.ts | 56 +- packages/core/src/index.ts | 2 +- .../0062_remove_task_subtask_splitting.sql | 2 + packages/core/src/postgres/schema-applier.ts | 14 +- packages/core/src/postgres/schema/project.ts | 1 - packages/core/src/store.ts | 12 +- packages/core/src/task-delete-attribution.ts | 20 +- packages/core/src/task-delete-notice.ts | 7 +- .../__tests__/lifecycle-outbox-writer.test.ts | 4 +- .../core/src/task-store/archive-lifecycle-2.ts | 13 +- packages/core/src/task-store/archive-lifecycle.ts | 6 +- packages/core/src/task-store/lifecycle-outbox.ts | 2 - packages/core/src/task-store/persistence.ts | 2 - packages/core/src/task-store/serialization.ts | 2 - packages/core/src/task-store/task-creation.ts | 2 - .../src/task-store/task-deleted-outbox-consumer.ts | 4 - packages/core/src/task-store/task-mutation-ops.ts | 2 +- packages/core/src/task-store/task-row-mappers.ts | 2 +- packages/core/src/tasks/prompt-overrides.ts | 35 - packages/core/src/types.ts | 12 - packages/core/src/types/mesh/archive-planning.ts | 1 - packages/core/src/types/task/task-core.ts | 3 - .../src/workflows/builtin-workflow-settings.ts | 86 -- packages/dashboard/app/App.tsx | 15 - .../mission-planning-modals-mobile.test.ts | 15 - packages/dashboard/app/api/legacy.ts | 18 +- packages/dashboard/app/api/planning/ai-text.ts | 171 +--- packages/dashboard/app/api/planning/planning.ts | 46 - packages/dashboard/app/api/tasks/tasks.ts | 4 +- packages/dashboard/app/components/AppModals.tsx | 39 +- packages/dashboard/app/components/Board.tsx | 10 +- packages/dashboard/app/components/Column.tsx | 9 +- .../dashboard/app/components/InlineCreateCard.tsx | 63 +- packages/dashboard/app/components/Lane.tsx | 3 +- packages/dashboard/app/components/ListView.tsx | 10 +- packages/dashboard/app/components/NewTaskModal.tsx | 8 +- .../dashboard/app/components/PlanningModeModal.css | 128 --- .../dashboard/app/components/PlanningModeModal.tsx | 566 +---------- .../dashboard/app/components/QuickEntryBox.tsx | 43 +- .../dashboard/app/components/SettingsModal.tsx | 2 - .../app/components/SubtaskBreakdownModal.tsx | 932 ----------------- packages/dashboard/app/components/TaskCard.tsx | 1 - packages/dashboard/app/components/TaskForm.tsx | 23 +- .../__tests__/AgentPromptsManager.test.tsx | 1 - .../app/components/__tests__/AppModals.test.tsx | 92 +- .../app/components/__tests__/Board.test.tsx | 69 +- .../components/__tests__/InlineCreateCard.test.tsx | 170 ---- .../app/components/__tests__/ListView.test.tsx | 38 - .../app/components/__tests__/NewTaskModal.test.tsx | 48 - .../components/__tests__/QuickEntryBox.test.tsx | 293 +----- .../__tests__/SubtaskBreakdownModal.test.tsx | 933 ----------------- ...skDetail.mobile-transition.board-panel.test.tsx | 1 - .../__tests__/TaskDetail.swipe-back.test.tsx | 1 - .../app/components/__tests__/TaskForm.test.tsx | 67 -- .../__tests__/WorkflowSettingsPanel.test.tsx | 51 - .../app/components/__tests__/board-mobile.test.tsx | 20 - .../composer-settings-read-isolation.test.tsx | 30 - .../components/__tests__/migratedModalFixtures.tsx | 2 - .../app/components/dashboard/MainContent.tsx | 5 - .../dashboard/__tests__/DashboardBanners.test.tsx | 1 - .../__tests__/MainContent.graph-popout.test.tsx | 1 - .../dashboard/app/components/dashboard/types.ts | 2 - .../app/components/workflow-setting-display.ts | 10 - ...ckgroundSessions.resume-instrumentation.test.ts | 1 - .../hooks/__tests__/useBackgroundSessions.test.ts | 25 +- .../app/hooks/__tests__/useModalManager.test.ts | 3 - packages/dashboard/app/hooks/modalPersistence.ts | 14 - .../dashboard/app/hooks/useBackgroundSessions.ts | 9 +- packages/dashboard/app/hooks/useModalManager.ts | 58 +- packages/dashboard/app/hooks/useProjectActions.ts | 2 +- packages/dashboard/app/hooks/useTaskHandlers.ts | 9 - packages/dashboard/app/utils/builtinPrompts.ts | 7 - packages/dashboard/app/utils/projectStorage.ts | 1 - .../src/__tests__/ai-session-diagnostics.test.ts | 5 +- .../src/__tests__/github-tracking-state.test.ts | 97 -- .../src/__tests__/gitlab-delete-close.test.ts | 6 +- .../gitlab-parity-inventory-documentation.test.ts | 1 - .../src/__tests__/gitlab-split-close.test.ts | 125 --- .../planning-flow-diagnostics-guardrail.test.ts | 1 - .../src/__tests__/process-lifecycle.test.ts | 1 - .../dashboard/src/__tests__/routes-auth.test.ts | 2 - .../src/__tests__/routes-automation.test.ts | 2 - .../dashboard/src/__tests__/routes-git.test.ts | 2 - .../dashboard/src/__tests__/routes-github.test.ts | 92 -- .../src/__tests__/routes-planning-tracking.test.ts | 130 --- .../src/__tests__/routes-planning.test.ts | 1062 +------------------- .../dashboard/src/__tests__/routes-system.test.ts | 2 - .../dashboard/src/__tests__/routes-tasks.test.ts | 902 ----------------- .../shared-branch-group-entry-points.test.ts | 93 -- packages/dashboard/src/ai-session-diagnostics.ts | 3 +- packages/dashboard/src/ai-session-store.ts | 6 +- packages/dashboard/src/ai-session-timeout.ts | 3 +- packages/dashboard/src/github-tracking-state.ts | 43 +- packages/dashboard/src/gitlab-delete-close.ts | 7 +- packages/dashboard/src/gitlab-lifecycle.ts | 4 +- packages/dashboard/src/gitlab-split-close.ts | 103 -- packages/dashboard/src/gitlab-tracking-state.ts | 2 +- packages/dashboard/src/index.ts | 1 - packages/dashboard/src/planning.ts | 171 ---- packages/dashboard/src/routes.ts | 6 - ...er-planning-subtask-routes.parent-close.test.ts | 120 --- .../dashboard/src/routes/register-git-github.ts | 6 - .../src/routes/register-planning-subtask-routes.ts | 773 +------------- .../src/routes/register-task-workflow-routes.ts | 6 +- packages/dashboard/src/server.ts | 8 - packages/dashboard/src/subtask-breakdown.ts | 833 --------------- packages/dashboard/src/triage-trait.ts | 93 +- .../src/__tests__/agent-task-read-tools.test.ts | 1 - .../triage-duplicate-search-regression.test.ts | 3 - .../triage-split-into-subtasks-delete.test.ts | 222 ---- packages/engine/src/__tests__/triage.test.ts | 519 +--------- packages/engine/src/triage.ts | 239 +---- 127 files changed, 214 insertions(+), 10001 deletions(-) Fusion-Task-Id: FN-074 Fusion-Task-Lineage: 23207799-4ec4-4ec7-bcd7-83cba4d98f53 Co-authored-by: Fusion <noreply@runfusion.ai> |
||
|
|
0b71e9f55e |
FN-070: streamline mobile navigation and task creation
Refine mobile project navigation so task creation and view switching remain accessible without redundant header controls. - Add a Header New Task action backed by the existing full task form. - Move mobile Board/List destinations to the bottom navigation and preserve Planning quick entry. - Update responsive documentation, changeset metadata, and regression coverage. Files changed: .changeset/fn-070-mobile-navigation.md | 7 ++++ docs/dashboard-guide.md | 2 +- packages/dashboard/app/App.tsx | 1 + packages/dashboard/app/__tests__/mobile-feature-access-regression.test.tsx | 25 +++++++------ packages/dashboard/app/components/Board.tsx | 9 ++++- packages/dashboard/app/components/Header.tsx | 43 ++++++++++------------- packages/dashboard/app/components/ListView.tsx | 2 +- packages/dashboard/app/components/MobileNavBar.tsx | 20 ++++++++-- .../app/components/__tests__/App.test.tsx | 14 ++++--- .../app/components/__tests__/Board.test.tsx | 17 +++++++++ .../app/components/__tests__/Header.test.tsx | 16 +++++++- .../app/components/__tests__/ListView.test.tsx | 5 ++- .../app/components/__tests__/MobileNavBar.test.tsx | 24 +++++++----- 13 files changed, 123 insertions(+), 62 deletions(-) Fusion-Task-Id: FN-070 Fusion-Task-Lineage: 17bdd4fe-a2ef-481e-9083-6fb1c2d6425f Co-authored-by: Fusion <noreply@runfusion.ai> |
||
|
|
0fce621729 |
FN-071: delete tasks when descriptions are cleared
Clear a saved Task Detail description through the existing confirmed deletion lifecycle. - Detect blanking a populated description during autosave and explicit save. - Reuse destructive-action confirmation preferences and guard against stale drafts or duplicate deletion requests. - Add regression coverage, operator documentation, and a patch changeset. Files changed: .changeset/fn-071-clear-description-delete.md | 7 ++ docs/dashboard-guide.md | 1 + .../dashboard/app/components/TaskDetailModal.tsx | 65 +++++++++-- ...lModal.inline-editing-and-integrations.test.tsx | 126 +++++++++++++++++++++ 4 files changed, 189 insertions(+), 10 deletions(-) Fusion-Task-Id: FN-071 Fusion-Task-Lineage: bec428c4-8c08-47c5-b7c5-09692e101a26 Co-authored-by: Fusion <noreply@runfusion.ai> |
||
|
|
b8a70a544d |
FN-068: repair floating Chat HUD and conversation navigation
Repair floating Chat HUD controls and keep conversation navigation consistent across Chat hosts.\n\n- Remove redundant Quick Chat minimize behavior and retain clear Close/Open in Chat actions.\n- Move the Back action beside saved conversation titles across direct and room threads.\n- Preserve model metadata as secondary identity and document the updated responsive navigation.\n\nFiles changed:\n docs/dashboard-guide.md | 13 +++-- packages/dashboard/app/App.tsx | 7 +-- packages/dashboard/app/components/ChatView.css | 22 ++++--- packages/dashboard/app/components/ChatView.tsx | 60 +++++++++---------- .../__tests__/ChatView.core-interactions.test.tsx | 67 ++++++++++++++++++++-- .../components/__tests__/ChatView.mobile.test.tsx | 11 +++- .../__tests__/ChatView.sessions-rooms.test.tsx | 17 +++--- .../__tests__/overflowViewRegistry.chat.test.tsx | 4 +- 8 files changed, 133 insertions(+), 68 deletions(-) Fusion-Task-Id: FN-068 Fusion-Task-Lineage: 4cb32c6b-77c6-4f7f-9d75-741692a149aa Co-authored-by: Fusion <noreply@runfusion.ai> |
||
|
|
d9a4d36c1a |
FN-067: restore desktop Board drag navigation
Restore safe Board panning for desktop and tablet without changing mobile touch behavior. - Restore primary-mouse dragging from safe noninteractive Board surfaces, including empty-column text. - Keep cards, controls, editable content, native draggables, and mobile scrolling native. - Preserve no edge auto-scroll behavior and document the updated navigation contract. Files changed: .changeset/fn-067-board-safe-surface-pan.md | 7 + docs/dashboard-guide.md | 4 +- packages/dashboard/app/components/Board.css | 6 +- packages/dashboard/app/components/Board.tsx | 12 +- .../app/components/__tests__/Board.test.tsx | 73 +++++---- .../app/components/__tests__/board-mobile.test.tsx | 4 +- .../app/hooks/__tests__/useBoardMousePan.test.tsx | 163 +++++++++++---------- packages/dashboard/app/hooks/useBoardMousePan.ts | 37 +++-- 8 files changed, 172 insertions(+), 134 deletions(-) Fusion-Task-Id: FN-067 Fusion-Task-Lineage: 410d3401-1d41-40f1-b025-26248ecd37ff Co-authored-by: Fusion <noreply@runfusion.ai> |
||
|
|
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> |
||
|
|
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> |
||
|
|
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> |
||
|
|
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> |
||
|
|
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> |
||
|
|
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> |
||
|
|
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> |
||
|
|
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> |
||
|
|
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> |
||
|
|
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> |
||
|
|
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> |
||
|
|
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> |
||
|
|
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> |
||
|
|
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> |
||
|
|
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> |
||
|
|
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> |
||
|
|
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> |
||
|
|
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> |
||
|
|
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> |