feat(FN-3986): remove PR lint pre-build and bun setup from pr-checks workfl

Removes the PR lint pre-build step from the GitHub Actions workflow and adds a new test suite (`ci-workflow.test.ts`) covering CI workflow behavior, with a small documentation update.

Fusion-Task-Id: FN-3986
This commit is contained in:
Fusion
2026-05-11 01:41:51 -07:00
committed by gsxdsm
parent d2dd85993d
commit fea6438e36
4 changed files with 74 additions and 24 deletions

View File

@@ -30,3 +30,4 @@ why it broke, how it was fixed, and what command verified the fix.
| TSH-012 | Warning filtering | The first SQLite warning filter also installed a `process.on("warning")` listener that could duplicate unrelated warnings. | Node still prints non-filtered warnings by default, so manually writing them again made future warning output noisier. | The shared setup now only wraps `process.emitWarning` for the known SQLite experimental warning, and the dashboard noisy-output marker list no longer suppresses generic trace-warning guidance. | `pnpm --filter @fusion/core typecheck`, `pnpm --filter @fusion/core exec vitest run src/__tests__/central-db.test.ts --silent=passed-only --reporter=dot`, and `pnpm test:full` |
| TSH-013 | Dashboard default runtime | The default dashboard package test still took about 9 minutes after the noise cleanup. | `pnpm --filter @fusion/dashboard test` continued to run every app/jsdom and API/node file, including exhaustive modal/view permutations and broad route matrices intended for deeper sweeps. | Added curated `dashboard-app-quality` and `dashboard-api-quality` Vitest projects for the default package gate, kept exhaustive coverage behind `test:deep`, `test:app`, and `test:api`, and documented when to run each lane. | `/usr/bin/time -p pnpm --filter @fusion/dashboard test` (148 files, 3642 tests, `real 91.73`), `/usr/bin/time -p pnpm --filter @fusion/dashboard test:deep` (419 files, 10747 tests, `real 335.47`), and `/usr/bin/time -p pnpm test:full` (`real 308.34`) |
| TSH-014 | Core temp-dir cleanup | `kb-db-test-*` directories could leak after `db.test.ts` runs and trip isolation checks. | `afterEach(async)` and module-level `afterAll(async)` both cleared `createdTmpDirs` before async `rm(...)` completed, so hook timing races could hide leftovers from final teardown during worker shutdown. | Coordinated cleanup bookkeeping by deleting set entries only after per-dir removal, kept `afterEach` as async best-effort cleanup, and switched the final `afterAll` fallback to defensive synchronous `rmSync(..., { recursive: true, force: true })`. | `pnpm --filter @fusion/core test -- src/__tests__/db.test.ts` and `node scripts/check-test-isolation.mjs --before && pnpm --filter @fusion/core test && node scripts/check-test-isolation.mjs` |
| TSH-015 | PR lint workflow contract | PR `lint` spent extra CI minutes setting up Bun and running `pnpm build` before lint. | `pr-checks.yml` drifted from the CI pattern where lint should be the fastest install+lint gate and build should be enforced by the separate `build` job. | Removed Bun setup and pre-lint build from the PR `lint` job, and strengthened workflow contract tests to require `pnpm install --frozen-lockfile` + `pnpm lint` in lint while asserting Bun/build remain in the PR `build` job. | `pnpm --filter @runfusion/fusion exec vitest run src/__tests__/ci-workflow.test.ts --silent=passed-only --reporter=dot`, `pnpm lint`, `pnpm test`, `pnpm typecheck`, and `pnpm build` |