mirror of
https://github.com/lancedb/lancedb.git
synced 2026-11-13 14:16:54 +00:00
13e4cf7e58f78779b07919862a593ccd3098c1de
3509
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
13e4cf7e58 |
feat: expose Function publication intervals in refresh options (#4928)
Python refresh APIs currently reject `publication_interval_rows`, so callers cannot request incremental Function output publication through the SDK. Add the optional typed parameter through the sync/async Python APIs, PyO3, and Rust `RefreshColumnOptions`, and serialize it as a top-level Enterprise refresh option. An omitted value preserves the existing wire request and whole-fragment default. Positive values set a publication threshold; zero and negative Python values fail before a request is sent. Embedded refreshes reject the Enterprise-only option. Documentation describes a threshold rather than an exact number of rows per publication. Validation on the designated development host: - A matching baseline build reproduced the missing public keyword argument in both sync and async submission tests. - The updated PyO3 build passed 54 focused Python tests; Rust payload, invalid-option, and default-wire tests each passed. Rust formatting and Python Ruff checks passed. - The single signed delivery commit differs from that tested implementation only in a Rustdoc correction describing Embedded rejection; formatting passed again. No dependency pins or lockfiles changed. The matching SDK is prepared for the separate server validation of failure/cancellation retention and missing-only refill. Those end-to-end results are still pending and are not implied by these SDK tests. Refs [ENT-3733](https://linear.app/lancedb/issue/ENT-3733). |
||
|
|
0a5c36c1e2 |
feat: plan computed columns against the session's DataFusion functions (#4924)
A computed column's expression is planned with Lance's default planner, so a function the embedder registers with DataFusion can't be declared, and the declared field drops the return-field metadata a function attaches, such as a logical type. Every site that plans a declaration (declare, validate, refresh, schema changes, view and table creation) now uses the DataFusion session the table's lance session carries, when there is one. The declared field keeps the expression's return-field metadata, without schema declarations such as a primary key. |
||
|
|
d8957238bf | fix(remote): stream query responses instead of buffering them (#4929) | ||
|
|
794fa023cd |
feat: add materialized view refresh resource budgets (#4902)
Expose aggregate CPU, memory, and GPU budgets plus GPU-class placement
on materialized-view refreshes in Python and Rust. Forward options
through SQL and reject invalid or unsupported Embedded requests instead
of silently dropping constraints.
```python
job = view.refresh_async(
cpu_millis=8000,
memory_bytes=16 * 1024**3,
gpu_count=2,
gpu_class="h100",
)
job.wait()
```
```sql
REFRESH MATERIALIZED VIEW curated_training_set
WITH (cpu_millis = 8000, memory_bytes = 17179869184,
gpu_count = 2, gpu_class = 'h100');
```
The same options apply to blocking refreshes, async Python connections,
and the Rust refresh builder. CPU/memory budgets require all three
resource fields; GPU-only caps and class-only placement are also
supported. These are execution-wide caps and require a supporting
Enterprise server with an isolated execution backend. A cap does not
increase refresh parallelism; current MV refreshes use at most one GPU.
Updates API documentation and SQL reference, with Python sync/async and
Rust remote-submission regression coverage. Formatting and Python lint
pass; local builds and tests are intentionally skipped.
The Linux CI build and example steps explicitly select the LanceDB
package, matching the feature-test step. This avoids rebuilding and
retaining a second dependency graph after a workspace-wide build, which
exhausted runner disk space on both this branch and main.
Related: [ENT-3386](https://linear.app/lancedb/issue/ENT-3386)
|
||
|
|
1eeb200705 |
chore: update lance dependency to v15.0.0-beta.15 (#4926)
Update Rust and Java Lance dependencies to [v15.0.0-beta.15](https://github.com/lance-format/lance/releases/tag/v15.0.0-beta.15), pin Python tests to published pylance 15.0.0b15, and refresh both lockfiles; no compatibility fixes were needed. Validation passed: workspace Clippy with all features/tests and warnings denied, cargo fmt, uv lock --check, and all 35 CI-script tests. The [upstream wheel workflow](https://github.com/lance-format/lance/actions/runs/42669437482) canceled Windows ARM64 and manylinux_2_28 x86_64 builds after an hour, so the lockfile contains the five published variants (Linux x86_64 remains covered by manylinux2014); Windows ARM64 is unavailable until upstream publishes its wheel and the lockfile is refreshed. |
||
|
|
546a28ad2c | feat: support remote compaction tuning and table inheritance (#4886) | ||
|
|
94f366a11a |
docs: show the Python filtered refresh next to the SQL form (#4923)
Adds Python where= examples next to the SQL ones. Also fixes two examples that fail: - Date filters now use date '2026-01-01'. A bare string fails on DATE and TIMESTAMP columns (see [Dates, Timestamps, Decimals](https://docs.lancedb.com/search/filtering#dates-timestamps-decimals)). - The first example reads results with table.search().to_arrow(), because table.to_arrow() raises on Enterprise. where= needs lancedb 0.42.0 or later. |
||
|
|
1157a0709d | Bump version: 0.42.0-beta.8 → 0.42.0-beta.9 v0.42.0-beta.9 | ||
|
|
bd8cbfd4f2 |
chore: update lance dependency to v15.0.0-beta.14 (#4909)
Update the Rust workspace Lance crates and Python test dependency to [Lance v15.0.0-beta.14](https://github.com/lance-format/lance/releases/tag/v15.0.0-beta.14), which includes JSON cache reuse across request stores and stable-row-ID JSON index support. The Python lock contains all seven published wheels. The independent Java module retains beta.8, as in the previous beta.13 update; its separate beta.14 publisher repair is outside this Rust consumer upgrade. Preserve all CI coverage while reclaiming completed workspace lancedb artifacts before the package-level feature-test build, which otherwise exhausted the Linux runner disk. Give only the Linux ARM64 release-wheel job two hours after its one-hour timeout, retaining the same runner, fat-LTO release profile and build flags. Validation: 2,280 Rust tests passed (79 existing ignores), strict workspace/all-feature Clippy, Rust formatting, and remote example checks passed on unchanged Rust source and dependency lock. Python dependency guards, lock validation, locked sync, and the published macOS wheel import passed. The new Windows ARM64 wheel was downloaded and its SHA-256 verified. Workflow YAML/shell checks and independent review passed. Root Python Ruff/format checks still fail on unchanged documentation examples; no suppressions or unrelated cleanup were added. The CI repairs require a complete new run before readiness. This dependency update does not establish corrected Sophon performance; downstream native acceptance and the paired S3 replay remain separate. |
||
|
|
bff93ff314 | Bump version: 0.42.0-beta.7 → 0.42.0-beta.8 v0.42.0-beta.8 | ||
|
|
1b3b2c2da9 |
chore: update lance dependency to v15.0.0-beta.13 (#4899)
Update the Rust workspace Lance dependencies to [v15.0.0-beta.13](https://github.com/lance-format/lance/releases/tag/v15.0.0-beta.13), synchronize the Python test dependency to published pylance 15.0.0b13, and refresh both lockfiles; no compatibility fixes were needed. The Java SDK stays on `lance-core` 15.0.0-beta.8, as in the beta.9 and beta.10 updates: Maven Central has no `lance-core` artifact for 15.0.0-beta.9 through beta.13. Validation passed: workspace Clippy with all features and warnings denied, Cargo formatting, Python lockfile checks, and all 35 CI-script tests. Repository-wide Ruff reports 163 diagnostics, all verified identical on unchanged HEAD; unrelated formatter changes were reverted. --------- Co-authored-by: Vivek <vbharathan2008@gmail.com> |
||
|
|
e2501b0dab |
docs: update example names (#4887)
Use neutral placeholder names and values in a few code examples in the docs and Python docstrings. Text-only; no behavior change. --- _Generated by [Claude Code](https://claude.ai/code/session_019iqZdtD3ZMnvTMeoNsULgX)_ --------- Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
96328f6e08 |
fix(node): upgrade transformers.js to 4.3.2 to pick up patched sharp (#4885)
## Summary
`@lancedb/lancedb` pins the optional dependency
`@huggingface/transformers` at 3.0.2, which requires `sharp ^0.33.5`.
Every npm install of LanceDB therefore pulled in a sharp version with
critical advisories (GHSA-wq5f-xc86-pv6w, GHSA-rgj7-g3m4-5g8c). No 3.x
release of transformers allows a patched sharp, so this upgrades to
4.3.2, which requires `sharp ^0.35.4`. A fresh install resolves that
range to 0.35.5, the first release that fixes both advisories.
- `nodejs/package.json`: `@huggingface/transformers` 3.0.2 → 4.3.2.
- `nodejs/pnpm-workspace.yaml`: remove the `sharp: ^0.35.4` override. It
only covered our own install, not consumers, and transformers now
requires that range itself.
- `nodejs/examples`: transformers 3.0.2 → 4.3.2, sharp 0.33.5 → 0.35.5.
- Both lockfiles resolve sharp to 0.35.5; `pnpm audit` reports no sharp
advisories in either.
`TransformersEmbeddingFunction` needed no code changes. The transformers
types are only used in private fields, so the published typings don't
change.
`docs/web-tests/ts` and `docs/web-tests/blob-v2/ts` are left alone: they
resolve transformers through a published `@lancedb/lancedb`, so they
pick this up after a release.
## Evidence
Embeddings from the built-in `huggingface` embedding function (default
`Xenova/all-MiniLM-L6-v2`) on 4.3.2, compared with the same mean pooling
on 3.0.2, for three sentences:
```
transformers 4.3.2: 3 x 384
text 0: max|diff|=6.62e-07 cosine=1.00000000
text 1: max|diff|=6.26e-07 cosine=1.00000000
text 2: max|diff|=7.33e-07 cosine=1.00000000
```
End to end through a table, `search("a feline sat down")` returns `["The
cat sat on the mat.", "A dog barked at the mailman."]`.
## Merge Risk
**Door:** Two-way. A revert restores the 3.0.2 pin.
**Blast Radius:** Node `huggingface` embedding function, and install
footprint of the optional dependency (onnxruntime-node 1.19.2 → 1.30.0,
which still downloads the CUDA provider on Linux x64 by default, as
1.19.2 did).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
---------
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
|
||
|
|
003d5e522f |
docs: fix Rust example download links (#4896)
The Rust example downloads in the ingestion, search, reranking and SQL guides point to `/static/code/*.zip` URLs that return HTTP 404 on the published docs site. Replace all 15 references across 13 pages with public GitHub downloads pinned to commit `2af85bea8999c8cd23ec01ff62ba110c54652c10`. The three archives already exist in this repository. Pinning their URLs preserves the exact source, dependency manifests and lockfiles used by the existing `cargo run --locked` instructions. Only link destinations change. Validation: - All three public download URLs return HTTP 200 with ZIP content. Downloaded bytes match the repository archives and the deployed docs source archives exactly, and ZIP integrity checks pass. - Verified that the diff contains exactly 15 URL replacements in 13 pages. No example code, run instructions, manifests or lockfiles changed. - `git diff --check` passes. - `mint broken-links` reports the same 16 existing missing internal links on both the unchanged `main` baseline and this branch. - `mint validate` reports four existing missing snippet exports (`RsExampleBody` and `RsExampleTail` in the reranking and vector-search pages); the unchanged baseline has the same warnings. The combined docs build and internal-link check pass with the equivalent download-link fix. |
||
|
|
2af85bea89 |
feat: expose the remaining refresh options on the SDKs (#4890)
The server's backfill request takes a row filter, failure limits, per-call timeouts and worker sizing, and SQL exposes all of them through `REFRESH COLUMN ... WHERE ... WITH (...)`, but the typed SDKs could send only batch_size, GPU placement and the retry and error policies. Anyone needing a filtered refresh or a bounded skip policy had to drop to SQL. This adds `where`, `max_failed_fraction`, `max_failed_rows`, `row_timeout_seconds`, `init_timeout_seconds`, `num_workers` and `max_executor_processes_per_worker` to Python, Rust and Node, passed through unchanged. `RefreshColumnOptions` now serializes straight into the request body, so the three SDKs share one producer. Node gets a `RefreshColumnOptions` object, which also carries the options it lacked before. A LanceDB Embedded refresh rejects every option other than batch_size and GPU placement, naming the option. |
||
|
|
d379bbb722 |
chore(deps): bump the rust-minor-patch group across 1 directory with 6 updates (#4798)
Bumps the rust-minor-patch group with 6 updates in the / directory: | Package | From | To | | --- | --- | --- | | [tonic](https://github.com/grpc/grpc-rust) | `0.14.6` | `0.14.9` | | [clap](https://github.com/clap-rs/clap) | `4.6.1` | `4.6.7` | | [unicode-width](https://github.com/unicode-rs/unicode-width) | `0.2.2` | `0.2.3` | | [tokio-stream](https://github.com/tokio-rs/tokio) | `0.1.18` | `0.1.19` | | [napi](https://github.com/napi-rs/napi-rs) | `3.15.0` | `3.16.0` | | [napi-derive](https://github.com/napi-rs/napi-rs) | `3.6.13` | `3.7.0` | Updates `tonic` from 0.14.6 to 0.14.9 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/grpc/grpc-rust/releases">tonic's releases</a>.</em></p> <blockquote> <h2>tonic-build-v0.14.9</h2> <h3>Fixed</h3> <ul> <li>fix/silence all clippy warnings (<a href="https://redirect.github.com/grpc/grpc-rust/pull/2807">#2807</a>)</li> </ul> <h3>Other</h3> <ul> <li>fix changelog duplicate and update repository URLs (<a href="https://redirect.github.com/grpc/grpc-rust/pull/2943">#2943</a>)</li> <li>License update (<a href="https://redirect.github.com/grpc/grpc-rust/pull/2749">#2749</a>)</li> </ul> <h2>tonic-health-v0.14.9</h2> <h3>Other</h3> <ul> <li>fix changelog duplicate and update repository URLs (<a href="https://redirect.github.com/grpc/grpc-rust/pull/2943">#2943</a>)</li> <li>License update (<a href="https://redirect.github.com/grpc/grpc-rust/pull/2749">#2749</a>)</li> </ul> <h2>tonic-prost-build-v0.14.9</h2> <h3>Fixed</h3> <ul> <li>fix/silence all clippy warnings (<a href="https://redirect.github.com/grpc/grpc-rust/pull/2807">#2807</a>)</li> </ul> <h3>Other</h3> <ul> <li>fix changelog duplicate and update repository URLs (<a href="https://redirect.github.com/grpc/grpc-rust/pull/2943">#2943</a>)</li> <li>License update (<a href="https://redirect.github.com/grpc/grpc-rust/pull/2749">#2749</a>)</li> </ul> <h2>tonic-prost-v0.14.9</h2> <h3>Fixed</h3> <ul> <li>fix/silence all clippy warnings (<a href="https://redirect.github.com/grpc/grpc-rust/pull/2807">#2807</a>)</li> </ul> <h3>Other</h3> <ul> <li>fix changelog duplicate and update repository URLs (<a href="https://redirect.github.com/grpc/grpc-rust/pull/2943">#2943</a>)</li> <li>relax codec Default bounds (<a href="https://redirect.github.com/grpc/grpc-rust/pull/2681">#2681</a>)</li> <li>License update (<a href="https://redirect.github.com/grpc/grpc-rust/pull/2749">#2749</a>)</li> </ul> <h2>tonic-reflection-v0.14.9</h2> <h3>Fixed</h3> <ul> <li><em>(reflection)</em> preserve custom options in served descriptors (<a href="https://redirect.github.com/grpc/grpc-rust/pull/2730">#2730</a>)</li> </ul> <h3>Other</h3> <ul> <li>fix changelog duplicate and update repository URLs (<a href="https://redirect.github.com/grpc/grpc-rust/pull/2943">#2943</a>)</li> <li>enable missing feature for test build (<a href="https://redirect.github.com/grpc/grpc-rust/pull/2820">#2820</a>)</li> <li>License update (<a href="https://redirect.github.com/grpc/grpc-rust/pull/2749">#2749</a>)</li> </ul> <h2>tonic-types-v0.14.9</h2> <h3>Fixed</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/grpc/grpc-rust/commit/4c0f455c264fe2ec9f9ab5d0cc7fd2824d5daf70"><code>4c0f455</code></a> chore: release v0.14.9 (<a href="https://redirect.github.com/grpc/grpc-rust/issues/2979">#2979</a>)</li> <li><a href="https://github.com/grpc/grpc-rust/commit/4ee04836ba1aa703521e9b7bde5611fa54a72d11"><code>4ee0483</code></a> fix(server): set a timer on HTTP/1 connections so hyper's header read timeout...</li> <li><a href="https://github.com/grpc/grpc-rust/commit/a47b6086970b1bbcf9596543dd7f42bf6dec14b3"><code>a47b608</code></a> feat(transport): expose h2 reset stream settings on Endpoint (<a href="https://redirect.github.com/grpc/grpc-rust/issues/2972">#2972</a>)</li> <li><a href="https://github.com/grpc/grpc-rust/commit/349166ede3a2b3a9f541da3dd292f72b76ef539a"><code>349166e</code></a> grpc/load_balancing: Add address-checked subchannel helpers to TestEnv. (<a href="https://redirect.github.com/grpc/grpc-rust/issues/2938">#2938</a>)</li> <li><a href="https://github.com/grpc/grpc-rust/commit/78a8f2dc7760ad29a4113ff49e2a92e14add49be"><code>78a8f2d</code></a> feat(tonic-xds): expose ADS keepalive knob in config (<a href="https://redirect.github.com/grpc/grpc-rust/issues/2973">#2973</a>)</li> <li><a href="https://github.com/grpc/grpc-rust/commit/954d6d7099f2ea71692f4e684430e81e45c3cc78"><code>954d6d7</code></a> xds-client: align ADS keepalive defaults with other gRPC languages (<a href="https://redirect.github.com/grpc/grpc-rust/issues/2970">#2970</a>)</li> <li><a href="https://github.com/grpc/grpc-rust/commit/4b61ef94ac94ce76714e9409a963a97a82257de2"><code>4b61ef9</code></a> xds-client: add grpc crate transport implementation (<a href="https://redirect.github.com/grpc/grpc-rust/issues/2920">#2920</a>)</li> <li><a href="https://github.com/grpc/grpc-rust/commit/541379959bf197057a7c04eeca7f1d976f5ba7c6"><code>5413799</code></a> chore: release v0.14.8 (<a href="https://redirect.github.com/grpc/grpc-rust/issues/2966">#2966</a>)</li> <li><a href="https://github.com/grpc/grpc-rust/commit/b8282b95eb6baeb85cce88cdd7940033fba8ccf7"><code>b8282b9</code></a> fix(tonic-web): fix dropped trailers in combined streaming call. (<a href="https://redirect.github.com/grpc/grpc-rust/issues/2474">#2474</a>)</li> <li><a href="https://github.com/grpc/grpc-rust/commit/818532da3abfa6068b0855f483e3c627d9e14640"><code>818532d</code></a> chore: release v0.14.7 (<a href="https://redirect.github.com/grpc/grpc-rust/issues/2800">#2800</a>)</li> <li>Additional commits viewable in <a href="https://github.com/grpc/grpc-rust/compare/tonic-v0.14.6...tonic-v0.14.9">compare view</a></li> </ul> </details> <br /> Updates `clap` from 4.6.1 to 4.6.7 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/clap-rs/clap/releases">clap's releases</a>.</em></p> <blockquote> <h2>v4.6.7</h2> <h2>[4.6.7] - 2026-09-14</h2> <h3>Features</h3> <ul> <li><em>(derive)</em> Add <code>#[command(defer = <bool>)]</code> attribute to opt-in to lazy initialisation of subcommands</li> </ul> <h2>v4.6.6</h2> <h2>[4.6.6] - 2026-08-06</h2> <h3>Features</h3> <ul> <li>Add <code>Command::get_overridden_usage</code></li> </ul> <h2>v4.6.5</h2> <h2>[4.6.5] - 2026-07-31</h2> <h3>Fixes</h3> <ul> <li><em>(help)</em> Correctly mark which <code>value_names</code> are optional with <code>num_args</code></li> </ul> <h2>v4.6.4</h2> <h2>[4.6.4] - 2026-07-21</h2> <h3>Internal</h3> <ul> <li>Update to syn v3</li> </ul> <h2>v4.6.3</h2> <h2>[4.6.3] - 2026-07-20</h2> <h3>Fixes</h3> <ul> <li><em>(derive)</em> Allow <code>"literal".function()</code> as attribute values</li> </ul> <h2>v4.6.2</h2> <h2>[4.6.2] - 2026-07-15</h2> <h3>Fixes</h3> <ul> <li><em>(help)</em> Say <code>alias</code> when there is only one</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/clap-rs/clap/blob/main/CHANGELOG.md">clap's changelog</a>.</em></p> <blockquote> <h2>[4.6.7] - 2026-09-14</h2> <h3>Features</h3> <ul> <li><em>(derive)</em> Add <code>#[command(defer = <bool>)]</code> attribute to opt-in to lazy initialisation of subcommands</li> </ul> <h2>[4.6.6] - 2026-08-06</h2> <h3>Features</h3> <ul> <li>Add <code>Command::get_overridden_usage</code></li> </ul> <h2>[4.6.5] - 2026-07-31</h2> <h3>Fixes</h3> <ul> <li><em>(help)</em> Correctly mark which <code>value_names</code> are optional with <code>num_args</code></li> </ul> <h2>[4.6.4] - 2026-07-21</h2> <h3>Internal</h3> <ul> <li>Update to syn v3</li> </ul> <h2>[4.6.3] - 2026-07-20</h2> <h3>Fixes</h3> <ul> <li><em>(derive)</em> Allow <code>"literal".function()</code> as attribute values</li> </ul> <h2>[4.6.2] - 2026-07-15</h2> <h3>Fixes</h3> <ul> <li><em>(help)</em> Say <code>alias</code> when there is only one</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/clap-rs/clap/commit/d3e59a9ab214910b9dad02921b7ef42c6400de9b"><code>d3e59a9</code></a> chore: Release</li> <li><a href="https://github.com/clap-rs/clap/commit/d997f878c484e02b2935d32a7b67afe990e91227"><code>d997f87</code></a> docs: Update changelog</li> <li><a href="https://github.com/clap-rs/clap/commit/fb6058cc38cf6f4b07b8db89c850fc80e059e222"><code>fb6058c</code></a> Merge pull request <a href="https://redirect.github.com/clap-rs/clap/issues/6409">#6409</a> from heaths/pwsh-support</li> <li><a href="https://github.com/clap-rs/clap/commit/2310870f7a9fe4c39f5bb5620261a06ac9aaa0b1"><code>2310870</code></a> test(complete): Add tests for completer_for_path</li> <li><a href="https://github.com/clap-rs/clap/commit/5967c17393a09f90112cdc5b2c20a1383f0bd8e4"><code>5967c17</code></a> refactor(complete): Move shell detection to Shells</li> <li><a href="https://github.com/clap-rs/clap/commit/594602bb29f374e49da5029df63e5c740c723ad0"><code>594602b</code></a> fix(complete): Detect pwsh for PowerShell</li> <li><a href="https://github.com/clap-rs/clap/commit/3a4f2d031b5110aaaac40f1cb1d6c0b8ff619df8"><code>3a4f2d0</code></a> Merge pull request <a href="https://redirect.github.com/clap-rs/clap/issues/6427">#6427</a> from clap-rs/renovate/shlex-2.x</li> <li><a href="https://github.com/clap-rs/clap/commit/67ebaed4ac95a83d5d7cc22d64ee0fc162ae1db3"><code>67ebaed</code></a> Merge pull request <a href="https://redirect.github.com/clap-rs/clap/issues/6426">#6426</a> from clap-rs/renovate/actions-checkout-7.x</li> <li><a href="https://github.com/clap-rs/clap/commit/c968b136d0e6f560c08b06a844a20f2798a00096"><code>c968b13</code></a> chore(deps): Update Rust crate shlex to v2</li> <li><a href="https://github.com/clap-rs/clap/commit/8f247cbf58c582a755ee4dbe62a2390d93b9f8eb"><code>8f247cb</code></a> chore(deps): Update actions/checkout action to v7</li> <li>Additional commits viewable in <a href="https://github.com/clap-rs/clap/compare/clap_complete-v4.6.1...clap_complete-v4.6.7">compare view</a></li> </ul> </details> <br /> Updates `unicode-width` from 0.2.2 to 0.2.3 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/unicode-rs/unicode-width/commit/f8c8b20d0ef0102dc4c136bcd5a1b39d2aef8a69"><code>f8c8b20</code></a> Publish 0.2.3 (<a href="https://redirect.github.com/unicode-rs/unicode-width/issues/100">#100</a>)</li> <li><a href="https://github.com/unicode-rs/unicode-width/commit/5180748ec0cacabfad0478996e9a89a612274e8f"><code>5180748</code></a> Fix documentation of Kirat Rai rules (<a href="https://redirect.github.com/unicode-rs/unicode-width/issues/97">#97</a>)</li> <li><a href="https://github.com/unicode-rs/unicode-width/commit/0b85fb874a628a08c9c85dc70ca9e5b7908db6a8"><code>0b85fb8</code></a> Update to Unicode 18 (<a href="https://redirect.github.com/unicode-rs/unicode-width/issues/96">#96</a>)</li> <li><a href="https://github.com/unicode-rs/unicode-width/commit/832f7ca447375ff969f850dab9362a0c2ce1eefb"><code>832f7ca</code></a> Fix typo in docs (<a href="https://redirect.github.com/unicode-rs/unicode-width/issues/90">#90</a>)</li> <li><a href="https://github.com/unicode-rs/unicode-width/commit/c7b4d42d741d985103fd887089c57deefc9e4f2d"><code>c7b4d42</code></a> Fix halfwidth katakana voiced and semi-voiced sound marks in width calculatio...</li> <li><a href="https://github.com/unicode-rs/unicode-width/commit/a3d4ee6c2989367e8d54ac70c83ee76ba0a71079"><code>a3d4ee6</code></a> Fix mistake in the specification of Arabic lam-alef ligature (<a href="https://redirect.github.com/unicode-rs/unicode-width/issues/92">#92</a>)</li> <li><a href="https://github.com/unicode-rs/unicode-width/commit/d8654db078bf9f93b5bfe1e6294a477cc4addc28"><code>d8654db</code></a> Split generated file into multiple files, separating static code from generat...</li> <li><a href="https://github.com/unicode-rs/unicode-width/commit/ab7a6dc5706e8d47a3b77577165e3ca76aeeab7b"><code>ab7a6dc</code></a> Support <code>char</code> iter width (<a href="https://redirect.github.com/unicode-rs/unicode-width/issues/83">#83</a>)</li> <li><a href="https://github.com/unicode-rs/unicode-width/commit/b10a4d5fbefe3f3dddd5e59cae2b889083ca58e7"><code>b10a4d5</code></a> Exclude development scripts from published packages (<a href="https://redirect.github.com/unicode-rs/unicode-width/issues/80">#80</a>)</li> <li>See full diff in <a href="https://github.com/unicode-rs/unicode-width/compare/v0.2.2...v0.2.3">compare view</a></li> </ul> </details> <br /> Updates `tokio-stream` from 0.1.18 to 0.1.19 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tokio-rs/tokio/commit/bc0933ccffb62e010d3ccb497abc22cec2e73f54"><code>bc0933c</code></a> chore: prepare tokio-stream v0.1.19 (<a href="https://redirect.github.com/tokio-rs/tokio/issues/8310">#8310</a>)</li> <li><a href="https://github.com/tokio-rs/tokio/commit/e3786d0090d1a36381738068519534991ca69d44"><code>e3786d0</code></a> readme: remove obsolete TokioConf notices (<a href="https://redirect.github.com/tokio-rs/tokio/issues/8311">#8311</a>)</li> <li><a href="https://github.com/tokio-rs/tokio/commit/f2189d3bd69d22638158a0ca8163b2e8daf18c5f"><code>f2189d3</code></a> chore: prepare tokio-util v0.7.19 (<a href="https://redirect.github.com/tokio-rs/tokio/issues/8309">#8309</a>)</li> <li><a href="https://github.com/tokio-rs/tokio/commit/52f2745c18fd69174ca420a2ff5fe4216d320a48"><code>52f2745</code></a> net: re-enable <code>tcp_stream::try_read_buf</code> test for WASI (<a href="https://redirect.github.com/tokio-rs/tokio/issues/8305">#8305</a>)</li> <li><a href="https://github.com/tokio-rs/tokio/commit/ac6869a431d9d7e2a81ce5309f00730741d3462a"><code>ac6869a</code></a> rt: remove unstable cfgs leftovers after local runtime stabilization (<a href="https://redirect.github.com/tokio-rs/tokio/issues/8298">#8298</a>)</li> <li><a href="https://github.com/tokio-rs/tokio/commit/75fef53d0a8590c2d1dbb63672aa7b7d1ef51155"><code>75fef53</code></a> chore: prepare Tokio v1.53.1 (<a href="https://redirect.github.com/tokio-rs/tokio/issues/8303">#8303</a>)</li> <li><a href="https://github.com/tokio-rs/tokio/commit/ae9d01121377cdbef32b9d5e8559843cce9f927e"><code>ae9d011</code></a> signal: restore MSRV by removing OnceLock::wait from the Windows handler (<a href="https://redirect.github.com/tokio-rs/tokio/issues/8300">#8300</a>)</li> <li><a href="https://github.com/tokio-rs/tokio/commit/eb4988dc2ecb85d2617971fbbabc84938c141bfd"><code>eb4988d</code></a> time: fix the loom test of the race between cancellation/insertion (<a href="https://redirect.github.com/tokio-rs/tokio/issues/8302">#8302</a>)</li> <li><a href="https://github.com/tokio-rs/tokio/commit/91d3b4c0bccf2234fc3ed19e605e2cd402f19437"><code>91d3b4c</code></a> time: fix alt timer cancellation and insertion race (<a href="https://redirect.github.com/tokio-rs/tokio/issues/8252">#8252</a>)</li> <li><a href="https://github.com/tokio-rs/tokio/commit/a46338401b9e0ffc9bd68c31100ee99cee717481"><code>a463384</code></a> runtime: remove dead link definition in <code>Runtime::block_on</code> (<a href="https://redirect.github.com/tokio-rs/tokio/issues/8301">#8301</a>)</li> <li>Additional commits viewable in <a href="https://github.com/tokio-rs/tokio/compare/tokio-stream-0.1.18...tokio-stream-0.1.19">compare view</a></li> </ul> </details> <br /> Updates `napi` from 3.15.0 to 3.16.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/napi-rs/napi-rs/releases">napi's releases</a>.</em></p> <blockquote> <h2>napi-v3.16.0</h2> <h3>Added</h3> <ul> <li><em>(napi)</em> support well-known symbol keys for class members (<a href="https://redirect.github.com/napi-rs/napi-rs/pull/3665">#3665</a>)</li> <li><em>(napi)</em> support symbol_for keys for class members (<a href="https://redirect.github.com/napi-rs/napi-rs/pull/3661">#3661</a>)</li> </ul> <h3>Fixed</h3> <ul> <li><em>(napi)</em> compact class identity metadata (<a href="https://redirect.github.com/napi-rs/napi-rs/pull/3667">#3667</a>)</li> <li><em>(napi)</em> keep the registered classes when a later load fails (<a href="https://redirect.github.com/napi-rs/napi-rs/pull/3666">#3666</a>)</li> <li><em>(napi)</em> free define_class closures, honour static flags, avoid TS1016 in constructors (<a href="https://redirect.github.com/napi-rs/napi-rs/pull/3662">#3662</a>)</li> <li><em>(napi)</em> free threadsafe function call data when the call fails (<a href="https://redirect.github.com/napi-rs/napi-rs/pull/3656">#3656</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/napi-rs/napi-rs/commit/f89400d99b136c5c8a27818654b91256832b5bd6"><code>f89400d</code></a> chore: release (<a href="https://redirect.github.com/napi-rs/napi-rs/issues/3637">#3637</a>)</li> <li><a href="https://github.com/napi-rs/napi-rs/commit/192cbaafabc3166691efd63d34b675b525fcf65a"><code>192cbaa</code></a> chore(deps): update dependency <code>@types/inquirer</code> to v10 (<a href="https://redirect.github.com/napi-rs/napi-rs/issues/3668">#3668</a>)</li> <li><a href="https://github.com/napi-rs/napi-rs/commit/9188219047aff34963c98fc701e625955050cdbc"><code>9188219</code></a> chore(deps): update dependency electron to v45 (<a href="https://redirect.github.com/napi-rs/napi-rs/issues/3634">#3634</a>)</li> <li><a href="https://github.com/napi-rs/napi-rs/commit/1d93a4e284150c3461032a40e3a8a95c3703efb7"><code>1d93a4e</code></a> fix(napi): compact class identity metadata (<a href="https://redirect.github.com/napi-rs/napi-rs/issues/3667">#3667</a>)</li> <li><a href="https://github.com/napi-rs/napi-rs/commit/e9de9024337af056b79010d3f9024fdc88965572"><code>e9de902</code></a> fix(napi): keep the registered classes when a later load fails (<a href="https://redirect.github.com/napi-rs/napi-rs/issues/3666">#3666</a>)</li> <li><a href="https://github.com/napi-rs/napi-rs/commit/cad7ff7176bd2975d7a75cfa64fde3be021e0e0b"><code>cad7ff7</code></a> feat(napi): support well-known symbol keys for class members (<a href="https://redirect.github.com/napi-rs/napi-rs/issues/3665">#3665</a>)</li> <li><a href="https://github.com/napi-rs/napi-rs/commit/c01ce6017afb40bc5e454f837869edd54c287271"><code>c01ce60</code></a> fix(napi): free define_class closures, honour static flags, avoid TS1016 in c...</li> <li><a href="https://github.com/napi-rs/napi-rs/commit/5a49dad2756acf93fdc7ff1f1ab7b01803fb28e4"><code>5a49dad</code></a> feat(napi): support symbol_for keys for class members (<a href="https://redirect.github.com/napi-rs/napi-rs/issues/3661">#3661</a>)</li> <li><a href="https://github.com/napi-rs/napi-rs/commit/0c589032e362595dd38642bb91b532415bdca1d3"><code>0c58903</code></a> fix(napi): free threadsafe function call data when the call fails (<a href="https://redirect.github.com/napi-rs/napi-rs/issues/3656">#3656</a>)</li> <li><a href="https://github.com/napi-rs/napi-rs/commit/ada66a35f8c16e8225745066994dd33b1dfaa293"><code>ada66a3</code></a> chore(deps): update release-plz/action action to v0.5.147 (<a href="https://redirect.github.com/napi-rs/napi-rs/issues/3659">#3659</a>)</li> <li>Additional commits viewable in <a href="https://github.com/napi-rs/napi-rs/compare/napi-v3.15.0...napi-v3.16.0">compare view</a></li> </ul> </details> <br /> Updates `napi-derive` from 3.6.13 to 3.7.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/napi-rs/napi-rs/releases">napi-derive's releases</a>.</em></p> <blockquote> <h2>napi-derive-v3.7.0</h2> <h3>Added</h3> <ul> <li><em>(napi)</em> support well-known symbol keys for class members (<a href="https://redirect.github.com/napi-rs/napi-rs/pull/3665">#3665</a>)</li> <li><em>(napi)</em> support symbol_for keys for class members (<a href="https://redirect.github.com/napi-rs/napi-rs/pull/3661">#3661</a>)</li> </ul> <h3>Fixed</h3> <ul> <li><em>(napi)</em> free define_class closures, honour static flags, avoid TS1016 in constructors (<a href="https://redirect.github.com/napi-rs/napi-rs/pull/3662">#3662</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/napi-rs/napi-rs/commit/f89400d99b136c5c8a27818654b91256832b5bd6"><code>f89400d</code></a> chore: release (<a href="https://redirect.github.com/napi-rs/napi-rs/issues/3637">#3637</a>)</li> <li><a href="https://github.com/napi-rs/napi-rs/commit/192cbaafabc3166691efd63d34b675b525fcf65a"><code>192cbaa</code></a> chore(deps): update dependency <code>@types/inquirer</code> to v10 (<a href="https://redirect.github.com/napi-rs/napi-rs/issues/3668">#3668</a>)</li> <li><a href="https://github.com/napi-rs/napi-rs/commit/9188219047aff34963c98fc701e625955050cdbc"><code>9188219</code></a> chore(deps): update dependency electron to v45 (<a href="https://redirect.github.com/napi-rs/napi-rs/issues/3634">#3634</a>)</li> <li><a href="https://github.com/napi-rs/napi-rs/commit/1d93a4e284150c3461032a40e3a8a95c3703efb7"><code>1d93a4e</code></a> fix(napi): compact class identity metadata (<a href="https://redirect.github.com/napi-rs/napi-rs/issues/3667">#3667</a>)</li> <li><a href="https://github.com/napi-rs/napi-rs/commit/e9de9024337af056b79010d3f9024fdc88965572"><code>e9de902</code></a> fix(napi): keep the registered classes when a later load fails (<a href="https://redirect.github.com/napi-rs/napi-rs/issues/3666">#3666</a>)</li> <li><a href="https://github.com/napi-rs/napi-rs/commit/cad7ff7176bd2975d7a75cfa64fde3be021e0e0b"><code>cad7ff7</code></a> feat(napi): support well-known symbol keys for class members (<a href="https://redirect.github.com/napi-rs/napi-rs/issues/3665">#3665</a>)</li> <li><a href="https://github.com/napi-rs/napi-rs/commit/c01ce6017afb40bc5e454f837869edd54c287271"><code>c01ce60</code></a> fix(napi): free define_class closures, honour static flags, avoid TS1016 in c...</li> <li><a href="https://github.com/napi-rs/napi-rs/commit/5a49dad2756acf93fdc7ff1f1ab7b01803fb28e4"><code>5a49dad</code></a> feat(napi): support symbol_for keys for class members (<a href="https://redirect.github.com/napi-rs/napi-rs/issues/3661">#3661</a>)</li> <li><a href="https://github.com/napi-rs/napi-rs/commit/0c589032e362595dd38642bb91b532415bdca1d3"><code>0c58903</code></a> fix(napi): free threadsafe function call data when the call fails (<a href="https://redirect.github.com/napi-rs/napi-rs/issues/3656">#3656</a>)</li> <li><a href="https://github.com/napi-rs/napi-rs/commit/ada66a35f8c16e8225745066994dd33b1dfaa293"><code>ada66a3</code></a> chore(deps): update release-plz/action action to v0.5.147 (<a href="https://redirect.github.com/napi-rs/napi-rs/issues/3659">#3659</a>)</li> <li>Additional commits viewable in <a href="https://github.com/napi-rs/napi-rs/compare/napi-derive-v3.6.13...napi-derive-v3.7.0">compare view</a></li> </ul> </details> <br /> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|
|
a9028ef441 |
feat(search): document and validate calibrated effort tiers (#4882)
Lance beta.11 calibrates lower `search_effort` tiers by metric and requested `k`. With the Rust dependency and Python/Node execution tests already on main via #4881, document the tiers across Rust, Python, Node and the search guide, extend the remote request matrix to cover `0.1` and `0.25`, and align the Python test package with beta.11. `0.1` and `0.25` target empirical mean partition-routing recall of 80% and 90% for L2, cosine and dot through `k=100000`. These are not per-query or final Recall@k guarantees. Default Auto is unchanged; Hamming and larger `k` remain uncalibrated, and remote queries require corresponding server support. This PR makes no additional performance claim. See [Lance #10695](https://github.com/lance-format/lance/pull/10695) for measurements and limitations. Validation: both strict workspace Clippy configurations, Rust formatting, 13 Rust effort tests, 208 Python query tests, 41 Node query tests, native binding builds, TypeScript, Node lint/generated docs, Python lint/format, full lockfile check and two dependency guards passed on `a8b09170`. All validated Rust/Python/Node source and dependency files are byte-identical at `2a82d07c`; the only subsequent change restores the Java POM to main. Root Ruff has 59 existing diagnostics and six formatting files, all byte-identical to the base; the Python package passes. The Java REST/Namespace client has no changed API here, and its dependency remains identical to main. The separate [Java beta publication failure](https://github.com/lance-format/lance/issues/10773) is not claimed resolved or validated. Official SDK release, automatic mirror, Sophon adoption and measured consumer acceptance remain follow-up stages. |
||
|
|
06fcd628cf | Bump version: 0.42.0-beta.6 → 0.42.0-beta.7 v0.42.0-beta.7 | ||
|
|
d812fe86ae |
chore(deps): upgrade Lance to v15.0.0-beta.12 (#4888)
Upgrade the exact Lance Git dependencies from v15.0.0-beta.11 to the published [v15.0.0-beta.12](https://github.com/lance-format/lance/releases/tag/v15.0.0-beta.12). This includes `Dataset::file_reader_options()`, which downstream consumers need to preserve dataset defaults when constructing per-read list-structure options. Update all 15 workspace pins and 25 Lance lockfile package records to release commit `635d412cde01e5d4203a91be47ddbfd0f2a6e068`. Non-Lance package records, including their dependency edges, remain unchanged. The `geo` validation covers the release's R-tree crate relocation. Validation on macOS arm64 / Rust 1.97.0: - `cargo test --locked --features remote,geo --tests`: 2,278 passed, 79 existing ignored, 0 failed. - `cargo clippy --locked --features remote,geo --tests --examples -- -D warnings`: passed. - `cargo fmt --all -- --check` and `git diff --check`: passed. Sophon adoption and PE integration validation remain separate. |
||
|
|
b3c1e58fe7 | Bump version: 0.42.0-beta.5 → 0.42.0-beta.6 v0.42.0-beta.6 | ||
|
|
c08e2ccc35 |
chore(deps): update Lance to 15.0.0-beta.11 (#4881)
Downstream workspaces adopting Lance 15.0.0-beta.11 currently also resolve beta.10 because the SDK pins every Lance crate exactly. This produces incompatible Lance types across the SDK and the consumer. Update the workspace pins and lockfile to the published [v15.0.0-beta.11](https://github.com/lance-format/lance/releases/tag/v15.0.0-beta.11). This release includes payload-free list length reads and preserves those read modes across serialized plans (lance-format/lance#10759, lance-format/lance#10766). Existing feature flags and unrelated locked packages are unchanged. The release also includes the metric/k-dependent search-effort calibration from lance-format/lance#10695. Update the Node and Python execution tests to its exact probe budgets (for example, effort 0.25 with L2, k=8 and Auto=6 now probes 4 partitions), and cover the 0.1 tier. Recall, caller bounds and probe-precedence assertions remain in place. Validation: - `cargo fmt --all --check` - `cargo clippy --quiet --features remote --tests --examples` - Downstream metadata fixture with SDK source and the released Lance beta.11 path overrides resolves exactly one Lance version. - `cargo test --quiet --features remote --tests`: 2,271 passed, 0 failed, 79 existing ignored tests. - Node native/TypeScript build, lint and API documentation generation passed; 41 query tests passed. - Python native binding build and package Ruff checks passed; 208 query tests passed, 1 slow test deselected, 5 existing deprecation warnings. - Rust results remain applicable: the follow-up changes only binding tests, with product source and dependency graph unchanged from the tested dependency update. Repository-root Ruff currently reports 59 lint findings and 6 formatting failures in untouched documentation snippets. Their blobs match the PR base; the changed Python test and the entire Python package pass lint/format checks. |
||
|
|
1b40e479d3 |
fix(python): surface Function drop warnings (#4880)
Remote Python `drop_function` currently discards the dependent-view warnings returned by SQL DROP. Both the synchronous and coroutine APIs now emit those warnings through `warnings.warn` while preserving their boolean result and executing DROP once. The server support is already merged in lancedb/sophon#9820. The Rust decoder reads warnings across every result batch, including an empty first batch. Missing warning columns remain compatible with older servers; malformed or null warning lists are rejected. The hidden binding bridge carries the warnings to Python. The separate `drop_function_async` API and its `(bool, Job)` contract are unchanged. Python warning filters can raise after the catalog mutation has completed. Validation: a compiled PyO3/public-server reproduction failed before the fix and passed afterward; the public async path also returned `true` with the expected dependent-view warning. Final source passes two focused Rust tests, two Python wrapper tests, strict targeted Clippy, formatting, and Ruff. Three decoder tests cover batch/null/type and older-server behavior. The public runs preceded a two-file simplification of the completed Job projection; focused final-source checks cover that delta. Current-main integration is conflict-free, and its overlapping changes concern independent retry-policy APIs/tests. Documentation now covers warning filters, the post-removal warnings-as-errors behavior, and silent compatibility with older servers. The follow-up changes only prose and a Python docstring; the runtime validation above remains applicable. Refs ENT-3659. Whole-issue independent acceptance remains pending. |
||
|
|
2f496529ca |
chore: bump dependencies with critical security advisories (#4883)
## Summary Bumps dependencies that Aikido flags with critical advisories, where a patched version is available without code changes. | Package | Where | From → To | Ships to users | |---|---|---|---| | jackson (BOM) | `java/pom.xml` | 2.18.11 → 2.18.12 | Yes, via the published pom | | zerovec / zerovec-derive | `Cargo.lock` | 0.11.6 → 0.11.8 / 0.11.3 → 0.11.7 | Yes, linked into the wheels and Node binaries | | pillow | `python/uv.lock` | 12.3.0 → 13.0.0 | No, dev lockfile | | pyarrow | `python/uv.lock` | 24.0.0 → 26.0.1 | No, dev lockfile | | pyjwt, urllib3, anyio, cryptography | `python/uv.lock` | → 2.15.1, 2.8.0, 4.16.0, 50.0.2 | No, dev lockfile | | pillow | `docs/web-tests/blob-v2/py/requirements.txt` | 12.1.1 → 13.0.0 | No | pyarrow was held at 24.0.0 by a `pyarrow<25` pin in the `tests` extra. It came in with #3675 without a stated reason, so this PR removes it. pillow 13 and pyarrow 26 require Python 3.11+, so the lockfile keeps pillow 12.3.0 and pyarrow 25.0.1 on Python 3.10, and those remain flagged. The sharp findings in the Node examples and docs are not addressed here. They come from the `@huggingface/transformers@3.0.2` optional dependency, which needs a major upgrade to 4.3+. ## Evidence With the pyarrow pin removed and pyarrow 26.0.1 installed, the Python suite (`-m "not slow and not s3_test"`) passed locally on Python 3.12: 3319 passed, 164 skipped. That run was on main as of #4879; this branch is based on a slightly newer main. ## Merge Risk **Door:** Two-way. Patch and minor version bumps that a revert undoes. **Blast Radius:** Java consumers (jackson patch release), native binaries (zerovec patch release), Python test environments. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> |
||
|
|
4fac811028 |
ci: pass release workflow inputs through env vars (#4884)
## Summary
`make-release-commit.yml` interpolated `workflow_dispatch` inputs
directly into `run:` scripts with `${{ }}`, which Aikido flags as
template injection. This passes them through environment variables
instead, so the shell never parses their values as code.
```diff
- bash ci/bump_version.sh ${{ inputs.type }} ${{ inputs.bump-minor }}
+ bash ci/bump_version.sh "$RELEASE_TYPE" "$BUMP_MINOR"
```
The "Output Inputs" step gets the same treatment.
This is hardening rather than a fix for an exploitable bug: the inputs
are a choice and two booleans, and only users with write access can
dispatch the workflow.
## Evidence
Aikido local scan of the workflow: before, it reports "Template
Injection in GitHub Workflows Action" (severity 80) on the Bump version
step; after, that finding is gone.
## Merge Risk
**Door:** Two-way. The values passed to `bump_version.sh` are the same
strings as before.
**Blast Radius:** release workflow
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
|
||
|
|
0d72977186 | fix: avoid retrying remote branch deletions (#4854) | ||
|
|
a2abfbced7 |
fix(python): warn when Function dependencies cannot be verified (#4879)
Functions that import a module unavailable on the client currently package silently even when they declare no pip/conda dependencies. Emit an advisory warning for these unresolved imports so callers can declare the required package or confirm that the base image supplies it. Any pip/conda declaration suppresses this new advisory because distribution names need not match import names. The warning does not claim that the module is absent remotely and follows normal Python warning filters, including warnings-as-errors. Validation includes the original `import scipy.ndimage` with `pip=()` through the public decorator/packager path, plus declared-package and existing local-source controls. This does not establish remote image availability or deployment acceptance. Refs ENT-3448. |
||
|
|
6687db979d |
feat(functions): expose retry policies in Python and Rust (#4873)
Expose `FunctionRetryPolicy` on Function declarations and refresh overrides, together with `error_policy` and recorded attempt counts. Python uses the Rust validation rules before sending a request; local refreshes reject these Enterprise options. The policy bounds calls and backoff, supports class/message/provider-code matching, and can disable retries with `max_attempts=1`. Batch retry and skip operate on the whole failed call. Requires Enterprise server support for the new policy. Validation: rebuilt the Python extension; 47 targeted Python tests and 10 Rust tests passed. Python `make check`, Rust formatting, and `cargo clippy --features remote --tests --examples -- -D warnings` passed. The additional repository-root Ruff sweep reports existing errors under `docs/web-tests`; the Python workspace checks pass. Draft user guidance covers the supporting server requirement, safe repetition of partial work and whole-batch exhaustion. The guide sections stay hidden until release. Vale 3.24.0 passed for the added draft prose; no paired deployed SDK/server retry acceptance was run. Companion server: https://github.com/lancedb/sophon/pull/9812. BREAKING CHANGE: Rust callers constructing `FunctionRegistrationRequest` or `FunctionErrorRecord` with struct literals must supply the new `retry_policy` or `attempts` field, respectively. |
||
|
|
3d790e751d | Bump version: 0.42.0-beta.4 → 0.42.0-beta.5 v0.42.0-beta.5 | ||
|
|
57cd31e1aa |
test(python): load checked-in error classes for Rust tests (#4876)
Bare Rust test runners do not install the `lancedb` Python package, so the typed-error tests fail with `ModuleNotFoundError`. Load the checked-in exception modules once for the embedded interpreter, preserving exception-class identity across parallel tests and the existing type/cause assertions. Rust CI now watches the binding sources and the Python exception modules embedded by these tests, so those changes exercise the macOS Rust test jobs. |
||
|
|
5def26112f |
fix(deps): ignore RUSTSEC-2026-0441 pin-utils unmaintained (#4872)
`cargo deny` fails on main because RUSTSEC-2026-0441 marks `pin-utils`
as unmaintained. Add an exception reviewed on 2026-11-05, with the
advisory and upstream discussion links and a reminder to revisit it when
updating AWS dependencies.
`pin-utils` is transitive through `aws-smithy-http`,
`aws-smithy-runtime`, and `aws-smithy-types`, including the `aws-config`
→ `lance-io` path. RustSec lists no safe upgrade; clearing the advisory
requires upstream migration to supported pinning primitives.
Validation on commit
|
||
|
|
1e40ef681e |
fix: remove unmaintained pin-utils from AWS dependencies (#4874)
`cargo deny` rejects `pin-utils 0.1.0` as unmaintained under RUSTSEC-2026-0441; there is no patched release. The dependency comes from the AWS Smithy graph. Refresh that graph to include [smithy-rs #4882](https://github.com/smithy-lang/smithy-rs/pull/4882), replacing the obsolete `aws-smithy-types = ">=1.3.6, <1.7"` constraint with `1.9.1`. The lockfile audit attributes every changed package identity and resolved dependency edge to the AWS graph. Existing git dependency pins are preserved. The selected AWS crates declare Rust 1.94.1, within the workspace's unchanged 1.95.0 requirement. Validation at the exact candidate on the development EC2 host, both exit 0: - `mbx +1.97.1 deny check advisories bans licenses sources` - `mbx +1.97.1 check --quiet --locked -p lancedb --tests --features remote,aws,dynamodb,bedrock` The second command compiles the selected test targets; it is not a runtime integration test. Full all-features compilation remains unverified: an earlier attempt stopped in lance-linalg because the host Clang 15 does not support the required `_Float16` target. |
||
|
|
9ba1920e0e |
fix(node): normalize record batches before IPC serialization (#4871)
Passing a record batch created by an ESM `apache-arrow` import to `RRFReranker.rerankHybrid` throws an IPC footer parse error. The SDK's CommonJS Arrow writer receives data types from another module instance. Normalize single-record-batch input with the existing table sanitizer before writing IPC. Extend the Arrow 15–21 round-trip test with caller-created batches and nulls, and add a native ESM reranker regression covering 64-bit row IDs, scores, and an empty FTS side. Validation: - Reproduced with published `0.42.0-beta.3`; CommonJS and explicitly normalized ESM controls pass. - Same native module and inputs: all 8 targeted cases fail with the parent serializer and pass with this change. - Local native build, TypeScript build, lint, and formatting pass. - Current-head CI passes on Linux Node 22/24/26, macOS, and Arrow 19/20. The macOS run passes 1,643 tests; Linux Node 24 also passes docs and example checks. |
||
|
|
181ac2b567 |
test: match SDK documentation fallback URL (#4875)
Update the SDK documentation-link CI assertion to match the production fallback URL introduced by #4870. #4870 changed `rust/lancedb/src/docs.rs` from `/enterprise` to `/basics/embedded-vs-enterprise`. The extractor already reads that source, but its regression test still expected the old value. Keep the assertion and update only the expected URL. Verification: `python -m unittest discover -s ci/tests -v` passes 35/35 on Python 3.12. The same command on main `3c4aaa8e` fails only `test_extracts_all_links_from_repo_docs_rs`. |
||
|
|
3c4aaa8e62 |
fix: preserve typed catalog errors through Flight and Python (#4867)
Catalog lookup failures lose their structured resource identity at the Rust/Python SDK boundaries, leaving callers with generic errors or empty correlation fields. Decode the existing Flight SQL error metadata and preserve resource kind/name, namespace, error code, and request/job IDs in the existing error types. Direct `get_function` calls unwrap named Function or namespace failures. Generic SQL job failures remain `JobFailedError` with the typed resource error as their cause; native deferred commands correctly leave durable job IDs null. Existing unstructured SQL classifications, including `FailedPrecondition`, remain supported. Validation: focused Rust/Python regressions and a native-extension run against a real Sophon process passed all five Function/Secret resource-error cases. The final one-commit candidate passes `cargo check -p lancedb-python` and formatting; earlier runtime evidence applies after removal of an unused tuple member. Independent deployed acceptance remains pending for ENT-3373. Server companion: https://github.com/lancedb/sophon/pull/9804. Integration validation: all 14 DocLinks pass on the merge candidate with #4869. The subsequent main documentation routing change was inspected; it does not alter the typed-error paths. The inherited pin-utils cargo-deny finding is tracked in a separate dependency repair. |
||
|
|
3dc779d0ee |
fix: nav, redirect and badge cleanup across several pages (#4870)
- Removes the stale `/enterprise` redirect that hijacked the real LanceDB Enterprise page, sending it to the Embedded vs Enterprise comparison page instead. - Removes the Merge page from the Data Ingestion nav (confusing parity story between Embedded and Enterprise); moves RTE Write up to right below Delete and renames it **RTE Write (Upsert)** to take over that slot. - Removes the Early access badge from Tiered Index Cache and restores its full sidebar title (was shortened to "Index Cache" to fit the badge). - Moves Changes below Dedupe in Data Curation. - Matches Advanced Conflict Resolution's sidebar title to its page title (previously just "Conflict Resolution" in the sidebar). - Marks Job Framework as Enterprise-only. - Distributed RTE Write diagram now shows the `metrics` table split across multiple shards, illustrating the per-table sharding described in the page's own text. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_018PXMCbRH6i5w47TsjeEUMT --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com> |
||
|
|
e2a859f6a3 |
test: allow hidden pages in SDK documentation links (#4869)
The SDK documentation-link test fails on `DocLink::BranchDiff` after the branching page is hidden from navigation. [Mintlify serves hidden MDX pages by their URL](https://www.mintlify.com/docs/guides/hidden-pages), so navigation membership is not a route-validity requirement. Remove that assertion while retaining the file, `.mintignore`, redirect-target, and anchor checks. Validated on the development EC2 with `cargo test --profile ci --features remote --locked --lib docs::tests::test_all_doc_links_resolve_in_repo_docs -- --exact --nocapture`: the unchanged base fails on `tables/branching`; this fix passes. The identical patch also passes against the exact #4867 head, checking all 14 `DocLink::ALL` entries. Formatting passes. This repairs the shared docs-test blocker for #4867; its separate `cargo deny` dependency finding is unchanged. |
||
|
|
fa4b14a9d6 |
docs(functions): clarify filtered refresh and error policies (#4868)
The refresh guide and SQL reference do not warn that a `WHERE` refresh recomputes filled rows, and the guide describes resources as per-worker allocations. Clarify the aggregate Function budget and expression-only `num_workers`, show the output-null predicate with its stale-value and successful-null limitations in both references, and document refresh-level `error_policy='skip'`. Link both guides to the current SQL options route. Validation: Vale 3.24.0 found no issues on changed lines; `git diff --check` and the new link targets passed. Mint 4.2.888 reports the same four existing `RsExampleBody`/`RsExampleTail` import warnings in `reranking/index.mdx` and `search/vector-search.mdx` on both pristine base `5e38120b` and this branch. No additional warnings. Behavior was checked against the owning Sophon implementation; no runtime code changed or runtime tests were run. Companion to https://github.com/lancedb/sophon/pull/9806 for ENT-3279. Page visibility and saved documentation editions are unchanged. DOC-90 retains publication and matching-shipped-release verification. |
||
|
|
5e38120bdc |
docs: add storage integration SDK examples, abstract RTE write, simplify cache pages (#4865)
## Summary - **Define Storage Integration**: un-gates the Python (and Rust, for S3) `create_storage_integration` examples, drafted against #4618 and held back until it shipped -- it's now in v0.42.0-beta.0+, and the signature matches the drafts exactly. - **Naming rules**: drops the `Branch` row and its "Learn more" link, consistent with de-emphasizing branches elsewhere in this nav. - **Distributed RTE Write**: removes the REST path, the `__lance_mem_wal` index name, and "WAL node" terminology in favor of an abstract framing -- a query node routes writes to RTE nodes, each of which can host shards from many different tables. Both diagram variants are updated to match. - **Data Page Cache / Tiered Index Cache / Cache Prewarm**: drop Helm-specific and exact-percentage detail (disk-budget math, `startup_prewarm_block_query_ready`/`healthPort`/failure-policy table) in favor of a short feature → architecture → why-it-matters shape, each closing with a contact-sales pointer. Data Page Cache's on-demand prewarm section is removed outright. ## Note I wasn't able to get a clean visual render of the updated Distributed RTE Write diagram in local preview -- Mermaid isn't rendering in headless Chrome in this environment for *any* page right now, confirmed against an unmodified reference page showing the identical symptom. The diagram source follows the exact pattern already shipped and working in the 21 diagrams from the earlier brand-theming pass, and `mint validate`/`mint broken-links` both pass clean. --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com> |
||
|
|
69ac2158a1 |
fix: preserve take_row_ids request order (#4826)
`take_row_ids` used an `IN` filter, so the backend could reorder rows and collapse duplicate IDs. That can silently misalign training rows with labels or sample weights. Restore the requested order and duplicate occurrences in the shared Rust take path for native and remote tables, and retain that information through Python query serialization. Missing or deleted IDs are omitted. Explicit Rust `order_by` overrides request order, and pagination applies after restoring occurrences. Empty projections and `_rowid` projection aliases retain their output schema. RTE tables reject unsupported takes with the existing base-table guidance before checking the internal row-ID projection used for ordering. An explicit `use_rte(False)` reads the base table with the same requested order and occurrences. A pre-existing fixture defect also blocked CI: `test_table_add_in_threadpool` responded without reading uploads, allowing a connection reset during response decoding. This PR includes a fix confined to that test's handler: consume each request body before responding and verify one create row plus ten inserted rows. This was not a regression in the take implementation. Production write retries, concurrency and HTTP client code are unchanged. The selective sampling guide scopes the row-ID guarantees to SDK releases containing this fix, preserves the distinct offset-take semantics, and explains that ordered takes collect and combine matching rows before output batching. It recommends smaller ID requests and narrow projections because `max_batch_length` does not cap working memory. This uses the existing REST query protocol and requires a new SDK release; no deployed service was changed. Validation: - Docs follow-up: the changed page compiles with the Mint 4.2.888 MDX compiler; Typos 1.26.0 passes and Vale 3.24.0 has no findings on changed lines. Full-site Mint validation reports four existing snippet-import warnings on the reranking/vector-search pages, identical with the original page restored in a baseline comparison. - The applied threadpool test passed locally after the fixture change. The identical candidate previously passed 10 trials with the ordinary reader and 10 with an unbuffered reader; each trial verifies all uploaded rows. Those checks used macOS arm64/Python 3.14/default features, not the full failing CI environment. The normal new-head macOS Python 3.13/experimental-functions job remains the required platform check. - Python package Ruff format/check passed. Repository-root Ruff still reports 59 existing errors and six formatting differences in unchanged `docs/web-tests` files; none are in changed files. - At `a569d3f0`, the RTE diagnostic regression was reproduced and fixed; 5 targeted cases and strict workspace Clippy passed. The fixture-only follow-up changes no production Rust/Python code, so that evidence is reused. - Earlier validation at `6bcc0878`: 439 Rust query/remote-table tests and 24 Python take/getitems tests passed; the focused 49-test suite also covered offset dataloaders. A local 9,216-row, four-fragment reproduction returned 200 seeded random batches of 64 rows with zero ordering or label-alignment mismatches. The ordering and projection implementation is unchanged by the follow-ups. - No live Enterprise run was performed. Fixes [ENT-3469](https://linear.app/lancedb/issue/ENT-3469). |
||
|
|
b5c5ede39f |
feat(python)!: rename the @udf decorator to @function (#4837)
The client registers Functions, but the decorator that packages one was called `udf` and produced a `UdfDefinition`. Rename them to `function` and `FunctionDefinition`, and say "function" instead of "UDF" in the docstrings, error messages and docs around them. `udf` and `UdfDefinition` stay as deprecated aliases that emit a `DeprecationWarning`. The source packager strips either spelling of the decorator, so `@udf` and `@function` produce the same artifact and digest, and the wire contract is unchanged. DataFusion and Lance UDF types, and Geneva's `@udf` in the integration docs, are unrelated and untouched. |
||
|
|
7abc57a4d0 |
test: cover refined RQ queries after deferred compaction (#4839)
Add SDK coverage for a refined IVF_RQ7 query after deferred compaction with physical row addresses. The test combines deletion and prefiltering, verifies the retained index UUID and actual FRI metadata, requires an ANN plan, and compares IDs/distances before and after compaction plus recall against a flat oracle. This is a test-only change on main with the released Lance beta.10 dependency adopted by #4838. It adds no production behavior or dependency changes. Sophon lazy-executor adoption and integrated performance acceptance remain separate. Validation on macOS ARM64 with pinned Rust 1.97.0: - Five focused SDK regressions passed (0.15 s test runtime), covering deferred FRI compaction/refinement, stable row IDs, ANN approximation mode and large query limits. - `cargo clippy --locked --features remote --tests --examples -- -D warnings` passed. - Formatting and diff checks passed. The native test linker emitted a macOS compact-unwind size warning; all cases completed successfully without linker-setting changes. |
||
|
|
1db0d3ca5f |
docs: label early access features and hide ones not ready to document (#4855)
Labels early access features and hides features we aren't documenting yet. **Early access label:** Functions (4 pages, plus the GPU refresh, checkpointing and adaptive execution pages), Secrets (3 pages), Tiered Index Cache, Blob V2, and merge insert, which is labelled for Enterprise only. Two sidebar titles are shorter so the tag fits. **Hidden:** branching, JSON columns and geospatial. - The JSON functions page and the agent branch-experiments tutorial go in `.mintignore`. - `tables/branching` stays reachable but out of the nav, as #4859 left it, because SDK error messages link to it. - Other pages' mentions of these features become draft comments, so they're easy to restore. **Secrets page:** drops references to manual KMS setup, which the control plane handles. It keeps the encryption-at-rest facts, states the Azure value-size limit inline, and points a 501 error to support. |
||
|
|
071c9c541d |
docs: add Console page, hide CLI from nav, drop Branches from the Management nav (#4859)
## Summary - Hides `tools/cli.mdx` from the sidebar and from sitemap/search via `.mintignore`, unlinking its one reference in `basics/sql.mdx`. No SDK doc-link depends on this page. - Removes `tables/branching.mdx` from the Management nav group, but leaves it reachable (no `.mintignore` entry): the SDK's `diff_branch()`/`cherry_pick()` error messages link to `/tables/branching#diff-a-branch` and `#merge-a-branch`, and `rust/lancedb/src/docs.rs`'s link-resolution test asserts those paths aren't `.mintignore`'d. - Adds a Console row to the comparison table, linking to the companion change's new `enterprise/console` page. ## Companion change lancedb/sophon#9783 adds `enterprise/console.mdx` and inserts it into the "Getting Started" nav group this PR touches. --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com> |
||
|
|
e6b04c5da7 |
docs(function): define forward-compatible version projection (#4863)
Clarify `FunctionVersion` forward compatibility: unknown top-level fields are accepted during decoding and omitted from canonical JSON, while all defined fields and the open `image.descriptor` content retain their values. Extend the existing Rust and Python canonical round-trip tests to assert the complete projected object, including future discriminator values. This documents and tests the existing behavior; it does not change runtime serialization or promise lossless retention of unknown top-level fields. Related: ENT-2176. |
||
|
|
dc6a08a25f |
docs: rename the Semantic Search sidebar group to Search (#4862)
The Search group covers full-text and hybrid search as well as vector search, and full-text search is lexical, not semantic. This renames the group to "Search" in the sidebar and in the Embedded vs Enterprise comparison table. `mint validate` and `mint broken-links --check-anchors` pass on the assembled site. |
||
|
|
edc49e60e2 |
feat: expose Function failure tracebacks (#4861)
Function refresh failures and skipped-row diagnostics lose the traceback when decoded by the SDK. Expose the server-provided optional `traceback` on job failure details and Function error records in Rust, Python, and Node.js, while keeping existing compact error messages. Responses from older servers remain supported when the field is absent. Tracebacks may be truncated by the server. The Rust `Error::JobFailed` variant now stores `Box<JobFailure>` so the added diagnostics do not enlarge every `Result` error payload. |
||
|
|
b32afe9794 |
docs: add an Introduction nav section with a dedicated Embedded vs Enterprise comparison (#4829)
## Summary - Adds a new top-level "Introduction" nav section before "Getting Started": LanceDB, LanceDB Embedded, LanceDB Enterprise, Embedded vs Enterprise. - Trims the landing page's combined Architecture/Embedded/Enterprise/Compare block down to a short pointer section (keeping its `#architecture` anchor), moving that content into two new pages: `basics/lancedb-embedded.mdx` and `basics/embedded-vs-enterprise.mdx`. - `basics/embedded-vs-enterprise.mdx` consolidates the feature-comparison table and the Enterprise overview's own comparison content (previously duplicated across multiple pages and, within this page, repeated across a dimension table, several narrative subsections, and a usage-differences list) into one comparison page with each section covering a distinct angle. - Repoints the `/enterprise` and `/enterprise/deployment` redirects at `/basics/embedded-vs-enterprise`, since the previous destination only resolves once the Enterprise overlay is applied and fails `rust/lancedb/src/docs.rs`'s link-resolution test against this repo's own `docs/web` tree. ## Companion change lancedb/sophon#9718 trims the Enterprise overview page to drop the content that moved here, and relocates its nav insertion into the new Introduction group. Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com> |
||
|
|
d0b0efcd47 |
style: increase Mermaid diagram font size and tone down dark-mode accent borders (#4828)
## Summary Follow-up to the Mermaid brand-theming PR, addressing review feedback: - Diagram text was hard to read at the previous 15px font size; bumped to 18px, light and dark alike. - The dark-mode orange accent border was brighter and more saturated than its fill or the default border, reading as too loud against the dark background. It now reuses the same muted orange already used for the light-mode accent border, which was fine as is. ## Companion change lancedb/sophon#9719 makes the same two changes across its own diagrams. Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com> |
||
|
|
e73eb95189 |
fix: preserve FunctionVersion execution controls (#4856)
Function catalog responses include `batch_size`, `row_timeout_seconds`, and `result_stability`, but the Rust and Python `FunctionVersion` models silently discarded them. Preserve these optional execution controls through decoding, typed access, and canonical serialization; versions without the fields retain their existing representation. The regression exercises raw SQL transport responses and public Python sync/async get/list paths. Live Sophon catalog acceptance remains pending under ENT-2073 and the related FunctionVersion round-trip requirement in ENT-2176. |
||
|
|
4396ed5c21 |
chore: update lance dependency to v15.0.0-beta.10 (#4838)
Update the Rust workspace Lance dependencies to [v15.0.0-beta.10](https://github.com/lance-format/lance/releases/tag/v15.0.0-beta.10), which contains the released MinHash signature scanning API needed by downstream consumers. Pin Python tests to the published `15.0.0b10` wheels, including macOS, and refresh both lockfiles. Java remains on beta.8. No SDK source compatibility changes were needed. All 25 Lance Git packages resolve to release commit `f56a08d40b5630ce1124535c4c3b1406d5ceedf1`; third-party package versions are unchanged. Validation on macOS ARM64 with pinned Rust 1.97.0: strict workspace Clippy with default and all features, Rust formatting, 32 CI-script tests, three count tests, one WAL/vector regression, and the Python lockfile check passed. The native test binary emitted a macOS compact-unwind size warning; both test commands completed successfully without changing linker settings. Downstream release and integrated Sophon acceptance remain separate. |