From f9bad5220b727bfb231afd4e490ae8778e37a5cc Mon Sep 17 00:00:00 2001 From: "jan (via bardioc)" Date: Wed, 3 Jun 2026 12:06:12 +0000 Subject: [PATCH] feat(sdk): forward kv-lance + kv-tikv + kv-rocksdb features from surrealdb-core MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The SDK crate (`surrealdb/Cargo.toml`, package `surrealdb`) is the public API surface most consumers use. It currently does NOT forward the `kv-lance` feature (and possibly others) from `surrealdb-core`. Downstream consumers depending on the SDK cannot reach the Lance backend even when they declare the feature. Concrete downstream impact (AdaWorldAPI/bardioc substrate-b): declared `features = ["kv-lance"]` on the SDK; `cargo check` did NOT error (Cargo silently ignores unknown features for path-patched deps); the resulting binary ran with `kv-mem` because `surrealdb-core`'s `kv-lance` was never activated transitively. The substrate-b binary therefore stored Lance data in memory, not in a Lance dataset — invalidating the substrate's whole point. Workaround documented at `bardioc/substrate-b/Cargo.toml` as a comment + flagged TD-B1-002 in `bardioc/.claude/TECH_DEBT.md`. This PR forwards the missing kv-* features on the SDK package so consumers can select their backend without depending on `surrealdb-core` directly. Forward-only; no behavior change to existing code; no breakage for consumers that already work. Provenance: - Surfaced by: bardioc B1-step2 brutal 02 (code-correctness lens) - Draft: `bardioc/.agent-logs/upstream-contributions/surrealdb-01-kv-lance-feature-on-sdk.md` - Severity P0 for any consumer trying to use the Lance backend via the public SDK --- surrealdb/Cargo.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/surrealdb/Cargo.toml b/surrealdb/Cargo.toml index ec7b6cf7be5c..aea6fecbc897 100644 --- a/surrealdb/Cargo.toml +++ b/surrealdb/Cargo.toml @@ -24,6 +24,7 @@ kv-indxdb = ["surrealdb-core/kv-indxdb"] kv-rocksdb = ["surrealdb-core/kv-rocksdb", "tokio/time"] kv-tikv = ["surrealdb-core/kv-tikv", "tokio/time"] kv-surrealkv = ["surrealdb-core/kv-surrealkv", "tokio/time"] +kv-lance = ["surrealdb-core/kv-lance", "tokio/time"] scripting = ["surrealdb-core/scripting"] http = ["surrealdb-core/http"] native-tls = [