Skip to content

Commit 738efbc

Browse files
committed
plans: reconcile AP6 drift HOLDs from PP-13 savant audit
Pins three plan-vs-source mismatches that the savant flagged as AP6 drift, by appending a reconciliation note before §10 Cross-references. In each case the SHIPPED source is better than the original sketch in the §1 Contracts table / §6 example, so the docs are updated to match shipped reality rather than rewriting the source: 1. TikvBackedProvider extends MvccProvider (zero-dep) instead of datafusion::catalog::TableProvider directly. Preserves the contract crate's zero-dep guarantee. 2. The actor-wrapper trait is named SupervisableShader, not CognitiveShader. Avoids colliding with the pre-existing cognitive_shader::CognitiveShaderDriver trait in the same crate (different lifecycle semantics: driver = in-process ShaderDispatch; supervisable = actor lifecycle apply/apply_delta/drain). 3. ShaderMessage<P> is generic over the payload type P. The actor wrapper picks RecordBatch at instantiation; other consumers can pick alternative payloads. Better composition than monomorphic sketch. All three were applied during wave-1 scaffolding; this note pins the docs accordingly. The §1 Contracts table itself will be rewritten in a future plan-revision pass. Per PP-13 savant audit. Wave-3 of the four-repo integration.
1 parent c685c67 commit 738efbc

1 file changed

Lines changed: 36 additions & 0 deletions

File tree

.claude/plans/integration-plan.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -527,6 +527,42 @@ DEFINE FIELD since ON knows TYPE datetime;
527527

528528
---
529529

530+
531+
## Post-implementation reconciliation (wave-3, 2026-05-18)
532+
533+
Shipped contract surface diverged from the §1 Contracts table sketches in
534+
three ways. The PP-13 savant flagged these as HOLDs; the source is better
535+
than the original sketch in each case, so this note pins the docs to the
536+
shipped reality:
537+
538+
1. **`lance_graph_contract::provider::TikvBackedProvider`** extends
539+
**`MvccProvider`** (this crate, zero-dep), NOT `datafusion::catalog::TableProvider`
540+
directly. The original §1 sketch had `: TableProvider` which would have
541+
forced the contract crate to pull in DataFusion as a dep — that breaks
542+
the zero-dep guarantee. The shipped trait keeps the contract zero-dep;
543+
any concrete `TableProvider` impl that wants the TiKV marker also
544+
implements `MvccProvider`, and `TikvBackedProvider` is a refinement of
545+
that marker. See `crates/lance-graph-contract/src/provider.rs:76`.
546+
547+
2. **`lance_graph_contract::actor::SupervisableShader`** is the canonical
548+
trait name (not `CognitiveShader` as in the original §6 sketch). The
549+
rename avoids colliding with the existing
550+
`lance_graph_contract::cognitive_shader::CognitiveShaderDriver` trait
551+
surface (21KB module shipped earlier) — same crate, two distinct
552+
shader concepts. `CognitiveShaderDriver` = in-process driver with
553+
`ShaderDispatch` semantics; `SupervisableShader` = actor-wrapper-shaped
554+
trait with `apply` / `apply_delta` / `drain` lifecycle.
555+
556+
3. **`cognitive_shader_actor::messages::ShaderMessage<P>`** is generic
557+
over a payload type `P` (instead of monomorphically using
558+
`arrow_array::RecordBatch` as in the original §6 sketch). The actor
559+
wrapper crate picks `RecordBatch` at instantiation time but other
560+
consumers can pick alternative payloads. Better composition.
561+
562+
All three changes were applied during wave-1 scaffolding. The plan §1
563+
Contracts table + §6 example should be read with these substitutions
564+
in mind until the table itself is rewritten.
565+
530566
## 10. Cross-references
531567

532568
- **Glue #1** (surrealdb-ractor): `AdaWorldAPI/surrealdb:.claude/plans/integration-plan.md` §5

0 commit comments

Comments
 (0)