github apmantza/pi-lens v4.3.0

5 hours ago

Added

  • Read SonarCloud's master quality gate and open vulnerabilities in the nightly tool-smoke workflow, failing loudly for quality … (closes #3319)
  • Report shadowed global config files (closes #3299)
  • Read (and edit) the global config from the host's config dir (refs #2457)
  • Added an advisory CI lane that runs the existing capped targeted-test selector on every pull request and publishes its selection … (refs #3215)
  • Durable CI test history.

Changed

  • Folded three hand-rolled path-key transformations in the LSP server, LSP
  • Extracted the turn-end govulncheck delivery (the 🛡️ Go CVE advisory tier) out
  • Extracted the turn-end secrets delivery (the gitleaks and trivy-secrets
  • Type-aware async and optional-chain checks now lint the test population (refs #3244)
  • Restrict tool-smoke drift ticket side effects to scheduled and default-branch runs while preserving branch-dispatch reports.
  • Internal-only maintenance: extend the socket listener sweep to reusable test support fixtures and remove an inert MCP socket …
  • Reuse the shared directory-mtime freshness predicate for project-config discovery.
  • Mechanise train lessons (refs #3426)
  • Close the pre-4.3.0 docs gap audit (closes #3431)
  • Make nightly LSP capability documentation deterministic and skip byte-identical refresh PRs.
  • Glossary, witness, and seam contracts (refs #3259, refs #3260)
  • Docs: require exact-pin sweeps on the merge with master (refs #3259, refs #3260)
  • Trigger-based agent guidance (refs #3259)
  • Docs contract pre-flight and reviewer/fixer mechanics (refs #3260)
  • Docs: the winning global-config-location table (every combination of PI_LENS_CONFIG_PATH, the legacy file and the agent-dir … (closes #3250)
  • AGENTS.md points at the engineering-principles repository first, and a vendored copy of PRINCIPLES.md lives at …
  • The three cached scanner lanes turn_end reads
  • Pin the glossary synonym-retirement inventory (refs #3259)
  • Every parseToolRun runner now documents its nonzero exit table, its
  • Improve nightly LSP clean-gate fixture coverage for project-backed Vue, Svelte, F#, and Mix workspaces.
  • Refreshed measured LSP clean-transition markers: cue retains its publish
  • The lint workflow installs yamllint with --only-binary=:all:, so pip can never fall back to running a source distribution's …
  • Release-QA rows for the global config location and the shadowed-global record (refs #2608)

Fixed

  • elixir-check now decides whether a compiler diagnostic belongs to the
  • Share actionlint and Credo runner outcome parsing (refs #1816)
  • Share ESLint and golangci-lint runner outcome parsing (refs #1816)
  • The marker-root seam's "a nearer project marker created below an
  • lens_diagnostics mode=full no longer retires retained opengrep findings
  • Make the mutation-diff lane actually evaluate mutants: mutate only the diff's changed lines, give instrumented related tests …
  • The suppressed: N chip counts a mark for as long as the mark stands (closes #3183)
  • A blocking finding whose cited file no longer exists is now retracted from
  • CSS, SCSS, LESS, SASS and Prisma files get LSP diagnostics again (refs #3217)
  • Keep the subagent compatibility smoke aligned with pi-subagents' compiled contract source layout.
  • Preserve opaque mutation ownership (refs #3226)
  • Nested bundled rule ignores (refs #3240)
  • Turn-end scanner-cache reads no longer block the hook (refs #3274)
  • go vet findings for the file you just edited are no longer dropped when
  • The go-vet filesystem case-identity regression test is explicitly admitted to
  • Runner diagnostics are attributed to the edited file through one seam:
  • gleam check diagnostics and ruff autofix findings are now attributed to the
  • Gleam diagnostics now carry their error or warning title and inline label instead of codespan's border glyph, and locationless … (refs #3293)
  • LSP workspace-edit changed paths are compared with the dispatched file through
  • The LSP clean gate now reuses the handshake layer's per-server availability decision, so unavailable servers remain ⚠ while … (refs #3309)
  • Added real LSP gate-entry coverage for handshake-census admission and handler-owned unavailability.
  • A language server that answers didOpen with an empty diagnostic set while it
  • Launch fish-lsp through its stdio transport so standalone Fish diagnostics reach the LSP smoke gate (refs #3311).
  • Prepare LSP smoke fixtures before gating C#, F#, Elixir, Expert, and Vue diagnostics, and give csharp-ls the measured 6s …
  • A tool the installer finds on PATH is now probed with that tool's own
  • The tmp-fixture hygiene census now judges only the temp entries the running
  • Provision the pinned fish executable in the nightly tool-smoke runner so fish-lsp can complete its handshake and clean-gate …
  • scripts/ci-verdict.mjs now reads every check-run page and reports an exact rerun command for a latest cancelled check (closes … (closes #3373)
  • A child process that writes without limit can no longer terminate the Pi
  • Fix ci-verdict rerun hints to pass the workflow run id instead of the check-run job id.
  • A degradation row whose subject is blank now reads unknown instead of
  • A pi session serving warm diagnostics to a peer no longer dies when a client
  • Elixir diagnostics refresh again after an edit (refs #3405)
  • Non-core tree-sitter grammars on a compiled host (closes #3409)
  • LSP root detection no longer trusts a resolved project root for the rest of
  • Revalidate Git repository identity when repository metadata is created or removed during a process (closes #3417).
  • lens_diagnostics mode=full pointed circular-dependency findings at a file that does not exist (closes #3428)
  • The turn-end circular-dependency pass keyed nested files by paths that do not exist (closes #3435)
  • The madge circular-dependency pass reported a "skipped local file" count that was always zero (closes #3436)
  • Keep preserved LSP capability rows and bullets deterministic across locales.
  • Share runner outcome parsing for ktlint and PHP lint so nonzero findings are
  • Share runner outcome parsing for Dart Analyze and Elixir Check (refs #1816)
  • Share compiler runner outcome parsing (refs #1816)
  • Share compiler runner outcome parsing (refs #1816)
  • Consolidate RuboCop and Ruff run outcomes (refs #1816)
  • Carry Spotless ktfmt styles into the standalone formatter (closes #2481)
  • Worker-side test diagnostics now reach passing-run logs (closes #3128)
  • Skip formatter style inference when indentation exists only inside masked comment or template interiors.
  • The temporary-fixture hygiene sweep now waits for live test owners to finish
  • Three Python ast-grep rules no longer false-positive (closes #3211)
  • Parse inline suppression reasons (closes #3213)
  • GitHub CLI authentication for release tools (closes #3221)
  • no-assert-tuple now checks only the assertion condition (closes #3223).
  • Avoid unsupported Windows SIGHUP re-raise (refs #3239)
  • Honor lens_diagnostic_mark on turn-end unresolved blockers (refs #3246)
  • Filter the built actionable-warnings advisory (closes #3270, refs #3248)
  • The commit gate honors a turn-end disposition mark (refs #3248)
  • Apply stored dispositions at six more turn-end surfaces (refs #3248)
  • Two case-distinct workspaces no longer share one warm-IPC endpoint (closes #3255)
  • The finding-delivery governance detector no longer lets an arm-shaped
  • --lens-guard no longer blocks every git commit for the rest of a session
  • Restore strictness in the actionable-warnings advisory (refs #3248)
  • Runner parsers now attribute a diagnostic only when the tool-reported path
  • Gate Terraform and Svelte tool-smoke fixtures with seeded diagnostics, correcting the Terraform defect seed and the Svelte … (refs #3311)
  • Install cmake-format as cmakelang[yaml] so it can read a
  • Align shown-inline telemetry with deleted-path filtering (closes #3361)
  • Make the hook-await exemption rekey script work on Node builds without built-in TypeScript support.
  • Nightly LSP docs refreshes now ignore date-only changes and never open refresh PRs from branch dispatches (closes #3380).
  • Bounded every remaining stream data handler that grew a string without a
  • Scope clean-signal probe publishes to the server measured by each row, and reset the vue capability-matrix row that had counted …
  • Prevented the Elixir smoke row from reporting a fallback Expert handshake as ElixirLS success.
  • Files over the shared LSP content bound now receive an explicit message from lens_diagnostics (source=lsp) instead of being …
  • The installer now gives users the same jscpd 5.3.0 version used by pi-lens itself.
  • Await in-flight jscpd scans before test fixture cleanup so deferred report-directory work cannot leave temporary roots behind.
  • Await LSP workspace-diagnostics service shutdown before removing sweep test fixtures.
  • Keep nightly fish runner provisioning resilient to distro package version bumps by installing the apt package unpinned.
  • Ignore abbreviations, versions, and file paths in the PR-body Why sentence check (refs #3262)
  • The tool-smoke workflow's SonarCloud master-gate read now runs only on the nightly schedule and on master, so a branch dispatch …

🙏 Thanks

Thanks to the external contributors in this release:

Don't miss a new pi-lens release

NewReleases is sending notifications on new releases.