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
2 changes: 1 addition & 1 deletion .claude/board/STATUS_BOARD.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ Plan: `.claude/plans/metta-polyfill-v1.md`. Proposed crate `lance-graph-metta` (
| **D-MTP-1b** | The hop as a range: preimage of `valid`'s runs under a monotone `dst` vs the gather, clustered and scattered | Measured (§6d): R-declared count 0.0001–0.0004 ns/row vs gather 1.3–2.4 at 10⁶ | == datafrog; two disable runs red; costs reported |
| **D-MTP-2** | `LanceSpace` (`Space + SpaceMut`) as a named space for the non-recursive Datalog subset; golden corpus rerun — same deliverable as D-ASM-4, flips with it | Queued (not authorized) | the 26-script baseline built and committed FIRST (G6; `hyperon-probe/golden` is absent), then unchanged with facts in `LanceSpace`; refusals counted per kind; whole-conjunction vs per-conjunct calls recorded |
| **D-MTP-3** | Recursive Datalog rules → relalg μ through the external driver d′ | Queued (not authorized) | `anc_n` answers identical; no fixpoint state in mask-risc |
| **D-MTP-4** | Fork fix for the expression-width trie panic (≥ 1,024 children), test first; distinct from the id-decoding fix `1ffdbd6` | Fix EXISTS on the fork (corrected 2026-10-16): `5c9afd4` on `ccr-9f3b8075-74u47l-trie-expr-width`, failing tests first (`b5ae248`); `1ffdbd6` is upstream PR trueagi-io#1107 (head == `1ffdbd6`). Both fixes landed on fork `main` via fork PR `AdaWorldAPI/hyperon-experimental#1`, MERGED 2026-10-16 (merge `e55dc61`; local `cargo test -p hyperon-space` 39 passed on the merge, 2 failed at `trie.rs:539` on the tests-only commit `b5ae248`). lance-graph still pins `3f76dc4`, which panics; the pin bump to `e55dc61` is a separate, measured PR and is the operator's call | red before, green after (already on the branch); pin bump to `e55dc61` OPEN |
| **D-MTP-4** | Fork fix for the expression-width trie panic (≥ 1,024 children), test first; distinct from the id-decoding fix `1ffdbd6` | Fix EXISTS on the fork (corrected 2026-10-16): `5c9afd4` on `ccr-9f3b8075-74u47l-trie-expr-width`, failing tests first (`b5ae248`); `1ffdbd6` is upstream PR trueagi-io#1107 (head == `1ffdbd6`). Both fixes landed on fork `main` via fork PR `AdaWorldAPI/hyperon-experimental#1`, MERGED 2026-10-16 (merge `e55dc61`; local `cargo test -p hyperon-space` 39 passed on the merge, 2 failed at `trie.rs:539` on the tests-only commit `b5ae248`). No manifest in lance-graph pins hyperon at all (metta has no hyperon dep yet); the only `3f76dc4` was the spec's R-7 text, struck 2026-10-16 by the NO PINS decision (`branch = "main"`, no tracked lock), so W1's first build takes fork `main` = `e55dc61` with both fixes | red before, green after (already on fork main); no pin to bump |
| **D-MTP-6** | datafrog as the exact Rust oracle (probe/test only) | Measured 2026-10-14 (v4): join 10⁶ in 65–69 ns/pair, seeded ancestors 10⁶ in 286–298 ns/tuple; counts match; not yet a committed probe | bag-of-pairs equality with Hyperon and PeTTa |
| **D-MTP-5** | PeTTa as second oracle in the probes | Queued (not authorized) | PeTTa/Hyperon divergences recorded, never averaged |

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,3 +39,7 @@ FOREIGN fan-out (`Semijoin` mask × `GroupReduce{Count}`), and `Space::query ->
spec §10 (v3.1): R-3 limit + G2b split (ii pinned two-sided) + N1c; R-5 `try_query` / counted-empty trait path / `(lance-match …)`
grounded op; N4 rewritten; plan §E and D-ASM-5 reworded around the interned term table; D-MTP-2 gate = the 26-script baseline.
OPEN (operator): what the adapter answers for a foreign fan-out query in W1–W3 (tagged bag is the written default).

**Addendum (2026-10-16, NO PINS):** DECISION — git deps float on `branch = "main"`, no `rev`, no tracked `Cargo.lock` (already
gitignored in lance-graph `:15` and the fork `:8`; no `rev =` exists in any `Cargo.toml`). Spec F5/R-7/G6 reworded; the earlier
"pin bump to `e55dc61`" item is void — there was never a manifest pin, only spec text.
13 changes: 9 additions & 4 deletions .claude/plans/metta-datalog-assimilation-v1-council-v3.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,10 @@ F3. Zero copy is a law without escape hatches; a binder never holds atoms, it ho
plan §5).
F4. The 16-byte key and the 512-byte stride are canon; a tenant may be added, the stride never changes
(`CLAUDE.md` § CANON — Minimal SoA node; `v3-envelope-auditor`).
F5. AdaWorldAPI forks only, never crates.io for a forked crate; the lance family excepted (`CLAUDE.md` P0). Pins: hyperon-experimental
F5. AdaWorldAPI forks only, never crates.io for a forked crate; the lance family excepted (`CLAUDE.md` P0). **⊘ v3.1 (DECISION,
2026-10-16): NO PINS.** Git deps float on the fork's default branch (`branch = "main"`, no `rev`, no `tag`) and no `Cargo.lock` is
tracked (`lance-graph/.gitignore:15`, fork `.gitignore:8` — already so), so every build compiles the latest fork head. The SHAs
below are the heads the inventory was READ at, dated evidence, never a build pin: hyperon-experimental
`3f76dc4`, PeTTa `1d19a1d`, ONA `dc4efd0`, OpenNARS Java `4d1bdb0` — MEASURED as the clone heads 2026-10-16 (`git rev-parse --short HEAD`
in each clone); datafrog `edd7cfc` (master) per `crates/lance-graph-metta/Cargo.lock` (gitignored, local).
F6. Hyperon's interpreter is called, never ported or modified for this; an unsupported shape is never approximated
Expand Down Expand Up @@ -192,8 +195,8 @@ R-6 **Migration order.** W1 (R-4 binder + R-1b values) and W2 (R-1(a)/(b) loweri
files; W3 (R-5) after both. No commit touches `canonical_node.rs`, `facet.rs`, `causal-edge`, relalg, or mask-risc `ir.rs`.
R-7 **Deleted/kept/aliased.** Nothing deleted. `join_probe.rs`/`join_range_probe.rs` kept (quack-path precedent; G4 reads them).
`lance-graph-metta/src/lib.rs` stub replaced. metta gains deps `hyperon-atom`, `hyperon-space` (`git = "https://github.com/AdaWorldAPI/hyperon-experimental"`,
`rev = "3f76dc4"`, never `branch`, never crates.io — F5, S4 #2, R3 P2),
keeps quack + mask-risc; dev-dep `hyperon` (interpreter) at the SAME rev with `default-features = false` (defaults pull `das`
`branch = "main"` — ⊘ v3.1: was `rev = "3f76dc4"`, struck by the NO PINS decision in F5; never crates.io — S4 #2, R3 P2),
keeps quack + mask-risc; dev-dep `hyperon` (interpreter) on the SAME branch with `default-features = false` (defaults pull `das`
from a singnet git source and `pkg_mgmt`). Transitive set read from the fork manifests by S4: common, macros, bitset, unescaper, bimap, smallvec, log — no
interpreter crate at `[dependencies]` level; G8b turns that into a `cargo tree` assertion rather than a manifest reading (R1 P2). `crates/lance-graph-metta/Cargo.lock` is gitignored (`.gitignore:15`), as
the no-lock rule requires. No CI workflow names `lance-graph-metta` today; a job is a FOLLOW-UP, so G7 is a local gate in this
Expand Down Expand Up @@ -261,7 +264,8 @@ G5 (W2/3) **`b4_nondeterm` is the ROUTING fixture, not the multiplicity fixture*
$x`) is the fold fixture from Hyperon's own corpus. Kill condition rewritten: if `GroupReduce{Count}` cannot reproduce the bag
fixture's multiset, the tranche ships counts only and says so.
G6 (W3) **`hyperon-probe/golden` is ABSENT on disk (S3 #5); "32/33" is struck.** W3's FIRST step builds and commits the baseline:
the fork's 26 `python/tests/scripts/*.metta` run through the fork's Rust runner at `3f76dc4`, pass/fail recorded per script
the fork's 26 `python/tests/scripts/*.metta` run through the fork's Rust runner at the `main` head of the run (the sha RECORDED
with the result — ⊘ v3.1, was "at `3f76dc4`"; fork main is `e55dc61` today and carries both trie fixes), pass/fail recorded per script
BEFORE any `LanceSpace` exists (MEASURED, with the command). Then: that baseline unchanged with facts moved into `LanceSpace`;
every LanceSpace answer == Hyperon per CATEGORY (R-8) or a named refusal; inner-space answers counted per kind and DISJOINT from
fold answers (S2 #10); PeTTa divergences logged by fixture; whole-conjunction vs per-conjunct call counts recorded.
Expand Down Expand Up @@ -392,4 +396,5 @@ Conflicts between reviewers: none. Stricter verdict rule not invoked.
| P2 plan §E still described the struck tenant; D-ASM-5 row kept it | `metta-datalog-assimilation-v1.md:97-105,132,141,181` | plan §E rewritten around the interned table; D-ASM-5 row, kill condition and ONA row reworded |
| P2 D-MTP-2 gate still said "32/33 golden files" | `STATUS_BOARD.md:40` vs G6 | row gate = the 26-script baseline (G6) |
| P2 N4 contradicted R-9 | this file | N4 rewritten (above) |
| DECISION (operator, 2026-10-16): no pins; always compile from latest | `.gitignore:15` (lance-graph), fork `.gitignore:8`; no `rev =` in any `Cargo.toml` (`grep`, read) | F5 ⊘ NO PINS; R-7 `branch = "main"`; G6 baseline at the run's main head, sha recorded |
Nothing in §3 R-1..R-9 beyond the two ⊘ paragraphs changed; W1–W3 remain NOT authorized.
2 changes: 1 addition & 1 deletion .claude/plans/metta-datalog-assimilation-v1.md
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,7 @@ The target is one unified substrate. It is validated in two passes, in this orde
|---|---|---|---|---|
| `lance-graph-nal` | OpenNARS Java `4d1bdb0` (`RunNal.java`), ONA `dc4efd0` (`./NAR shell`) | NAL-1/2 fixtures, `revision_points.nal`; truth to one u8 code; argument order bound by rule shape | evidence classes (`INDEPENDENT/DUPLICATE/OVERLAP/NO_PROVENANCE`), W witness, 59..63 written by `pearl::hydrate`/`revise` | a population revision that refuses dependent evidence by class where both originals silently pool it; a statement's epistemic state after an executed intervention, which neither original represents |
| `lance-graph-relalg` | `AdaWorldAPI/datafrog` `edd7cfc` (exact Datalog) | bags of tuples at n = 10²..10⁶; `μ` closures | 40..42 as the question asked of a join (SO/PO/SPO/SP) | a join whose pairs carry a Pearl mask and a topology, so a two-hop answer states whether the middle term is a known intermediate |
| `lance-graph-metta` | hyperon-experimental `3f76dc4` (interpreter), PeTTa `1d19a1d` | `b4_nondeterm`, `c1_grounded_basic`, `e1_kb_write`, golden 32/33, `join_n`, `anc_n`; multisets, refusals named | facts assimilated with provenance; `(stv f c)` into F/C; stamp travels as an atom | answers Hyperon panics or times out on (join_10000, anc_800) with identical multisets where it finishes; a `match` whose answer is gated by provenance, which no space in Hyperon or PeTTa can express |
| `lance-graph-metta` | hyperon-experimental `main` (interpreter; read at `3f76dc4`, no pin — ⊘ v3.1 NO PINS), PeTTa `1d19a1d` | `b4_nondeterm`, `c1_grounded_basic`, `e1_kb_write`, golden 32/33, `join_n`, `anc_n`; multisets, refusals named | facts assimilated with provenance; `(stv f c)` into F/C; stamp travels as an atom | answers Hyperon panics or times out on (join_10000, anc_800) with identical multisets where it finishes; a `match` whose answer is gated by provenance, which no space in Hyperon or PeTTa can express |
| `lance-graph-ona` (when it exists) | ONA `dc4efd0` (`Term_*`, `Truth_*`, `examples/nal/*.nal`) | `Term_Hash`/`Equal`/`ExtractSubterm` byte parity on the interned heap-ordered term table (⊘ v3.1: not a per-row tenant); sensorimotor fixtures if NAL-7/8 enter scope | compound terms as a tenant addressable by strided match; events as rows with time lanes | a compound-term predicate as one fold over the population where ONA walks concepts one at a time |
| `lance-graph-cog` (when it exists) | `trueagi-io/hyperon-miner` (patterns, surprisingness), PeTTa `lib_pln.metta` second, classic `opencog/miner` read-only | mined pattern set and surprisingness on the shared fixture (HY-Q15) | support counted under provenance masks; patterns scored with `NarsTruth` via `arm-discovery` | a mined pattern whose support excludes dependent evidence; attention left to #1497 |

Expand Down
Loading