Added
- Prompt-cache misses now say why, and mixed injections split by source (refs #1071)
- Quick-mode session_start now logs which steps it skipped (closes #1911)
- Runner parsers are now held to real binary output (refs #1937)
- A runner that reads nothing out of a failing tool's output now leaves a record (closes #1948)
- Mechanical lint batch: actionlint, PR-title lint, markdownlint, OSV scan (refs #1844)
- Vale prose lint with a vendored Google style base (refs #1844)
- Husky-managed local git hooks (closes #1804)
- latency.log now says whether the LSP pool reused a client or spawned one (closes #1934)
Fixed
- Search credit ignores pipe truncation (closes #1908)
- Cascade tier-3 registry now resets at session_start (closes #1910)
- Read-guard eviction telemetry is now always on (closes #1913)
- agent_settled no longer crashes with extension_error when the session is replaced mid-run
- A session event on a replaced session no longer reports a pi-lens handler error (closes #1925)
- Git installs start about 750ms faster (refs #1926)
- Updating pi-lens no longer costs a five-second first session (refs #1926)
- A session swap that starves
session_startorcontextis now counted, not misreported as a pi-lens crash (closes #1929) - Diagnostics scans stop logging a phantom ast-grep cache-stats record (closes #1935)
cache_contextno longer logs an unusableunknownprefix pair on nearly every record (closes #1938)- Review-graph Tier-3 build never grew the tree cache past the 50-entry default (closes #1941)
- A demoted blocker no longer shouts STOP, and it stops re-serving forever (closes #1944)
- The oxlint runner now surfaces warning-severity findings instead of discarding them (closes #1947)
- Merge-train warden's
update-branchkick 403s under branch protection (#1959) - The blind review-graph read no longer drops a valid snapshot on a HEAD-only move (closes #1961)
- A settled review-graph build no longer suppresses every later build, and
project_reportonly claims a retry when one started (closes #1962) - A language server that dies mid-session now records why, and the liveness probe stops provoking the deaths (closes #1969)
- Log writer reopens and retries once on a failed write instead of dropping records silently (refs #1970)
- Warmup and workspace-scan walkers gate by file extension before consulting the ignore matcher, cutting a 31.7s stall to sub-second on repos with large ignored file piles (closes #1974, reported by @0xkite)
🙏 Thanks
Thanks to the external contributors in this release: