Skip to content

Commit 4d709b2

Browse files
committed
Merge main into capstone; move ProposedMethod off the anchors #1524 removed
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011BMJnDBAfzcuQh5HeT39Rh
2 parents 56c0212 + ecb9d9a commit 4d709b2

31 files changed

Lines changed: 94 additions & 10728 deletions

‎.claude/board/STATUS_BOARD.md‎

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -22,29 +22,29 @@ Plan: `.claude/plans/software-awareness-graph-v1.md`. No new opcode, Quack varia
2222

2323
| D-id | scope | status | gate / falsifier |
2424
|---|---|---|---|
25-
| D-SAG-1-0 | inventory: Bible work (6-lane fixture, English KJV; no 7-language graph in code), OGAR identities, dir-sim provenance, Quack/mask-risc | In PR | every row cites code or says documented-only |
26-
| D-SAG-1-1 | typed schema + projection of prepared methods with tiers and provenance | In PR | `tests/awareness.rs` projection test; one identity, one kind |
27-
| D-SAG-1-2 | queries A–D through Quack; compiler verdicts as edges | In PR | answers == the programs; falsifiers 1–10, each disable-verified |
28-
| D-SAG-1-3 | H1 candidate + tier-labelled measurement; MDL measure with counterexample | In PR | `examples/awareness_loop.rs`; MDL test |
29-
| D-SAG-1-4 | multi-hop dependency via relation carrier / factored `EqU32Via` | Queued (needs D-CMH-G1-4) | two-hop answer == closure computed from the programs |
30-
| D-SAG-1-5 | G1 `CALLS` edges + method-reference refusals | In PR | `method_references_are_calls_edges_and_cycles_are_the_compilers`; callers via Quack; `MethodCycle` recorded, never re-derived |
31-
| D-SAG-1-6 | persist as a Lance dataset; source revision from git; canonical body digest | Queued | reload equals projection; toolchain change keeps digests |
25+
| D-SAG-1-0 | inventory: Bible work (6-lane fixture, English KJV; no 7-language graph in code), OGAR identities, dir-sim provenance, Quack/mask-risc | Withdrawn 2026-10-12 (backup `backup/session-011BMJ-2026-10-12`; see entry session-reset-inventory) | every row cites code or says documented-only |
26+
| D-SAG-1-1 | typed schema + projection of prepared methods with tiers and provenance | Withdrawn 2026-10-12 (backup `backup/session-011BMJ-2026-10-12`; see entry session-reset-inventory) | `tests/awareness.rs` projection test; one identity, one kind |
27+
| D-SAG-1-2 | queries A–D through Quack; compiler verdicts as edges | Withdrawn 2026-10-12 (backup `backup/session-011BMJ-2026-10-12`; see entry session-reset-inventory) | answers == the programs; falsifiers 1–10, each disable-verified |
28+
| D-SAG-1-3 | H1 candidate + tier-labelled measurement; MDL measure with counterexample | Withdrawn 2026-10-12 (backup `backup/session-011BMJ-2026-10-12`; see entry session-reset-inventory) | `examples/awareness_loop.rs`; MDL test |
29+
| D-SAG-1-4 | multi-hop dependency via relation carrier / factored `EqU32Via` | Withdrawn 2026-10-12 (backup `backup/session-011BMJ-2026-10-12`; see entry session-reset-inventory) | two-hop answer == closure computed from the programs |
30+
| D-SAG-1-5 | G1 `CALLS` edges + method-reference refusals | Withdrawn 2026-10-12 (backup `backup/session-011BMJ-2026-10-12`; see entry session-reset-inventory) | `method_references_are_calls_edges_and_cycles_are_the_compilers`; callers via Quack; `MethodCycle` recorded, never re-derived |
31+
| D-SAG-1-6 | persist as a Lance dataset; source revision from git; canonical body digest | Withdrawn 2026-10-12 (backup `backup/session-011BMJ-2026-10-12`; see entry session-reset-inventory) | reload equals projection; toolchain change keeps digests |
3232

3333
## D-CMH-G1 — Gremlin as a composable ClassId algebra (2026-10-12)
3434

3535
Plan: `.claude/plans/gremlin-composable-algebra-v1.md`.
3636

3737
| D-id | scope | status | gate / falsifier |
3838
|---|---|---|---|
39-
| D-CMH-G1-0 | vocabulary → algebra matrix, TinkerPop 3.7.7 | Shipped (#1508) | every row cites a test, a refusal or the missing capability |
40-
| D-CMH-G1-1 | predicate methods + method references | Shipped (#1508) | composed `programs()` == hand conjunction; cycles, contract, cross-class refused |
41-
| D-CMH-G1-2 | typed Gremlin steps → method body | Shipped (#1508) | == direct Quack program; both frontends == row oracle |
42-
| D-CMH-G1-3 | Gremlin-shaped runtime declarations | Shipped (#1508) | loads after the build; effects refused at load |
43-
| D-CMH-G1-4a | functional relation carrier: `out(rel)`, `out(rel).has`, `count()` | Shipped (#1514; ConflictingUniverse fix follows) | row loop over the text at n ∈ {1,64,65,4097}; 6 disable runs red; R2IL refuses (no `GATHER`) |
44-
| D-CMH-G1-4b | edge table as the anchor (`E()`, M:N one hop, `outE/inV`) + `Fold::Distinct` (`out(rel).dedup().count()`) | In PR | bag and set == row loop over the text at n ∈ {1,64,65,4097}; unordered key lane refused (`LaneNotOrdered`); 7 disable runs red |
45-
| D-CMH-G1-4 | rest: a second hop (blocked on the chained-hop decision), `V(parent).in(rel)` spelling, `bothE` | Queued | — |
46-
| D-CMH-G1-5 | FirstOfRun | Queued | insufficiency proof first; Quack + R2IL vs independent oracle |
47-
| D-CMH-G1-6 | ordered `I32` conditions + `MIN`/`MAX` folds as method steps; R2IL `MIN`/`MAX` wired | In PR | both frontends == row loop incl. empty selection; 8 disable runs red |
39+
| D-CMH-G1-0 | vocabulary → algebra matrix, TinkerPop 3.7.7 | Withdrawn 2026-10-12 (backup `backup/session-011BMJ-2026-10-12`; see entry session-reset-inventory) | every row cites a test, a refusal or the missing capability |
40+
| D-CMH-G1-1 | predicate methods + method references | Withdrawn 2026-10-12 (backup `backup/session-011BMJ-2026-10-12`; see entry session-reset-inventory) | composed `programs()` == hand conjunction; cycles, contract, cross-class refused |
41+
| D-CMH-G1-2 | typed Gremlin steps → method body | Withdrawn 2026-10-12 (backup `backup/session-011BMJ-2026-10-12`; see entry session-reset-inventory) | == direct Quack program; both frontends == row oracle |
42+
| D-CMH-G1-3 | Gremlin-shaped runtime declarations | Withdrawn 2026-10-12 (backup `backup/session-011BMJ-2026-10-12`; see entry session-reset-inventory) | loads after the build; effects refused at load |
43+
| D-CMH-G1-4a | functional relation carrier: `out(rel)`, `out(rel).has`, `count()` | Withdrawn 2026-10-12 (backup `backup/session-011BMJ-2026-10-12`; see entry session-reset-inventory) | row loop over the text at n ∈ {1,64,65,4097}; 6 disable runs red; R2IL refuses (no `GATHER`) |
44+
| D-CMH-G1-4b | edge table as the anchor (`E()`, M:N one hop, `outE/inV`) + `Fold::Distinct` (`out(rel).dedup().count()`) | Withdrawn 2026-10-12 (backup `backup/session-011BMJ-2026-10-12`; see entry session-reset-inventory) | bag and set == row loop over the text at n ∈ {1,64,65,4097}; unordered key lane refused (`LaneNotOrdered`); 7 disable runs red |
45+
| D-CMH-G1-4 | rest: a second hop (blocked on the chained-hop decision), `V(parent).in(rel)` spelling, `bothE` | Withdrawn 2026-10-12 (backup `backup/session-011BMJ-2026-10-12`; see entry session-reset-inventory) | — |
46+
| D-CMH-G1-5 | FirstOfRun | Withdrawn 2026-10-12 (backup `backup/session-011BMJ-2026-10-12`; see entry session-reset-inventory) | insufficiency proof first; Quack + R2IL vs independent oracle |
47+
| D-CMH-G1-6 | ordered `I32` conditions + `MIN`/`MAX` folds as method steps; R2IL `MIN`/`MAX` wired | Withdrawn 2026-10-12 (backup `backup/session-011BMJ-2026-10-12`; see entry session-reset-inventory) | both frontends == row loop incl. empty selection; 8 disable runs red |
4848

4949
## D-NALP — `NAL::narsese()` polyfill over R2IL procedures and mask-risc (2026-10-12)
5050

‎.claude/board/entries/2026-10-12-sag-capstone-alignment.md‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22

33
**Finding:** six SAG research PRs written in parallel on the #1509 base
44
named one concept six ways and defined five status enums for "unknown is not
5-
false". `ProposedMethod` (inert, evidence-carrying method candidate; rewrite
6-
shape on `awareness::Candidate`, action shape on `EffectClass::Propose`) is
7-
now canonical, and one four-state status maps all five vocabularies. Choosing
5+
false". `ProposedMethod` (inert, evidence-carrying method candidate; a
6+
rewrite shape and an action shape) is now canonical, and one four-state status maps all five vocabularies. Choosing
87
what to probe next is a separate concept (`SchedulerDecision`).
98

109
Plan: `.claude/plans/sag-capstone-alignment-v1.md`.
1110

1211
PR #1523 | STATUS: done (docs) | OUTCOME: #1510/#1511/#1512/#1513/#1515/#1517
13-
merged and aligned; aliases renamed; stale multi-hop claims corrected |
12+
merged and aligned; aliases renamed; the second-hop refusal and SAG defects
13+
A/B confirmed current (#1519, #1522 closed); code anchors removed by #1524 |
1414
OPEN: ProposedMethod and the four-state status are not built (SAG Step 4);
1515
#1517 oracle tests F0/F7/F8 are claimed, unverified.
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# 2026-10-12 — Session reset: method layer moved to backup (D-CMR-RESET)
2+
3+
**Status:** DONE (removal); the rebuild is OPEN.
4+
5+
**Finding:** the class-method layer built on 2026-10-12 was a second algebra
6+
beside the existing folds, not a binding over them, and it was slower than a
7+
scalar row loop: `billable_hours` measured 430–480 µs per call against 283 µs
8+
for the row loop (1,048,576 rows, AVX-512, release). Its hops were
9+
foreign-key reads; the graph has none. Everything here is moved to backup and
10+
rebuilt.
11+
12+
## Where the old state lives
13+
14+
| repo | branch | what |
15+
|---|---|---|
16+
| lance-graph | `backup/session-011BMJ-2026-10-12` | `main` at `8ae5bce4`, with the whole method layer |
17+
| lance-graph | `backup/session-011BMJ-2026-10-12-chain2` | #1522 (`GatherChain`, `Filter::Chain`, two-hop glove) |
18+
| lance-graph | `backup/session-011BMJ-2026-10-12-sagfix` | #1519 (SAG reprojection fixes) |
19+
| lance-graph | `backup/session-011BMJ-2026-10-12-capstone` | #1523 (SAG docs capstone) |
20+
| ndarray | `backup/session-011BMJ-2026-10-12` | `master` at `e726f98`, with `mask_gather_chain_u32` (#358) |
21+
22+
## Removed
23+
24+
| item | where | why |
25+
|---|---|---|
26+
| `method.rs`, `call.rs`, `decl.rs`, `gremlin.rs`, `awareness.rs` | `crates/lance-graph-glove-parity/src` | own `MethodBody` algebra, lowered per call through `Filter::cmp` over value lanes with fresh scratch (`run_quack`), no `Compiled`, no `lower_fused`, no resident planes |
27+
| `Relation { fk }`, `ForeignLane` hops, `Cond::Reaches/Via`, edge-table anchor, `Fold::Distinct` | `method.rs` | foreign-key model; a hop is a coordinate range, not a key read |
28+
| SAG graph (`Vec<Edge>`, `retain`, `HashSet`) | `awareness.rs` | O(edges) per operation; built on the removed method layer |
29+
| 10 test files, 2 method fixtures, 4 examples | `crates/lance-graph-glove-parity/{tests,examples}` | test the removed code |
30+
| mask-risc `GatherChain`, Quack `Filter::Chain` | #1522 (not merged) | per-row chained key reads |
31+
| `mask_gather_chain_u32[_under]`, `ChainHop`, `ChainTest` | ndarray (#359 removes) | same |
32+
| `lance-graph-r2il` dependency, OGAR checkout in `glove-parity.yml` | crate `Cargo.toml`, workflow | only the method layer needed them; both restored to their state before this session |
33+
34+
## Kept, and why
35+
36+
| item | why |
37+
|---|---|
38+
| `basis.rs`, `tests/authority.rs`, `tests/canonical_front.rs` | another session's work (D-XGP-1/2); untouched, tests green |
39+
| r2il edits: every fold reads a resident plane as its mask (`8d5a36fb`); MIN/MAX and ordered-i32 procedures (`964a95c5`); declarative bodies (`0dbb6b52`, `b61f62fa`) | woven into r2il's own procedure surface; reviewed in the rebuild, not reverted blind |
40+
| contract: compute DAG reads all 256 field positions (`6a83f99f`) | a correctness fix in `class_view.rs`, independent of the method layer |
41+
| build: native target-cpu, debug 0, x86_64 pinned to v3 for wheels (`5cfc8453`, `12cdfde9`) | build configuration, not a primitive |
42+
| NAL recipe audit, CE64 plateau, nal-polyfill plan, planner revision/receipt probes | research and oracle tests, no query path |
43+
44+
## The rebuild (D-CMR)
45+
46+
A class method is a binding `classid × WideFieldMask → an existing fold`: one
47+
`Compiled` mask-risc program over resident planes and coordinate ranges
48+
(`Lowering::Range`, ternlog fusion, the fold terminals, `CountKeyRunsU32`,
49+
Quack `lower_fused`, `fold_ranges`, `prefix_*`). A call resolves the binding
50+
and runs the compiled program; it does not lower, allocate or interpret. Chained
51+
hops are coordinate-range intersections inside the same program. A fold that
52+
does not exist is reported as a gap in the fold catalogue, not built in the
53+
method layer.
54+
55+
OPEN: #1523 anchors `ProposedMethod` on `awareness::Candidate`, which this
56+
reset removes; the anchor moves to the rebuilt binding.

‎.claude/board/entries/README.md‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,12 @@ index row, (3) no duplicate entry id. Checks 1 and 2 are deliberately
2525
opposite directions; the stranding this convention prevents shows up in
2626
exactly one of them, never both.
2727

28-
323 entries, 2026-08-06 .. 2026-10-12.
28+
324 entries, 2026-08-06 .. 2026-10-12.
2929

3030
| date | entry id | finding | file |
3131
|---|---|---|---|
3232
| 2026-10-12 | `D-SAG-1` | | [2026-10-12-software-awareness-graph.md](2026-10-12-software-awareness-graph.md) |
33+
| 2026-10-12 | `D-CMR-RESET` | method layer was a second algebra beside the folds and slower than a row loop (430–480 µs vs 283 µs); moved to backup, rebuild as bindings over existing folds | [2026-10-12-session-reset-inventory.md](2026-10-12-session-reset-inventory.md) |
3334
| 2026-10-12 | `D-SAG-5-0` | Post-#1509 SAG self-querying, provenance and limited attention with NARS/Hyperon/PLN comparisons; research prompt and high-signal falsifiers | [2026-10-12-sag-reflexive-cognition-research.md](2026-10-12-sag-reflexive-cognition-research.md) |
3435
| 2026-10-12 | `D-SAG-CAP-1` | `ProposedMethod` canonical over six SAG PRs; one four-state status; stale multi-hop claims corrected | [2026-10-12-sag-capstone-alignment.md](2026-10-12-sag-capstone-alignment.md) |
3536
| 2026-10-12 | `D-CMH-G1-6` | | [2026-10-12-ordered-conditions-and-extrema.md](2026-10-12-ordered-conditions-and-extrema.md) |

‎.claude/plans/gremlin-composable-algebra-v1.md‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# gremlin-composable-algebra-v1 — Gremlin steps as typed building blocks of ClassId methods (D-CMH-G1)
22

3+
> **⊘ WITHDRAWN 2026-10-12.** The code this plan describes was removed from main and kept on `backup/session-011BMJ-2026-10-12`. It built class methods as a second algebra beside the existing folds, lowered per call over value lanes, and modelled hops as foreign-key reads. See `.claude/board/entries/2026-10-12-session-reset-inventory.md`.
4+
35
> **Status:** MEASURED for the slice in §2 (code: `crates/lance-graph-glove-parity/src/{method,gremlin,decl}.rs`,
46
> tests `tests/{compose,gremlin}.rs`). The vocabulary matrix (§4) is ANALYSIS against code and tests,
57
> one row per step family. Stacked on #1507 (runtime declarations); independent of #1506.

‎.claude/plans/sag-capstone-alignment-v1.md‎

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,12 @@ optimization is a proposal" (#1511).
3636
> names what would change and what must be shown first. It can never execute,
3737
> and no stage downstream of it may treat its existence as authorization.
3838
39-
It has exactly two shapes, and both are already anchored on main:
39+
It has exactly two shapes. ⊘ Both anchors named below were removed from
40+
main by the method-layer reset (#1524, `D-CMR-RESET`; the code is kept on
41+
`backup/session-011BMJ-2026-10-12`). The name and the two shapes stand; the
42+
code anchor is re-decided when the class-method rebuild (D-CMR) lands:
4043

41-
| shape | anchor on main | what it carries | what it is not |
44+
| shape | former anchor (removed by #1524) | what it carries | what it is not |
4245
|---|---|---|---|
4346
| **rewrite** — a pure, structural optimization | `awareness::Candidate { kind, methods, obligations }` ("never a rewrite") | the candidate, its open `Obligation`s, evidence tier and provenance, and a read-only verification query | not applied: it still needs a semantic-equivalence oracle (NULL / bag / set), a cost measurement and an operator decision |
4447
| **action** — an external effect | `EffectClass::Propose` on `MethodBody::Action` ("builds an inert proposal"); every call refuses with `NotPure` | the effect, its preconditions (source ETag/version, policy revision, target identity) and its simulated impact | not dispatched: it needs fresh OGAR authorization, then provider receipt and re-observation |
@@ -64,10 +67,9 @@ spelled (#1511); prose is left as is. A scheduler decision is `Pure` or
6467
**Name check.** `lance_graph_ontology::MappingProposal` is unrelated (an
6568
ontology mapping); it keeps its name.
6669

67-
**When code lands,** `ProposedMethod` is a type in
68-
`lance-graph-glove-parity::awareness`, built from `Candidate` (rewrite) or
69-
from an `EffectClass::Propose` method (action). No other crate defines its
70-
own proposal type.
70+
**When code lands,** `ProposedMethod` is one type, in the crate the D-CMR
71+
rebuild puts class methods in (`lance-graph-glove-parity::awareness` no
72+
longer exists after #1524). No other crate defines its own proposal type.
7173

7274
## 3. One status vocabulary: unknown is not false
7375

@@ -128,8 +130,8 @@ These are true at the #1509 base and false now. The plans keep their text
128130
2. **SAG defects A and B remain UNVERIFIED** (#1510 plan is right). The
129131
fixes were written in #1519, which was closed unmerged with the method
130132
layer reset (kept on `backup/session-011BMJ-2026-10-12-sagfix`); the
131-
shared-provenance and stale-`BlockedBy` failure modes are still possible
132-
in the shipped `awareness.rs`.
133+
`awareness.rs` itself was removed by #1524, so both failure modes must be
134+
re-tested on whatever replaces it.
133135
3. **OGAR #357 status.** Still unverified upstream; the plans' "RFC" is the
134136
safe reading.
135137

‎.claude/plans/software-awareness-graph-v1.md‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# D-SAG-1 — Software-awareness graph: the methods, programs and evidence of lance-graph as graph rows
22

3+
> **⊘ WITHDRAWN 2026-10-12.** The code this plan describes was removed from main and kept on `backup/session-011BMJ-2026-10-12`. It built class methods as a second algebra beside the existing folds, lowered per call over value lanes, and modelled hops as foreign-key reads. See `.claude/board/entries/2026-10-12-session-reset-inventory.md`.
4+
35
**Status:** MEASURED for one concept's methods (#1504's `BillableWorkEntry` set).
46
Code: `crates/lance-graph-glove-parity/src/awareness.rs`, tests
57
`tests/awareness.rs` (19), example `examples/awareness_loop.rs`.

‎.github/workflows/glove-parity.yml‎

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ on:
77
- 'crates/lance-graph-ontology/**'
88
- 'crates/lance-graph-quack/**'
99
- 'crates/lance-graph-mask-risc/**'
10-
- 'crates/lance-graph-r2il/**'
1110
- 'crates/lance-graph-contract/**'
1211
- '.github/workflows/glove-parity.yml'
1312
workflow_dispatch:
@@ -27,21 +26,11 @@ jobs:
2726
ref: master
2827
path: ndarray
2928
persist-credentials: false
30-
# lance-graph-r2il (method calls through R2IL) path-deps ogar-loco and
31-
# ogar-r2il from the OGAR sibling.
32-
- uses: actions/checkout@v4
33-
with:
34-
repository: AdaWorldAPI/OGAR
35-
ref: main
36-
path: OGAR
37-
persist-credentials: false
3829
- uses: dtolnay/rust-toolchain@stable
3930
with:
4031
components: rustfmt, clippy
4132
- name: Record tested substrate
42-
run: |
43-
git -C ndarray rev-parse HEAD
44-
git -C OGAR rev-parse HEAD
33+
run: git -C ndarray rev-parse HEAD
4534
- name: Format
4635
run: cargo +stable fmt --manifest-path lance-graph/crates/lance-graph-glove-parity/Cargo.toml -- --check
4736
- name: Lint

‎crates/lance-graph-glove-parity/Cargo.toml‎

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,9 @@ lance-graph-quack = { path = "../lance-graph-quack" }
1717
# The capability authority (`OgarAuthority`) and OGAR's promoted classes and
1818
# `ClassView`, for the hot-plugs and the canonical field basis (`basis`).
1919
lance-graph-ogar = { path = "../lance-graph-ogar" }
20-
# Executes a method through both frontends: Quack (above) and R2IL. R2IL
21-
# path-deps the OGAR sibling (`ogar-loco`, `ogar-r2il`), so CI checks it out.
22-
lance-graph-mask-risc = { path = "../lance-graph-mask-risc" }
23-
lance-graph-r2il = { path = "../lance-graph-r2il" }
2420

2521
[dev-dependencies]
22+
lance-graph-mask-risc = { path = "../lance-graph-mask-risc" }
2623
lance-graph-sap = { path = "../lance-graph-sap" }
2724

2825
# mask-risc names ndarray by its canonical git coordinate; point it at the

0 commit comments

Comments
 (0)