Ensure the reliability view fills its flex container across loading, populated, and error states.
- add full-height styling for reliability loading and error states
- include reliability view in shared min-height reset for app content containers
- expand reliability view tests to assert width and height fill on desktop and mobile
Files changed:
packages/dashboard/app/components/ReliabilityView.css | 7 +++++++
.../app/components/__tests__/ReliabilityView.test.tsx | 14 ++++++++++----
packages/dashboard/app/styles.css | 3 ++-
3 files changed, 19 insertions(+), 5 deletions(-)
Fusion-Task-Id: FN-6112
Fusion-Task-Lineage: c5b2bd85-4024-4f88-b64d-dbc90b3cf2ed
Keep the Reliability view filling its flex parent across mobile and desktop states.
- add flex growth and min-width safeguards to the Reliability view, loading, and error containers
- add desktop and mobile regression coverage for loading, populated, and error rendering states
Files changed:
packages/dashboard/app/components/ReliabilityView.css | 6 +++
packages/dashboard/app/components/__tests__/ReliabilityView.test.tsx | 59 ++++++++++++++++++++++
2 files changed, 65 insertions(+)
Fusion-Task-Id: FN-6110
Fusion-Task-Lineage: 5fe1e5a7-f13a-4316-8c4e-b5c85a51ce86
Ensure agent-created untitled tasks still request AI-generated titles even when project auto-summarization is disabled.
- force summarize=true for agent-created tasks that do not provide an explicit title
- add engine tests covering untitled, titled, and title-generation behavior with autoSummarizeTitles disabled
- document the agent-task summarization behavior in settings docs
- add a patch changeset for the published CLI package
Files changed:
.changeset/agent-task-title-summaries.md | 5 ++
docs/settings-reference.md | 2 +-
packages/engine/src/__tests__/agent-tools.test.ts | 63 +++++++++++++++++++++++
packages/engine/src/agent-tools.ts | 1 +
4 files changed, 70 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-6107
Fusion-Task-Lineage: d0c25981-a5cb-48ca-b835-9267817b4edd
Update the WorkflowNodeEditor CSS contract test to match the standalone mobile panel override selector.
- narrow the mobile selector contract assertion to the select and manage controls
- stop expecting the collapsed button in the standalone override rule
Files changed:
packages/dashboard/app/components/__tests__/WorkflowNodeEditor.css.test.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Fusion-Task-Id: FN-6099
Fusion-Task-Lineage: 0e698ef2-c532-4a7d-9450-17b04f93be37
Keep QuickEntryBox expanded or collapsed after creating a task instead of forcing a reset.
- stop resetForm from collapsing the textarea and disclosure controls after successful task creation
- update QuickEntryBox tests to expect preserved visible controls after submit and preserved collapsed state when manually collapsed
- cover the submit flow where focus restoration keeps controls visible without changing user-selected disclosure state
Files changed:
.../dashboard/app/components/QuickEntryBox.tsx | 2 --
.../components/__tests__/QuickEntryBox.test.tsx | 38 +++++++++++++++++-----
2 files changed, 29 insertions(+), 11 deletions(-)
Fusion-Task-Id: FN-6104
Fusion-Task-Lineage: fd77c491-cd37-4a57-8270-3eb5e7ba3c94
Align the regular chat stop button with the composer control sizing while quarantining an unrelated flaky room test.
- define a shared chat input control size variable and apply it to send/stop buttons for consistent width and minimum height
- update the chat input autosize CSS test to assert the shared control size contract and textarea minimum height
- quarantine the unrelated flaky ChatView rooms test in the dashboard Vitest config and quarantine ledger per policy
Files changed:
packages/dashboard/app/components/ChatView.css | 20 +++++++++++++-------
.../__tests__/ChatView.chat-input-autosize.test.tsx | 16 +++++++++++-----
packages/dashboard/vitest.config.ts | 3 ++-
scripts/lib/test-quarantine.json | 8 +++++++-
4 files changed, 33 insertions(+), 14 deletions(-)
Fusion-Task-Id: FN-6103
Fusion-Task-Lineage: 3efc95ba-9369-4022-aa6e-f1981485caea
Ensure quick task model overrides flow through planning and submission.
- add planning model selection state to inline task creation and include it in submit payloads only when explicitly overridden
- extend the model selection modal with an optional planning-model picker that clears preset mode consistently with other manual overrides
- cover planning, combined overrides, and default omission behavior in inline create card and quick entry tests
Files changed:
packages/dashboard/app/components/InlineCreateCard.tsx | 26 ++++++++-
packages/dashboard/app/components/ModelSelectionModal.tsx | 45 +++++++++++++++
packages/dashboard/app/components/__tests__/InlineCreateCard.test.tsx | 67 +++++++++++++++++++++-
packages/dashboard/app/components/__tests__/QuickEntryBox.test.tsx | 49 ++++++++++++----
4 files changed, 172 insertions(+), 15 deletions(-)
Fusion-Task-Id: FN-6101
Fusion-Task-Lineage: 7c1553d2-3edb-4b23-ad36-77756bbfe1dc
Open workflow-mode edits on the workflow the user already selected.
- pass the workflow editor's initial workflow id through AppModals
- preselect the matching workflow in WorkflowNodeEditor before defaulting to the first workflow
- skip the mobile workflow list stage when a valid initial workflow is already selected
- add dashboard tests for desktop selection, missing-id fallback, and mobile deep-link behavior
- add a patch changeset for @runfusion/fusion
Files changed:
.../fn-6088-workflow-editor-selected-workflow.md | 5 +++
packages/dashboard/app/components/AppModals.tsx | 1 +
.../app/components/WorkflowNodeEditor.tsx | 37 ++++++++++++++++++++--
.../__tests__/WorkflowNodeEditor.test.tsx | 34 ++++++++++++++++++++
4 files changed, 74 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-6088
Fusion-Task-Lineage: 88a0cd03-2112-4706-b6b5-4cbebdcae234
Suppress legacy stalledReview hydration for tasks already owned by the merge queue and avoid repeated mergeable-review re-enqueue churn for queued tasks.
Fusion-Task-Id: FN-6088
Improve ReliabilityView so pending and failed fetches render explicit UI states.
- add dedicated loading and error states to ReliabilityView while preserving existing data during background refreshes
- style the new reliability loading and error containers in the dashboard view CSS
- extend ReliabilityView tests to cover loading, fetch failure, and refresh behavior alongside the existing layout assertion
Files changed:
packages/dashboard/app/components/ReliabilityView.css | 25 ++++++++++
packages/dashboard/app/components/ReliabilityView.tsx | 41 ++++++++++++++---
packages/dashboard/app/components/__tests__/ReliabilityView.test.tsx | 53 ++++++++++++++++++++--
3 files changed, 109 insertions(+), 10 deletions(-)
Fusion-Task-Id: FN-6097
Fusion-Task-Lineage: c6949cc6-4383-4e53-8467-5656a101199e
Right-align the task card promote action within its action row.
- add auto margin to the promote action so it anchors to the row's right edge
- cover the promote action alignment with a TaskCard CSS regression test
- add a patch changeset for the published CLI package
Files changed:
.changeset/fn-6092-promote-button.md | 5 +++++
packages/dashboard/app/components/TaskCard.css | 1 +
.../app/components/__tests__/TaskCard.test.tsx | 21 +++++++++++++++++++++
3 files changed, 27 insertions(+)
Fusion-Task-Id: FN-6092
Fusion-Task-Lineage: eacd596e-c810-44fd-b8ec-05c76988649f
Align the promote action chip with the task card's other pill-style controls.
- add shared gap and padding to the promote action chip styling
- match send-back promote styling to the updated chip spacing contract
- load app CSS in the task card test and assert the promote action keeps the expected chip class and spacing
Files changed:
packages/dashboard/app/components/TaskCard.css | 4 +++
.../app/components/__tests__/TaskCard.test.tsx | 34 +++++++++++++++-------
2 files changed, 27 insertions(+), 11 deletions(-)
Fusion-Task-Id: FN-6086
Fusion-Task-Lineage: 8e8f07d2-8bf2-46d3-b488-766694495ec4
Treat persisted merge queue ownership as an active merge-lane owner when hydrating in-review stall state and when self-healing scans for ghost, stalled, or completion-handoff-limbo tasks.
Also clear false completion-handoff exhaustion for tasks that are still owned by the merge queue so previously poisoned review tasks can continue merging.
Fusion-Task-Id: FN-6086
Align dashboard behavior and test expectations for the backfill-2 suite.
- restore the mobile agent delete action for idle, paused, and error states
- update the settings routing test to match the current Scheduling & Capacity button label
- make the EventSource mock behave like a constructed instance in the agents mobile tests
- expect the board mobile render flow to register the pageshow listener
Files changed:
packages/dashboard/app/components/AgentsView.tsx | 11 +++++++++++
.../components/__tests__/SettingsModalNodeRouting.test.tsx | 2 +-
.../app/components/__tests__/agents-view-mobile.test.tsx | 11 +++++++----
.../components/__tests__/board-mobile-initial-render.test.tsx | 2 +-
4 files changed, 20 insertions(+), 6 deletions(-)
Fusion-Task-Id: FN-6090
Fusion-Task-Lineage: 19e880fe-dea7-4d51-b8e0-97fa184bb5ed
Make quick task entry open with its controls visible by default.
- default the quick entry textarea and disclosure controls to the expanded state
- update quick entry component tests to assert the new default-expanded behavior and collapse toggle flow
- tighten App settings-button selection to avoid collisions with quick-entry control labels
Files changed:
.../__tests__/quick-entry-expanded-height.test.tsx | 24 +--
.../dashboard/app/components/QuickEntryBox.tsx | 6 +-
.../app/components/__tests__/App.test.tsx | 8 +-
.../components/__tests__/QuickEntryBox.test.tsx | 174 ++++++++++-----------
4 files changed, 103 insertions(+), 109 deletions(-)
Fusion-Task-Id: FN-6081
Fusion-Task-Lineage: 37cce52f-170c-4f2a-b340-33bbe225f610
Ensure the mobile workflow editor keeps the React Flow surface tall enough for edges to render correctly.
- add a full-height mobile rule for the workflow editor React Flow surface
- extend the mobile CSS contract test to assert the height requirement
- broaden the selector width test to cover the collapsed workflow selector button
Files changed:
packages/dashboard/app/components/WorkflowNodeEditor.css | 1 +
.../app/components/__tests__/WorkflowNodeEditor.css.test.ts | 6 +++++-
2 files changed, 6 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-6079
Fusion-Task-Lineage: a6f1de35-ce99-4673-bfaf-183124969a7c
Workflow-column hold releases now participate in active file-scope leases before moving tasks into in-progress, preserving overlapBlockedBy card badges and scheduler blocking.
Fusion-Task-Id: FN-6082
Workflow-column hold releases now reserve against the active worktree count before moving tasks into in-progress, preventing restart bursts from exceeding maxWorktrees.
Fusion-Task-Id: FN-6084
Update dashboard tests to mirror constructor-based browser APIs and xterm addons.
- rewrite SessionTerminal mobile test doubles as constructable function mocks so xterm and addon instances initialize like real classes
- replace the useDocuments AbortController stub with a class-based mock to preserve constructor semantics during fetch cancellation tests
Files changed:
.../__tests__/SessionTerminal.mobile.test.tsx | 21 +++++++++++++++++----
.../app/hooks/__tests__/useDocuments.test.ts | 8 ++++----
2 files changed, 21 insertions(+), 8 deletions(-)
Fusion-Task-Id: FN-6078
Fusion-Task-Lineage: d8e0a9aa-6c7c-44c1-b9d4-5196924531c1
Preserve unsaved workflow value edits made while a save request is in flight.
- track the keys included in the current save request before sending it
- clear only the saved keys after a successful save so newer edits remain pending
- add regression coverage for mid-flight edits that trigger a follow-up save
Files changed:
packages/dashboard/app/components/WorkflowSettingsPanel.tsx | 7 +++-
packages/dashboard/app/components/__tests__/WorkflowSettingsPanel.test.tsx | 41 +++++++++++++++++++++-
2 files changed, 46 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-6073
Fusion-Task-Lineage: 31e05269-d51d-40c0-9691-87e61d464992
Ensure the SettingsModal quality-settings tests start from a fully reset mock state.
- replace `vi.clearAllMocks()` with `vi.resetAllMocks()` in the SettingsModal test `beforeEach`
- preserve existing timer, storage, and plugin UI cache cleanup around each test
Files changed:
packages/dashboard/app/components/__tests__/SettingsModal.test.tsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Fusion-Task-Id: FN-6067
Fusion-Task-Lineage: 90250b2f-2572-4cfe-92e2-e9827a2a605c
Add an inline task-detail action to summarize descriptions into titles.
- add a read-mode "Summarize as title" control in Task Detail for editable tasks with descriptions
- call the title summarizer, persist the generated title, and show loading/success/error feedback
- cover button visibility, pending, success, error, and mobile behavior in Task Detail tests
- document the new Task Detail modal action in the dashboard guide
Files changed:
docs/dashboard-guide.md | 1 +
.../dashboard/app/components/TaskDetailModal.css | 47 +++++++
.../dashboard/app/components/TaskDetailModal.tsx | 56 +++++++-
.../__tests__/TaskDetailModal.test-helpers.ts | 5 +-
.../components/__tests__/TaskDetailModal.test.tsx | 145 +++++++++++++++++++++
5 files changed, 247 insertions(+), 7 deletions(-)
Fusion-Task-Id: FN-6059
Fusion-Task-Lineage: ed5a2f1b-a490-45f7-a747-d28c345f143b
Treat previously recorded unlinked-mission advisories as authoritative across insight states.
- remove the generated-only insight filter when checking for an existing unlinked mission advisory
- suppress duplicate advisories even when the existing insight is dismissed, archived, or confirmed
- expand reporter coverage to assert the broader duplicate-detection behavior and insight query shape
Files changed:
.../unlinked-missions-advisory-reporter.test.ts | 49 +++++++++++++---------
.../src/unlinked-missions-advisory-reporter.ts | 1 -
2 files changed, 29 insertions(+), 21 deletions(-)
Fusion-Task-Id: FN-6050
Fusion-Task-Lineage: 5b9274f7-baf6-40c1-8a88-2fcc86c7ef14
Restore the SettingsModal project models workflow-lane test setup so runs start from a clean browser state.
- import and call testing-library cleanup after each test
- reset timers, plugin UI slot cache, and browser storage in test hooks
- unstub globals during teardown to prevent cross-test leakage
Files changed:
.../dashboard/app/components/__tests__/SettingsModal.test.tsx | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-6036
Fusion-Task-Lineage: 69976a8b-272f-43a4-b61e-538993f930c8
Ensure limbo recovery attempts count only when auto-merge requeue is actually accepted.
- require completion-handoff recovery to enqueue merge work and confirm the requeue callback accepted the handoff before incrementing recovery counters
- return a boolean from the in-process runtime auto-merge requeue hook so self-healing can distinguish accepted versus rejected handoffs
- add coverage for rejected requeues, accepted retries, exhaustion behavior, and stalled in-review tasks that should not be deadlocked by rejected limbo recoveries
Files changed:
.../completion-handoff-limbo.test.ts | 126 ++++++++++++++++-----
.../in-review-stall-deadlock-disposition.test.ts | 43 +++++++
packages/engine/src/runtimes/in-process-runtime.ts | 2 +-
packages/engine/src/self-healing.ts | 42 ++++---
4 files changed, 170 insertions(+), 43 deletions(-)
Fusion-Task-Id: FN-6070
Fusion-Task-Lineage: 9634dc24-6045-4ee2-baec-d6e1d71a46b1
Keep workflow editing usable on mobile while preserving related dashboard controls.
- allow the standalone project selector to expose a Manage Projects action in single-project layouts
- improve the mailbox resize handle contrast for better visibility
- make the workflow editor canvas and React Flow surface shrink and fill correctly without mobile horizontal overflow
- add CSS contract coverage for desktop and mobile workflow editor width behavior
Files changed:
packages/dashboard/app/components/Header.tsx | 4 +++-
packages/dashboard/app/components/MailboxModal.css | 2 +-
.../dashboard/app/components/ProjectSelector.tsx | 15 +++--
.../app/components/WorkflowNodeEditor.css | 28 +++++++++
.../__tests__/WorkflowNodeEditor.css.test.ts | 66 ++++++++++++++++++++++
5 files changed, 109 insertions(+), 6 deletions(-)
Fusion-Task-Id: FN-6034
Fusion-Task-Lineage: e7a784ff-188a-4538-a2be-f75484f10aa4