Commit Graph

7521 Commits

Author SHA1 Message Date
gsxdsm
fd57b5b7a1 fix(FN-000): prevent duplicate handoff merge work
Address PR #1580 feedback by preserving active same-key handoff work, cancelling stale merge/manual-hold work across re-handoffs, and avoiding stable fallback run id collisions after terminal work.
2026-06-11 08:43:27 -07:00
gsxdsm
296f191a83 feat(FN-000): create workflow merge work on handoff
Fusion-Task-Id: FN-000
2026-06-11 08:43:27 -07:00
gsxdsm
283c64dfee fix(FN-000): harden workflow merge classification
Address PR #1579 feedback by classifying PR merge statuses explicitly and preventing diagnostic audit failures from re-running a completed merge primitive.
2026-06-11 08:43:27 -07:00
gsxdsm
53d644714c feat(FN-000): extract workflow merge node capability
Fusion-Task-Id: FN-000
2026-06-11 08:43:27 -07:00
gsxdsm
25cf473553 fix(FN-000): seed work item primitive identity
Address PR #1578 feedback by seeding run and workflow identifiers into work-item handler context so merge primitives receive the leased work identity.
2026-06-11 08:43:12 -07:00
gsxdsm
3af587af6e fix(FN-000): harden workflow work item dispatch
Address PR #1578 feedback by failing unwired work item dispatch without a no-op persistence path and forwarding work item attempts into merge primitive context.
2026-06-11 08:30:31 -07:00
gsxdsm
c7e278c3db fix(FN-000): honor manual merge work states
Address PR #1578 feedback by deriving merge-gate routing from task/settings auto-merge policy and persisting manual-hold work items as manual-required instead of failed.
2026-06-11 08:04:11 -07:00
gsxdsm
fa4445138a feat(FN-000): run workflow work items through runtime
Fusion-Task-Id: FN-000
2026-06-09 20:44:45 -07:00
gsxdsm
265496d0b6 feat(FN-000): model merge policy in builtin workflow IR
Fusion-Task-Id: FN-000
2026-06-09 20:44:45 -07:00
gsxdsm
0ec7b496ae feat(FN-000): claim workflow work in scheduler substrate
Fusion-Task-Id: FN-000
2026-06-09 20:44:45 -07:00
gsxdsm
5a36ac1cd6 feat(FN-000): project merge requests to workflow work
Fusion-Task-Id: FN-000
2026-06-09 20:44:36 -07:00
gsxdsm
efe7db64fe fix(review): stabilize ownership map test path 2026-06-09 13:48:06 -07:00
gsxdsm
cdd86fc3f6 fix(review): address workflow work item feedback 2026-06-09 13:37:46 -07:00
gsxdsm
f16b038fab refactor(workflow): add workflow work-item store slice 2026-06-09 12:41:29 -07:00
gsxdsm
0cb54dd8c4 refactor(workflow): map merge policy ownership 2026-06-09 11:51:30 -07:00
gsxdsm
8d7fc1a6c5 Merge pull request #1562 from Runfusion/feature/mobile-workflow
feat: redesign mobile workflow editor
2026-06-09 10:32:08 -07:00
gsxdsm
7a9d2b0f30 fix(FN-6086): preserve merge-queued review tasks
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
2026-06-09 09:41:28 -07:00
gsxdsm
8d24fa9b72 fix: address mobile workflow PR feedback 2026-06-09 09:16:59 -07:00
gsxdsm
a937bc6ab0 FN-6090: fix dashboard backfill test contracts
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
2026-06-09 09:10:57 -07:00
gsxdsm
38d7f1c436 FN-6087: skip completed foreach steps on resume
Prevent shared-isolation foreach resumes from re-running terminal task steps.

- skip foreach step instances whose persisted status is already done or skipped before launching step-execute
- log resume skips so restart behavior is auditable during shared-isolation foreach runs
- add regression coverage for all-done resumes, mixed done/skipped resumes, and in-progress step replays

Files changed:
 .../src/__tests__/workflow-graph-foreach.test.ts   | 85 ++++++++++++++++++++++
 packages/engine/src/workflow-graph-foreach.ts      | 13 ++++
 2 files changed, 98 insertions(+)

Fusion-Task-Id: FN-6087

Fusion-Task-Lineage: 56805a5c-a1ea-41bc-a758-1afed83c6bb7
2026-06-09 09:00:46 -07:00
gsxdsm
ccd44b77fe fix(FN-6085): canonicalize merge worktree boundaries 2026-06-09 08:51:48 -07:00
gsxdsm
2a2b7d0b61 FN-6081: expand quick task entry by default
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
2026-06-09 08:46:25 -07:00
gsxdsm
5f5852db8f fix(FN-6085): accept canonical merge worktree paths 2026-06-09 08:43:20 -07:00
gsxdsm
c1a723134e feat: redesign mobile workflow editor 2026-06-09 08:30:35 -07:00
gsxdsm
85c3420f93 fix(FN-6079): resolve task tools from merge worktrees 2026-06-09 08:19:41 -07:00
gsxdsm
a2f4bb14c0 FN-6080: remove workflow selector collapse controls
Always render the workflow selector expanded across the dashboard.

- remove collapsible workflow selector props, state, icons, and toggle styles
- stop InlineCreateCard from passing collapse persistence options
- delete project storage support and tests for collapsed workflow selector state
- add a patch changeset for the published CLI package

Files changed:
 .changeset/fn-6080-removal.md                      |  5 ++
 .../dashboard/app/components/InlineCreateCard.tsx  |  3 -
 .../dashboard/app/components/WorkflowSelector.css  | 14 +----
 .../dashboard/app/components/WorkflowSelector.tsx  | 65 +--------------------
 .../components/__tests__/InlineCreateCard.test.tsx | 50 ----------------
 .../components/__tests__/WorkflowSelector.test.tsx | 68 ----------------------
 .../app/utils/__tests__/projectStorage.test.ts     |  3 +-
 packages/dashboard/app/utils/projectStorage.ts     |  1 -
 8 files changed, 8 insertions(+), 201 deletions(-)

Fusion-Task-Id: FN-6080

Fusion-Task-Lineage: cca26111-9e20-47d0-8473-d18a3b488ae1
2026-06-09 08:14:16 -07:00
gsxdsm
d2b98f14b2 FN-6079: fix mobile workflow editor edge rendering
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
2026-06-09 08:11:23 -07:00
gsxdsm
a53330786e fix(FN-6082): restore workflow overlap blocking
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
2026-06-09 08:02:56 -07:00
gsxdsm
cd8126d6a4 fix(FN-6084): honor worktree limit for hold releases
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
2026-06-09 07:55:45 -07:00
gsxdsm
c285c30c19 FN-6076: align dashboard tests with updated labels and mocks
Update dashboard tests to match current project copy and test doubles.

- rename project selector expectations from 'Select Project'/'View All Projects' to 'Projects'/'Manage Projects'
- update mailbox split-handle CSS assertion for the new color-mix background
- simplify SessionTerminal xterm addon mocks and type the mocked AbortController signal in useDocuments tests

Files changed:
 .../app/components/__tests__/Header.test.tsx        |  8 ++++----
 .../app/components/__tests__/MailboxView.test.tsx   |  2 +-
 .../components/__tests__/MultiProjectFlow.test.tsx  |  2 +-
 .../__tests__/SessionTerminal.mobile.test.tsx       | 21 ++++-----------------
 .../app/hooks/__tests__/useDocuments.test.ts        |  4 ++--
 5 files changed, 12 insertions(+), 25 deletions(-)

Fusion-Task-Id: FN-6076

Fusion-Task-Lineage: 9bd7bd36-75c0-4d88-93b4-53bfb75283fa
2026-06-09 07:24:39 -07:00
gsxdsm
9417c81498 FN-6078: fix dashboard tests to use constructable mocks
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
2026-06-09 07:09:17 -07:00
gsxdsm
b846027cb9 FN-6077: add plugin registry category filter
Add category filtering controls to registry browsing.

- add a registry category select and thread its value through registry loading, retry, install refresh, and live updates
- style the registry controls for desktop and stacked mobile layouts alongside the existing search input
- add registry browse tests covering category filtering, query combinations, debounce timing, and control rendering

Files changed:
 packages/dashboard/app/components/PluginManager.css          |  23 +++++
 packages/dashboard/app/components/PluginManager.tsx          |  58 +++++++-----
 packages/dashboard/app/components/__tests__/PluginManager.registry.test.tsx | 103 ++++++++++++++++++++-
 3 files changed, 161 insertions(+), 23 deletions(-)

Fusion-Task-Id: FN-6077

Fusion-Task-Lineage: a57da263-550e-4607-a9a8-13123ef10867
2026-06-09 07:00:05 -07:00
gsxdsm
4f8bb31774 FN-6074: add plugin registry QA coverage
Expand post-merge QA coverage for plugin registry browsing and install flows.

- add PluginManager registry UI tests for metadata, action states, install failures, loading/error states, search debounce, and responsive rendering
- add API route tests for invalid manifest payloads, sanitized query/category handling, and project-scoped store failure paths
- include the new registry-focused UI and API suites in the dashboard quality vitest config

Files changed:
 .../components/__tests__/PluginManager.registry.test.tsx | 64 ++++++++++++++++++++
 .../src/__tests__/routes-plugin-registry.test.ts        | 68 ++++++++++++++++++++++
 packages/dashboard/vitest.config.ts                     |  3 +-
 3 files changed, 134 insertions(+), 1 deletion(-)

Fusion-Task-Id: FN-6074

Fusion-Task-Lineage: 5cc00fb9-2ef4-4097-af7f-d8f49c536774
2026-06-09 06:43:13 -07:00
gsxdsm
b1c4f7a4d3 FN-6075: stabilize board workflow toolbar tests
Keep board workflow tests aligned with the collapsible toolbar UI.\n\n- exclude the workflow collapse toggle from toolbar action aria-label assertions in Board tests\n- extend task detail modal lucide-react mocks with the Bell icon used by the updated UI\n\nFiles changed:\n packages/dashboard/app/components/__tests__/Board.test.tsx            | 4 +++-\n .../app/components/__tests__/TaskDetailModal.test-helpers.ts          | 1 +\n 2 files changed, 4 insertions(+), 1 deletion(-)

Fusion-Task-Id: FN-6075

Fusion-Task-Lineage: 65d7317b-2623-409f-af71-a4512b7919e1
2026-06-09 06:38:24 -07:00
gsxdsm
d66630a43f FN-6073: preserve pending workflow value edits during save
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
2026-06-09 06:25:16 -07:00
gsxdsm
f8200adb71 FN-6071: add plugin registry browsing and install actions
Add a curated plugin registry surface to the dashboard plugin manager.

- expose GET /api/plugins/registry with search, category filtering, and installed-state annotations from the dashboard registry manifest
- add registry fetch/install support to the dashboard plugin manager UI, including search, install/manage actions, and related tests
- document plugin registry entries and registry installability in plugin authoring docs and shared concepts

Files changed:
 CONCEPTS.md                                        |   6 +
 docs/PLUGIN_AUTHORING.md                           |  23 ++
 packages/dashboard/app/api/legacy.ts               |  36 +++
 .../dashboard/app/components/PluginManager.css     | 185 ++++++++++++++-
 .../dashboard/app/components/PluginManager.tsx     | 162 ++++++++++++-
 .../PluginManager.install-browse.test.tsx          |   5 +-
 .../__tests__/PluginManager.registry.test.tsx      | 260 +++++++++++++++++++++
 .../components/__tests__/PluginManager.test.tsx    |   3 +-
 .../__tests__/PluginManager.toggle.test.tsx        |   5 +-
 .../src/__tests__/routes-plugin-registry.test.ts   | 156 +++++++++++++
 packages/dashboard/src/plugin-routes.ts            | 115 +++++++++
 packages/dashboard/src/registry-manifest.json      | 143 ++++++++++++
 12 files changed, 1091 insertions(+), 8 deletions(-)

Fusion-Task-Id: FN-6071

Fusion-Task-Lineage: 72c7bdfd-5832-4323-b675-63d0680167d8
2026-06-09 04:27:53 -07:00
gsxdsm
f51e29bb29 FN-6067: reset SettingsModal test mocks before each run
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
2026-06-09 04:05:11 -07:00
gsxdsm
acd9c669fa FN-6060: add archive column to workflow mode board
Show archived workflow cards in a dedicated board column.

- render the selected workflow's archived column instead of filtering archived tasks out of workflow mode
- keep the workflow archived column collapsible and preserve archive-all behavior on the done column
- extend Board workflow tests to cover archived-column rendering, collapse behavior, and workflows without an archived column

Files changed:
 packages/dashboard/app/components/Board.tsx        | 52 +++++++++++++++++++++-
 .../app/components/__tests__/Board.test.tsx        | 48 +++++++++++++++++---
 2 files changed, 92 insertions(+), 8 deletions(-)

Fusion-Task-Id: FN-6060

Fusion-Task-Lineage: 9788bac5-9ccc-427c-a0dd-3cc7f818487a
2026-06-09 04:02:27 -07:00
gsxdsm
ece4a37745 FN-6059: add task title summarization action
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
2026-06-09 03:57:40 -07:00
gsxdsm
df74a6b752 FN-6050: stop re-emitting existing mission advisories
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
2026-06-09 03:53:34 -07:00
gsxdsm
7c2d3f5f7a FN-6036: restore SettingsModal workflow-lane test cleanup
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
2026-06-09 03:46:44 -07:00
gsxdsm
5030e2963e FN-6070: fix completion-handoff limbo recovery accounting
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
2026-06-09 03:44:20 -07:00
gsxdsm
43007be53f FN-6034: fix mobile workflow canvas width and project controls
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
2026-06-09 03:39:14 -07:00
gsxdsm
3252236528 FN-6061: stabilize WorkflowNodeEditor rename race test
Wait for the workflow editor to finish hydrating before exercising the inline rename flow.

- wait for the Save action and rendered column inputs before clicking the workflow name strip
- switch the workflow name click to a synchronous lookup once the editor is stable
- preserve the dirty-rename cancel assertion while removing the hydration race from the test

Files changed:
 packages/dashboard/app/components/__tests__/WorkflowNodeEditor.test.tsx | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

Fusion-Task-Id: FN-6061

Fusion-Task-Lineage: 3c7d781c-c1de-4c8f-9c15-670d5bf8193f
2026-06-09 03:17:20 -07:00
gsxdsm
89322412cc FN-6049: stabilize TaskDetailModal GitHub tracking tests
Harden TaskDetailModal integration and GitHub tracking coverage against async UI timing.

- wait for source issue and GitHub tracking detail toggles to finish expanding before asserting contents
- convert GitHub tracking helper call sites to async usage so linked issue, toggle, create, save, and unlink checks observe settled UI state
- add the inline editing and integrations suite to the dashboard quality test project coverage

Files changed:
 ...lModal.inline-editing-and-integrations.test.tsx | 34 ++++++++++++----------
 packages/dashboard/vitest.config.ts                |  1 +
 2 files changed, 20 insertions(+), 15 deletions(-)

Fusion-Task-Id: FN-6049

Fusion-Task-Lineage: cad3324d-6208-4d5c-8dc8-4369265bc843
2026-06-09 03:12:56 -07:00
gsxdsm
02df5d1c62 FN-6069: restore chat manager test to dashboard quality gate
Restore the chat manager API suite to the dashboard curated quality gate.

- move `chat-manager.test.ts` back into the curated dashboard API quality project
- remove the temporary chat-manager quarantine and broad vitest excludes that kept it out of coverage
- stabilize chat-manager timing/subscriber tests with fake timers and explicit unsubscribe cleanup
- align the agent import route mock so the rescued suite uses the expected CLI settings stub

Files changed:
 $(git diff --cached --stat)

Fusion-Task-Id: FN-6069

Fusion-Task-Lineage: e70e7817-9fe6-4e80-8b53-8f99c6214941
2026-06-09 02:30:30 -07:00
gsxdsm
eb113f3e33 FN-6068: fix engine executor test expectations for queued retries
Align engine executor tests with the current retry and worktree behavior.

- update implicit task-done refusal expectations to assert queued retry state resets
- update pause recovery coverage to expect requeued tasks instead of stuck-killed status
- stub the sandbox backend in worktree init tests and drop obsolete execSync assertions

Files changed:
 .../executor-implicit-task-done-budget.test.ts     | 11 ++++++-
 ...xecutor-implicit-task-done-revise-guard.test.ts | 11 ++++++-
 .../engine/src/__tests__/executor-pause.test.ts    |  5 +--
 .../engine/src/__tests__/executor-worktree.test.ts | 37 ++++++++++++++++------
 4 files changed, 50 insertions(+), 14 deletions(-)

Fusion-Task-Id: FN-6068

Fusion-Task-Lineage: b8ccabaa-7e5d-42dc-b522-6f4738b28db4
2026-06-09 02:27:43 -07:00
gsxdsm
615d744c8a FN-6066: fix dashboard curated inventory guard
Keep the dashboard curated inventory guard aligned with the current dashboard test surface.

- add the newly required @fusion/core exports to the agent import route test mock
- teach the test inventory script to request file-only vitest listings for dashboard curated checks
- extend the dashboard curated skiplist with the pre-existing chat manager exclusion

Files changed:
 packages/dashboard/src/__tests__/routes-agent-import.test.ts | 3 +++
 scripts/check-test-inventory.mjs                             | 5 +++--
 scripts/lib/dashboard-curated-skiplist.json                  | 4 ++++
 3 files changed, 10 insertions(+), 2 deletions(-)

Fusion-Task-Id: FN-6066

Fusion-Task-Lineage: 51e3c42c-d642-4873-8201-636a420d0991
2026-06-09 02:23:35 -07:00
gsxdsm
e5e5ccf01f FN-6065: fix pending-review advisory retry expectation
Adjust the reliability test to match the queued advisory retry path.

- update the plan-review UNAVAILABLE assertion to expect the task to requeue instead of fail
- assert the advisory path clears the error while incrementing the retry counter
- keep coverage that pending review should not record the executor review-pending failure

Files changed:
 packages/engine/src/__tests__/reliability-interactions/executor-pending-review-skip-retry.test.ts | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

Fusion-Task-Id: FN-6065

Fusion-Task-Lineage: 1ef13146-f19b-4735-9ec5-3f00eff6e575
2026-06-09 02:15:03 -07:00
gsxdsm
14cea4a24e FN-6064: align dashboard backfill tests with current project selector
Update dashboard tests to match the current multi-project selector and split-pane behavior.

- adjust Header project selector tests for multi-project dropdown behavior and current labels
- update MailboxView CSS expectation for the transparent split resize handle
- extend multi-project flow coverage to exercise View All Projects from a multi-project header state

Files changed:
 packages/dashboard/app/components/__tests__/Header.test.tsx       | 52 +++++++++++++---------
 packages/dashboard/app/components/__tests__/MailboxView.test.tsx  |  2 +-
 packages/dashboard/app/components/__tests__/MultiProjectFlow.test.tsx | 16 +++++--
 3 files changed, 44 insertions(+), 26 deletions(-)

Fusion-Task-Id: FN-6064

Fusion-Task-Lineage: be4b93a6-a4a7-4154-a7ad-204f51af9b5f
2026-06-09 02:11:25 -07:00