Commit Graph
3495 Commits
Author SHA1 Message Date
Wyatt Alt 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.
2026-11-06 09:19:27 -08:00
dependabot[bot] 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 = &lt;bool&gt;)]</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>&quot;literal&quot;.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 = &lt;bool&gt;)]</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>&quot;literal&quot;.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>
2026-11-06 08:50:29 -08:00
Yang Cen 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.
2026-11-06 17:37:52 +08:00
Lance Release 06fcd628cf Bump version: 0.42.0-beta.6 → 0.42.0-beta.7 v0.42.0-beta.7 2026-11-06 08:08:36 +00:00
Yang Cen 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.
2026-11-06 15:57:49 +08:00
Lance Release b3c1e58fe7 Bump version: 0.42.0-beta.5 → 0.42.0-beta.6 v0.42.0-beta.6 2026-11-06 02:57:37 +00:00
Yang Cen 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.
2026-11-06 10:47:05 +08:00
Xuanwo 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.
2026-11-06 10:32:20 +08:00
Will JonesandClaude Opus 5.5 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>
2026-11-05 15:29:11 -08:00
Will JonesandClaude Opus 5.5 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>
2026-11-05 14:45:32 -08:00
lancedb-gatefixer[bot] 0d72977186 fix: avoid retrying remote branch deletions (#4854) 2026-11-05 13:20:20 -08:00
Xuanwo 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.
2026-11-06 02:45:54 +08:00
Yang Cen 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.
2026-11-06 02:30:49 +08:00
Lance Release 3d790e751d Bump version: 0.42.0-beta.4 → 0.42.0-beta.5 v0.42.0-beta.5 2026-11-05 14:59:38 +00:00
Xuanwo 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.
2026-11-05 21:34:58 +08:00
Xuanwo 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 dede2c783f:

- Before the change, `cargo deny check advisories` failed on
RUSTSEC-2026-0441.
- `cargo deny check advisories` passes after the change.
- `cargo deny check advisories bans licenses sources` passes all four
checks, matching the Rust CI deny job.
- `git diff HEAD^ HEAD --check` passes.
2026-11-05 20:32:41 +08:00
Xuanwo 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.
2026-11-05 20:03:34 +08:00
Yang Cen 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.
2026-11-05 19:50:50 +08:00
Xuanwo 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`.
2026-11-05 19:43:12 +08:00
Xuanwo 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.
2026-11-05 19:11:41 +08:00
Jack YeandClaude Sonnet 5 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>
2026-11-05 03:01:51 -08:00
Xuanwo 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.
2026-11-05 18:52:40 +08:00
Yang Cen 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.
2026-11-05 18:35:14 +08:00
Jack YeandClaude Sonnet 5 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>
2026-11-05 01:40:54 -08:00
Yang Cen 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).
2026-11-05 16:54:23 +08:00
Wyatt Alt 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.
2026-11-05 00:36:20 -08:00
Yang Cen 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.
2026-11-05 16:33:23 +08:00
Brendan Clement 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.
2026-11-05 00:13:02 -08:00
Jack YeandClaude Sonnet 5 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>
2026-11-04 23:39:10 -08:00
Xuanwo 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.
2026-11-05 15:37:16 +08:00
Brendan Clement 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.
2026-11-04 23:34:31 -08:00
Xuanwo 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.
2026-11-05 15:16:28 +08:00
Jack YeandClaude Sonnet 5 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>
2026-11-04 20:25:17 -08:00
Jack YeandClaude Sonnet 5 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>
2026-11-04 20:25:14 -08:00
Xuanwo 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.
2026-11-05 11:25:51 +08:00
Yang Cen 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.
2026-11-05 11:16:30 +08:00
Xuanwo deb8834b5a fix: expose stable row IDs in Function errors (#4841)
Function error records expose physical row locations, which can change
when a table is compacted. Expose the server-provided optional stable
`row_id` through Rust and Python so callers can locate the same row
after compaction. Document stable-ID retries and retain physical
addresses for tables without stable row IDs. Older server responses
continue to deserialize with `row_id=None`.

The Python remote response test and Rust remote deserialization test
passed on verification SDK `4e1725fa352035e2079dfd235b8271cd05adf433`,
including decoding a legacy response without the new field. This branch
applies the same SDK patch to current main; intervening main changes
leave the affected error types and assertions unchanged. Formatting and
lint checks passed after correcting the retry examples to use the
`table.name` property. In a separate Linux server experiment, a real
skipped Function row retained `_rowid=506` after compaction changed its
physical address. The SDK field requires a server that emits stable row
IDs; this PR does not change server dependencies.
2026-11-05 10:36:11 +08:00
Lance Release 17f90f8403 Bump version: 0.42.0-beta.3 → 0.42.0-beta.4 v0.42.0-beta.4 2026-11-04 23:49:28 +00:00
Yang Cen 2dedde9b6c feat(python)!: expose typed query errors and request metadata (#4832)
Remote SQL failures currently become generic runtime errors, and HTTP
table lookup can discard server error metadata. Preserve transport
status, current request ID, SQL job ID and worker request ID across Rust
and Python. Select typed column, table, reference and schema exceptions
only when an explicit server code matches the transport status.

Remote `HttpError` and `RuntimeError` handlers remain compatible. Failed
SQL jobs retain `JobFailedError` with a typed SQL cause when available.
Missing metadata stays absent; message text never determines the
exception class. Local missing-column errors retain their type and
qualified-field suggestions, and `JobFailure.source` documents
structured remote Flight SQL failures.

This branch integrates main at `a9ad4997`, including its released Lance
15.0.0-beta.9 dependency update and remote optimize support. The only
textual conflict was two independent additions to `test_remote_db.py`;
both test groups and all original assertions are retained. The feature
has no dependency or lockfile delta against current main.

SDK runtime validation on `03ee633a` (runtime source unchanged in
`f3f2d0b8`), macOS ARM64, pinned Rust 1.97.0 and the frozen uv Python
3.14 environment:

- Rebuilt the native extension from the integrated source. All 22
targeted Python tests passed: native local errors, HTTP/Flight metadata,
legacy sync/async table-not-found behavior, and the three main
remote-optimize regressions.
- All 52 Rust SQL, metadata/source and nested-field tests passed,
including the new main optimize cases.
- Root and Python-binding Rust Clippy with `-D warnings`, Rust
formatting, Python package Ruff and conflict-file formatting passed.
- Repository-wide Ruff reports 59 existing documentation findings, and
its format check identifies six documentation files. Every affected file
is byte-identical to current main; these checks are not reported as
passing.
- Direct integration review and AST comparison confirm both conflicting
test groups were preserved. Earlier exception-constructor/pickling
evidence remains applicable to the unchanged Python error modules.

The unlocked build exhausted disk again on a runner with the same label
but only 9.4 GiB free on a 72 GiB root filesystem. Keep the existing
runner and dependency caches, serialize Cargo compilation, and remove
only completed test/bench executables reported by Cargo. This job never
runs those binaries; normal binaries, libraries and build-script outputs
remain available. Fresh resolution, the ci profile, all features, and
test/bench compilation and linking are retained.

Three probes using Cargo and target-path validation pass with `-D
warnings`: all fixture targets link while ordinary outputs remain
usable; an undefined symbol still produces Cargo exit 101 and its linker
diagnostic; files outside the target directory are never removed. The
[current-head build-no-lock
job](https://github.com/lancedb/lancedb/actions/runs/41911613851/job/126860364065)
passed on `f3f2d0b8`: all compilation/linking completed, 20 completed
test executables were removed, and `target` retained about 7.3 GiB. This
successful run had a 145 GiB root with about 78 GiB free afterward; it
was not an identical rerun of the failed 72 GiB image. The driver tests
also passed in this job. All previous-head jobs ended naturally before
the push; new-head CI and review gates still apply.

Typed remote input exceptions require the server metadata contract.
Older servers retain generic transport errors and existing missing-table
compatibility. The optimize tests use mock servers and do not establish
downstream server acceptance.

BREAKING CHANGE: Rust callers with exhaustive matches on
`lancedb::Error` must handle the new `FieldNotFound` and `Sql` variants.
Local `Error::ColumnNotFound` failures now raise
`lancedb.exceptions.ColumnNotFoundError`, a `ValueError` subclass.
Python callers that previously caught only `RuntimeError` for this local
failure must catch `ColumnNotFoundError` or `ValueError`.
2026-11-05 05:58:21 +08:00
Lance Release 4db3998b65 Bump version: 0.42.0-beta.2 → 0.42.0-beta.3 v0.42.0-beta.3 2026-11-04 21:42:55 +00:00
Jack Ye 82cc4e82a1 fix: tag the final release commit after syncing lockfiles (#4825)
Release tags currently point to the version bump before the lockfile
amend, so tagged CLI builds fail with `--locked` even though the branch
has the synced lockfile.

Keep the newly created, unpublished tag on the final amended release
commit before pushing. Existing published tags and packages remain
unchanged.

[Remote preview dry
run](https://github.com/lancedb/lancedb/actions/runs/41764901500) passed
and moved the local tag after the lockfile amend; no tag was pushed.
2026-11-04 13:25:58 -08:00
Bruno RamirezandClaude Sonnet 5 a9ad499781 feat: support remote table compaction via SQL OPTIMIZE TABLE statement (#4802)
`Table::optimize()` previously returned `NotSupported` for remote
tables. This PR wires it to the LanceDB Enterprise server's `OPTIMIZE
TABLE ... REWRITE DATA` SQL statement, submitted over Flight SQL.

Only `OptimizeAction::Compact` without a custom `remap_options` or
non-default `CompactionOptions` is supported remotely.
`OptimizeAction::All`, `::Prune`, and `::Index` all return a clear
`NotSupported` error instead of silently doing the wrong thing. A
branch-scoped table handle submits a `WITH (branch = '<branch>')`
clause; the statement doesn't validate the branch exists itself, so an
unknown branch surfaces as an async job failure rather than an error
from this call.

The server's SQL job adapter doesn't expose compaction metrics, so
`OptimizeStats::compaction` is `Some(CompactionMetrics::default())`, a
placeholder rather than real numbers — it must still be `Some`, since
callers (including the Python/Node bindings) unwrap it unconditionally
on success. This mirrors how `refresh_materialized_view_async` already
handles the same limitation for its own metrics.

The Python and Node `optimize()` convenience methods call a new shared
`Table::optimize_full`, which runs `Compact` and then, on a remote
table, skips `Prune` and `Index` instead of attempting and failing on
them — returning zeroed prune stats rather than submitting a compaction
job and then raising. Python's `RemoteTable.optimize()` also now
forwards `compaction_options` to the Rust layer, so a non-default value
is rejected before submission instead of being silently dropped.

---------

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-04 11:25:49 -08:00
Lance Release dcda5224ee Bump version: 0.42.0-beta.1 → 0.42.0-beta.2 2026-11-04 16:04:09 +00:00
Yang CenandXuanwo 10625f6dda chore: update lance dependency to v15.0.0-beta.9 (#4814)
Update Rust Lance dependencies to
[v15.0.0-beta.9](https://github.com/lance-format/lance/releases/tag/v15.0.0-beta.9),
including the scoped stable-row-ID conversion fix. Python tests use
published beta.9 wheels on Linux/Windows while macOS retains beta.4.
Java stays on beta.8, matching the original base, so this update does
not depend on beta.9 Maven publication or macOS Java packaging.

The dependency updater preserves workspace inheritance, the WAL test
wrapper uses the new StoredBatch module, and Linux/remote Rust CI uses
its installed mold linker. The Python lockfile also records the
already-declared OCI extra. CLI CI now caches Cargo downloads under a
separate key instead of restoring compiled targets: the previous runner
exhausted its disk during cache restoration, before compilation. Its
test matrix and commands are unchanged.

This branch includes #4820's row-freshness changes: successful rows
become current while skipped rows retain their values and remain
eligible for retry. Repair identities, replay handling and Restore
fencing protect publication completion.

BREAKING CHANGE: `StalenessPlan::row_dirty` is a new public field. Rust
callers using exhaustive struct literals must initialize it.

Validation:
- All reported non-Java checks passed on
`f5fa66fcbcf31a8eb188935f728735560c77c873`, including Rust
lint/Linux/remote, Python, NodeJS and CLI checks. Current head
`c660bc0ac9fd5920ad4b64be9c19f732ef4c56a5` preserves those product
sources, manifests, lockfiles and compiler/test commands; only the Java
pin restoration and CLI cache configuration differ. Current-head CI is
tracked separately.
- The complete Java directory is identical to the original PR base. The
scope correction reuses [Xuanwo's prepared and validated
commit](https://github.com/lancedb/lancedb/pull/4814#issuecomment-6626088466);
no new Java build was run.
- CLI workflow YAML parses successfully, its inputs match the pinned
rust-cache action schema, and the existing jobs, matrix and commands are
unchanged. Hosted execution must confirm the cache-restoration repair.
- Existing validation includes the updater regressions and 32 CI-script
tests, dependency-policy checks, count/WAL coverage, and #4820's 42
freshness tests, strict core Clippy and Rust doctest. Root Ruff
previously reported unchanged documentation-example issues;
Python-package Ruff passed.

This PR adopts the existing released Lance beta.9. A subsequent official
SDK release and normal Sophon dependency adoption remain separate
delivery steps.

---------

Co-authored-by: Xuanwo <github@xuanwo.io>
2026-11-04 19:35:36 +08:00
Jack YeandClaude Sonnet 5 dfbf682cb5 style: re-theme Mermaid diagrams to the brand palette, light and dark (#4822)
## Summary

Every Mermaid diagram now renders in the brand palette, with separate
light and dark variants that switch with the site's theme toggle.
Default node styling stays neutral; one accent color marks each
diagram's actual subject, chosen per diagram. A couple of diagrams
changed orientation where their old layout was too wide to read
comfortably.

Companion change in lancedb/sophon uses the same colors and pattern.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_018PXMCbRH6i5w47TsjeEUMT

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
2026-11-03 21:02:24 -08:00
Xuanwo b09735529b feat(sql): return durable materialized view job handles (#4824)
Materialized-view creation and refresh can outlive the submitting
connection, but their SQL query IDs cannot be reopened through the Job
Registry. On servers that negotiate early handles, return the durable
registry job ID and use the existing job API to describe, reopen, wait
for, or cancel it. Older servers retain the connection-scoped query
handle. Registry refresh handles forward running and terminal progress
observations and establish the committed-version read-freshness fence
before wait returns.

Preserve a nested SQL failure ID separately from the outer job ID
through Rust and the Python native bindings, so Function failures remain
traceable. Rust callers constructing `JobFailure` directly must supply
the new optional `sql_job_id` field or use `..Default::default()`.

Validation: seven SDK regression cases and the docs-link test pass,
including plain wait and running-to-terminal progress observations; the
observer regression fails before the fix. Formatting and strict Clippy
pass. Earlier accepted coverage includes a real Flight test service
exercising materialized-view creation followed by registry
describe/reopen/cancel, and two Python tests after rebuilding the native
extension. The published product tree matches the validated candidate.

Refs ENT-3562. The matching Sophon server change is being validated
separately before publication.
2026-11-04 12:04:02 +08:00
Xuanwo f4271b9dcb feat: support pinned Hugging Face model declarations (#4821)
Python Function declarations can now pin Hugging Face snapshots with
`models=[HuggingFaceModel(repo=..., revision=...)]`. The native Rust
registration path carries those declarations into `CREATE FUNCTION`, and
create/get/list results retain `image.models`. Functions without
declarations preserve their existing payload shape. The API reference
includes a model-loading example that initializes once per Function
instance.

Validation:
- The real SQL mock-service regression fails on the previous native
implementation and passes after the fix. It covers immediate/deferred
execution, requests with/without models, and create/get/list responses.
- Rust Function wire tests, strict Clippy, the public-type doctest, and
formatting.
- Rebuilt Python extension and targeted registration/golden tests.

The service-side snapshot preparation and cache are delivered separately
for ENT-3483.
2026-11-04 11:26:49 +08:00
Xuanwo aeab69e86a fix(docs): redirect enterprise overview to architecture (#4823)
The removed Enterprise landing page left the `/enterprise` and
`/enterprise/deployment` redirects pointing at a missing page, breaking
the SDK documentation-link test. Point both redirects at the existing
architecture overview, which describes Embedded and Enterprise.

The exact failing Rust test fails on current main and passes with these
redirect changes. This repairs the inherited failure blocking #4821.
2026-11-04 11:20:34 +08:00
Lance Release 33c62e8f3e Bump version: 0.42.0-beta.0 → 0.42.0-beta.1 2026-11-04 02:44:56 +00:00
Xuanwo f6612a5f2f test(nodejs): preserve Function worker observations in job progress (#4819)
Extend the existing job progress regression to cover Function worker
counts, GPU capacity and wait reasons, and known or absent warm-reuse
evidence through `Job.progress()` and `Job.wait()`. The callback
assertions also preserve an unknown warm state instead of turning it
into `false`.

Validation on EC2: all 56 remote SDK tests, Biome lint/format,
TypeScript build, and documentation generation pass. Native code and
dependencies match the previously validated build.

Refs ENT-3486.
2026-11-04 10:12:48 +08:00