Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions .claude/board/LATEST_STATE.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,33 @@
## 2026-08-13 — rail-trie geometry registered: the address places the node

### Current Contract Inventory — 1 new module, 1 new ClassView resolver

- **`contract::rail_geometry`** — deterministic node placement from the rail
registers: `RailAxis` (Taxonomy/Mereology), `RailCarving`
(`InterleavedPairs` 6×stride-2 in the key facet | `AxisSlab` 12(+12
discontiguous cont)×stride-1), `RailPath` (hole rule: a value after a zero
is not ancestry; empty path = the lane's dominant root), `TriePlacement`
(`ring` = depth, `arc` ∈ [0,1) = radix fraction of the slots), and
`dual_rail_placement` (primary axis PLACES, secondary OVERLAYS — two
hierarchies on one canvas, only one of them places). The neo4j-shaped
invariant is proven, not styled: a child's arc lands inside its parent's
half-open interval `[arc, arc + 256^-depth)`, siblings order by slot,
and the placement is a pure function of the row — two loads render
identically, no solver, no scene model. The f64 boundary is pinned as a
passing test (exact through level 6; order-preserving beyond; a glove
needing deeper discrimination reads `slots()` directly).
- **`ClassView::rail_carving(class, axis)`** — the reading, registry-resolved
per class like `edge_codec_flavor`: default = canon zero-fallback (key
facet pairs at `4..16`); a bake that measured its way to a different
carving overrides. The slab variant exists because a consumer bake
MEASURED the pair reading and rejected it for its hierarchy (44.25 % of
paths fit vs 99.62 % in twelve per-axis levels). Selection only — no
carving changes `NODE_ROW_STRIDE`.
- **Boundary kept:** not a renderer (every glove reads ONE resolved
placement; none re-derives), not a distance (the CLAM-side geodesic lives
with the compute crate). Compute-side counterpart: ndarray `clam_v3`
(`RailSpec` mirrors the two carvings; merged there first).

## 2026-08-12 — open-review sweep of #920–#929 — three ledger figures were wrong, and one audit method cannot do what it claims

### Current Contract Inventory — no new types (corrections to merged #927/#928 entries; append-only, corrected here not in place)
Expand Down
22 changes: 22 additions & 0 deletions crates/lance-graph-contract/src/class_view.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1110,6 +1110,28 @@ pub trait ClassView {
crate::canonical_node::EdgeCodecFlavor::CoarseOnly
}

/// How this class's rail register is carved, per axis — the reading a
/// renderer (or a tree-distance) uses to lift the node's rail path out of
/// the row. Same registry-resolution pattern as
/// [`edge_codec_flavor`](ClassView::edge_codec_flavor): the default is the
/// canon zero-fallback (the key facet's interleaved `X:Y` pairs at
/// `4..16`), and a bake that measured its way to a different carving —
/// e.g. per-axis value slabs — overrides per class. Selection only: every
/// carving reads within the existing row, never a stride change.
///
/// Downstream, [`rail_geometry`](crate::rail_geometry) turns the resolved
/// carving into a deterministic placement (`ring` from depth, `arc` from
/// the slots) — the key prerendering the node, zero value decode, one
/// resolved projection under every glove.
#[inline]
fn rail_carving(
&self,
_class: ClassId,
axis: crate::rail_geometry::RailAxis,
) -> crate::rail_geometry::RailCarving {
crate::rail_geometry::RailCarving::zero_fallback(axis)
}

/// Which value-slab schema preset this class materialises in
/// [`NodeRow::value`](crate::canonical_node::NodeRow::value).
///
Expand Down
1 change: 1 addition & 0 deletions crates/lance-graph-contract/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,7 @@ pub mod plan;
pub mod property;
pub mod proprioception;
pub mod qualia;
pub mod rail_geometry;
pub mod rbac;
pub mod tekamolo_facet;
pub use qualia::{
Expand Down
Loading
Loading