Skip to content

v1.32.0: Pulse robustness — declared emptiness, graceful degradation, warm cache

Choose a tag to compare

@aimasteracc aimasteracc released this 12 Sep 06:06
· 661 commits to main since this release
293fbd4

Summary

The pulse nervous-system hardening release, from the imported_by chain audit (docs/pulse-imported-by-audit-2026-09.md): pulse now either gives data or explicitly says it cannot — never silently empties, never dies from one optional field, and never rescans what it already knows.

Added

  • imports_graph_available (iga in compact): languages without import edges (Go/Rust/Java/C#) explicitly declare that imported_by is empty by design — an agent can finally tell "nothing imports this" from "not supported here" (#1446).
  • cgr short key in compact output when call_graph_available=false, plus legend entries for at, iga, cgr.

Changed

  • Python reverse-import enrichment is cached with content stamps (file-path keyed, in-memory connections bypass): repeat queries and pulse_batch no longer rescan up to 30k rows per symbol (#1447).

Fixed

  • PULSE_IMPORT_RESOURCE_LIMIT no longer fails the entire pulse response: over-limit Python enrichment degrades, keeps the SQL-side result, and declares "imported_by" in truncated_fields (#1446).
  • apply_budget merges query-side truncated_fields declarations with budget drops instead of overwriting them.
  • Token estimation falls back to character counting when the optional tokenizer is unusable (installed but offline cold cache).

PyPI: tree-sitter-analyzer==1.32.0.