Added
- Record build identity at session start (refs #1775)
- Rerun externally killed CI Unit tests once (refs #2042)
- Recover starved CI runs and merge train-approved PRs (closes #2184, closes #2185)
- Enable Kotlin structural linting (refs #2198)
- Enable C/C++ memory and I/O idiom rules (refs #2201)
- Classify a red Unit tests run as infra-kill, infra-net, or real (refs #2103)
- Port five codemod gallery candidates (refs #2195)
- Enable Java structural linting (refs #2197)
- Port VTCode's
no-importantCSS rule (closes #2199) - Port 5 VTCode Go idiom rules (closes #2200)
- Guard a shared checkout against branch switches that destroy another session's work (refs #2007)
Changed
- Split
loop_blockinto compute and non-CPU stalls, and name the sweep that caused one (refs #1980, #1723) - Cut the word-index per-edit seam's longest synchronous stretch (refs #2067)
- Bound memory accounting (refs #2132, #2114)
- Classify merge-train pagination truncation (closes #2134)
- Gate word-index arena recompaction on a share of the vocabulary (refs #2246)
- Convert the word-index per-edit occupancy guard to a load-invariant work count (refs #2254)
- Weekly stale-issue report now flags missing priority labels (refs #1676)
- Enforce client dependency boundaries and cycles in CI (refs #1844)
- Add six test-authoring screens to AGENTS.md (refs #1829)
- Reorganize AGENTS.md for retrieval (refs #1829)
- Contributor and reviewer discipline harvested from six external skill sets plus the 2026-08-26 arc
- PRs touching tests now carry a Test assessment, and the authoring screens grow to ten
- Name and pin the files-touched bus seam (closes #1966)
- Unify the pinned npm version across workflows (#2051)
- Single-flight availability probes (refs #2131)
- Concise zero-read recovery (closes #2335)
- Memoize compiled gitignore globs (closes #1976)
- Persist word-index changes incrementally off the hot path (refs #2068)
- Shrink the word index's resident footprint by 4.6x (closes #2069)
- Review-graph one-file rebuild (refs #2074)
Fixed
- Identity-guard seven more in-flight promise caches against ABA eviction (refs #1968)
- Stop the CI kill record from blaming memory it never ran out of (refs #2042)
- Re-resolve a runner-detection alias probed before its symlink existed (closes #2077)
- Recompact churned word-index arenas (refs #2117)
- Dedupe review-graph edges after deferred symbol resolution (closes #2127)
- Report every root a host serves in
pilens_health(refs #2130) - Count every LSP client, and stop leaking a subagent's temp root (refs #2130)
- Stamp classifiedBy on ok-path availability decisions (refs #2131)
- Normalize review-graph.log's cwd to one form (closes #2141)
- Repair escaped-newline flattened PR bodies in body lint (refs #2145)
- Stop duplicate merge-train warden actions (closes #2150)
- Bound language-server verification output (refs #2169)
- Match the merge lane to live repository state (refs #2185)
- Stop a routine paging repeat from reddening the merge-train warden (refs #2192)
- Correct the Java rule set's accumulator and raw-type detection (refs #2197)
- Deflake the output-cap tail-retention test (refs #2197)
- Move the dirty-fraction word-index guard off wall clock (refs #2202)
- Fix
playground-verify-rule.mjsmatching the wrong source (closes #2208) - Run the ast-grep in-process fallback on every JS/TS module extension, and record the languages it cannot serve (closes #2215)
- Derive the project scan's ast-grep kind per file instead of hard-coding jsts (closes #2217)
- Normalize the remaining NDJSON logger
filePathfields (refs #2219, the #2141 class) - Remove three real-timer races from tests that only pass under CPU contention (refs #2225, #2235, #2182)
- Make a stale compiled
.jsbeside a `tests/ - Make the spawn-timeout cooldown regression test load-invariant (closes #2235)
- Bound the dispatch fact store (refs #2240)
- Harden the dispatch fact-store pin against eviction (refs #2240)
- Bound retained FactStore content bytes (closes #2247)
- Napi runner css/html admission (#2248)
- Anchor
.gitignore's scratchtest-*patterns to the repo root (refs #2250) - Baseline the git-config contamination guard against pre-suite identity (refs #2251)
- Scope the playground source sentinel (refs #2253)
- Bound every in-memory review-graph retention site (refs #2255, #2240)
- Ast-grep YAML rule caches detect edited and nested files (closes #2262)
- Topology-derived startup scan and language-profile memos re-arm with the workspace marker index at session start (closes #2263)
- Move three Java rules off an inert
files:negation glob (fixes #2280) - Preserve latency logger exports in test mocks (refs #2281)
- Detect different-size project-snapshot rewrites inside one mtime bucket (closes #2285)
- Merge-train duplicate classification (#2289)
- Add a size axis to five mtime-only content memos (closes #2300)
- Remove the redundant markdownlint autofix cooldown guard (closes #2301)
- ast-grep findings survive a silent auxiliary LSP (closes #2324)
- Auto-repair clearly flattened pull request bodies before advisory lint validation
- Correct the vulture exit-code comment (closes #1765)
- Read-guard eviction paths now leave a trace (#1918)
- Record formatter cache hits (closes #1940)
- Cap dependency-drift blocker re-serves (refs #1950)
- Record message_end cache_usage attribution loss (closes #1956)
- Gate nested LSP requests (closes #1971)
- Stop re-canonicalizing already-normalized dispatch paths (refs #2016)
- Budget CI test workers against real memory, and name an OOM kill (refs #2042)
- Retire deleted failed-first test targets (closes #2044)
- Bound markdownlint verification and preserve typed spawn failures (closes #2045)
- Canonicalize test-runner cache roots (refs #2048)
- Honor LSP file-operation filters (closes #2049)
- Decline LSP roots outside every session project root (refs #2052)
- Cover the whole failed-Git-integration family.
- Make LSP spawn records count truthfully (closes #2064)
- A crashed LSP client no longer pins its retained text forever (refs #2065)
- Incremental LSP document text is bounded and released on close (refs #2065)
- Per-send LSP document sync makes one JavaScript pass over the previous document instead of two, on
didChange(refs #2066) - Intern word-index posting files (refs #2067)
- Nested
.gitignoreedits now refresh ignore verdicts (closes #2071) - Give nested ignore rules and path verdicts one freshness clock (closes #2071, closes #1976)
- Review-graph source-path normalization (refs #2072)
- Clear outgoing idle-eviction timers on cache replacement (refs #2073)
- Fail closed on truncated Git file lists.
- Opaque-mutation exclusion counter overstated suppression (closes #2081)
- PR-title checks now validate the live pull-request title (refs #2083)
- PR body lint now rejects unfilled templates and recognizes the fleet's section conventions (refs #1844)
- Read the live PR body in close-keyword syntax checks (refs #2086)
- Read the live PR body in close-keyword verification (refs #2086)
- Close two named remainders from the #2088 sweep-floor fix (refs #2088)
- Closed the managed-tool seam sweep's vacuous exemption (refs #2088)
- Governance sweeps now fail on empty populations (refs #2088)
- Tests that could not run reported as passed (closes #2089)
- Stop metrics-history's git probe from leaking stderr into the TUI (#2095)
- Resolve metrics commit attribution against each target file's Git repository (closes #2099)
- Truncated tool output is reported as truncated.
- Rename the CI classifier's kill label to infra-kill and read kernel evidence (refs #2103)
- Fail loudly when the stale open-issues scan is truncated (closes #2104)
- Serialize overlapping per-path LSP
didChangesends so Incremental payloads use the latest confirmed document content (closes … (closes #2113) - Deferred runner results remain visible and actionable (refs #2122)
- Key session start and the host registry by project root (closes #2129, refs #2130)
- Scope availability probe flights per owner (refs #2131, refs #2140)
- Resolve LSP-managed release binaries before PATH (refs #2140)
- Key process-unique state on
globalThisso it survives a second module evaluation (refs #2146) - Distinguish clean from absent auxiliary LSP results (closes #2151)
- Adapt the first cold auxiliary wait to observed spawn cost (closes #2152)
- Identity-feeding sorts now use a code-unit comparator, not
localeCompare(closes #2155, closes #2165) - Share one LSP service across module evaluations (refs #2157)
- Consumed
.gitignorefiles refresh at matcher lookup (closes #2159) - Use per-file diagnostic publication timestamps to distinguish a fresh clean primary LSP response from an absent response in the …
- Bound the stale-findings re-arm loop and count cap-evicted pairs (closes #2167, closes #2168)
- Bound Svelte and Prisma language-server probes, and Vue's remaining dispatch-side budget (refs #2169, #2176)
- PR body repair keeps distinct numbered fix-round headings distinct, so legitimate multi-round bodies can be repaired while …
- Preserve identity during concurrent instance registration (refs #2173)
- Bound the Vue language-server verification probe (refs #2176)
- Migrate remaining Git-using smoke scripts to the scrubbed fixture environment (closes #2177)
- Bound the JSON and Bash language-server verification probes (closes #2194)
- Escalate workflow runs stuck queued (closes #2203)
- Stamp classifiedBy on every availability_decision failure arm (refs #2131, #2209)
- Re-check test-runner negative verdicts instead of latching them (refs #2252)
- Treat a null PR body as empty (closes #2268)
- Make the failed-target cap test load-invariant (closes #2290)
- Make cross-root eviction coverage load-invariant (closes #2305)
- Normalize tabs in playground-verify's sentinel comparison, and fail fast on a stable mismatch (closes #2306)
- Pin the availability-probe cooldown consult (closes #2309)
- Harden the CI classifier's automatic PR comment path (closes #2318, refs #2316)
- Schedule ast-grep NAPI rules for CSS and HTML edits, restore four sibling structural and IaC runner-kind pairs found by the class …
- HTML ast-grep catalog coverage (closes #2325)
- Avoid unrelated diagnostics after a conflicted Git integration.
- Guard package-lock metadata during releases (#2043)
- Attribute pi-lens writes and bound review-graph path normalization (refs #2070, closes #2072)
- Prove idle-eviction replacements release graph memory (closes #2073)
- Pin diagnostics bus publishers and subscribers (closes #2079)
- Test-flakiness and hygiene residuals (refs #2090, closes #2139, refs #2182)
vi.stubEnvleak sweep undercount (refs #2090, closes #2223)- Guard the warmed YAML rules cache with load-invariant work counts (closes #2292)
- Close #2298's rules-cache work-count residuals (refs #2292)
- Isolate real-Git test fixtures and guard repository config (closes #2163)
🙏 Thanks
Thanks to the external contributors in this release: