docs: adopt Embedded/Distributed terminology across docs and SDKs (#4713)

## Summary

Adopts the product terminology guide across the docs site pages, SDK
docstrings and error messages. "LanceDB OSS" and local mode become
**LanceDB Embedded**. "Remote" as the execution model becomes **LanceDB
Distributed**, which LanceDB Enterprise provides. Where free vs paid is
the point, pages contrast "LanceDB Embedded (open source)" with "LanceDB
Enterprise". This is a first trial of the Embedded name, so reviewers
can judge it in context.

- **Embedded vs Distributed** for where execution runs (`optimize()`,
consistency, branching, maintenance). Main pages define it once:
"LanceDB Enterprise runs LanceDB Distributed: …"
- **LanceDB Cloud** is kept only for legacy-Cloud specifics (`db://`
region, the brute-force KNN limit) and marked legacy. "Cloud and
Enterprise" becomes Enterprise or Distributed.
- **Plan executor** becomes "executor" or the fleet name.
- **Error messages** change, e.g. `optimize is not supported for remote
tables.` → `... in LanceDB Distributed.` Tests that match on them are
updated.
- **Vale rules** (`EmbeddedName`, `OSSProduct`, `RemoteExecution`,
`DistributedEnterprise`, `LegacyCloud`, `InternalNames`) enforce the
terms in prose.

Unchanged: identifiers (`availability.oss`, the `remote` module and
feature, `RemoteTable`, `db://`), heading anchors, internal code
comments, and Geneva.

## Evidence

- Rust lib tests for the changed messages and the Python tests in
`test_remote_db.py`, `test_materialized_views.py` and `test_table.py`
pass locally.
- Not run locally:
- The Node tests: `remote.test.ts` and `table.test.ts` have updated
assertions.
  - Vale.
  - The `experimental_functions`-marked materialized-view tests.
- `docs/src` API reference was hand-edited to match the docstrings
rather than regenerated.

## Merge Risk

**Door:** two-way; prose and message text only.
**Blast Radius:** `docs`, `error-messages`: callers matching on old
error strings would break.

Companion PRs: lancedb/docs (assembler labels, STYLE.md) and sophon
(Enterprise pages).

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

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Will Jones
2026-10-28 14:04:41 -07:00
committed by GitHub
co-authored by Claude Opus 5.5
parent b4cbaf2f67
commit 4d7a64712f
148 changed files with 981 additions and 755 deletions
+16 -15
View File
@@ -831,7 +831,7 @@ impl Table {
self.inner_ref()?
.as_native()
.ok_or_else(|| lancedb::Error::NotSupported {
message: "uses_v2_manifest_paths is not supported for remote tables.".into(),
message: "uses_v2_manifest_paths is not supported in LanceDB Distributed.".into(),
})
.default_error()?
.uses_v2_manifest_paths()
@@ -844,7 +844,8 @@ impl Table {
self.inner_ref()?
.as_native()
.ok_or_else(|| lancedb::Error::NotSupported {
message: "migrate_manifest_paths_v2 is not supported for remote tables.".into(),
message: "migrate_manifest_paths_v2 is not supported in LanceDB Distributed."
.into(),
})
.default_error()?
.migrate_manifest_paths_v2()
@@ -867,40 +868,40 @@ pub struct IndexConfig {
pub columns: Vec<String>,
/// The UUID of the first segment of the index.
///
/// `undefined` for remote tables, which do not yet surface this.
/// `undefined` in LanceDB Distributed, which does not yet surface this.
pub index_uuid: Option<String>,
/// The protobuf type URL, a precise type identifier for the index.
///
/// `undefined` for remote tables.
/// `undefined` in LanceDB Distributed.
pub type_url: Option<String>,
/// When the index was created.
///
/// `undefined` for remote tables or indices created before timestamps were tracked.
/// `undefined` in LanceDB Distributed or indices created before timestamps were tracked.
pub created_at: Option<DateTime<Utc>>,
/// The number of rows indexed, across all segments.
///
/// May be `undefined` for remote tables if the server does not report it.
/// May be `undefined` in LanceDB Distributed if the server does not report it.
pub num_indexed_rows: Option<i64>,
/// The number of rows not yet covered by this index.
///
/// May be `undefined` for remote tables if the server does not report it.
/// May be `undefined` in LanceDB Distributed if the server does not report it.
pub num_unindexed_rows: Option<i64>,
/// The total size in bytes of all index files across all segments.
///
/// `undefined` for remote tables or indices without size tracking.
/// `undefined` in LanceDB Distributed or indices without size tracking.
pub size_bytes: Option<i64>,
/// The number of segments that make up the index.
///
/// `undefined` for remote tables.
/// `undefined` in LanceDB Distributed.
pub num_segments: Option<i32>,
/// The on-disk index format version.
///
/// `undefined` for remote tables.
/// `undefined` in LanceDB Distributed.
pub index_version: Option<i32>,
/// Index-type-specific details parsed as a JavaScript object.
///
/// Falls back to a raw string if JSON parsing fails. `undefined` for
/// remote tables or when details are unavailable.
/// Falls back to a raw string if JSON parsing fails. `undefined` in
/// LanceDB Distributed or when details are unavailable.
pub index_details: Option<serde_json::Value>,
}
@@ -1616,11 +1617,11 @@ impl From<lancedb::function::FunctionErrors> for FunctionErrors {
#[napi(object)]
pub struct RefreshMaterializedViewResult {
/// How the view was brought up to date: "rebuild", or absent for remote SQL refreshes.
/// How the view was brought up to date: "rebuild", or absent for LanceDB Distributed SQL refreshes.
pub mode: Option<String>,
/// Rows written by this refresh, or absent for remote SQL refreshes.
/// Rows written by this refresh, or absent for LanceDB Distributed SQL refreshes.
pub rows_written: Option<i64>,
/// Source version refreshed to, or absent for remote SQL refreshes.
/// Source version refreshed to, or absent for LanceDB Distributed SQL refreshes.
pub source_version: Option<i64>,
pub version: i64,
}