github apmantza/pi-lens v3.8.67

4 hours ago

⚡ Write-path performance overhaul

  • Cascade diagnostics no longer block the write pipeline (#450) — the impact/neighbor analysis that only feeds turn-end context now runs concurrently after each edit and is settled at turn_end with a bounded wait. This alone was ~26% of every edit.
  • Review-graph seq fast path (#451) — the per-edit O(project) walk+stat freshness sweep is skipped when pi-lens's own sequence state proves only observed edits occurred (periodic full re-verify catches external changes; PI_LENS_GRAPH_SEQ_FASTPATH=0 disables). Graph build p50: 157ms → ~60ms.
  • Reverse-dependency index reuse (#459) — the index is a pure function of the review graph, so cache-hit graph builds now reuse it instead of rebuilding O(edges) + rewriting the snapshot on every cascade run. Freshness keys on a new ReviewGraph.buildGeneration stamp that is race-safe under the now-overlapping deferred cascades (PI_LENS_REVERSE_DEPS_REUSE=0 disables).
  • Write-path micro batch + logger consolidation (#453, #454) — ESLint autofix in a single spawn (was dry-run + fix, double cold-start), LSP quick-fix lookups in parallel, and all eight NDJSON debug loggers on one buffered async writer — no more synchronous appendFileSync on the hot path.

✨ Added

  • lens_diagnostics / MCP pilens_diagnostics accept paths (#461) — scope any mode to an explicit file/directory list. mode=full + paths actively scans exactly those files (LSP sweep + in-process runners route to the list instead of walking the project) — built for wrappers like "check exactly the git-staged files". Thanks @LeonardoRick for the well-scoped request.
  • serverOverrides — per-server initializationOptions in project config (#434) — align pi-lens's LSP servers with your editor setup (e.g. rust-analyzer check.command: "clippy") via .pi-lens/lsp.json, deep-merged onto built-in defaults. Contributed by @vkarasen.
  • Nightly LSP capability matrix is now self-maintaining (#460, #390) — a phase-aware clean-signal probe classifies every server's diagnostic behavior on clean files (versioned publish / version-less publish / silent), and the nightly merges regenerated capability docs back via auto-PR without ever regressing rows the CI host can't measure.

🛠 Fixed

  • Review-graph snapshots are git-worktree-safe (#300) — snapshots are stamped with HEAD + worktree root (pure-fs resolution, linked-worktree aware) and dropped on mismatch at the blind read path, so a worktree re-created at the same path can't serve the previous branch's symbols. The build path stays content-verified, so a plain git commit never forces a rebuild.
  • lens_diagnostics mode=full honors inline # pi-lens-ignore comments (#442)
  • The opengrep/Semgrep runner honors # nosemgrep suppression (#441)
  • no-init-return no longer flags factory functions (#439); python-assert-production no longer fires in test files (#440)

Full changelog: CHANGELOG.md

Don't miss a new pi-lens release

NewReleases is sending notifications on new releases.