Skip to content

Commit 0bc33de

Browse files
authored
Merge pull request #405 from AdaWorldAPI/revert/lance-surrealdb-analysis
Revert #404 — lance-surrealdb-analysis four-repo integration arc
2 parents 013533c + bc3e490 commit 0bc33de

33 files changed

Lines changed: 2 additions & 10095 deletions

.claude/board/LATEST_STATE.md

Lines changed: 0 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -207,61 +207,6 @@ the contract. This file exists to prevent that.
207207

208208
---
209209

210-
## 2026-05-18 — Append: lance-graph-contract 0.2.0 additive submodules + four-repo glue scaffolds
211-
212-
> **APPEND-ONLY annotation** per the Mandatory Board-Hygiene Rule in CLAUDE.md.
213-
> This section prepends to the dated-entry stack; it does NOT edit any prior entry.
214-
> Branch: `claude/lance-surrealdb-analysis-LXmug`. PR #404 (open).
215-
> Three companion PRs landed same day in sibling repos: surrealdb#24 / sea-orm#1 / ndarray#160.
216-
217-
### Recently Shipped PRs — new top row
218-
219-
| PR | Merged | Title | What it added |
220-
|---|---|---|---|
221-
| **#404** | *(open)* | feat(wave-5): lance-graph-contract 0.2.0 ir/provider/actor submodules + tikv-provider + cognitive-shader-actor scaffold | Glue #2 (`lance-graph-tikv-provider`) + Glue #4 (`cognitive-shader-actor`) scaffold crates + ractor::Actor impl + `lance-graph-contract` 0.2.0 with new `ir` / `provider` / `actor` submodules. 5 commits on branch `claude/lance-surrealdb-analysis-LXmug`. Three companion PRs in sibling repos: surrealdb#24 / sea-orm#1 / ndarray#160. |
222-
223-
### Current Contract Inventory — new entry
224-
225-
**`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`.
227-
- `OperatorKind` — 11-variant enum (Scan, Filter, Project, Join, Aggregate, Sort, Limit, Union, Distinct, Exchange, Extension). `#[non_exhaustive]` to allow additive extensions without semver break.
228-
- `OperatorTree` — DAG wrapper; `children: Vec<OperatorTree>` + `root: Operator`. Provides `walk_pre` / `walk_post` visitors.
229-
- `Cardinality``u64` row-count estimate; saturating arithmetic.
230-
- `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.
237-
- `min_snapshot_ts(a: u64, b: u64) -> u64` — const helper; returns `a.min(b)` for two-provider join GC horizon. Doc-tested.
238-
239-
**`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.
254-
- [ ] **SD-5** — SurrealDB live-query routing (`surrealdb#24`): `OperatorTree` → SurrealDB live `SELECT` subscription. **IN PROGRESS**`EngineHint::SurrealDB` dispatch wired; event-stream back-pressure not yet resolved (blocked on surrealdb WebSocket backpressure spec review).
255-
256-
### PP-13 audit verdicts addressed
257-
258-
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`.
262-
263-
---
264-
265210
## 2026-05-05 — Recently Shipped backfill (PRs #244#335)
266211

267212
> The "Recently Shipped PRs" table above stops at #243 (last refreshed 2026-04-21). Roughly 50 PRs have merged since. This section retrofits them.

0 commit comments

Comments
 (0)