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
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
df4939a656
FN-6385: add dashboard overflow regression coverage
...
Add a shared mobile and tablet overflow-containment safety net for dashboard surfaces.\n\n- Add viewport overflow regression coverage for board, task detail, workflow editor, simple workflow editor, and Activity Log surfaces.\n- Cover mobile, tablet, and landscape-phone breakpoints across empty and populated states.\n- Stabilize related dashboard tests with viewport and DOM cleanup helpers.\n- Document the targeted overflow-containment test command.\n\nFiles changed:\n docs/testing.md | 6 +\n .../dashboard-overflow-containment.test.tsx | 435 +++++++++++++++++++++\n .../app/components/__tests__/App.test.tsx | 4 +-\n .../components/__tests__/FileBrowserModal.test.tsx | 9 +\n .../components/__tests__/GitManagerModal.test.tsx | 2 +\n .../__tests__/MobileWorkflowGraphView.css.test.ts | 9 +-\n .../__tests__/PlanningModeModal.autosize.test.tsx | 2 +\n .../__tests__/PlanningModeModal.initial.test.tsx | 2 +\n .../PlanningModeModal.planning-flow.test.tsx | 2 +\n .../components/__tests__/SettingsModal.test.tsx | 2 +\n .../__tests__/SettingsModal.testMode.test.tsx | 6 +-\n .../__tests__/SettingsModal.worktrunk.test.tsx | 6 +-\n .../__tests__/WorkflowNodeEditor.css.test.ts | 4 +-\n 13 files changed, 479 insertions(+), 10 deletions(-)
Fusion-Task-Id: FN-6385
Fusion-Task-Lineage: 8335a9c6-279a-4962-b855-ea459ba9eb0a
2026-06-13 16:30:28 -07:00
gsxdsm
8f66a41c1c
FN-6308: parallelize dashboard quality lanes
...
Reduce dashboard quality gate wall-clock by orchestrating existing Vitest lanes with bounded concurrency.
- Add a dashboard quality orchestrator that runs app/API lanes through the existing heap wrapper with safe concurrency and failure short-circuiting.
- Route dashboard quality scripts through the orchestrator while preserving compatibility lane scripts and shard boundaries.
- Export project glob metadata and strengthen guards for lane parity, heap usage, and settings route response expectations.
- Document the new dashboard quality orchestration model and measured FN-6308 timing results.
Files changed:
docs/test-speed-audit-FN-5048.md | 8 +-
docs/testing.md | 35 +++-
packages/dashboard/package.json | 14 +-
.../scripts/__tests__/run-quality-tests.test.ts | 110 ++++++++++
packages/dashboard/scripts/run-quality-tests.mjs | 221 +++++++++++++++++++++
.../__tests__/dashboard-test-config-guard.test.ts | 134 ++++++++++---
.../src/__tests__/routes-settings.test.ts | 14 +-
packages/dashboard/vitest.config.ts | 49 ++++-
8 files changed, 540 insertions(+), 45 deletions(-)
Fusion-Task-Id: FN-6308
Fusion-Task-Lineage: 05a465fd-8eef-4c03-baa3-2b7cb024fef0
2026-06-12 18:18:24 -07:00
gsxdsm
1f366c8de1
FN-6229: enforce symptom verification in triage and review
...
Require bug-class specs and reviews to prove original symptoms are reproduced and fixed.
- Add Symptom Verification guidance to triage prompt templates and self-review rules.
- Teach reviewer prompts to REVISE missing symptom verification or green-build-only acceptance.
- Document symptom-based acceptance alongside Surface Enumeration and cover the prompt contracts with tests.
Files changed:
AGENTS.md | 1 +
docs/testing.md | 12 +++++++++++
packages/engine/src/__tests__/reviewer.test.ts | 29 +++++++++++++++++++++++++-
packages/engine/src/__tests__/triage.test.ts | 23 +++++++++++++++++---
packages/engine/src/reviewer.ts | 2 ++
packages/engine/src/triage.ts | 20 ++++++++++++++++++
6 files changed, 83 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-6229
Fusion-Task-Lineage: 01ad963f-c62b-410f-8571-57bc68307288
2026-06-11 09:21:23 -07:00
gsxdsm
b5d19bd480
FN-6134: extend surface-enumeration gates to UI affordance changes
...
Apply the surface-enumeration review gate to UI affordance add/remove work across triage, review, tests, and docs.
- require triage prompts to add Surface Enumeration guidance for UI affordance add/remove tasks in standard and fast modes
- tighten reviewer guidance to block single-surface UI affordance coverage and leftover shell cleanup gaps
- expand engine prompt tests to cover the new UI affordance gate wording
- document the shared checklist and motivating incidents in AGENTS.md and docs/testing.md
Files changed:
AGENTS.md | 3 +++
docs/testing.md | 6 +++++-
packages/engine/src/__tests__/reviewer.test.ts | 26 ++++++++++++++++++++++++--
packages/engine/src/__tests__/triage.test.ts | 19 ++++++++++++++++++-
packages/engine/src/reviewer.ts | 5 +++--
packages/engine/src/triage.ts | 24 ++++++++++++++----------
6 files changed, 67 insertions(+), 16 deletions(-)
Fusion-Task-Id: FN-6134
Fusion-Task-Lineage: 0bc733eb-d160-48cc-817d-69138290faec
2026-06-09 15:12:26 -07:00
gsxdsm
3387ac8096
fix(review): apply autofix feedback
2026-06-05 09:23:15 -07:00
gsxdsm
e2ddcdc7c1
docs(test): codify merge gate + flaky-test deletion ratchet policy
...
- AGENTS.md: gate/non-blocking split replaces 'tests are required' framing;
new standing rule: flaky tests quarantined on sight, deleted in 2 weeks
unless rescued with root-cause fix; agent appeasement ban; gate eviction rule;
product-race escalation note
- docs/testing.md: merge-gate section with honest blind-spot statement,
quarantine ledger mechanics, updated workflow references
2026-06-05 09:10:19 -07:00
gsxdsm
5a72ac9475
fix(ci): honest shard weights + review autofixes
...
- laneShardFraction: chained --shard invocations sum to full project weight (api backfill was half-weighted)
- exclude *.slow.test.* from duration weighting (engine carried 75 phantom untimed files)
- remove dead ENGINE_PACKAGE_NAME export
- docs: --cold-start-probe, --inputs-dir (snapshot refresh now self-contained), --print-mode
2026-06-03 19:25:40 -07:00
gsxdsm
5bebc3cfe0
perf(ci): duration-based shard balancing with dashboard lane distribution
...
- shards weighted by scripts/test-timings.json durations (median-duration fallback + warning for untimed)
- dashboard no longer --shard-sliced (broken across its script chain): 14 lanes enumerated from package.json and scheduled as separately-weighted units, each exactly once
- engine/core keep --shard slicing, duration-weighted
- estimated critical-path shard: ~235s -> ~159s (spread 96.7% -> 0.06%)
- 30-day staleness warning + --check-timings-staleness for a scheduled refresh job; --dry-run mode
2026-06-03 18:35:26 -07:00
gsxdsm
2c41695e1f
fix(test): dependency-aware and dirty-aware test cache invalidation
...
- cache key v2 = own hash + sorted transitive workspace dep hashes + shared inputs (lockfile, tsconfig.base, core __test-utils__ tree)
- working-tree-dirty files hashed by content (fixes false cache HIT on unstaged edits)
- core __test-utils__ folded globally: 16+ packages import it without a workspace dep on core
- dep folding adds ~5ms to the inner loop (memoized own-hashes)
- docs: cache semantics, --no-cache / FUSION_TEST_NO_CACHE, TTL rationale
2026-06-03 18:06:05 -07:00
gsxdsm
c9191b733c
test: close dashboard curated-gate and engine-slow coverage holes; add inventory harness
...
- 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
2026-06-03 17:36:35 -07:00
gsxdsm
ee00d9f1b7
FN-5928: enforce surface enumeration for bug-fix invariants
...
Require bug-fix specs and reviews to enumerate affected surfaces and reject repro-only regression coverage.
- add a required `## Surface Enumeration` section to triage prompt templates and bug-fix planning guidance
- tighten reviewer guidance to block missing surface enumeration and repro-only regression tests
- document the canonical surface checklist in `docs/testing.md` and cover the new wording with prompt/reviewer tests
Files changed:
AGENTS.md | 6 ++--
docs/testing.md | 9 +++++
packages/core/src/__tests__/agent-prompts.test.ts | 22 ++++++++++++
packages/core/src/agent-prompts.ts | 16 +++++++++
packages/engine/src/__tests__/reviewer.test.ts | 17 ++++++++++
packages/engine/src/__tests__/triage.test.ts | 41 ++++++++++++++++++++---
packages/engine/src/reviewer.ts | 3 ++
packages/engine/src/triage.ts | 24 +++++++++++++
8 files changed, 131 insertions(+), 7 deletions(-)
Fusion-Task-Id: FN-5928
Fusion-Task-Lineage: 717ddcbe-f3a6-4589-ad90-4e640f7a9ff2
2026-06-02 21:57:21 -07:00
gsxdsm
65ddb4d4f5
FN-5893: require invariant-level bug regression coverage
...
Add invariant-first regression guidance to triage prompts and testing docs.
- add an AGENTS standing rule to cover bug-fix invariants across all known surfaces
- update standard, fast, and core triage prompt templates to require invariant-level regression tests
- add triage regression tests that lock the new wording into standard, fast, and core prompts
- link docs/testing guidance back to the new invariant-over-repro rule
Files changed:
AGENTS.md | 7 ++++++
docs/testing.md | 1 +
packages/core/src/agent-prompts.ts | 3 ++-
packages/engine/src/__tests__/triage.test.ts | 32 ++++++++++++++++++++++++++++
packages/engine/src/triage.ts | 6 ++++--
5 files changed, 46 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-5893
Fusion-Task-Lineage: 31c082c6-2a0a-4619-a13b-94dad97eef62
2026-06-02 14:02:36 -07:00
Fusion (runfusion.ai)
d04c7803e0
feat(FN-5339): trim AGENTS.md to essential rules, move detailed guidance to
...
Restructured AGENTS.md from a 588-line catch-all into a lean reference of essential rules by offloading deep guidance into five new/expanded doc files: agents.md, architecture.md, dashboard-guide.md, settings-reference.md, and testing.md. Also restored a missing FN-5345 lifecycle invariant in self-h
Fusion-Task-Id: FN-5339
Fusion-Task-Lineage: e1a2dc4f-ae50-46f4-acd3-8f2c3673feb4
2026-05-21 19:41:52 -07:00