github Dicklesworthstone/beads_viewer v0.21.2

5 hours ago

What changed

v0.21.2 publishes the profile-driven optimization campaign staged under the tag-only v0.21.1, plus corrected Nix packaging guidance.

Faster cold robot triage

Profiling showed Git-history snapshot extraction dominated the cold path. The extractor now recycles a blob buffer only after its final record-line view is evicted, allowing the next blob to reuse bounded storage instead of repeatedly allocating, clearing, and garbage-collecting large byte arrays.

On the pinned 540-issue / 19-open workload, independent replay measured:

  • mean user CPU: 0.647 s -> 0.573 s (11.44% lower)
  • mean GC cycles: 25.8 -> 13.0 (49.61% fewer)
  • normalized robot output: byte-identical across all 20 runs

Wall time did not reach statistical significance and peak RSS increased 0.177%, so neither is claimed as an improvement.

Reused graph analysis

Robot-insights what-if and cycle-break paths now consume completed GraphStats instead of decoding or recomputing the same analysis repeatedly. A focused 540-item what-if benchmark moved from 4.4108 s and 1.648 GB allocated to 3.203-16.564 ms and 1.444-4.931 MB allocated. This is a scoped batch result, not a whole-command latency claim.

Evidence and artifacts

All 50 optimization passes are recorded, including rejected PGO, code-generation, GC, parser, prefetch, and data-layout candidates. The release contains five platform archives, individual checksum sidecars, aggregate checksums, an SPDX SBOM, and the DSR build manifest.

Read the evidence-backed v0.21.2 changelog

Don't miss a new beads_viewer release

NewReleases is sending notifications on new releases.