gsxdsm
c8daf21cd0
FN-6685: add Command Center chart browser smoke
...
Add real-browser coverage for Command Center chart sizing and overflow across mobile and desktop.
- Include emitted lazy CSS chunks in dashboard browser-layout smoke fixtures.
- Add a Command Center charts smoke fixture with populated pie/line charts and an empty state.
- Assert chart heights, SVG visibility, overflow containment, and scroll-owner behavior at mobile and desktop breakpoints.
- Document the browser smoke requirement alongside the Command Center responsive chart testing guidance.
Files changed:
docs/dashboard-guide.md | 1 +
docs/testing.md | 3 +-
.../CommandCenter.mobile-chart-layout.test.ts | 6 +
.../dashboard/scripts/browser-layout-smoke.mjs | 220 ++++++++++++++++++++-
4 files changed, 226 insertions(+), 4 deletions(-)
Fusion-Task-Id: FN-6685
Fusion-Task-Lineage: 456d51e2-ffaa-442d-bfa2-5ba17ff6724f
2026-06-19 02:14:31 -07:00
gsxdsm
fe207ca960
FN-6680: fix Command Center mobile chart layouts
...
Fix Command Center chart rendering and visual rhythm on constrained mobile layouts.
- Bound chart primitives, text labels, and grid tracks so mobile Command Center charts do not overflow, collapse, or steal scrolling.
- Normalize stat, table, team, and system chart card surfaces around shared dashboard spacing, border, radius, and surface tokens.
- Add CSS regression coverage and documentation for mobile chart layout limits beyond jsdom.
- Add a patch changeset for the published dashboard bundle.
Files changed:
.../fn-6680-command-center-mobile-chart-fix.md | 5 ++
docs/dashboard-guide.md | 3 +-
docs/testing.md | 3 +
.../components/command-center/CommandCenter.css | 16 +++--
.../CommandCenter.mobile-chart-layout.test.ts | 72 ++++++++++++++++++++++
.../__tests__/CommandCenter.mobile-scroll.test.tsx | 4 ++
.../command-center/areas/SystemStatsArea.css | 14 ++++-
.../app/components/command-center/areas/areas.css | 19 +++---
.../components/command-center/charts/charts.css | 45 +++++++++++++-
9 files changed, 156 insertions(+), 25 deletions(-)
Fusion-Task-Id: FN-6680
Fusion-Task-Lineage: 4dc731c4-6408-4b05-84f7-916bbc572a5d
2026-06-18 23:08:08 -07:00
gsxdsm
deb1717812
FN-6667: add real iOS Safari acceptance harness
...
Add a real iOS Safari acceptance harness and documentation for terminal verification gates.
- Add an `ios:acceptance` script with check, dry-run, and real WebDriver session modes.
- Support BrowserStack, Sauce Labs, and LambdaTest credential discovery with redacted capability planning.
- Document the real-iOS provisioning workflow and link it from testing docs.
- Cover credential selection, URL validation, capability shaping, and CLI behavior with node tests.
Files changed:
docs/README.md | 1 +
docs/ios-acceptance.md | 144 ++++++++++++++++
docs/testing.md | 3 +
package.json | 1 +
scripts/__tests__/ios-acceptance.test.mjs | 131 +++++++++++++++
scripts/ios-acceptance.mjs | 264 ++++++++++++++++++++++++++++++
scripts/lib/ios-acceptance.mjs | 243 +++++++++++++++++++++++++++
7 files changed, 787 insertions(+)
Fusion-Task-Id: FN-6667
Fusion-Task-Lineage: 9eee6dbe-646e-4fff-a1da-fd59cdd2cb59
2026-06-18 16:47:09 -07:00
gsxdsm
b6ac5f2e51
FN-6608: bound engine verification runs
...
Add durable engine-level guardrails for verification command timeouts.
- Add project-level verificationCommandTimeoutMs settings plumbing and docs.
- Enforce configured verification budgets and hard caps in executor and merger verification paths.
- Detect marathon verification commands, soft-cap them by default, and require allowFullSuite for explicit full-suite runs.
- Cover timeout defaults, marathon detection, and guidance updates with engine/core tests.
Files changed:
.changeset/fn-6608-verification-bound.md | 5 +
docs/settings-reference.md | 1 +
docs/testing.md | 2 +
.../src/__tests__/settings-consistency.test.ts | 5 +
packages/core/src/agent-prompts.ts | 6 +-
packages/core/src/settings-schema.ts | 7 +-
packages/core/src/types.ts | 6 +
.../engine/src/__tests__/executor-core.test.ts | 3 +
.../src/__tests__/run-verification-command.test.ts | 176 ++++++++++++++++++++-
packages/engine/src/executor.ts | 11 +-
packages/engine/src/merger.ts | 9 +-
packages/engine/src/run-verification-tool.ts | 142 +++++++++++++++--
packages/engine/src/verification-utils.ts | 13 +-
13 files changed, 360 insertions(+), 26 deletions(-)
Fusion-Task-Id: FN-6608
Fusion-Task-Lineage: c593a96d-eb8b-492c-82c7-8943c239f588
2026-06-18 01:27:09 -07:00
gsxdsm
d0be3e462d
FN-6610: harden engine test isolation recovery
...
Harden shared test isolation seams so engine tests survive mid-run cleanup.
- Recreate owned worker roots, HOME directories, and cwd before child-process launches.
- Add regression coverage for tmpdir redirect, HOME, cwd, SQLite, and git config recovery.
- Revalidate worktree database scratch directories before direct SQLite opens and document the rescue pattern.
Files changed:
docs/testing.md | 2 +
packages/core/src/__test-utils__/vitest-setup.ts | 92 ++++++++++++++++++----
.../__tests__/vitest-setup-tmp-redirect.test.ts | 33 ++++++++
.../src/__tests__/executor-step-session.test.ts | 6 +-
.../src/__tests__/worktree-db-hydrate.test.ts | 22 +++++-
5 files changed, 135 insertions(+), 20 deletions(-)
Fusion-Task-Id: FN-6610
Fusion-Task-Lineage: 18233ee2-1dfe-4b0d-bd12-e4f5b7f9cc29
2026-06-18 01:20:03 -07:00
gsxdsm
4315cd01c6
FN-6598: suppress stuck detection during verification
...
Treat bounded verification subprocesses as healthy activity so progressing tasks avoid false stuck-loop recovery.
- Bracket fn_run_verification commands with stuck-detector start/end signals.
- Suppress loop and no-progress churn while verification is active, with timeout-bounded cleanup.
- Add regression coverage for verification heartbeats, compact-and-resume recovery, and no-progress churn behavior.
- Document verification suppression in reliability guidance.
Files changed:
docs/architecture.md | 5 +-
docs/testing.md | 1 +
.../src/__tests__/executor-step-session.test.ts | 10 +-
.../non-progress-churn.test.ts | 55 +++++++++
.../src/__tests__/run-verification-command.test.ts | 45 ++++++-
.../src/__tests__/stuck-task-detector.test.ts | 136 +++++++++++++++++++++
packages/engine/src/executor.ts | 2 +
packages/engine/src/run-verification-tool.ts | 33 +++--
packages/engine/src/stuck-task-detector.ts | 69 +++++++++++
9 files changed, 341 insertions(+), 15 deletions(-)
Fusion-Task-Id: FN-6598
Fusion-Task-Lineage: 5449b413-c500-46aa-b46d-cf94c2d88710
2026-06-18 00:39:01 -07:00
gsxdsm
fbd9ad2f3b
FN-6617: add weekly test velocity baseline
...
Adds a report-only weekly baseline for test feedback-loop velocity.
- Add a test:velocity script that measures gate, boot smoke, and changed-only test durations and regenerates a #leads-ready report.
- Track committed baseline history, slowest-file summaries, and quarantine deletion-clock counts.
- Document the weekly refresh workflow in testing guidance and agent instructions.
Files changed:
AGENTS.md | 4 +-
docs/test-velocity-baseline.md | 92 ++++++
docs/testing.md | 18 ++
package.json | 1 +
scripts/__tests__/test-velocity-baseline.test.mjs | 121 ++++++++
scripts/test-velocity-baseline.mjs | 339 ++++++++++++++++++++++
scripts/test-velocity-history.json | 231 +++++++++++++++
7 files changed, 805 insertions(+), 1 deletion(-)
Fusion-Task-Id: FN-6617
Fusion-Task-Lineage: 50a07298-74ec-4481-b288-4fadb7d3d29b
2026-06-17 20:09:05 -07:00
gsxdsm
f150a176b4
FN-6612: add test feedback-loop baseline reporting
...
Add a weekly baseline workflow for tracking test feedback-loop speed and flake pressure.
- Add a stdlib-only script to record gate and pnpm test timings alongside slowest test files and quarantine counts.
- Publish generated markdown and JSON baseline artifacts for #leads reporting.
- Document the weekly refresh process and add package scripts plus coverage for the baseline helper.
Files changed:
docs/test-feedback-loop-baseline.md | 48 ++++++
docs/test-feedback-loop-baselines.json | 122 ++++++++++++++
docs/testing.md | 12 ++
package.json | 1 +
scripts/__tests__/test-feedback-baseline.test.mjs | 90 ++++++++++
scripts/test-feedback-baseline.mjs | 192 ++++++++++++++++++++++
6 files changed, 465 insertions(+)
Fusion-Task-Id: FN-6612
Fusion-Task-Lineage: 72bdc070-50e3-4e6b-a07d-3b8aeb9c2e92
2026-06-17 19:25:06 -07:00
gsxdsm
c4878514f9
FN-6600: harden core worker-root teardown retries
...
Harden the core Vitest worker-root cleanup path and rescue the related broad-suite quarantines.
- Increase bounded retries for transient ENOTEMPTY/EBUSY worker-root cleanup races.
- Add teardown coverage proving transient ENOTEMPTY retries remove the worker root.
- Remove rescued core quarantine entries from the ledger and Vitest exclude list.
- Document the FN-6600 core cleanup rescue pattern in testing guidance.
Files changed:
docs/testing.md | 2 ++
.../core/src/__test-utils__/vitest-teardown.ts | 7 +++++-
.../vitest-teardown-worker-root-cleanup.test.ts | 27 ++++++++++++++++++++++
packages/core/vitest.config.ts | 6 +++--
scripts/lib/test-quarantine.json | 15 ------------
5 files changed, 39 insertions(+), 18 deletions(-)
Fusion-Task-Id: FN-6600
Fusion-Task-Lineage: 107fb5cf-82c8-4e65-915d-0ef69725369b
2026-06-17 19:19:05 -07:00
gsxdsm
177cce4059
FN-6515: guard task list formatting exports
...
Add regression coverage for task-list formatter exports and broad list clamping.\n\n- Verify @fusion/core source and built dist barrels expose task-list formatting helpers.\n- Cover broad fn_task_list output clamping as one plain-text block.\n- Document the built-dist guard expectation for runtime-consumed core exports.\n\nFiles changed:\n docs/testing.md | 2 ++\n packages/cli/src/__tests__/extension.test.ts | 35 ++++++++++++++++++++++\n .../core/src/__tests__/task-list-format.test.ts | 32 ++++++++++++++++++++\n 3 files changed, 69 insertions(+)
Fusion-Task-Id: FN-6515
Fusion-Task-Lineage: b19dd616-6b5a-4b8a-8909-f368459fdc53
2026-06-16 23:32:38 -07:00
gsxdsm
669b106548
FN-6514: restore QuickEntryBox test isolation
...
Rescues the QuickEntryBox suite by restoring jsdom globals instead of keeping it quarantined.
- Snapshot and restore QuickEntryBox viewport, visibility, matchMedia, and object URL descriptors after each test.
- Add a guard test that proves mutated jsdom globals return to their original descriptors.
- Remove the QuickEntryBox quarantine entries while documenting the rescue pattern.
Files changed:
docs/testing.md | 2 +
.../components/__tests__/QuickEntryBox.test.tsx | 50 ++++++++++++++++++++++
packages/dashboard/vitest.config.ts | 7 ++-
scripts/lib/test-quarantine.json | 5 ---
4 files changed, 55 insertions(+), 9 deletions(-)
Fusion-Task-Id: FN-6514
Fusion-Task-Lineage: 12f20ad8-19ee-4168-91a9-33193b1ab5f7
2026-06-16 22:13:46 -07:00
gsxdsm
a38752c6bb
FN-6486: rescue quarantined flaky tests
...
Rescue the same-day core and CLI flaky quarantines by fixing their fixture seams instead of appeasing timeouts.
- Make the core concurrent-write lock helper release synchronously inside its child process so package load cannot delay the transient lock release.
- Close real CLI TaskStore fixtures before removing temp roots and switch mock cleanup to non-hoisted unmocking.
- Remove both test files from package quarantine excludes and clear the quarantine ledger while documenting the rescue pattern.
Files changed:
docs/testing.md | 2 ++
packages/cli/src/__tests__/extension-task-tools.test.ts | 17 +++++++++++++----
packages/cli/vitest.config.ts | 4 +++-
.../core/src/__tests__/store-concurrent-writes.test.ts | 8 +++++++-
packages/core/vitest.config.ts | 4 +++-
scripts/lib/test-quarantine.json | 13 +------------
6 files changed, 29 insertions(+), 19 deletions(-)
Fusion-Task-Id: FN-6486
Fusion-Task-Lineage: c90358c4-0549-4c68-8d17-2e2a336433b5
2026-06-16 15:08:24 -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
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