0.15.0
Immutable
release. Only release title and notes can be modified.
A new advisory payload-parity check plus a set of graph-build performance improvements. No breaking changes — every new behaviour is advisory or output-invariant, and the new config keys default to sensible values.
Added
- Payload-parity detection. A new advisory lane flags a model field added to
$fillable/$casts/casts()that is not mirrored into a resource which already mirrors the model's other fields — the exact shape behind a payload field silently going missing from an API response. It is advisory only: it never feeds the risk level,--fail-on, orrichter:affected-tests, only the report's findings list. Tunable via thepayload_parityconfig (enabled,mirror_threshold,ignore) and suppressible for one run with--no-payload-parity. - Parallel graph build. Every command that builds the graph now runs Brain's route-anchored analysis and richter's own source-tracers concurrently — the tracers run in a child
artisanprocess — instead of sequentially, shortening a cold build on a multi-core machine. The merged graph is identical to the serial build (edge order included); any child-process failure transparently falls back to the serial build, and--profileforces serial so the phase split stays measurable. Controlled by the newparallelconfig key (default on).
Fixed
richter:affected-testsnow fails closed on git-quoted untracked paths. An untracked file whose pathname git quotes (non-ASCII or special characters) is unquoted before the fail-closed check, so it can no longer slip past and yield a falsely-narrow test selection.
Internal
- Faster repeated fingerprinting. The graph cache's content fingerprint reuses a file's hash across repeated builds within one process (e.g. a long-lived MCP session re-checking a mostly-unchanged tree) when the file's stat signature — inode, size, mtime, and ctime — is unchanged and not racily-recent, skipping the re-read. The fingerprint value stays byte-identical to hashing every file: staleness is still designed out, not heuristically hoped out.
- Fewer entry-point traces. The entry-point tracer skips a method whose body contains none of the AST nodes Brain's
MethodTracerdraws an edge from, cutting redundant per-method traces with no change to the graph. - Suite: 796 tests / 1,858 assertions, including a byte-identical parallel-vs-serial build gate, fingerprint transparency + change-detection tests, and adversarial coverage of the worker payload validation.
Full Changelog: v0.14.0...v0.15.0