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
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
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
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
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
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
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
Quarantine the flaky dashboard chat manager test and keep it out of active API lanes.
- record packages/dashboard/src/__tests__/chat-manager.test.ts in the quarantine ledger with the current failure context and quarantine date
- exclude the quarantined chat-manager test from dashboard API backfill coverage so existing missions surface an explicit no-backfill decision
- exclude the quarantined chat-manager test from the broad dashboard API project so its status stays visible without destabilizing the suite
Files changed:
packages/dashboard/vitest.config.ts | 3 ++-
scripts/lib/test-quarantine.json | 8 +++++++-
2 files changed, 9 insertions(+), 2 deletions(-)
Fusion-Task-Id: FN-6012
Fusion-Task-Lineage: 34014c45-486e-443d-ae47-a1d301a396e1
Fix the chat-manager race so the rescued dashboard test can run reliably again.
- wait for the first hanging prompt to be created before asserting generation-slot state in the chat-manager isolation test
- remove the dashboard chat-manager test from Vitest excludes so it runs in both backfill and default dashboard API projects
- clear the chat-manager entry from the flaky-test quarantine ledger after rescuing the test
Files changed:
packages/dashboard/src/__tests__/chat-manager.test.ts | 16 +++++++++++-----
packages/dashboard/vitest.config.ts | 3 +--
scripts/lib/test-quarantine.json | 8 +-------
3 files changed, 13 insertions(+), 14 deletions(-)
Fusion-Task-Id: FN-6017
Fusion-Task-Lineage: 5e3bd9ad-3502-4956-bab2-fa7b36f8bcab
Quarantine the flaky dashboard chat-manager generation-slot test until the underlying race is fixed.
- exclude packages/dashboard/src/__tests__/chat-manager.test.ts from dashboard API Vitest projects
- record the quarantine entry with failure context, rescue requirements, and the 2026-06-08 quarantine date
Files changed:
packages/dashboard/vitest.config.ts | 2 ++
scripts/lib/test-quarantine.json | 8 +++++++-
2 files changed, 9 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-6016
Fusion-Task-Lineage: 2cd97f8e-db06-4e49-b437-66fee64fb3a9
- content-hash: createRepoContentSnapshot — 2 repo-wide git spawns shared across all hash computations (was ~2 spawns x N packages x 2 passes, ~0.6-1.6s per cache-miss run); snapshot-equivalence test pins zero-spawn path
- test-changed: one hash memo + snapshot shared between applyCacheToPlan and recordCachePass (record pass now re-hashes nothing)
- ci-test-shard: listPackageTestFiles single source of truth for the test-file glob (was triplicated)
- check-test-inventory: curatedProjects defaults to projects (removes duplicated 11-entry list in spec)
- ensure-test-artifacts: drop detectMissingArtifacts passthrough alias
- drop dead statSync re-export; cross-reference comments on the two shared-input path lists
Skipped deliberately: --cold-start-probe/--check-timings-staleness removal (plan artifacts for U8 re-eval + scheduled refresh), best-fit dedup + threshold² (behavior-preserving refactor of verified shard math — follow-up), worker-budget duplication (pre-existing on main)
- 427 orphaned dashboard test files ran in NO gate; 395 now gated via self-maintaining backfill lanes (glob minus curated minus skip-list), 31 pre-existing failures + build-output skip-listed with reasons
- settings -t name-filter lanes replaced by one unfiltered lane (describe blocks can no longer fall through filters)
- scripts/check-test-inventory.mjs: --capture/--diff superset harness + --dashboard-curated completeness guard
- pr-checks.yml: engine-slow CI gate (non-empty assertion) + inventory guard job
- docs/testing.md: guard, skip-list policy, harness usage
Merges FN-3311 work into the release pipeline: adds a version notes extractor with tests and integrates GitHub release creation into the release script, plus a minor CSS design token consistency fix in the dashboard.
Fusion-Task-Id: FN-3311