Skip to content

v0.3.1

Latest

Choose a tag to compare

@github-actions github-actions released this 02 Aug 00:40
· 10 commits to main since this release
596edee

v0.3.1

v0.3.1 is a patch release. It closes three LSP recovery correctness gaps disclosed as known limitations in v0.3.0, plus release-workflow reliability fixes. No new public capability, no breaking change.

Fixes

Non-Git roots now bind cross-file influence patterns inside excluded directories

Before: a declared influence pattern (pyproject.toml, go.mod, and similar project-config files) sitting inside an excluded build directory (env/, vendor/, node_modules/) never invalidated the content snapshot on a non-Git root, so recovery could carry stale evidence past a real cross-file configuration change. Git roots already bound this correctly through git ls-files.

After: a bounded search beneath an otherwise-excluded directory looks for declared-pattern matches specifically, without degrading into a full scan of the directory's contents. An ordinary file with no declared pattern still contributes nothing, so build noise inside target//node_modules//.venv/ still cannot invalidate recovery.

A bare Git repository no longer disables LSP enrichment

Before: a bare-repository startup root made recovery return an error rather than falling back to a content snapshot, unlike every other Git failure path in the same function — disabling LSP enrichment for the whole repository.

After: falls back consistently, like its neighboring branches.

A transient source-read failure no longer sticks for the rest of a pass

Before: SourceLineCache cached the empty result of a failed file read exactly like a genuinely empty file, permanently. A file unreadable once (briefly missing mid-scan, a permission race) stayed at column 0 for the rest of the pass even after the condition cleared, and the degradation was invisible.

After: a failed read is not cached, and failures are counted and surfaced in the existing "LSP Pass 1 complete" summary log line.

Release-workflow reliability

Three defects in the tag/release/version-bump pipeline used to publish RNA itself, found while shipping v0.3.0:

  • The version-bump step could leave Cargo.lock reporting a different version than Cargo.toml, so cargo build --locked and similar commands failed on main after a release. The patch logic is now a single, tested script (.github/scripts/patch-version.sh, 24-case test suite) that keeps Cargo.toml, Cargo.lock, and .claude-plugin/marketplace.json in agreement and fails the release outright if any one of them does not verify.
  • A global regex patch to marketplace.json rewrote every "version" key in the file, not only the two describing this package — silently clobbering any unrelated version field the file might carry. Replaced with a targeted patch of exactly those two fields.
  • The GitHub release's published notes could silently fall back to the tagged commit's message instead of the curated notes, because actions/checkout does not preserve the annotated tag object read by the release step. The workflow now re-fetches the tag explicitly before reading it.

Known limitations from v0.3.0 addressed here

The three gaps disclosed in v0.3.0's release notes — non-Git influence binding, bare-repo fallback, and the source-cache negative-caching behavior — are all closed in this release. See v0.3.0's notes for the original disclosure.

Not in this release

No new public capability. No performance or efficacy claim; the benchmark programme referenced in v0.3.0's notes remains paused, unchanged by this release.

Install

Download the archive for your platform, extract, and put repo-native-alignment on your PATH.

  • repo-native-alignment-darwin-arm64-fast.tar.gz — Apple Silicon, tuned for M4
  • repo-native-alignment-darwin-arm64.tar.gz — Apple Silicon, M1 baseline
  • repo-native-alignment-linux-x86_64.tar.gz — Linux x86_64

On macOS, if the binary is killed on launch after copying, re-sign it: codesign --force --sign - <path>.