v0.51.3
v0.51.3
Inspect-under-concurrency fixes, LSP path handling for Next.js App Router projects, and rendering corrections. Thanks to iceteaSA, timothyclin, tenshiak, and mathiasloh for diagnostics-grade reports, and to iceteaSA for the merged callgraph refresh optimization.
aft_inspect
A long blocking inspect no longer stalls parallel sessions (#242, #243). On the daemon transport, aft_inspect now runs off the execution lane: setup releases the lane in milliseconds, waits happen off-lane, and other sessions' mutations and new binds admit normally while the inspect completes. Route abandonment now cancels a running inspect promptly, concurrent inspects on one root are single-flight, and a mid-scan file mutation can never produce a stale FRESH verdict (verified by regression).
scope no longer makes inspect slower (#247). Passing a scope previously switched diagnostics onto the most expensive collection path. Scope now filters rendered results only — and scoped files that no language server has actually analyzed are reported as named gaps (complete: false with the file and reason) instead of a clean-looking empty result.
The diagnostics deadline is configurable (#241, #249). inspect.diagnostics_timeout_ms (default 120000, range 10000–600000; a project may raise but never lower the user value) bounds the blocking diagnostics wait, and the plugins derive the transport budget from it — no more 60s client timeouts while the server is still legitimately working.
One failed language server no longer blocks everything (#240). A producer that fails to start is disclosed as a named gap while every other producer's results return normally.
Language servers
Astro projects initialize correctly (#240): the astro producer resolves typescript.tsdk from the project's own TypeScript install (monorepo-aware), with lsp.servers.astro.initialization_options taking precedence, and an honest skip when no TypeScript install exists.
Next.js App Router paths work (#240, #249): file URIs are percent-encoded per RFC 3986, so (app), [locationId], and [[...sign-in]] directories no longer break diagnostics.
Fixed
- Hoisted bash output renders CRLF correctly (#245): rendered previews normalize
\r\nand apply real overprint semantics for progress bars; raw on-disk task artifacts stay byte-exact. - Callgraph incremental refresh matches cold-build write mechanics (#246, by @iceteaSA): file I/O and parsing moved outside the write transaction, prepared statements reused, and a missing index added.
- Windows CI test debt: two deterministic test bugs fixed (JSON path escaping, path separator assertion).
Internal
Groundwork for identity-governed GitHub operations ships dormant in this release: release builds carry no trust root for it, so behavior is unchanged (gh invocations are untouched). It activates only through a separately reviewed key ceremony in a future release.