Commit db9249a
committed
feat(planner): temporal — the deinterlace engine (query-time epistemic policy + two causal axes)
`lance-graph-planner::temporal`. Merges the four asynchronous frames (lance
versions / SurrealQL knowable_from / ractor V_ref / cognitive trajectory) into
one causally-coherent SoA — the standing wave a reader deliberates over.
Query-time epistemic policy (NOT storage, NOT ogar-vocab — these classify how a
reader saw a row, not what a class is):
- EpistemicMode {Strict, Aware, Retro} + for_rung + admits
- TemporalStatus {Contemporary, Anachronistic, Spoiler, Unknowable}
- QueryReference {server_id, ref_version, hlc_tick: Option<u64>, mode, rung}
- classify(row_version, knowable_from, v_ref) -> TemporalStatus (TIME-causal)
Both deferred axes are type-visible from day one with trivial single-server
bodies (avoids the emitted_at_millis decision-#4 non-Option trap on both):
- TIME cross-server: QueryReference carries server_id + hlc_tick: Option<u64>;
the cluster-bus policy wakes them with no signature change.
- DATA-causal: the DependsClosure trait (+ NoDeps trivial impl) is the seam the
SPO depends_on/reads_field source plugs into; Rubicon's KausalSpec::Depends
guard implements it (opaque to the producer, like CommitHook to the membrane).
classify_ready + deinterlace are the two-axis entries; deinterlace yields the
dispatchable standing-wave projection (admitted on TIME && ready on DATA),
ordered by the HLC deinterlace key.
knowable_from meet-point: sourced by ogar-adapter-surrealql (DEFINE TABLE),
consumed here by classify — nowhere else.
13 tests green; module is pure (no new deps).
https://claude.ai/code/session_01VysoWJ6vsyg3wEGc5v7T5v1 parent d9a7d9e commit db9249a
2 files changed
Lines changed: 454 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
75 | 75 | | |
76 | 76 | | |
77 | 77 | | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
78 | 86 | | |
79 | 87 | | |
80 | 88 | | |
| |||
0 commit comments