You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
**`lance-graph-contract::ir`** (new submodule, 0.2.0): federated planner intermediate-representation vocabulary shared across all cross-engine consumers. Key types:
226
-
-`Operator` — the IR node; carries `OperatorKind` + optional `Cardinality` estimate + optional `EngineHint`.
-`EngineHint` — `#[non_exhaustive]` enum (`#[default]` Auto, Lance, TiKV, SurrealDB, SeaOrm, InMemory). Auto lets the planner pick. Doc-tests inline at each type; zero external deps.
231
-
232
-
**`lance-graph-contract::provider`** (new submodule, 0.2.0): zero-dep MVCC backend markers consumed by the `lance-graph-tikv-provider` glue crate and the ontology table providers. Key types:
233
-
-`BackendId` — `#[non_exhaustive]` enum (LocalKv / Tikv / Lance / InMemory); identifies the physical backend at runtime without importing any backend crate.
234
-
-`MvccProvider` trait — object-safe marker trait; associated fns `backend() -> BackendId` + `snapshot_ts() -> u64`. Implemented by both `TikvBackedProvider` and `LanceBackedProvider`.
235
-
-`TikvBackedProvider` — zero-size marker struct; impl `MvccProvider` (backend=Tikv). Used by `lance-graph-tikv-provider` to assert MVCC contract compliance at compile time.
236
-
-`LanceBackedProvider` — zero-size marker struct; impl `MvccProvider` (backend=Lance). Used by existing Lance-backed table providers.
**`lance-graph-contract::actor`** (new submodule, 0.2.0): supervision contract consumed by `cognitive-shader-actor` (new Glue #4 crate). Key types:
240
-
-`SupervisableShader` trait — object-safe lifecycle trait with associated `Payload` + `Error` types and lifecycle hooks `pre_start()`, `apply(&Payload) -> Result<(), Error>`, `apply_delta(&[u8]) -> Result<(), Error>` (compact binary delta path), `drain() -> Vec<Payload>` (graceful flush). Designed for `ractor::Actor` blanket impl in the glue crate.
241
-
-`SupervisionPolicy` — `#[non_exhaustive]` enum (OneForOne (default), AllForOne, RestForOne). Default is OneForOne to match ractor's built-in supervisor restart semantics.
242
-
-`RestartBackoff` — struct with `initial_ms: u64`, `multiplier: f32`, `max_ms: u64`, `max_restarts: u32`. Exponential backoff config; validates at construction (`multiplier >= 1.0`, `max_ms >= initial_ms`). Doc-tests cover boundary conditions. Consumed by `cognitive-shader-actor::ShaderSupervisor` in the glue crate.
243
-
244
-
### New excluded crates
245
-
246
-
-`crates/lance-graph-tikv-provider/` — Glue #2. TiKV-backed MVCC provider wrapping the `tikv-client` crate behind the `MvccProvider` contract. Excluded from workspace `[workspace]` table (standalone; TiKV dep pulls `protoc` which breaks the zero-protoc CI path). Implements `TikvBackedProvider` from `lance-graph-contract::provider`.
247
-
-`crates/cognitive-shader-actor/` — Glue #4. `ractor::Actor` implementation of `SupervisableShader`. Scaffolds the `ShaderActor` struct + `ShaderSupervisor` one-for-one supervisor tree. Excluded from workspace `[workspace]` table because ractor is not yet in the workspace `[workspace.dependencies]` resolver table (PP-13 REJECT resolved — see below).
248
-
249
-
### Sprint-1 implementation progress
250
-
251
-
-[x]**LG-4** — `SupervisableShader` ractor::Actor impl in `cognitive-shader-actor`; `pre_start` + `apply` + `drain` lifecycle wired; 12 unit tests pass.
252
-
-[x]**SO-6** — `SeaOrmActor` derive macro in `sea-orm#1`; blanket impl of `MvccProvider` for SeaORM `DatabaseConnection` wrapping `LanceBackedProvider` marker.
253
-
-[x]**SO-7** — Ontology codegen pipeline in `sea-orm#1`; generates `impl SupervisableShader for SeaOrmActor<T>` from `OperatorTree` IR; 8 doc-tests inline.
Two REJECTs from the prior PP-13 audit sweep were resolved by this wave:
259
-
260
-
1.**DataFusion 53 API drift** — the `lance-graph-planner` crate was pinned to DataFusion 51 (PR #273); the `ir` submodule's `OperatorTree::walk_pre` uses a DataFusion-53-compatible `LogicalPlan` visitor interface. Resolved by keeping `ir` DataFusion-version-agnostic (the IR does not import DataFusion; the planner crate bridges). API drift is now contained to the planner crate boundary.
261
-
2.**`[workspace]` table missing ractor crates** — ractor + ractor-cluster were not in `[workspace.dependencies]`, causing `crates/cognitive-shader-actor/Cargo.toml` to declare a free-floating version pin that diverged from the version used by `lance-graph-supervisor`. Resolved by the new `[workspace.dependencies]` entries (`ractor = "0.13"`, `ractor-cluster = "0.13"`) added in this PR; both glue crates now reference `ractor.workspace = true`.
0 commit comments