Optimize Tests
Goal: real OpenClaw test/runtime speedups with coverage intact. Do not add shards, skip assertions, weaken gates, or tune runner flags as the main fix.
Runbook
- Read
docs/help/testing.md,docs/ci.md, and the scopedAGENTS.mdfiles for any subtree you will edit. - Establish evidence before edits:
- Full ranking: pnpm test:perf:groups --full-suite --allow-failures --output.artifacts/test-perf/<name>.json - Targeted file: timeout 240 /usr/bin/time -l pnpm test <file> --maxWorkers=1 --reporter=verbose - Import suspicion: add OPENCLAW_VITEST_IMPORT_DURATIONS=1 OPENCLAW_VITEST_PRINT_IMPORT_BREAKDOWN=1
- Attack highest-return hotspots first:
- broad barrels or importActual() in hot tests - per-test vi.resetModules() plus fresh imports - expensive gateway/server/client setup where reset/reuse proves same behavior - core tests asserting extension-owned behavior - duplicated fixture construction or contract assertions
- Prefer production-quality fixes:
- narrow runtime seams over broad mocks - pure helpers for static parsing/metadata - injected deps over module resets - extension-owned tests for bundled plugin/provider/channel behavior
- After each change, rerun the same benchmark and the proving test lane. Record before/after wall time, Vitest duration, and max RSS when available.
- Run
pnpm check:changed; run broader gates (pnpm check,pnpm test,pnpm build) when touched surfaces require them. - Commit scoped changes with
scripts/committer "<conventional message>" <paths...>. Push when requested. If CI is red, inspect withgh run list/view, fix, push, repeat until current CI is green or a blocker is proven unrelated.
Output
End with the pushed commit(s), before/after timings, gates run, current CI state, and any remaining tail lanes that need separate optimization.