Skip to content

Release 1.5.0 - #23

Merged
raj-rkv merged 1 commit into
mainfrom
release/v1.5.0
Aug 22, 2026
Merged

Release 1.5.0#23
raj-rkv merged 1 commit into
mainfrom
release/v1.5.0

Conversation

@raj-rkv

@raj-rkv raj-rkv commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

Cuts the accumulated Unreleased work as 1.5.0.

Why 1.5.0 and not 1.4.1

This was scoped as a patch, but the unreleased work is minor-bump surface under the semver policy the changelog states:

  • two new environment variables, TRAVSR_EMBED_ENGINE and TRAVSR_EMBED_TOKEN_BUDGET
  • a new model.toml field, macos_engine
  • a changed default: macOS now prefers tract over CoreML

Consumers pinning ~1.4.0 should not silently inherit the macOS engine flip.

Changelog

Two merged PRs had landed with no changelog entry at all. Both are now documented:

  • Free the old HNSW index before reload and cap ORT thread pools #18: free the old HNSW graph before a reload (the reload previously held both, a transient 2x of index size right after a reindex had already elevated memory), cap ORT intra-op threads at available_parallelism() and inter-op at 1 (ORT otherwise sizes pools from the host, so a 2-CPU container on a 64-core host got roughly 64 spinning threads), mmap the serving index on Linux/macOS, and chunk the pending query instead of materialising the whole corpus.
  • Budget inference tokens across workers, not per worker #22: budget inference tokens across all workers rather than per worker. Peak memory scaled with workers x budget, so a fixed per-worker 4,096 made memory grow linearly with -j. A total of 8,192 is now divided by workers, floored at 1,024, capped at 4,096. One and two workers keep exactly 4,096, so the configurations where the old default was right do not regress.

The pre-existing entries for the macOS engine flip and the travsr#735 crash-residue hardening are unchanged apart from the release heading.

afc6ca8 (clippy chunks_exact migration for Rust 1.98) is deliberately not listed: no behaviour change, CI lint only.

README

The Apple Silicon guidance had gone stale, claiming CoreML runs by default, which is exactly what this release reverses. Updated:

  • the asset-choice intro and the Apple Silicon table row
  • a new "Choosing an engine on macOS" section covering the measured tract vs CoreML result and the macos_engine values, including the caveat that travsr embed init rewrites model.toml and drops a hand-set value
  • a new "Environment variables" section, documenting TRAVSR_EMBED_ENGINE, TRAVSR_EMBED_TOKEN_BUDGET and ORT_DYLIB_PATH, none of which were described anywhere before

Verification

cargo metadata --locked passes, so Cargo.lock agrees with the bumped manifest and the release build will not fail on a stale lock.

A local cargo build --release could not complete on this machine: the usearch 2.24 build script fails compiling simsimd's AVX-512 FP16 intrinsics under gcc 11.4 (Ubuntu 22.04). That is a pre-existing environment limitation in a third-party build script that runs before any crate source compiles, unrelated to these changes, all of which are docs plus a version string. CI is the real check here.

Next step

Tag v1.5.0 on the merge commit to trigger release.yml.

Cut the accumulated Unreleased work as 1.5.0 rather than a patch: the
release adds two environment variables (TRAVSR_EMBED_ENGINE,
TRAVSR_EMBED_TOKEN_BUDGET) and the macos_engine model.toml field, and
changes the macOS default engine, which is minor-bump surface under the
semver policy this changelog states.

Changelog: document the two PRs that landed without entries, #18 (free
the old HNSW before reload, cap ORT thread pools, mmap the serving
index, chunk the pending query) and #22 (budget inference tokens across
workers instead of per worker).

README: the Apple Silicon guidance still claimed CoreML runs by default,
which the 1.5.0 engine flip reverses. Rewrite that row and the asset
intro, and document engine selection on macOS plus the environment
variables, none of which were described anywhere.
@raj-rkv
raj-rkv merged commit d54adad into main Aug 22, 2026
8 checks passed
@raj-rkv
raj-rkv deleted the release/v1.5.0 branch August 22, 2026 14:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant