Skip to content

chore(deps): move lattice pins to 0.7.1 - #758

Open
ohdearquant wants to merge 5 commits into
ruvnet:mainfrom
ohdearquant:chore/lattice-0.7.0
Open

chore(deps): move lattice pins to 0.7.1#758
ohdearquant wants to merge 5 commits into
ruvnet:mainfrom
ohdearquant:chore/lattice-0.7.0

Conversation

@ohdearquant

@ohdearquant ohdearquant commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

Moves the two lattice pins from 0.6.1 to 0.7.1, published 2026-08-02.

Both integrations are optional and default-off, so this changes nothing for a default build. It
matters for anyone who turns them on, since 0.x minor bumps are semver-breaking and the pins would
otherwise hold those users on 0.6.1.

This PR originally targeted 0.7.0. 0.7.1 was published while it was open, so the target moved
rather than leaving this to land one patch behind on the day it merges. Every arm below was
re-run against 0.7.1
; none of the earlier 0.7.0 output was edited to read as though it had
been. The results were identical, which is what an additive patch release should look like and
not something I wanted to assume.

Changed

file change
crates/ruvector-core/Cargo.toml lattice-embed 0.6.1 → 0.7.1
crates/ruvllm/Cargo.toml lattice-inference 0.6.1 → 0.7.1
crates/ruvector-core/Cargo.toml, examples/ruvLLM/Cargo.toml MSRV notes now say "lattice-embed 0.7"
Cargo.lock root workspace lock entries for lattice-embed/lattice-inference at 0.7.1
examples/ruvLLM/Cargo.lock standalone example workspace lock entries at 0.7.1

The MSRV claim in those notes is unchanged and still correct. They say enabling the feature
raises the effective MSRV to Rust >= 1.93, and lattice 0.7.1 declares rust-version = "1.93", so the
number stays right. I checked that rather than carrying the sentence across, because those notes are
the only place the constraint is written down and a stale one would be worse than none.

Verification

Resolution was asserted as a hard gate before any build, because a version requirement that
fails to resolve can leave the old crate in the graph and the build stays green against the code you
did not mean to test:

$ cargo tree -p ruvector-core --features lattice-embeddings -i lattice-embed --depth 0
lattice-embed v0.7.1
$ cargo tree -p ruvllm --features lattice -i lattice-inference --depth 0
lattice-inference v0.7.1
arm result
check -p ruvector-core --features lattice-embeddings clean
check -p ruvllm --features lattice (macOS, metal-gpu) clean
test -p ruvector-core --features lattice-embeddings --lib 235 passed, 0 failed, 2 ignored
check -p ruvector-core (no lattice features, the default path) clean

The test arm includes the suites that lock lattice's own conventions: the EmbeddingModel::from_str
parsing tests, the query/passage prefix-mismatch tests, and
embeddings::lattice_native::tests::embed_from_inside_async_runtime_does_not_panic. Those are the
ones that would catch a semantic change behind an unchanged signature, which is the failure a
compile check cannot see.

The default-build arm is there deliberately: the whole premise of these features being opt-in is that
the default path is untouched, and that is a claim worth re-running rather than assuming.

Not covered

No runtime model was downloaded, so this exercises the API surface and the tests' own fixtures rather
than end-to-end embedding output. If you want a real-weights run before merging, say so and I will add
it.

Separately, and not part of this PR: the 0.7 line publishes an image-embedding surface
(lattice_embed::vision::VisionEmbeddingModel) that has no counterpart here today. I would rather
propose that as an issue and agree the shape first than push a feature at you inside a version bump.

Rebased onto current main

The branch had drifted behind, so main is merged in and every arm above was re-run on the
merged tree rather than carried over:

cargo tree -p ruvector-core --features lattice-embeddings -i lattice-embed --depth 0   lattice-embed v0.7.1
cargo tree -p ruvllm --features lattice -i lattice-inference --depth 0                 lattice-inference v0.7.1
cargo check -p ruvector-core --features lattice-embeddings                             clean
cargo check -p ruvllm --features lattice                                               clean
cargo test  -p ruvector-core --features lattice-embeddings --lib                       243 passed, 0 failed, 2 ignored
cargo check -p ruvector-core                                                           clean

The test count moved from 235 to 243 because main gained tests, not because anything here
changed. The base-to-head diff against main contains five files: the three
manifests in the table above plus the two lockfiles (Cargo.lock and
examples/ruvLLM/Cargo.lock, the latter being the standalone example
workspace's own lockfile, updated so a --locked resolution of that
workspace selects lattice 0.7.1).

Note on this PR's CI

Three checks were red on the pre-merge head. Tests (core-and-rest) is red on every branch
including main; it never reaches the test phase and is addressed in #784, #786 and #787. The two
benchmark jobs were cancelled during dependency compilation, not by a measurement.

lattice-embed and lattice-inference are both optional and default-off, so the
default build is unaffected, but 0.x minor bumps are semver-breaking and the
pins would otherwise hold opt-in users on 0.6.1.

Resolution asserted before building, since a requirement that fails to resolve
leaves the previous crate in the graph and the build stays green against code
that was not the one under test. cargo tree reports lattice-embed v0.7.0 and
lattice-inference v0.7.0 for the respective feature sets.

Verified: ruvector-core with lattice-embeddings, ruvllm with lattice (metal-gpu
on macOS), the ruvector-core test suite at 235 passed 0 failed including the
from_str parsing, query/passage prefix and async-runtime embedding tests, and
the default no-feature build.

The MSRV notes still read Rust >= 1.93; lattice 0.7.0 declares rust-version
1.93, so only the crate version numeral in those comments changed.
0.7.1 is the current release, so pinning 0.7.0 would land this already behind
it. 0.7.1 is additive over 0.7.0 and both crates stay optional and default-off,
so the default build is unaffected either way.

Checked under each pin's own feature set rather than only the cheap one:
`cargo check --locked -p ruvector-core --features lattice-embeddings` and
`cargo check --locked -p ruvllm --features lattice` both pass.
@ohdearquant ohdearquant changed the title chore(deps): move lattice pins to 0.7.0 chore(deps): move lattice pins to 0.7.1 Aug 2, 2026
The lockfile carried tempfile's resolved getrandom edge moving 0.3.4 -> 0.4.3,
which is outside this PR's stated scope of moving the lattice pins. Reverted to
the base resolution; `cargo check -p ruvector-core --features lattice-embeddings
--locked` passes without it, which is what establishes the change was
opportunistic re-resolution rather than something this bump requires.
@ohdearquant
ohdearquant marked this pull request as ready for review August 3, 2026 18:05
… workspace

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
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