Commit Graph

203 Commits

Author SHA1 Message Date
gsxdsm
d8fe994ca7 FN-6472: make release dry-runs non-interactive by default
Make dry-run release previews skip stdin prompts unless explicitly requested.

- Add a release prompt gate that suppresses version prompts for default dry-runs and honors --interactive as an opt-in.
- Update release CLI usage text and argument parsing for dry-run interactivity.
- Cover dry-run, --yes, real-release, and release.mjs ordering behavior with script tests.

Files changed:
 scripts/__tests__/release-prompt-gate.test.mjs | 72 ++++++++++++++++++++++++++
 scripts/lib/release-prompt-gate.mjs            | 13 +++++
 scripts/release.mjs                            | 16 ++++--
 3 files changed, 97 insertions(+), 4 deletions(-)

Fusion-Task-Id: FN-6472

Fusion-Task-Lineage: 07bfd944-f4a0-454a-883f-dadf1aa0b7d4
2026-06-15 02:30:41 -07:00
gsxdsm
a26d79cbb6 FN-6454: delete expired quarantined dashboard tests
Apply the dashboard quarantine deletion ratchet by removing stale quarantined suites and clearing the active skip ledger.

- Delete dashboard component and API test files that remained quarantined under the ratchet.
- Empty the dashboard Vitest quarantine exclude list so future quarantines must be newly mirrored.
- Clear the quarantine ledger entries after deleting their associated files.

Files changed:
 ...hatView.regular-composer-no-right-line.test.tsx |  108 -
 .../components/__tests__/MissionManager.test.tsx   | 5654 ------------------
 .../app/components/__tests__/ModalReentry.test.tsx |  439 --
 .../components/__tests__/ModelSelectorTab.test.tsx | 1325 -----
 .../components/__tests__/NewAgentDialog.test.tsx   | 2043 -------
 .../__tests__/OAuthReloginBanner.test.tsx          |  237 -
 .../__tests__/PlanningModeModal.favorites.test.tsx |  540 --
 .../__tests__/PlanningModeModal.questions.test.tsx | 1230 ----
 .../PlanningModeModal.swipe-back.test.tsx          |  239 -
 .../components/__tests__/SkillsView.css.test.ts    |   89 -
 .../app/components/__tests__/mobile-css.test.tsx   |  143 -
 .../dashboard/src/__tests__/mission-e2e.test.ts    | 6176 --------------------
 packages/dashboard/src/__tests__/planning.test.ts  | 3633 ------------
 packages/dashboard/vitest.config.ts                |   40 +-
 scripts/lib/test-quarantine.json                   |   70 +-
 15 files changed, 8 insertions(+), 21958 deletions(-)

Fusion-Task-Id: FN-6454
Fusion-Task-Lineage: f18e940d-f8ee-4ade-aedb-714b8e39e2a4
2026-06-15 02:29:08 -07:00
gsxdsm
e526ad2b2c FN-6447: rescue session reconnect teardown
Rescue the session reconnect SSE test by shutting down route-owned background work before temp cleanup.

- Isolate the focused API harness from TaskStore EventEmitter startup workers.
- Dispose API routes and scheduled AI session cleanup before deleting the test temp root.
- Remove session-reconnect from the dashboard quarantine ledger and vitest skip list.

Files changed:
 .../src/__tests__/session-reconnect.test.ts        | 22 ++++++++++++++++++----
 packages/dashboard/vitest.config.ts                |  6 ++++--
 scripts/lib/test-quarantine.json                   |  5 -----
 3 files changed, 22 insertions(+), 11 deletions(-)

Fusion-Task-Id: FN-6447

Fusion-Task-Lineage: a3fef28c-b92b-4f47-9181-a63bb31e4f48
2026-06-14 15:29:35 -07:00
gsxdsm
12efd3fd3f FN-6445: reject quality skip-list overlaps
Prevent dashboard curated skip-list entries from masking tests already covered by quality projects.

- Add validation that flags skip-list files included by quality lanes.
- Cover overlap, empty-reason overlap, and genuine orphan cases in inventory tests.
- Document that skip-lists are only for genuinely non-executed dashboard tests.

Files changed:
 docs/testing.md                                 |  1 +
 scripts/__tests__/check-test-inventory.test.mjs | 29 ++++++++++++++++++++++---
 scripts/check-test-inventory.mjs                |  9 ++++++++
 3 files changed, 36 insertions(+), 3 deletions(-)

Fusion-Task-Id: FN-6445

Fusion-Task-Lineage: 1741f684-8dfc-41fc-8f30-baa3700ac11b
2026-06-14 15:29:35 -07:00
gsxdsm
c12e7e39fb FN-6444: rescue dashboard route API tests
Rescue deterministic dashboard route/API tests from the curated skip-list and quarantine the remaining stale suites.

- Remove dashboard src route/API tests from the curated skip-list once they either run in backfill or move to quarantine.
- Add dated quarantine coverage for stale mission, planning, and session reconnect suites.
- Update rescued route/API test expectations and FNXC comments to match current deterministic behavior.

Files changed:
 .../dashboard/src/__tests__/chat-manager.test.ts   |  4 ++
 .../dashboard/src/__tests__/evals-routes.test.ts   |  8 +++-
 .../src/__tests__/github-tracking-delete.test.ts   |  4 ++
 ...ithub-tracking-periodic-reconcile-sweep.test.ts |  8 +++-
 .../src/__tests__/insights-routes.test.ts          | 12 ++++--
 .../__tests__/routes-run-audit-goal-events.test.ts |  6 ++-
 .../src/__tests__/routes-run-cited-goals.test.ts   |  6 ++-
 .../shared-branch-group-entry-points.test.ts       |  6 +--
 packages/dashboard/src/__tests__/usage.test.ts     |  4 ++
 packages/dashboard/vitest.config.ts                |  6 +++
 scripts/lib/dashboard-curated-skiplist.json        | 44 ----------------------
 scripts/lib/test-quarantine.json                   | 15 ++++++++
 12 files changed, 66 insertions(+), 57 deletions(-)

Fusion-Task-Id: FN-6444

Fusion-Task-Lineage: f314da67-d05e-48c5-9c9c-890c28cf0e5b
2026-06-14 15:29:35 -07:00
gsxdsm
1f540b29d7 FN-6443: rescue dashboard session tests
Rescue skipped dashboard session tests by making planning responses durable before continuation.

- Persist planning-session response history before agent continuation so retry and replay state survives generation errors.
- Isolate dashboard session tests on dedicated SQLite handles and close them before temp cleanup.
- Restore engine mocks for workflow authoring tools and remove the rescued session tests from the curated dashboard skiplist.
- Add a patch changeset for the published CLI bundle.

Files changed:
 .changeset/fn-6443.md                              |  5 +++
 .../src/__tests__/session-cross-tab.test.ts        | 38 ++++++++++++++--------
 .../src/__tests__/session-error-recovery.test.ts   |  2 ++
 .../session-persistence-roundtrip.test.ts          |  2 ++
 .../src/__tests__/session-reconnect.test.ts        | 21 ++++++++++--
 packages/dashboard/src/planning.ts                 | 11 ++++---
 scripts/lib/dashboard-curated-skiplist.json        | 16 ---------
 7 files changed, 58 insertions(+), 37 deletions(-)

Fusion-Task-Id: FN-6443

Fusion-Task-Lineage: 953534e7-6857-4cd5-9a5a-5772354cac5a
2026-06-14 15:29:35 -07:00
gsxdsm
a6d5efce27 FN-6442: rescue dashboard hook tests from skiplist
Rescues three dashboard hook test files by replacing brittle coverage with stable assertions and removing their skiplist entries.

- Stub global localStorage failures directly for quick chat persistence coverage.
- Remove the placeholder skipped useChatRooms pagination test.
- Rework useTaskDiffStats stepVersion tests around active worktree cache behavior.
- Drop the rescued dashboard hook tests from the curated skiplist.

Files changed:
 .../__tests__/quickChatLastSessionStorage.test.ts  | 23 ++++--
 .../app/hooks/__tests__/useChatRooms.test.ts       |  6 --
 .../app/hooks/__tests__/useTaskDiffStats.test.ts   | 94 ++++++++++++----------
 scripts/lib/dashboard-curated-skiplist.json        | 12 ---
 4 files changed, 67 insertions(+), 68 deletions(-)

Fusion-Task-Id: FN-6442
Fusion-Task-Lineage: f2fe4791-1216-420d-9734-3938287779da
2026-06-14 15:29:35 -07:00
gsxdsm
175aab15ac FN-6441: rescue and quarantine dashboard component tests
Rescue passing dashboard component tests and move still-failing orphaned tests under the quarantine ratchet.

- Remove the FN-6441 dashboard component batch from the curated skip-list.
- Keep passing PlanningModeModal, TaskReviewTab, and TerminalModal coverage documented in app backfill.
- Register remaining failing dashboard component/CSS tests in the dated quarantine ledger and Vitest excludes.
- Teach the dashboard curated inventory guard to accept dated quarantine entries without returning them to the skip-list.

Files changed:
 .../PlanningModeModal.ui-interactions.test.tsx     |  9 ++-
 .../components/__tests__/TaskReviewTab.test.tsx    |  4 ++
 .../components/__tests__/TerminalModal.test.tsx    |  4 ++
 packages/dashboard/vitest.config.ts                | 14 +++++
 scripts/__tests__/check-test-inventory.test.mjs    | 32 +++++++++++
 scripts/check-test-inventory.mjs                   | 67 +++++++++++++++++-----
 scripts/lib/dashboard-curated-skiplist.json        | 56 ------------------
 scripts/lib/test-quarantine.json                   | 58 ++++++++++++++++++-
 8 files changed, 172 insertions(+), 72 deletions(-)

Fusion-Task-Id: FN-6441

Fusion-Task-Lineage: 19065d1f-31eb-45fc-a6ce-083773b094e4
2026-06-14 15:29:35 -07:00
gsxdsm
0b047d4fc8 FN-6440: replace dashboard skip-list placeholders
Dashboard curated-gate skip-list entries now point to actionable tracking work.

- Replace placeholder FN-TBD references with concrete Fusion task IDs grouped by affected dashboard area.
- Document the requirement that skip-list reasons cite real tracking tasks unless entries are removed after rescue.
- Preserve the standalone build-output exception while making the remaining skip-list ownership actionable.

Files changed:
 docs/testing.md                             |  1 +
 scripts/lib/dashboard-curated-skiplist.json | 66 ++++++++++++++---------------
 2 files changed, 34 insertions(+), 33 deletions(-)

Fusion-Task-Id: FN-6440
Fusion-Task-Lineage: abf1cef2-8199-4746-b8ec-8b5487eb1ecc
2026-06-14 15:29:35 -07:00
gsxdsm
8caced6b57 FN-6436: remove CLI Vitest timeout appeasement
Remove the CLI extension integration suite's hidden Vitest timeout override while keeping its explicit build-only allowance.

- Replace the file-wide 30s Vitest test and hook timeout override with a scoped comment documenting default caps.
- Derive the extension bundle path from the CLI root in the test file.
- Use a SQLite collision trigger instead of a TaskStore prototype spy and fix the agent delete tool payload.
- Clear the timeout appeasement allowlist now that the CLI test exemption is gone.

Files changed:
 .../src/__tests__/extension-integration.test.ts    | 25 ++++++++++++++++------
 .../lib/test-timeout-appeasement-allowlist.json    |  8 +------
 2 files changed, 20 insertions(+), 13 deletions(-)

Fusion-Task-Id: FN-6436
Fusion-Task-Lineage: 670f41ea-f98f-400c-aa16-6a1cbb1e9bea
2026-06-14 15:29:35 -07:00
gsxdsm
1f660f3e8a FN-6434: block Vitest timeout appeasement
Add a fast guard that rejects Vitest timeout bumps in tracked test files.

- Add a test-timeout appeasement scanner with a temporary allowlist for legacy exemptions.
- Run the scanner in pretest, pretest:full, and test:gate so merge gates catch timeout bumps.
- Cover the scanner behavior with node:test cases and document the policy/remediation path.

Files changed:
 docs/testing.md                                    |   6 ++
 package.json                                       |   6 +-
 .../check-no-test-timeout-appeasement.test.mjs     |  49 +++++++++
 scripts/check-no-test-timeout-appeasement.mjs      | 119 +++++++++++++++++++++
 .../lib/test-timeout-appeasement-allowlist.json    |  10 ++
 5 files changed, 187 insertions(+), 3 deletions(-)

Fusion-Task-Id: FN-6434

Fusion-Task-Lineage: deb46a27-b0c9-4644-b8bb-34ce98e7acde
2026-06-14 15:29:35 -07:00
gsxdsm
93b2288d37 FN-6433: rescue non-CLI quarantined tests
Rescue and ratchet non-CLI quarantine state across engine, core, and dashboard suites.

- Empty the core, dashboard, and engine quarantine exclude arrays after proving rescued suites run under package load.
- Replace broad AI-merge active-session registry cleanup with path-scoped unregistering in engine tests.
- Delete the duplicate soft-delete blocker residue suite and clear the quarantine ledger.
- Document the non-CLI quarantine sweep pattern for future rescues.

Files changed:
 docs/testing.md                                    |   2 +
 packages/core/vitest.config.ts                     |  10 +-
 packages/dashboard/vitest.config.ts                |  12 +-
 .../merger-ai-cleanup-active-session.test.ts       |  20 +++-
 .../engine/src/__tests__/merger-ai-cleanup.test.ts |   5 +-
 .../soft-delete-blocker-residue.test.ts            | 128 ---------------------
 packages/engine/vitest.config.ts                   |  12 +-
 scripts/lib/test-quarantine.json                   |  65 +----------
 8 files changed, 40 insertions(+), 214 deletions(-)

Fusion-Task-Id: FN-6433

Fusion-Task-Lineage: 18c37475-e6e1-4358-9350-eca65cf53b68
2026-06-14 15:29:35 -07:00
gsxdsm
2fc6d4d667 FN-6430: rescue CLI quarantine tests
Rescue the quarantined CLI suites by fixing shared test isolation instead of extending timeouts.

- Remove rescued CLI files from the quarantine ledger and Vitest exclude list while preserving an empty rescue ledger comment.
- Tighten Vitest HOME isolation to reject inherited worker homes and sweep legacy top-level fn-test-home roots with bounded cleanup.
- Reset affected CLI fixtures, close research stores, and narrow the slow mission store seam so rescued tests run on default timeouts.
- Document the CLI shared-fixture rescue pattern for future quarantine recoveries.

Files changed:
 docs/testing.md                                    |   2 +
 .../cli/src/__tests__/extension-task-tools.test.ts |   7 +-
 packages/cli/src/__tests__/extension.test.ts       | 117 +++++++++----------
 .../cli/src/commands/__tests__/mission.test.ts     |  16 ++-
 packages/cli/src/commands/__tests__/plugin.test.ts |   5 +
 packages/cli/vitest.config.ts                      |  52 ++-------
 packages/core/src/__test-utils__/vitest-setup.ts   |  25 ++++-
 .../core/src/__test-utils__/vitest-teardown.ts     |  28 ++++-
 .../vitest-teardown-worker-root-cleanup.test.ts    |  15 +++
 scripts/lib/test-quarantine.json                   | 124 +--------------------
 10 files changed, 157 insertions(+), 234 deletions(-)

Fusion-Task-Id: FN-6430

Fusion-Task-Lineage: 943b73b4-5f92-4703-8e93-0ae3207eb63c
2026-06-14 15:29:35 -07:00
gsxdsm
ffaef67549 FN-6421: quarantine flaky CLI integration tests
Quarantine load-sensitive CLI vitest suites instead of widening default test timeouts.

- Add extension agent provisioning and serve suites to the CLI vitest quarantine list.
- Record quarantine ledger entries with standalone pass evidence and deletion-clock dates.
- Keep FNXC rationale next to the excluded CLI tests for future cleanup.

Files changed:
 packages/cli/vitest.config.ts    |  6 ++++++
 scripts/lib/test-quarantine.json | 10 ++++++++++
 2 files changed, 16 insertions(+)

Fusion-Task-Id: FN-6421

Fusion-Task-Lineage: de6db6a5-aad7-4e25-9bf4-7734dc6d8d05
2026-06-13 20:15:54 -07:00
gsxdsm
85a25b3598 FN-6416: document heap test quarantine context
Clarify why the heap-wrapper timeout test remains quarantined under the deletion ratchet.

- Update the dashboard vitest quarantine comment to reference the heap wrapper exclusion requirement.
- Expand the quarantine ledger reason with the FN-6416 context and leaked temp-worker cleanup observation.

Files changed:
 packages/dashboard/vitest.config.ts | 4 ++--
 scripts/lib/test-quarantine.json    | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

Fusion-Task-Id: FN-6416

Fusion-Task-Lineage: 627c1fd9-60d8-415d-88b5-a4e946de0110
2026-06-13 19:53:51 -07:00
gsxdsm
066c919ace test: quarantine slow and flaky test lanes
Move observed load-sensitive and slow tests out of the default lanes per the deletion-ratchet policy, keep the quarantine ledger in sync, and preserve corrupt databases when recovery fails during verification.
2026-06-13 19:22:00 -07:00
gsxdsm
80fbcdd5a3 FN-6396: harden test worker temp cleanup
Prevent stale Fusion test worker roots from leaking across merge-gate runs.

- Add per-run tokens to worker-root owner markers and pruning checks.
- Remove self-minted fallback worker roots during Vitest exit cleanup.
- Cover stale pid reuse, markerless redir roots, and SIGKILL-style orphan pruning with regression tests.

Files changed:
 packages/core/src/__test-utils__/vitest-setup.ts   | 83 +++++++++++++++++++---
 .../core/src/__test-utils__/vitest-teardown.ts     |  8 ++-
 .../vitest-teardown-worker-root-cleanup.test.ts    | 19 ++++-
 scripts/__tests__/test-changed.test.mjs            | 74 ++++++++++++++++++-
 scripts/test-changed.mjs                           | 76 ++++++++++++++++----
 5 files changed, 233 insertions(+), 27 deletions(-)

Fusion-Task-Id: FN-6396

Fusion-Task-Lineage: 711d966d-c70e-4cd7-81cd-accd18f17202
2026-06-13 16:30:28 -07:00
gsxdsm
7fa8c4e5f4 FN-6397: fix mobile workflow board fill chain
Ensure workflow-mode boards fill the mobile viewport while preserving internal column scrolling.

- Reassert the mobile flex fill chain for project content, workflow board wrappers, and workflow columns.
- Extend mobile board regression coverage across empty/populated workflow states with and without the toolbar.
- Document the workflow board collapse root cause and add a transient temp-dir isolation guard test.

Files changed:
 docs/dashboard-guide.md                            |   1 +
 .../ui-bugs/mobile-workflow-board-fill-chain.md    |  61 +++++++++++++
 .../__tests__/board-mobile-initial-render.test.tsx | 101 +++++++++++++++++++++
 packages/dashboard/app/styles.css                  |  52 +++++++++++
 scripts/__tests__/check-test-isolation.test.mjs    |  23 +++++
 scripts/check-test-isolation.mjs                   |  12 ++-
 6 files changed, 249 insertions(+), 1 deletion(-)

Fusion-Task-Id: FN-6397
Fusion-Task-Lineage: ddee773d-6d3a-46d1-b1c7-f601a961365e
2026-06-13 16:30:28 -07:00
gsxdsm
b4541a97f3 FN-6391: restore routes settings test coverage
Restore the rescued dashboard routes settings test to the active suite.

- Remove routes-settings from the dashboard Vitest quarantine excludes.
- Delete its quarantine ledger entry now that the test is no longer quarantined.

Files changed:
 packages/dashboard/vitest.config.ts | 1 -
 scripts/lib/test-quarantine.json    | 5 -----
 2 files changed, 6 deletions(-)

Fusion-Task-Id: FN-6391

Fusion-Task-Lineage: 41068faa-f1e7-4f7b-a8cd-fc123611ba42
2026-06-13 16:30:28 -07:00
gsxdsm
97a49ac196 FN-6382: unquarantine stabilized flaky tests
Restore quarantined tests by fixing their flaky harness seams instead of extending the deletion ratchet.

- Mark active Vitest worker roots and skip live worker roots during prune cleanup.
- Make bubblewrap backend coverage deterministic with an injectable runner and restore it to the engine gate.
- Remove rescued core and bubblewrap tests from the quarantine ledger and Vitest excludes.

Files changed:
 .../core/src/__test-utils__/vitest-teardown.ts     | 10 +++++-
 packages/core/vitest.config.ts                     |  8 +----
 .../__tests__/sandbox/bubblewrap-backend.test.ts   | 29 +++++++++------
 packages/engine/src/sandbox/bubblewrap-backend.ts  |  9 +++--
 packages/engine/vitest.config.ts                   |  1 -
 scripts/__tests__/test-changed.test.mjs            | 23 ++++++++++++
 scripts/lib/test-quarantine.json                   | 34 ++----------------
 scripts/test-changed.mjs                           | 41 ++++++++++++++++++++++
 8 files changed, 102 insertions(+), 53 deletions(-)

Fusion-Task-Id: FN-6382

Fusion-Task-Lineage: 018dc7ac-1ef1-495e-a5fd-96ea44fcd43b
2026-06-13 11:39:37 -07:00
gsxdsm
1fddc7ace7 FN-6373: fix script test lane enumeration
Align script-test infrastructure with the current quality-test runner and AGENTS invariants.

- Expand run-quality-tests delegator scripts to concrete package quality lanes for dashboard shard planning.
- Cover grouped delegator expansion and non-delegating fallback behavior in ci-test-shard tests.
- Remove obsolete AGENTS button-freeze anchors from the invariant test.

Files changed:
 scripts/__tests__/agents-md-invariants.test.mjs |  2 --
 scripts/__tests__/ci-test-shard.test.mjs        | 32 +++++++++++++++++++++++++
 scripts/ci-test-shard.mjs                       | 28 ++++++++++++++++++++++
 3 files changed, 60 insertions(+), 2 deletions(-)

Fusion-Task-Id: FN-6373

Fusion-Task-Lineage: 5d833e17-c483-4a5b-818d-ae2f86a45084
2026-06-13 10:01:01 -07:00
gsxdsm
73be9f8c5d FN-6371: retry stale test worker pruning
Adds bounded retry handling so stale Fusion test temp roots are reclaimed instead of leaking after transient removal failures.

- Share prefix-scoped pruning between isolated HOME and worker temp roots.
- Retry rm-rf on transient busy/non-empty failures and treat ENOENT as successful cleanup.
- Warn once with bounded child diagnostics after persistent prune failures.
- Cover worker and home pruning retry, failure, and ENOENT behavior in script tests.

Files changed:
 scripts/__tests__/test-changed.test.mjs | 118 ++++++++++++++++++++++++++++++++
 scripts/test-changed.mjs                |  84 ++++++++++++++---------
 2 files changed, 168 insertions(+), 34 deletions(-)

Fusion-Task-Id: FN-6371

Fusion-Task-Lineage: a81e6849-5eb0-4bc0-8030-9f8eaed4e35a
2026-06-13 09:49:23 -07:00
gsxdsm
6941b7af1e FN-6354: allow idle task chat messages
Task-detail Chat now accepts guidance even when no steerable session is active and queues it for the next run.

- Keep the task chat composer enabled whenever there is draft text and no send is in flight.
- Replace the blocking no-session hint with active-session versus queued-for-next-session copy.
- Extend TaskChatTab coverage across idle, paused, inactive CLI, and send-in-flight states.
- Quarantine the unrelated flaky dashboard settings route test observed during broad verification.

Files changed:
 packages/dashboard/app/components/TaskChatTab.tsx  |  21 ++--
 .../app/components/__tests__/TaskChatTab.test.tsx  | 135 +++++++++++++++++----
 packages/dashboard/vitest.config.ts                |   5 +-
 scripts/lib/test-quarantine.json                   |   5 +
 4 files changed, 133 insertions(+), 33 deletions(-)

Fusion-Task-Id: FN-6354

Fusion-Task-Lineage: b0f0d033-bb4d-4eaa-a15d-f06b82643ade
2026-06-13 08:20:31 -07:00
gsxdsm
10972bbdce FN-6360: clean up leaked test worker temp roots
Ensure test isolation removes stale worker temp roots after interrupted or busy Vitest runs.

- Add bounded retry cleanup for Vitest worker roots during teardown.
- Prune orphaned fusion-test-workers-* directories before changed-test isolation checks.
- Cover worker-root retry and pruning behavior with targeted tests.

Files changed:
 .../core/src/__test-utils__/vitest-teardown.ts     | 50 ++++++++++--
 .../vitest-teardown-worker-root-cleanup.test.ts    | 88 ++++++++++++++++++++++
 scripts/__tests__/test-changed.test.mjs            | 33 ++++++++
 scripts/test-changed.mjs                           | 32 ++++++++
 4 files changed, 196 insertions(+), 7 deletions(-)

Fusion-Task-Id: FN-6360

Fusion-Task-Lineage: d537941d-dd58-403a-a82e-f0aeee9c1eb0
2026-06-13 08:11:46 -07:00
gsxdsm
06e1ee7565 FN-6334: rescue db recovery corruption test
Rescues the database recovery corruption test by reducing its fixture size and removing its quarantine.

- Reduce recovery test fixture rows so sqlite3 .recover is not overfed while still corrupting a B-tree page.
- Re-enable packages/core/src/__tests__/db.test.ts in the core Vitest config.
- Remove the db recovery test entry from the quarantine ledger.

Files changed:
 packages/core/src/__tests__/db.test.ts | 5 +++--
 packages/core/vitest.config.ts         | 1 -
 scripts/lib/test-quarantine.json       | 5 -----
 3 files changed, 3 insertions(+), 8 deletions(-)

Fusion-Task-Id: FN-6334

Fusion-Task-Lineage: c4555976-fe98-4f25-a1b5-e70bfd991b16
2026-06-13 03:26:52 -07:00
gsxdsm
3c751f2853 FN-6326: quarantine deferred-hook title summarization test
Quarantine the flaky deferred-hook title summarization coverage while preserving focused store-create coverage.

- Extract the deferred task-created hook summarization test into its own file.
- Exclude the extracted test file from the core Vitest suite.
- Record the flake investigation and quarantine rationale in the test quarantine ledger.

Files changed:
 .../store-create-summarize-deferred-hook.test.ts   | 67 ++++++++++++++++++++++
 packages/core/src/__tests__/store-create.test.ts   | 44 --------------
 packages/core/vitest.config.ts                     |  1 +
 scripts/lib/test-quarantine.json                   |  5 ++
 4 files changed, 73 insertions(+), 44 deletions(-)

Fusion-Task-Id: FN-6326

Fusion-Task-Lineage: a37189b3-b88b-483f-b2bf-471fde806b35
2026-06-12 23:57:43 -07:00
gsxdsm
508551c593 FN-6299: allow archiving tasks from any column
Allow task archiving from every live board column while preserving a safe restore target.

- Record the pre-archive column and restore archived tasks to that column, downgrading active execution columns to todo.
- Expose archive actions and CLI/tooling documentation for all non-archived tasks.
- Expand store, dashboard, and route tests for archive/unarchive behavior across columns.
- Quarantine the flaky core db test observed during verification and add the published package changeset.

Files changed:
 .changeset/fn-6299-archive-any-column.md           |  5 ++
 docs/cli-reference.md                              |  4 ++
 docs/task-management.md                            |  9 +--
 .../cli/skill/fusion/references/extension-tools.md |  6 +-
 .../skill/fusion/references/fusion-capabilities.md |  4 +-
 packages/cli/src/bin.ts                            |  2 +-
 packages/cli/src/extension.ts                      | 18 ++---
 .../src/__tests__/store-archive-search.test.ts     | 76 +++++++++++++++++-----
 packages/core/src/store.ts                         | 61 ++++++++++++-----
 packages/core/src/types.ts                         |  4 ++
 packages/core/vitest.config.ts                     |  1 +
 packages/dashboard/app/components/TaskCard.tsx     |  2 +-
 .../dashboard/app/components/TaskDetailModal.tsx   |  2 +-
 .../app/components/__tests__/TaskCard.test.tsx     | 35 +++++++++-
 ...etailModal.responsive-and-dependencies.test.tsx | 26 ++++++++
 .../src/__tests__/routes-tasks-ops.test.ts         |  8 +--
 .../src/routes/register-task-workflow-routes.ts    |  9 +--
 scripts/lib/test-quarantine.json                   |  5 ++
 18 files changed, 215 insertions(+), 62 deletions(-)

Fusion-Task-Id: FN-6299

Fusion-Task-Lineage: fd5b5c12-35b8-4843-ab4e-14608d1ea395
2026-06-12 21:50:49 -07:00
gsxdsm
167f9b0542 FN-6324: allow opted-in engineer backlog auto-claim
Engineer backlog auto-claim now respects an explicit opt-in while keeping the default executor-only behavior.

- Add engineerBacklogAutoClaim settings and runtime overrides for backlog pickup role checks.
- Update heartbeat auto-claim filtering, logs, and no-task prompt guidance for opted-in engineer agents.
- Cover executor/default engineer/opted-in engineer routing with core and heartbeat tests.
- Document the setting and record quarantined unrelated temp-root flakes seen during verification.

Files changed:
 .changeset/FN-6324-engineer-backlog-auto-claim.md  |  5 ++
 docs/agents.md                                     |  3 +
 docs/settings-reference.md                         |  1 +
 .../core/src/__tests__/agent-role-policy.test.ts   | 33 +++++++++-
 packages/core/src/agent-role-policy.ts             | 11 +++-
 packages/core/src/settings-schema.ts               |  1 +
 packages/core/src/types.ts                         |  4 ++
 packages/core/vitest.config.ts                     |  6 ++
 .../src/__tests__/heartbeat-executor.test.ts       | 70 ++++++++++++++++++++++
 packages/engine/src/agent-heartbeat.ts             | 65 +++++++++++++++-----
 scripts/lib/test-quarantine.json                   | 20 +++++++
 11 files changed, 199 insertions(+), 20 deletions(-)

Fusion-Task-Id: FN-6324

Fusion-Task-Lineage: 4d124d98-4ad1-44ce-a76c-f1db3199b3c6
2026-06-12 19:45:37 -07:00
gsxdsm
e17e8b34f8 FN-6319: quarantine flaky engine tests
Quarantine unrelated engine test flakes so the gate avoids known unstable fixtures.

- Add the soft-delete blocker residue reliability test to the quarantine ledger and reliability interaction exclusions.
- Add the bubblewrap sandbox backend test to the quarantine ledger and engine-core exclusions.

Files changed:
 packages/engine/vitest.config.ts |  6 +++++-
 scripts/lib/test-quarantine.json | 10 ++++++++++
 2 files changed, 15 insertions(+), 1 deletion(-)

Fusion-Task-Id: FN-6319
Fusion-Task-Lineage: 9a47ae20-76b8-47d8-8858-f4fe51ea807e
2026-06-12 17:47:02 -07:00
gsxdsm
d73d8f4036 FN-6241: rescue quarantined engine tests
Rescue quarantined engine tests by adding deterministic seams and fake-timer flushing.\n\n- Add an injectable staged-files reader for squash file-scope invariant checks while preserving the production git-backed default.\n- Update file-scope invariant tests to use the deterministic staged-files seam instead of child_process mocking.\n- Stabilize project engine reconciliation retry coverage by avoiding mixed real timers in fake-timer tests.\n- Remove the rescued engine tests from Vitest excludes and the quarantine ledger.\n\nFiles changed:\n .../__tests__/merger-file-scope-invariant.test.ts  | 39 ++++++++++++----------\n .../src/__tests__/project-engine-manager.test.ts   | 18 +++++-----\n packages/engine/src/merger.ts                      | 22 ++++++++----\n packages/engine/vitest.config.ts                   |  3 --\n scripts/lib/test-quarantine.json                   | 10 ------\n 5 files changed, 48 insertions(+), 44 deletions(-)

Fusion-Task-Id: FN-6241

Fusion-Task-Lineage: c1c0d40c-7581-4bcf-8244-688ea04d12b9
2026-06-11 22:17:55 -07:00
gsxdsm
143a724a99 FN-6239: map workflow merge nodes in the editor
Render workflow-owned merge and recovery IR nodes with existing dashboard editor shapes.

- Map merge gate, retry, recovery, and branch-group IR node kinds to supported editor node types.
- Update the workflow mapping assertion for merge-attempt failure routing.
- Quarantine the flaky QuickEntryBox dashboard test without reintroducing the rescued self-healing quarantine entry.

Files changed:
 .../app/components/__tests__/WorkflowNodeEditor.test.tsx    |  2 +-
 packages/dashboard/app/components/workflow-flow-mapping.ts  | 13 +++++++++++++
 packages/dashboard/vitest.config.ts                         |  2 +-
 scripts/lib/test-quarantine.json                            |  5 +++++
 4 files changed, 20 insertions(+), 2 deletions(-)

Fusion-Task-Id: FN-6239

Fusion-Task-Lineage: 2ab31bd4-6fd7-4b71-b7cd-6cc99cce3bbb
2026-06-11 21:22:06 -07:00
gsxdsm
de6e493e2a FN-6238: stabilize self-healing test and quarantine merger AI suite
Rescue the already-merged self-healing real-git test while quarantining a separate flaky merger AI suite.

- Call the already-merged recovery path directly in the rescued test and assert specific audit event types instead of exact total counts.
- Remove self-healing-already-merged.real-git.test.ts from the engine default quarantine list and ledger.
- Add merger-ai.test.ts to the engine default quarantine list and quarantine ledger with FN-6238 evidence.

Files changed:
 .../self-healing-already-merged.real-git.test.ts     | 20 +++++++++++++-------
 packages/engine/vitest.config.ts                     |  2 +-
 scripts/lib/test-quarantine.json                     | 10 +++++-----
 3 files changed, 19 insertions(+), 13 deletions(-)

Fusion-Task-Id: FN-6238

Fusion-Task-Lineage: b04451e3-fbd3-4dee-aca2-f542d1036d20
2026-06-11 21:10:00 -07:00
gsxdsm
02ae5a9340 FN-6213: prevent keyboard from forcing mobile layout
Keep tablet and desktop layouts stable when the virtual keyboard shrinks viewport height.

- Gate short-height mobile detection on phone-class physical screen size.
- Reuse the shared mobile viewport helper across board, terminal, and workflow editor layout decisions.
- Cover tablet keyboard and landscape phone viewport behavior with regression tests and document the UI bug pattern.
- Preserve quarantine exclusions while resolving the squash merge conflict.

Files changed:
 .../ui-bugs/tablet-keyboard-viewport-mode-flip.md  | 54 +++++++++++++
 packages/dashboard/app/components/Board.tsx        |  4 +-
 .../dashboard/app/components/SessionTerminal.tsx   | 16 +---
 .../app/components/WorkflowNodeEditor.tsx          | 41 +++++-----
 .../__tests__/SessionTerminal.mobile.test.tsx      | 57 ++++++++++----
 .../app/hooks/__tests__/useViewportMode.test.ts    | 90 +++++++++++++++++++++-
 packages/dashboard/app/hooks/useViewportMode.ts    | 26 ++++++-
 packages/engine/vitest.config.ts                   |  1 +
 scripts/lib/test-quarantine.json                   |  5 ++
 9 files changed, 239 insertions(+), 55 deletions(-)

Fusion-Task-Id: FN-6213

Fusion-Task-Lineage: 01af6489-8c34-4318-9cff-1bceb1fa5a5d
2026-06-11 19:37:25 -07:00
gsxdsm
1eb256bbf6 FN-6207: quarantine active-session cleanup pruning test
Quarantines the flaky active-session pruning coverage without hiding the rest of merger cleanup tests.

- Move the active-session pruning scenario into its own focused test file.
- Keep the broader merger cleanup suite in the reliability project.
- Point the quarantine ledger and engine default exclude at only the isolated flaky test.

Files changed:
 .../merger-ai-cleanup-active-session.test.ts       | 60 ++++++++++++++++++++++
 .../engine/src/__tests__/merger-ai-cleanup.test.ts | 22 ++------
 packages/engine/vitest.config.ts                   |  2 +-
 scripts/lib/test-quarantine.json                   |  4 +-
 4 files changed, 66 insertions(+), 22 deletions(-)

Fusion-Task-Id: FN-6207

Fusion-Task-Lineage: b5e806cb-aec8-4893-83ef-d27164250a5c
2026-06-11 19:18:05 -07:00
gsxdsm
39b2478f01 FN-6227: handle non-empty worktree removals
Recover native worktree cleanup when git refuses to remove a non-empty worktree.

- Detect recoverable git worktree remove errors and fall back to filesystem removal plus admin pruning.
- Add a worktree remove fallback audit event for recovery visibility.
- Cover non-empty removal recovery with unit and real-git regression tests.
- Keep flaky-test quarantine exclusions merged with current main.

Files changed:
 docs/architecture.md                               |   4 +-
 ...tree-remove-non-empty-recovery.real-git.test.ts | 139 +++++++++++++++++++++
 .../engine/src/__tests__/worktree-backend.test.ts  | 113 ++++++++++++++++-
 packages/engine/src/run-audit.ts                   |   1 +
 packages/engine/src/worktree-backend.ts            |  57 ++++++++-
 packages/engine/vitest.config.ts                   |   1 +
 scripts/lib/test-quarantine.json                   |   5 +
 7 files changed, 311 insertions(+), 9 deletions(-)

Fusion-Task-Id: FN-6227

Fusion-Task-Lineage: 98673303-8109-4fe8-8d9f-eb867fb28bdd
2026-06-11 16:15:07 -07:00
gsxdsm
3e69d3990d FN-6244: protect active AI merge worktrees
Ensure AI merge cleanup only reaps stale, inactive temp worktrees.

- Register live AI merge clean-room paths in the active session registry while merges run.
- Add a minimum temp-worktree reap age and conservative lookup-error handling to sweep and prune paths.
- Expand cleanup tests and release the repaired AI merge cleanup test from quarantine.

Files changed:
 docs/architecture.md                               |  2 +-
 .../engine/src/__tests__/merger-ai-cleanup.test.ts | 38 ++++++++++++++--
 .../__tests__/self-healing-tempdir-sweep.test.ts   | 52 +++++++++++++++++++---
 packages/engine/src/active-session-registry.ts     |  2 +-
 packages/engine/src/merger-ai.ts                   | 29 +++++++++++-
 packages/engine/src/self-healing.ts                | 28 +++++++++---
 packages/engine/vitest.config.ts                   |  1 -
 scripts/lib/test-quarantine.json                   |  5 ---
 8 files changed, 132 insertions(+), 25 deletions(-)

Fusion-Task-Id: FN-6244

Fusion-Task-Lineage: 5c8ced12-d38f-4e45-9ea0-119b3236a2cb
2026-06-11 15:54:49 -07:00
gsxdsm
bdf813654e fix: resolve botched stash-pop conflict from 245e1280e
- scripts/lib/test-quarantine.json: remove stray <<<<<<< / ======= / >>>>>>> stash markers that broke JSON parsing
- packages/core/src/__test-utils__/vitest-setup.ts: restore \r?\n regex and \n template escapes; drop stray extra brace
2026-06-11 12:24:16 -07:00
gsxdsm
245e1280ed Fix agents 2026-06-11 12:22:02 -07:00
gsxdsm
2add48c8b6 FN-6255: redirect tmpdir mkdtemp calls in tests
Keep test-created temp directories under the Fusion worker root.

- Redirect fs.mkdtemp and fs.promises.mkdtemp prefixes rooted at the OS temp dir into per-process worker sinks.
- Sweep stale redirect sinks and clean current-process sinks on exit.
- Add regression coverage for sync, async, realpath, nested, and Buffer prefix behavior.
- Remove the restored merger file-scope invariant test from quarantine.

Files changed:
 packages/core/src/__test-utils__/vitest-setup.ts   | 119 +++++++++++++++++++--
 .../__tests__/vitest-setup-tmp-redirect.test.ts    |  68 ++++++++++++
 scripts/lib/test-quarantine.json                   |   5 -
 3 files changed, 181 insertions(+), 11 deletions(-)

Fusion-Task-Id: FN-6255

Fusion-Task-Lineage: 4cc855c6-37dd-4dfb-a545-1fd1885779c4
2026-06-11 12:18:09 -07:00
gsxdsm
36f5ecdaba FN-6226: skip fast-mode workflow graph validation nodes
Fast execution mode now bypasses custom pre-merge workflow graph validation consistently.

- Skip custom graph prompt, script, and gate nodes for fast-mode tasks while preserving human waits and CLI-agent work.
- Add regression coverage for fast-mode custom workflow behavior and standard-mode/null-mode validation.
- Document fast-mode workflow graph bypass behavior and record the published package changeset.
- Quarantine the unrelated self-healing real-git flake from the engine core gate.

Files changed:
 .changeset/FN-6226-fast-mode-workflows.md          |   5 +
 docs/task-management.md                            |   6 +-
 docs/workflow-steps.md                             |   2 +-
 .../__tests__/executor-fast-mode-workflows.test.ts | 280 +++++++++++++++++++++
 packages/engine/src/executor.ts                    |  16 ++
 packages/engine/vitest.config.ts                   |   1 +
 scripts/lib/test-quarantine.json                   |   5 +
 7 files changed, 313 insertions(+), 2 deletions(-)

Fusion-Task-Id: FN-6226

Fusion-Task-Lineage: 68d88a7a-e157-4d18-a2c2-9065946066de
2026-06-11 09:21:23 -07:00
gsxdsm
648d3598e0 FN-6206: quarantine flaky engine tests
Move undocumented flaky engine tests into the formal quarantine path.

- add quarantine ledger entries for flaky engine test files observed under concurrent/full-suite load
- exclude the quarantined engine test files from vitest projects so they no longer run in gate and reliability pools
- remove the undocumented it.skip markers by quarantining at the file/config level instead

Files changed:
 .../__tests__/merger-file-scope-invariant.test.ts  |  4 ++--
 .../src/__tests__/project-engine-manager.test.ts   |  2 +-
 packages/engine/vitest.config.ts                   | 10 ++++++++--
 scripts/lib/test-quarantine.json                   | 23 +++++++++++++++++++++-
 4 files changed, 33 insertions(+), 6 deletions(-)

Fusion-Task-Id: FN-6206

Fusion-Task-Lineage: 8d88725e-1e92-4a06-aaa6-be34287e613a
2026-06-11 09:21:23 -07:00
gsxdsm
5c42ff1314 FN-6198: unquarantine self-healing db corruption test
Restore the self-healing DB corruption test to the default engine suite.

- remove the engine vitest exclude for self-healing-db-corruption.test.ts
- clear the quarantine ledger entry for the restored test

Files changed:
 packages/engine/vitest.config.ts | 1 -
 scripts/lib/test-quarantine.json | 8 +-------
 2 files changed, 1 insertion(+), 8 deletions(-)

Fusion-Task-Id: FN-6198

Fusion-Task-Lineage: 2466b040-956d-4138-89d5-137d1721081c
2026-06-10 10:00:21 -07:00
gsxdsm
ae63cd9008 FN-6195: isolate and quarantine flaky db-corruption test
Stop the self-healing DB corruption test from leaking into unrelated tmpdir state while quarantining the known flake.

- mock node:os tmpdir usage so the test runs inside a per-test sandbox and cleans it up after each case
- add the flaky self-healing DB corruption test to the engine default exclude list
- record the quarantine entry and failure context in scripts/lib/test-quarantine.json

Files changed:
 .../__tests__/self-healing-db-corruption.test.ts   | 22 ++++++++++++++++++++++
 packages/engine/vitest.config.ts                   |  1 +
 scripts/lib/test-quarantine.json                   |  8 +++++++-
 3 files changed, 30 insertions(+), 1 deletion(-)

Fusion-Task-Id: FN-6195

Fusion-Task-Lineage: 60f7f6ca-d14d-42b4-b47e-0644a25e64ae
2026-06-10 08:25:31 -07:00
gsxdsm
529851a8fe FN-6191: unquarantine WorkflowNodeEditor inspector test
Rescue the WorkflowNodeEditor quarantine by waiting for inspector fields before asserting.

- make the foreach inspector Mode assertion wait for the panel to finish rendering
- wait for the code node Source and Timeout inputs before editing them to avoid the inspector race
- remove WorkflowNodeEditor.test.tsx from the dashboard quarantine config and ledger

Files changed:
 .../app/components/__tests__/WorkflowNodeEditor.test.tsx          | 6 +++---
 packages/dashboard/vitest.config.ts                               | 4 +---
 scripts/lib/test-quarantine.json                                  | 8 +-------
 3 files changed, 5 insertions(+), 13 deletions(-)

Fusion-Task-Id: FN-6191

Fusion-Task-Lineage: 57fb1dcc-3e50-4ba1-8488-fcff204c1d76
2026-06-10 07:11:19 -07:00
gsxdsm
235ad8f9ad FN-6156: rescue board workflow toolbar test
Rescue the dashboard board workflow toolbar coverage and rotate the active quarantine.

- wait for the workflow toolbar itself before asserting board workflow actions in Board.test.tsx
- remove Board.test.tsx from the dashboard vitest quarantine list
- quarantine WorkflowNodeEditor.test.tsx with an updated ledger entry for the newly observed flake

Files changed:
 packages/dashboard/app/components/__tests__/Board.test.tsx | 4 ++--
 packages/dashboard/vitest.config.ts                        | 4 +++-
 scripts/lib/test-quarantine.json                           | 4 ++--
 3 files changed, 7 insertions(+), 5 deletions(-)

Fusion-Task-Id: FN-6156

Fusion-Task-Lineage: c91c3542-fdec-426a-8e63-3edb3f5d34e5
2026-06-09 20:55:22 -07:00
gsxdsm
7901607b68 FN-6154: let the mobile node editor fill the screen
Let the mobile workflow node editor inspector use the full available height.

- remove the mobile inspector max-height cap so the editor stage can expand full screen
- update the WorkflowNodeEditor mobile CSS contract test to assert the new max-height rule
- quarantine the unrelated flaky dashboard Board test and record it in the quarantine ledger

Files changed:
 packages/dashboard/app/components/WorkflowNodeEditor.css          | 1 +
 .../app/components/__tests__/WorkflowNodeEditor.css.test.ts       | 1 +
 packages/dashboard/vitest.config.ts                               | 2 +-
 scripts/lib/test-quarantine.json                                  | 8 +++++++-
 4 files changed, 10 insertions(+), 2 deletions(-)

Fusion-Task-Id: FN-6154

Fusion-Task-Lineage: 14928ad1-dc84-461b-9adf-b5ee079e3b0d
2026-06-09 20:21:58 -07:00
gsxdsm
cca7a61c4f FN-6142: fix mobile visibility restore scroll anchoring
Restore pinned mobile chat scroll position when visibility-driven refetch hooks fire.

- re-anchor mobile chat to the bottom during visibility/pageshow refetch capture when the user was pinned
- tighten ChatView visibility restore regression tests to assert the synchronous re-anchor path directly
- remove the ChatView rooms test quarantine and restore the dashboard include list entry

Files changed:
 packages/dashboard/app/components/ChatView.tsx          |  6 +++++-
 .../app/components/__tests__/ChatView.rooms.test.tsx    | 17 ++++++++---------
 .../app/components/__tests__/ChatView.test.tsx          |  7 ++++---
 packages/dashboard/vitest.config.ts                     |  2 +-
 scripts/lib/test-quarantine.json                        |  8 +-------
 5 files changed, 19 insertions(+), 21 deletions(-)

Fusion-Task-Id: FN-6142

Fusion-Task-Lineage: 2974cf0d-5512-4b24-ab0c-2d2fb63fd41a
2026-06-09 15:52:34 -07:00
gsxdsm
21f7a47c29 FN-6103: align chat stop button sizing with composer height
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
2026-06-09 12:51:20 -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
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