Skip to content

Latest commit

 

History

History
33 lines (27 loc) · 1.42 KB

File metadata and controls

33 lines (27 loc) · 1.42 KB

Performance measurement

Slopguard records internal spans for the work around a model call. They are not part of result schema v1 and are emitted only when an in-process observer is configured.

Phase Work
config argument, prompt, and effective-config resolution
dependency_probes Git and provider executable discovery and capability probes
target_freeze target resolution, collection, and bundle construction
provider_preparation isolated runtime, prompt, schema, and invocation preparation
provider_process selected model CLI process only
protocol_decode provider envelope and canonical review decoding
source_revalidation post-attempt frozen-source check
report_write terminal or JSON rendering and output

The clock and observer are injectable: deterministic tests use a stepped clock; production uses Go's monotonic time.Time component. Total duration_ms starts before config loading, so config and dependency failures retain elapsed work.

The hermetic benchmark uses controlled Git and Codex wrappers and reports p50/p95 total time, p50/p95 non-provider overhead, each phase's p50, and the median subprocess count:

go test ./cmd/slopguard -run '^$' \
  -bench '^BenchmarkReviewOverhead$' -benchtime=10x -count=1

Shared CI enforces subprocess budgets for cold local, branch, commit, and malformed-retry paths, not host-specific millisecond limits.