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
28 changes: 28 additions & 0 deletions .claude/board/INTEGRATION_PLANS.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,31 @@
## 2026-10-20 — recursive-perspective-rebinding-v1 — WORLD × ANGLE × THOUGHT over composable relational registers → `.claude/plans/recursive-perspective-rebinding-v1.md`

**Status:** D-RPR-0 PROPOSED, LAB ONLY, documentation only; D-RPR-1 not authorized; D-RPR-2/3 BLOCKED (D-TGA-3, D-ASM-4).

- The navigation terms map onto existing components: WORLD = sealed version with thought 0 as givens; ANGLE = focus binding + prepared relation planes (+ proposed map palettes); THOUGHT = sparse deltas over one shared frame.
- The addressing operation is the measured H14c/H14d canon `Thought(t)[T_a[i] : T_b[i]]`; the global → local binding it needs is admission A1 (D-RMAP-1 §6), still open.
- Rebind exists and is measured (D-RMAP-1A §8.4): it pays for small k only, so the open quantity is the k distribution along real question chains. Hypothesis H1: a frame's escapes seed the next angle.
- MeTTa operations sorted into four classes from the existing polyfill classification and Decision H.

## 2026-10-20 — relstore-quack-petgraph-traversal-v1 (reframed) — compiled relational geometry and amortization; petgraph optional → `.claude/plans/relstore-quack-petgraph-traversal-v1.md`

**Status:** D-RST-0..9 LAB EXPLORATION, not admitted to production; no production code may be rewired to it (operator, 2026-10-20); documentation only. Operator correction (2026-10-20): the goal is reusable relational geometry amortized across front ends and thought versions; petgraph is an optional consumer (D-RST-3 OPTIONAL / DEFERRED / MEASUREMENT-GATED); tile GEMM consumes prepared layouts and does not obtain them.

- Critical path: D-RST-9 (native borrowed views, no petgraph) → D-RST-1 → 2 → 4 → 5 → 6 → 7. Off it: D-RST-3, D-RST-8 (A2), F-PG, F8 path D.
- New §5b: three costs (preparation, execution, maintenance) measured apart; break-even from measured values only; Boolean existence vs BF16 multiplicity, with the BF16 exactness bound (integers to 256).
- New F8: four execution paths on one relation, cold/warm, 1/8/64 thoughts, sparse to hub distributions.
- Prior art named: the planner's `AdjacencyStore`/`AdjacencyBatch` (pattern CSR + CSC, borrowed, no-`Copy`) is the starting point for D-RST-9; no fourth owned CSR type.
- Supersedes the entry below on framing only; its ownership decisions stand.

## 2026-10-20 — relstore-quack-petgraph-traversal-v1 — stored relations, compiled traversal, petgraph over borrowed layouts → `.claude/plans/relstore-quack-petgraph-traversal-v1.md`

**Status:** D-RST-0..8 PROPOSAL; documentation only. Operator decision B (2026-10-20): RelationshipMapStore owns persistence, layouts, domains, seals and invalidation; Quack compiles; mask-risc executes. D-RMAP-1A §1 and the 2026-10-05 storage-portability ruling are unchanged.

- The store satisfies Quack's existing `Registrar` seam; derived relations stay queryable relations with multiplicity, provenance and dependencies; versions are `DurableRef` / `ThoughtCommitId`, and the coordinate domain is itself a relation, so its seal needs no counter.
- petgraph: a borrowed `RelView` implementing `GraphBase`/`IntoNeighbors`/`Visitable`/`NodeIndexable` runs unmodified `Bfs`/`Dfs`; batched cursors and a typed traversal vocabulary compile to Quack.
- Finding: multi-hop over a large domain is blocked by scatter (push) as well as gather (pull); the tile is the only admitted shape (within a focus). Admissions A1 (global→local binding), A2 (large-domain multi-hop), A3 (scalar petgraph iteration) are open.
- The existing petgraph `lance-fold-hop` experiment consumes the quarantined `OutgoingHop`; the plan does not build on it.

## 2026-10-19 — mork-pathmap-schnellverschluss-v1 — MORK / PathMap behind one replaceable boundary → `.claude/plans/mork-pathmap-schnellverschluss-v1.md`

**Status:** D-MPS-0/1 MEASURED (probe, results only); D-MPS-2..5 upstream PROPOSALS; D-MPS-6 BLOCKED; D-MPS-7 OPEN.
Expand Down
14 changes: 14 additions & 0 deletions .claude/board/STATUS_BOARD.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,20 @@ These PRs merged with no board rows. Every row below is a PROPOSAL (documents an
| D-RMAP-1A | separate map tables, borrowed projections, thought-selected palettes (`d-rmap-separate-tables-thought-palettes-v1.md`) | PROPOSAL; generation witnesses corrected 2026-10-19 (§6a) | refusal on map regeneration, palette-slot reassignment, focus-slot reuse, incarnation reuse, stale tile, cross-tenant change |
| D-RMAP-1A-V | versioning crosswalk: map/palette/binding generations derived from D-TGA `ThoughtCommitId` + #1605 `DurableRef`; focus generation and index seal retained (`d-rmap-separate-tables-thought-palettes-v1.md` §7) | PROPOSED; no code, no type; falsifiers specified, none run | X1–X9 in §7.4 (cross-dataset, compaction, palette ABA, slot reuse, uncommitted change, rebase, authorization, squash+replay, deletion/DRed) |
| D-RMAP-1A-P | focus-bound RelationshipMap probe over existing sorted/trie indexes: CSR, 256×256 tile via mask-risc, incremental rebind, thought deltas, place masks, postings (`d-rmap-separate-tables-thought-palettes-v1.md` §8; `crates/mork-pathmap-probe/src/rmap.rs`) | MEASURED, probe only; nothing adopted | 12 tests vs scan oracle; 11 guards disable-verified; break-even 76/11/1.8 reuses (sparse d2 / d8 / dense) |
| D-RST-0 | stored relations × Quack × petgraph: architecture and phased plan (`relstore-quack-petgraph-traversal-v1.md`) | LAB EXPLORATION, not admitted to production (operator, 2026-10-20); documentation only; reframed 2026-10-20 around relational geometry and amortization (petgraph optional, tile GEMM a consumer of prepared layouts) | operator decision B; admissions A1–A6, blockers B1–B3 listed in §8 |
| D-RST-1 | `DurableRef` / `ThoughtCommitId` contract types, never-reused rule (coordinated with D-CPG CPG-00) | LAB ONLY, not admitted to production; Queued | reuse test; no duplicate with CPG-00 |
| D-RST-2 | `RelationshipMapStore` skeleton: catalog, facts through the cycle seal, sorted permutation, `LayoutSeal`, domain as a relation, `impl Registrar` | LAB ONLY, not admitted to production; Queued | F4 refusals (reseal, domain ABA, compaction, scope, dirty, deletion) |
| D-RST-3 | petgraph `RelView` over a borrowed, version-pinned pattern-CSR view in a new fork experiment (brought forward; isolated probe with temporary ownership) | OPTIONAL / DEFERRED / MEASUREMENT-GATED (operator, 2026-10-20); experiment AdaWorldAPI/petgraph#4 kept as evidence, not extended | then-F1 (now F-PG) met: unmodified `Bfs`/`Dfs` equal a `DiGraph` oracle; view borrows the prepared buffers (pointer check), 0 allocations to build or walk; Quack one-hop reads the same `dst` buffer at the same version, one prepare; 7 disable runs red |
| D-RST-4 | layouts in the store: base indexes at seal time, specialized layouts on demand; pattern-only `u32` CSR/CSC on BlasGraph storage types, bitmap row blocks through mask-risc, join table; capability table | LAB ONLY, not admitted to production; Queued (production reads wait on A1; layouts from D-RST-9) | F2: four front ends (Quack, Cypher, Gremlin adapter, RelAlg/Datalog), one `RelationVersion`, identical set and bag answers |
| D-RST-5 | derived relations: `materialize`, multiplicity, provenance, dependencies, invalidation, DRed | LAB ONLY, not admitted to production; Queued | F4 deletion, F5 set/bag/path |
| D-RST-6 | typed traversal vocabulary; multi-hop within a focus through stored intermediates | LAB ONLY, not admitted to production; Queued (A1) | F3: no `Gather`/`ScatterOrU32` in any program; `NonFunctionalChain` lifted only in focus |
| D-RST-7 | triangle and amortization | LAB ONLY, not admitted to production; Queued | F6 (existence/count/enumeration, sparse/dense/skewed), F7 measured crossovers, F8 four-path amortization (A native iterator, B compiled sparse, C bit tiles, D GEMM via existing probe kernels) |
| D-RST-8 | multi-hop over a large domain | BLOCKED on admission A2 | — |
| D-RST-9 | native borrowed relation views without petgraph: n-ary sorted permutations as ranges, pattern CSR/CSC as the binary case, stable fact ids, version pin, not `Copy`; starts from the planner's `AdjacencyStore`/`AdjacencyBatch` | LAB ONLY, not admitted to production; Queued (critical path, first) | F1: oracle equality, zero copies, compaction-stable ids, stale and out-of-domain refusals |
| D-RPR-0 | recursive perspective rebinding: architectural distillation (`recursive-perspective-rebinding-v1.md`) | LAB ONLY, not admitted to production; PROPOSED; documentation only | claims graded IMPLEMENTED / MEASURED / PROBE / PROPOSED / OPEN against origin/main |
| D-RPR-1 | recursive question-chain probe over one corpus: escapes seed the next angle (H1), `rebind` vs full prepare vs no frame vs MORK oracle | LAB ONLY; not authorized (waits on admission A1 and an operator go) | exact parity; named refusal per failure case; marginal cost per angle with its crossover |
| D-RPR-2 | premise revision with selective retraction | BLOCKED on D-TGA-3 (per-derived-cell provenance) | stale-premise refusal only, until then |
| D-RPR-3 | MeTTa-facing parity of a chain's answers | BLOCKED on D-ASM-4 (not authorized) | — |
| D-MPS-8 | native join over a versioned relationship table: R and S laid out by `y` slot, leapfrog intersection as one mask-risc `And`, per-side generations and reseal, per-thought filter planes (`mork-pathmap-schnellverschluss-v1.md` §7b; `crates/mork-pathmap-probe/src/join.rs`) | MEASURED, probe only; not admitted (D-RMAP-1 BIND membrane review) | 8 join tests + native arms in the differential suite vs the oracle; 7 guards disable-verified; cyclic bodies open |
| D-RMAP-2 | context-declaration reuse and GraphBLAS/BF16 tile probe (`d-rmap-2-context-tile-algebra-probe-v1.md`) | PROPOSAL; not run | arms 1–5 in the plan; 297× (D-GTM-0j) is not evidence |
| D-SRAM-0 | inventory Soufflé AST/ast2ram/RAM passes against D-ASM/D-RA/D-TGA owners | Queued | evidence per mapped pass; no code imported |
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Recursive perspective rebinding: distillation (2026-10-20)

**Status:** PROPOSED, lab only (D-RPR-0). Plan: `.claude/plans/recursive-perspective-rebinding-v1.md`. Documentation only.

## Findings (read on origin/main)

- `WORLD × ANGLE × THOUGHT` needs no new nouns. WORLD is a sealed version with thought 0 as givens (D-TGA:6–9). ANGLE is `Focus` + `CsrPred`/tile in the `rmap.rs` probe, with `MapPalette` proposed (D-RMAP-1A). THOUGHT is `ThoughtDelta` over one shared tile (32 B per thought, per-eval flat across 1/8/64; D-RMAP-1A §8.5).
- `TableA[i] : TableB[i]` is the measured H14c/H14d expression `Thought(t)[T_a[i] : T_b[i]]`; the MeTTa council v3 header names those plans as the correct path and marks the preimage-join design a gather violation.
- `rebind` (k slots, one forward seek each) is measured: it wins for small k, loses at k = 256, and on the dense relation from k ≥ 16 (D-RMAP-1A §8.4). Recursive questioning is cheap only if real chains keep k small; that distribution is unmeasured.
- The probe already emits a missing-dependency signal: `ScopedReach.escaped` plus the `IncompleteFocus` refusal. Hypothesis H1: escapes seed the next angle.
- "Teleport" in this repo includes D-TELEPORT-0/1/2, source-restricted folds through Lance 13's row-address prefilter, which is the prefetch mechanism here.

## Open

A1 (pre-fold binding admission), H1, the k distribution, n-ary co-addressing and repeated variables, selective retraction provenance (D-TGA-3), a refusal for recursive dependency cycles, `ThoughtCommitId` never-reused rule.
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# D-RST reframed: relational geometry first, petgraph optional, tile GEMM a consumer (2026-10-20)

**Status:** PROPOSAL (D-RST-0..9). Plan: `.claude/plans/relstore-quack-petgraph-traversal-v1.md`. Documentation only. Supersedes the framing of `2026-10-20-relstore-quack-petgraph-plan.md`; its ownership decisions and findings stand.

## Decision (operator, 2026-10-20, recorded as provenance)

- Petgraph is an optional consumer, intermediate and usability reference, beside the Gremlin adapter. It decides no storage format, coordinate model, algebra, optimizer, execution ABI or lifecycle. D-RST-3 is OPTIONAL / DEFERRED / MEASUREMENT-GATED; petgraph parity is the optional falsifier F-PG.
- Tile GEMM accelerates arithmetic on prepared dense operands. It does not resolve identities, scatter, gather or traverse sparse data.
- Target: minimum repeated work per relational reasoning step across front ends and compatible thought versions.

## Findings (read in source)

- `lance-graph-planner/src/adjacency/` already holds a pattern-only CSR + CSC with edge ids and a borrowed `AdjacencyBatch` that is deliberately not `Clone`/`Copy` (ruling 2026-07-29). Gaps for D-RST-9: `u64` widths, edge id = arrival position (not a stable fact identity), no version pin, binary only. Core `CsrIndex` is a third owned CSR. No fourth is added.
- The D-RST-3 experiment's view (petgraph#4) is `Copy`, which that ruling forbids; petgraph's `GraphRef: Copy` is met instead by implementing the visit traits for `&View`.
- D-RST-3's measurements: a borrowed CSR walk costs about 2 ns per edge against 300–400 ns per edge of preparation; a Quack one-hop scans the whole lane (O(E)) because the sort order is not attested (admission A6).

## Open

- A1–A6, B1–B3 (plan §8). F8 (four-path amortization) is unmeasured; path D runs only through the existing D-RMAP-2 probe kernels.

## Status ruling (operator, later 2026-10-20)

Lab exploration only. The relationship store is one option among many for certain data shapes, unfit to promote until further testing; nothing from D-RST or D-RMAP-2 is admitted to production, and no production code may be rewired to it.

Checked in source: none of the measured paths touched DataFusion. `mork-pathmap-probe`, `lance-graph-quack`, `lance-graph-mask-risc` and the petgraph `relstore-visit` experiment have no DataFusion dependency. BlasGraph and DataFusion are separate `ExecutionStrategy` arms in `lance-graph/src/query.rs`, and the BlasGraph arm returns "not yet wired to input datasets". The measured slowness is the probes' own: an indirect sort plus a second sort in preparation, a full-lane scan with per-query lowering in the Quack hop, and per-element allocation in the BF16 polyfill.
22 changes: 22 additions & 0 deletions .claude/board/entries/2026-10-20-relstore-quack-petgraph-plan.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Stored relations, compiled traversal, petgraph over borrowed layouts (2026-10-20)

**Status:** PROPOSAL (D-RST-0..8). Plan: `.claude/plans/relstore-quack-petgraph-traversal-v1.md`. Documentation only.

## Decision

Operator decision B: `RelationshipMapStore` owns relationship persistence, identities, layouts, coordinate-domain seals and invalidation; Quack owns compilation and numeric query semantics; mask-risc on `ndarray::simd` stays the only population executor. D-RMAP-1A §1 and the 2026-10-05 storage-portability ruling stay in force.

## Findings (read in source)

- Multi-hop over a large domain is blocked by scatter as well as gather: pushing a frontier writes at positions taken from values, pulling reads at them. The tile (frontier broadcast ∧ a pre-transposed plane) is the only admitted shape, and it is bounded by the focus. Gremlin's `NonFunctionalChain` is therefore two problems: a phase handoff (the store's) and a hop (the ruling's).
- The petgraph fork's `experiments/lance-fold-hop` consumes the quarantined `OutgoingHop` (pinned pre-quarantine); it is not a base for this work.
- petgraph `Bfs`/`Dfs` need only `GraphRef + Visitable + IntoNeighbors`; the visit map is a `FixedBitSet` keyed by `IndexType`, so a dense-slot view reuses it unchanged.
- Quack's `Registrar` has only a test implementor; three library `Binder`s exist (sap, dir-sim, glove-parity).
- A coordinate domain stored as a relation gets its own `DurableRef`, which removes domain ABA without a counter.

- BlasGraph's shipped CSR (read in source): 2 KiB `BitVec` value per entry, `usize` indices, `mxv` clones the matrix per call (even the CSC transpose clones), `mxv` reads the vector at stored column indices (a scalar gather), and ndarray is not on the CSR/`mxv` path. The store reuses BlasGraph's storage types with a pattern-only `u32` borrowed variant; dense row blocks in the predecessor (pull) direction become bitmap rows executed by ndarray mask ops through mask-risc (`StorageFormat::Bitmap` is already reserved), `F'[t] = any(pred(t) ∧ F)` with no indexed read; the push direction (selecting successor rows) and sparse rows need one. Structural (edge-existence) and valued (hyperdimensional) relations stay distinct. Base indexes are built at seal time; specialized layouts on demand.
- Principle (operator): write a relationship as a relationship; the seal fixes identity, version and declared base indexes, specialized layouts are prepared once on demand and retained, so RelAlg pays translation once per version and only for demanded geometry.

## Open

- Admissions A1 (global→local binding), A2 (large-domain multi-hop), A3 (scalar petgraph iteration), A4 (store home/backend), A5 (Registrar shape); blockers B1 (`DurableRef`/`ThoughtCommitId` types), B2 (fork pin), B3 (cyclic joins at scale).
5 changes: 4 additions & 1 deletion .claude/board/entries/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,13 @@ index row, (3) no duplicate entry id. Checks 1 and 2 are deliberately
opposite directions; the stranding this convention prevents shows up in
exactly one of them, never both.

374 entries, 2026-08-06 .. 2026-10-19.
377 entries, 2026-08-06 .. 2026-10-20.

| date | entry id | finding | file |
|---|---|---|---|
| 2026-10-20 | `relstore-quack-petgraph-plan` | | [2026-10-20-relstore-quack-petgraph-plan.md](2026-10-20-relstore-quack-petgraph-plan.md) |
| 2026-10-20 | `D-RST` | | [2026-10-20-relstore-geometry-not-graph-api.md](2026-10-20-relstore-geometry-not-graph-api.md) |
| 2026-10-20 | `recursive-perspective-rebinding` | | [2026-10-20-recursive-perspective-rebinding.md](2026-10-20-recursive-perspective-rebinding.md) |
| 2026-10-19 | `post-merge-recovery-1601-1617` | | [2026-10-19-post-merge-recovery-1601-1617.md](2026-10-19-post-merge-recovery-1601-1617.md) |
| 2026-10-19 | `native-join-relationship-table` | | [2026-10-19-native-join-relationship-table.md](2026-10-19-native-join-relationship-table.md) |
| 2026-10-19 | `mork-pathmap-schnellverschluss` | | [2026-10-19-mork-pathmap-schnellverschluss.md](2026-10-19-mork-pathmap-schnellverschluss.md) |
Expand Down
Loading
Loading