feat: add lancedb 0.27.2 + pin lance =4.0.0 for exact version compat#275
Merged
Conversation
lancedb uses exact `=` pins on lance (not semver ^). To add lancedb 0.27.2
as a dependency, all lance crates must be pinned to exactly 4.0.0 (not 4.0.1).
Changes:
- lance/lance-linalg/lance-namespace/lance-arrow/lance-index: "4" → "=4.0.0"
across lance-graph, callcenter, catalog, benches, holograph
- NEW: lancedb = { version = "=0.27.2", optional = true } in lance-graph
- NEW: feature `lancedb-sdk` gates the lancedb dep
- Cargo.lock regenerated
lancedb is NOT in default features — opt-in via `--features lancedb-sdk`.
This gives the workspace access to the LanceDB table/connection API surface
that third-party tooling (DuckDB lance ext, Polars reader, Python/JS SDK)
expects, without forcing the dep on minimal builds.
Version compat matrix:
lancedb 0.27.2 → lance =4.0.0, datafusion ^52.1, arrow ^57.2
Our pins: lance =4.0.0, datafusion 52, arrow 57 ✅
Workspace compiles clean (4 pre-existing warnings, 0 errors).
https://claude.ai/code/session_01SbYsmmbPf9YQuYbHZN52Zh
AdaWorldAPI
pushed a commit
that referenced
this pull request
Apr 30, 2026
- Fix 4× `#[deprecated(since = "next")]` invalid semver in context_chain.rs — drop `since` field (G3 refactor artifact) - Fix `actor.role <= u8::MAX` tautological comparison in lance_membrane.rs:768 — replace with meaningful `< 32` guard - Document Wave-1 LOC audit in EPIPHANIES.md: recovery (#275-#283) = +8,728; Wave 1 (#300-#306) = +3,156; combined = +11,807; zero LOC lost from G1 rebase cargo fmt --check: clean cargo clippy (4 crates): warnings only, 0 errors https://claude.ai/code/session_01NYGrxVopyszZYgLBxe4hgj
AdaWorldAPI
pushed a commit
that referenced
this pull request
May 13, 2026
…onical SIMD path Locks the build invariants for all D-SDR-* deliverables: Pinned versions (per PR #275 + Cargo.toml): - rust 1.94.1 (MSRV; portable_simd patterns ndarray::simd uses) - lance =4.0.0 (exact pin) - lancedb 0.27.2 ndarray::simd is the canonical SIMD path: - All vectorized ops use ndarray::simd from workspace vendored ndarray fork - Not raw std::simd, not packed_simd, not hand-rolled intrinsics - One SIMD path, one test surface, one cross-platform contract - Hot-path ops mapped: * OwlIdentity bitmask scans (Cypher MATCH lowering) * Batch MerkleRoot computation across rows * BitSet256 bitwise ops (role redaction mask) * Per-family codebook PQ centroid distance * Canonicalization rule application across batch * DataFusion predicate vector composition (UnifiedBridge::authorize) * ArrowBatchDriftSignal MerkleRoot-of-batch - Tier A LOC drops ~15-25%: scalar fallback paths collapse to ndarray::simd one-liners, no separate code Mandatory-ndarray promotion (decoupled concurrent workstream): - User directive: ndarray should be mandatory dep, not optional ndarray-hpc - Per CLAUDE.md Phase 3 IN PROGRESS already includes the wiring; this promotes that to "make ndarray mandatory, retire feature flag" - NOT blocking any D-SDR-* deliverable - Tier A may temporarily ship behind #[cfg(feature = "ndarray-hpc")] until the promotion lands; gates retire via mechanical find/replace - Workstream sequencing: 1. Promote ndarray: feature → mandatory dep (Phase 3 + new directive) 2. Retire blasgraph/ndarray_bridge.rs standalone fallbacks 3. Retire #[cfg(feature = "ndarray-hpc")] gates from D-SDR-* Tradeoff flagged: ndarray::simd couples lance-graph MSRV to ndarray's; acceptable per workspace policy (ndarray = The Foundation per CLAUDE.md). Version pinning stricter than rest of workspace, correct for storage layer + Flight SQL where minor-version drift causes real bugs. INTEGRATION_PLANS.md fourth correction line appended per APPEND-ONLY governance.
AdaWorldAPI
pushed a commit
that referenced
this pull request
May 28, 2026
…onical SIMD path Locks the build invariants for all D-SDR-* deliverables: Pinned versions (per PR #275 + Cargo.toml): - rust 1.94.1 (MSRV; portable_simd patterns ndarray::simd uses) - lance =4.0.0 (exact pin) - lancedb 0.27.2 ndarray::simd is the canonical SIMD path: - All vectorized ops use ndarray::simd from workspace vendored ndarray fork - Not raw std::simd, not packed_simd, not hand-rolled intrinsics - One SIMD path, one test surface, one cross-platform contract - Hot-path ops mapped: * OwlIdentity bitmask scans (Cypher MATCH lowering) * Batch MerkleRoot computation across rows * BitSet256 bitwise ops (role redaction mask) * Per-family codebook PQ centroid distance * Canonicalization rule application across batch * DataFusion predicate vector composition (UnifiedBridge::authorize) * ArrowBatchDriftSignal MerkleRoot-of-batch - Tier A LOC drops ~15-25%: scalar fallback paths collapse to ndarray::simd one-liners, no separate code Mandatory-ndarray promotion (decoupled concurrent workstream): - User directive: ndarray should be mandatory dep, not optional ndarray-hpc - Per CLAUDE.md Phase 3 IN PROGRESS already includes the wiring; this promotes that to "make ndarray mandatory, retire feature flag" - NOT blocking any D-SDR-* deliverable - Tier A may temporarily ship behind #[cfg(feature = "ndarray-hpc")] until the promotion lands; gates retire via mechanical find/replace - Workstream sequencing: 1. Promote ndarray: feature → mandatory dep (Phase 3 + new directive) 2. Retire blasgraph/ndarray_bridge.rs standalone fallbacks 3. Retire #[cfg(feature = "ndarray-hpc")] gates from D-SDR-* Tradeoff flagged: ndarray::simd couples lance-graph MSRV to ndarray's; acceptable per workspace policy (ndarray = The Foundation per CLAUDE.md). Version pinning stricter than rest of workspace, correct for storage layer + Flight SQL where minor-version drift causes real bugs. INTEGRATION_PLANS.md fourth correction line appended per APPEND-ONLY governance.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds lancedb 0.27.2 as an optional dependency and pins all lance crates to exact =4.0.0.
Why exact pins
lancedb uses
=(exact) pins on lance, not^(semver-compatible). lancedb 0.27.2 requires exactly lance 4.0.0. Our previous"4"pin resolved to 4.0.1, which is incompatible. Pinning to=4.0.0makes lancedb resolvable.What changes
lancedb-sdkfeature)Feature gate
NOT in default features. Opt-in via
--features lancedb-sdk. Gives the workspace access to the LanceDB table/connection API that third-party tooling expects.No 0.27.3 exists
Latest lancedb is 0.27.2 (published 2026-03-31). No newer version available.
Arrow 58 status
Still blocked. lance 4.0.0 pins
arrow = "^57". Arrow 58 needs lance 5+ (not released).Test plan
cargo checkworkspace clean (0 errors)cargo check --features lancedb-sdkresolves lancedb 0.27.2 + lance 4.0.0https://claude.ai/code/session_01SbYsmmbPf9YQuYbHZN52Zh
Generated by Claude Code