Skip to content

chore(deps): update lattice-embed and lattice-inference to 0.11.1 - #1198

Draft
ohdearquant wants to merge 3 commits into
ruvnet:mainfrom
ohdearquant:chore/lattice-0.11.1
Draft

ohdearquant wants to merge 3 commits into
ruvnet:mainfrom
ohdearquant:chore/lattice-0.11.1

Conversation

@ohdearquant

@ohdearquant ohdearquant commented Oct 11, 2026 •

Copy link
Copy Markdown
Contributor

Pull request opened by an AI agent on behalf of @ohdearquant.

Summary

Moves the optional lattice dependencies from 0.6.1 to 0.11.1:

  • crates/ruvector-core/Cargo.toml: lattice-embed 0.6.1 to 0.11.1 (optional, lattice-embeddings feature).
  • crates/ruvllm/Cargo.toml: lattice-inference 0.6.1 to 0.11.1 (optional, lattice feature, macOS only).
  • Cargo.lock: both crates at 0.11.1. lattice-fann 0.11.1 is new in the lock because lattice-inference's metal-gpu feature now depends on it; lru 0.16.4 drops out. No other package's version or dependency list changes.
  • crates/ruvllm/src/backends/lattice_backend.rs: imports GenerateConfig from the crate root (the old model::qwen35_config::GenerateConfig path is a deprecated alias in 0.11) and builds it from GenerateConfig::default() with the mapped fields assigned one by one.

That last point corrects the compatibility note in #1196: GenerateConfig is #[non_exhaustive] in 0.11, so the existing struct literal with ..GenerateConfig::default() no longer compiles outside lattice (E0639). The field mapping is unchanged. The new min_p field keeps its default of 0.0, which disables it.

npm/packages/ruvector-extensions keeps @khive-ai/lattice-embed-wasm ^0.6.1, since 0.6.1 is still the newest npm release of that package.

Both features stay off by default, so default builds are unaffected.

Lockfile note

The first commit produced the lock with cargo update -p lattice-embed --precise 0.11.1 (and the same for lattice-inference). That also re-selected 15 unrelated dependency edges onto older versions already in the lock (for example rustix, tempfile and errno moving from windows-sys 0.61.2 to 0.59.0, and prost-build from heck 0.5.0 / itertools 0.14.0 to 0.4.1 / 0.10.5). The second commit replaces it with the lock cargo writes on its own after the two manifest edits, so the lock diff against main is only the lattice entries listed above.

Checks

Linux x86_64 (Rust 1.98), the full change at e3d82b1, re-run on the second commit's lock with --locked on every cargo command:

Command Result
cargo fmt --all -- --check pass
cargo check -p ruvector-core --features lattice-embeddings --all-targets pass
cargo clippy -p ruvector-core --features lattice-embeddings --all-targets -- -W warnings pass, no code warnings (only the existing manifest warnings about non-root profiles and ruvector-attention's bench target)
cargo test -p ruvector-core --features lattice-embeddings --lib embeddings 15 passed, 2 ignored
cargo check -p ruvllm --features lattice pass

macOS on Apple silicon (Rust 1.93), the same tree, re-run on the second commit's lock (to_generate_config is compiled only on macOS):

Command Result
cargo check --locked -p ruvllm --features lattice pass
cargo clippy --locked -p ruvllm --features lattice --all-targets -- -W warnings pass, no warnings in lattice_backend.rs, no deprecation warnings

main has moved one commit since (NAPI binaries), which touches none of these files.

Refs #1196

Moves the optional lattice dependencies from 0.6.1 to 0.11.1 in
ruvector-core and ruvllm, with the lockfile resolved for the new
versions (lattice-fann 0.11.1 enters through the metal-gpu feature).

lattice-inference 0.11 exports GenerateConfig at the crate root and marks
it non_exhaustive, so the backend now imports it from there and builds it
from its default with the mapped fields assigned one by one.

Refs ruvnet#1196
@ohdearquant
ohdearquant marked this pull request as draft October 24, 2026 20:23
@ruvnet

ruvnet commented Oct 24, 2026

Copy link
Copy Markdown
Owner

Held back, not merged. Tested on current main with #1200/#1204/#1203: the ruvllm lib suite passes (1656) and cargo audit/cargo deny are clean (the bump even drops lru 0.16.4). But with ruvector-core --features lattice-embeddings, embeddings::lattice_native::tests::embed_from_inside_async_runtime_does_not_panic fails on this branch while it passes on main (285/285): lattice 0.11.1 refuses to load a model whose directory or an ancestor is group-writable ("outside lattice's trust boundary", Invalid safetensors file). That is a user-visible behavior change for anyone with a 775 model cache. Please confirm it passes in a clean CI environment and document the new permission requirement, then this can merge.

This branch has not been deployed

No deployments
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.

2 participants