- test(FN-2370): complete Step 3 — align qa-check template expectation - test(FN-2370): complete Step 2 — add regression coverage for addComment diagnostics - test(FN-2370): complete Step 2 — cover addComment warning regressions - feat(FN-2370): complete Step 1 — log addComment best-effort failures - feat(FN-2369): merge fusion/fn-2369 - feat(prompts): require lint alongside tests and typecheck in agent instructions - perf(test): parallelize harder — unlock worker count, split build-output, bump workspace concurrency - fix(core): recognize legacy kb-* backups and canonicalize .kb/backups settings - refactor: eliminate remaining 15 any warnings and ratchet rule to error - refactor: eliminate ~400 no-explicit-any warnings across the workspace - feat(core): add getErrorMessage helper for narrowing unknown errors - refactor: fix and tighten mechanical lint rules - chore(eslint): fix pre-existing errors surfaced by wider .cjs match - chore(eslint): promote @typescript-eslint/no-unused-vars from warn to error - refactor(dashboard,desktop,engine): remove unused imports, props, and locals - refactor(core): remove unused imports, helpers, and dead migration constant - refactor(cli): remove unused imports and variables - refactor: adapt resource loader and tool wiring to pi-coding-agent 0.70 - fix: adapt to AgentState.error → errorMessage rename - refactor: migrate @sinclair/typebox imports to typebox 1.x - refactor: migrate to ModelRegistry.create factory - chore: bump pi-coding-agent + pi-ai to 0.70.0 - refactor: remove legacy kb compatibility - feat: add "Anthropic — via Claude CLI" as a first-class provider - test(FN-2358): harden clean-worktree CI verification tests - fix(FN-2352): add structured terminal websocket diagnostics - fix: use live merge-base for task diff scope - feat: backfill Claude skills when useClaudeCli toggle flips on - fix: prevent nested .fusion/.fusion dir from PluginStore path bug
50 lines
2.5 KiB
TypeScript
50 lines
2.5 KiB
TypeScript
import { defineConfig } from "vitest/config";
|
|
import { resolve } from "node:path";
|
|
import { cpus } from "node:os";
|
|
|
|
// Use all-but-one core by default. Override with VITEST_MAX_WORKERS for
|
|
// constrained environments (CI runners, laptops on battery, etc.).
|
|
const defaultMaxWorkers = Math.max(1, cpus().length - 1);
|
|
const requestedMaxWorkers = Number.parseInt(process.env.VITEST_MAX_WORKERS ?? String(defaultMaxWorkers), 10);
|
|
const maxWorkers = Math.max(1, Number.isFinite(requestedMaxWorkers) ? requestedMaxWorkers : defaultMaxWorkers);
|
|
process.env.VITEST_MAX_WORKERS = String(maxWorkers);
|
|
|
|
export default defineConfig({
|
|
resolve: {
|
|
// Keep these aliases exact and ordered (subpaths before package roots).
|
|
// In fresh worktrees, internal packages may not have dist/ built yet, and
|
|
// Vite otherwise resolves workspace package exports.import to dist/*.js.
|
|
// Anchored regex aliases force CLI tests to use source entrypoints instead.
|
|
alias: [
|
|
{ find: /^@fusion\/core\/gh-cli$/, replacement: resolve(__dirname, "../core/src/gh-cli.ts") },
|
|
{ find: /^@fusion\/core$/, replacement: resolve(__dirname, "../core/src/index.ts") },
|
|
{ find: /^@fusion\/dashboard\/planning$/, replacement: resolve(__dirname, "../dashboard/src/planning.ts") },
|
|
{ find: /^@fusion\/dashboard$/, replacement: resolve(__dirname, "../dashboard/src/index.ts") },
|
|
{ find: /^@fusion\/engine$/, replacement: resolve(__dirname, "../engine/src/index.ts") },
|
|
{ find: /^@fusion\/test-utils$/, replacement: resolve(__dirname, "../core/src/__test-utils__/workspace.ts") },
|
|
],
|
|
},
|
|
test: {
|
|
include: ["src/**/*.test.ts"],
|
|
// build-exe + build-exe-cross live in their own vitest project
|
|
// (see vitest.build-exe.config.ts) so the rest of the CLI suite can
|
|
// run with file parallelism enabled.
|
|
exclude: ["**/node_modules/**", "**/dist/**", "src/__tests__/build-exe*.test.ts"],
|
|
setupFiles: [
|
|
"./src/__tests__/setup-test-isolation.ts",
|
|
resolve(__dirname, "../core/src/__test-utils__/vitest-setup.ts"),
|
|
],
|
|
globalSetup: [resolve(__dirname, "../core/src/__test-utils__/vitest-teardown.ts")],
|
|
maxWorkers,
|
|
poolOptions: { threads: { minThreads: 1, maxThreads: maxWorkers }, forks: { minForks: 1, maxForks: maxWorkers } },
|
|
fileParallelism: true,
|
|
coverage: {
|
|
enabled: false,
|
|
reporter: ["text", "html", "json"],
|
|
reportsDirectory: "./coverage",
|
|
include: ["src/**/*.ts"],
|
|
exclude: ["**/*.test.ts", "**/*.d.ts", "dist/**"],
|
|
},
|
|
},
|
|
});
|