Run unit tests with coverage:
go test ./... -coverprofile /tmp/peky.cover
go tool cover -func /tmp/peky.cover | tail -n 1Race tests:
go test ./... -raceCLI smoke run (builds ./bin/peky, starts daemon, runs core commands):
scripts/cli-smoke.shCLI stress battery (builds ./bin/peky, isolated runtime/config, heavy concurrency):
scripts/cli-stress.shRun tool loops (Codex/Claude) during stress:
RUN_TOOLS=1 scripts/cli-stress.shPerformance + profiling tools live in docs/performance.md.
GitHub Actions runs gofmt checks, go vet, go test with coverage, and race on Linux.
Nightly self-hosted stress (Geekom A8 / Linux runner):
- Workflow:
.github/workflows/nightly-stress.yml - Runs
scripts/cli-stress.shonself-hosted, Linux, X64
Run these before a release candidate to avoid regressions:
- Clean build & tests
go test ./...
go test ./... -race- Coverage sanity check
go test ./... -coverprofile /tmp/peky.cover
go tool cover -func /tmp/peky.cover | tail -n 1- Perf baseline (dev-only)
See docs/performance.md for scripts/perf-profiler and scripts/perf-bench.
- Update perf summary
# Write/refresh: testdata/performance-tests/perf-summary-YYYYMMDD.md- Verify dev-only flags are gated
- Profiling hooks must be behind build tags or env gates.
- No profiler endpoints enabled by default.