diff --git a/.claude/board/AGENT_LOG.md b/.claude/board/AGENT_LOG.md index d93b22ef2..c2d50a2d3 100644 --- a/.claude/board/AGENT_LOG.md +++ b/.claude/board/AGENT_LOG.md @@ -1,3 +1,12 @@ +## 2026-10-20 — synergy map #1592–#1626 and board catch-up for #1621–#1626 (Haiku) + +- Round 1 (#1592–#1624): seven substrate-mapper runs over about 8 700 lines of plans, research docs and probe code; one harvest of board rows. Four claims re-read at the source, all held. A few off-by-one line numbers and one stray placeholder, self-reported. +- Round 2 (#1622–#1626), three harvest-scout runs: + - board coverage for #1621–#1626: confirmed, no arc or LATEST_STATE rows existed; + - nine type and driver names in `crates/`: `DurableRef` 0 definitions confirmed. One miss: it reported 21 `MaskOp::Gather` matches, a recount gives 57 matching lines; + - blocker names on the board and in plans: three citations re-read, all held. +- Retired: none (one miss, below the two-miss rule). Written by the orchestrating main thread only. + ## 2026-10-16 — PR-body harvest #1582–#1591 (general-purpose on Haiku) - One run: ten PR bodies and file lists, verbatim, into the session scratchpad. diff --git a/.claude/board/INTEGRATION_PLANS.md b/.claude/board/INTEGRATION_PLANS.md index 94793b052..a92e92f93 100644 --- a/.claude/board/INTEGRATION_PLANS.md +++ b/.claude/board/INTEGRATION_PLANS.md @@ -1,3 +1,7 @@ +## 2026-10-20 — correction: D-RMAP-2 is measured (the 2026-10-19 index line said "not run") + +**Status:** CORRECTION. The 2026-10-19 entry lists `d-rmap-2-context-tile-algebra-probe-v1.md` (#1617) as "preregistered GraphBLAS vs BF16 tile probe; not run". Since then §5a measured the polyfill tier (#1623, byte count #1625) and §5a-AMX the AMX tile tier (#1626). The plan is PARTIAL: the `VDPBF16PS`-only tier, tiles above one focus and the GraphBLAS arm are not run. That line is left as written; this entry supersedes it. + ## 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). diff --git a/.claude/board/ISSUES.md b/.claude/board/ISSUES.md index 1934981fc..2564f339f 100644 --- a/.claude/board/ISSUES.md +++ b/.claude/board/ISSUES.md @@ -1,3 +1,56 @@ +## ISS-ADMISSION-PREP-BINDING — may preparation translate global identities into focus slots before a fold? (2026-10-20) + +**Status:** OPEN (operator ruling). **Basis:** VERIFIED-IN-CODE (`crates/mork-pathmap-probe/src/{rmap,join,chain}.rs`) and MEASURED (D-RMAP-1A §8, Schnellverschluss §7b, D-RPR §11.10). + +- One question under five names. Each row keeps its own wording and points here: + - D-RMAP-1 §6, the BIND membrane review; + - D-MPS-8 "not admitted" (STATUS_BOARD; `mork-pathmap-schnellverschluss-v1.md:185`); + - admission A1 in D-RST (`relstore-quack-petgraph-traversal-v1.md` §8) and in D-RPR (`recursive-perspective-rebinding-v1.md` §10 item 1); + - D-RPR-1 "not authorized; waits on A1"; + - GATHER-DECISION in `ISS-GATHER-HOP-1616`, the same question asked from the hop side. +- Evidence for the ruling, all lab: + - the focus probe translates only in `Csr::prepare` / `rebind`; + - the native join intersects with one mask-risc `And` over co-addressed planes; + - the chain's lookup is keyed by the previous fold's escapes and runs in counted preparation, while its fold program contains no `Gather` and no scatter terminal (checked on the program, disable-verified). +- **What closes it:** a written ruling on "a counted, witnessed lookup in preparation, folds co-addressed". It settles D-MPS-8, D-RPR-1, D-RST-4/6 and the fate of `quarantined-gather-hop`. + +## ISS-RECURSION-DRIVER — no lawful (co-addressed, non-gather) recursion driver exists (2026-10-20) + +**Status:** OPEN. **Basis:** VERIFIED-IN-CODE (`STATUS_BOARD.md` D-RA-4 row: "VIOLATION — GATHER. DO NOT BUILD"). + +- One missing driver under five names: + - D-SRAM-4 (BLOCKED, `souffle-ram-64-thought-stack-v1.md:141`); + - D-MTP-3 (`metta-polyfill-v1.md:391`, through d′); + - D-RA-4's d′ (the banned preimage gather); + - the D-RPR loop; + - the JC-SBI note (`jc-sbi-counterfactual-integration-v1.md:191`). +- `chain::ask` (#1624) is one candidate shape, in the lab: fold, read escapes, admit in preparation, fold again. Translation happens only in preparation. It is Boolean, one variable, and has no cycle refusal, so it is evidence for a design, not the driver. +- **What closes it:** a reviewed driver design under D-HOLO H14c/H14d: least fixpoint equal to Datafrog on set workloads, terminated cycles, refusal past the bound. Gated by `ISS-ADMISSION-PREP-BINDING`. + +## ISS-RETRACTION-PROVENANCE — per-derived-cell provenance for selective retraction is undecided (2026-10-20) + +**Status:** OPEN. **Basis:** VERIFIED-IN-CODE (no source bitset or read-provenance plane in `crates/`). + +- One decision under four names: + - D-TGA-3 (`thought-git-api-v1.md:184`, source bitset or read-provenance plane); + - D-RPR-2 (BLOCKED); + - D-RMAP-1A falsifier X9 (`d-rmap-separate-tables-thought-palettes-v1.md:179`, deletion / DRed); + - D-RST-5 (DRed retraction). +- Until it is decided a changed premise can only be refused, never selectively retracted. +- **What closes it:** the D-TGA-3 decision, then X9 run against it. + +## ISS-DURABLEREF-THOUGHTCOMMITID — the two identity types four plans depend on do not exist (2026-10-20) + +**Status:** OPEN. **Basis:** VERIFIED-IN-CODE (`DurableRef` and `ThoughtCommitId` appear in `crates/` only in doc comments, `mork-pathmap-probe/src/rmap.rs:70` and `:690`). + +- Owned by D-RST-1, coordinated with #1605's CPG-00 (no duplicate). Needed by: + - D-RMAP-1A §7 / D-RMAP-1A-V; + - D-RST-1 (and blocker B1); + - the D-RPR witnesses; + - the Schnellverschluss `generation` stand-in (`mork-pathmap-schnellverschluss-v1.md:145`). +- Every probe witness is a `u64` stand-in until they land. The never-reused rule for `ThoughtCommitId` is not yet written anywhere authoritative. +- **What closes it:** the contract types plus a reuse test (STATUS_BOARD D-RST-1). + ## ISS-BF16-POLYFILL-PER-ELEMENT-ALLOC — ndarray's BF16 16×16 polyfill allocates per output element (2026-10-20) **Status:** OPEN. **Basis:** VERIFIED-IN-CODE (`ndarray/src/simd_ops.rs`, `bf16_tile_gemm_16x16`) and MEASURED (D-RMAP-2 §5a: a 256 × 256 `A·A` takes about 19 ms, about 0.9 GMAC/s, on an AVX-512 host without AMX or `avx512_bf16`). diff --git a/.claude/board/LATEST_STATE.md b/.claude/board/LATEST_STATE.md index de681d31a..aafe46203 100644 --- a/.claude/board/LATEST_STATE.md +++ b/.claude/board/LATEST_STATE.md @@ -1,3 +1,10 @@ +## 2026-10-20 — main after #1626 (merged `bc8012da`) + +- **On main:** #1621 (`fcd1f60e`, D-RMAP focus probe and native join), #1622 (`4dbd0853`, plans D-RST and D-RPR), #1623 (`8b570ed3`, D-RMAP-2 tile-GEMM cell, polyfill tier), #1624 (`7d2722bd`, consolidation, plan links, D-RPR-1 handoff probe), #1625 (`37b866ee`, BF16 byte count), #1626 (`bc8012da`, D-RMAP-2 on the AMX tier). All six have arc entries. +- **Probe surface in `crates/mork-pathmap-probe` (lab only, nothing admitted):** `rmap` (focus, CSR, tile, `rebind`), `join` (native join), `tile_gemm` (BF16 against bit tile), `chain` (escape-driven handoff). +- **Blockers now one row each in ISSUES:** `ISS-ADMISSION-PREP-BINDING`, `ISS-RECURSION-DRIVER`, `ISS-RETRACTION-PROVENANCE`, `ISS-DURABLEREF-THOUGHTCOMMITID`. +- Contract inventory delta: none. + ## 2026-10-19 — main after #1620 (merged `dca8e7b1`) - **On main:** #1618 (`dbe0696f`, post-merge recovery for #1601–#1617 plus the remediation), #1619 (`8e004a20`, D-RMAP binding palette generation and the D-RMAP-1A §7 versioning crosswalk) and #1620 (`dca8e7b1`, the MORK/PathMap Schnellverschluss probe, D-MPS-0..7). All three have arc entries. diff --git a/.claude/board/PR_ARC_INVENTORY.md b/.claude/board/PR_ARC_INVENTORY.md index 082290932..9f2eb51a7 100644 --- a/.claude/board/PR_ARC_INVENTORY.md +++ b/.claude/board/PR_ARC_INVENTORY.md @@ -1,3 +1,45 @@ +## 2026-10-20 — lance-graph PR #1626 (merged `bc8012da`, branch `ccr-08f48cec-lbv9l4-amx`, head `2976e117`) — D-RMAP-2 §5a-AMX: the tile arm on the AMX tier + +- **Added:** D-RMAP-2 §5a-AMX (five runs on a host where ndarray reports `AMX TDPBF16PS`); entry `D-RMAP-2-AMX`; STATUS_BOARD D-RMAP-2 row. No code change. +- **Locked:** none. Lab probe only. +- **Deferred / open:** `VDPBF16PS`-only hosts, tiles above one focus, the GraphBLAS arm; why the row-major entry (no AMX) took 5.6–6.1 ms here against about 19 ms on the §5a host. +- **Confidence:** measured. Walk counts: AMX `A·A` 58–67 µs against popcount 128–164 µs, staging excluded; Boolean composition and triangles still go to the bit arm. Re-measured on a second AMX host in the PR that adds this entry: ratios hold (2.06–2.31×), absolute times 10–60 % higher. + +## 2026-10-20 — lance-graph PR #1625 (merged `37b866ee`, branch `ccr-08f48cec-lbv9l4-tile-gemm`, head `74eb6cf7`, 1 commit) — D-RMAP-2: count the row-major B blocks in the BF16 byte total + +- **Added:** test `bf16_bytes_count_every_retained_buffer` (pins `3 · 256 · 256 · 2`). +- **Locked:** `Bf16Staged::bytes()` counts `b_rows`; a staged map holds 384 KiB, not 256 KiB. Plan §5a and its entry corrected. +- **Deferred / open:** none of its own. Carries the fix pushed after #1623 merged. +- **Confidence:** measured. Removing the `b_rows` term turns the test red (262 144 against 393 216). + +## 2026-10-20 — lance-graph PR #1624 (merged `7d2722bd`, branch `ccr-d3ce1263-ied9yh`, head `f9ab46a1`) — #1622 consolidation, plan links for #1601–#1617, the D-RPR-1 handoff probe + +- **Added:** plan links (19 artifacts → owning plans, 11 plans gain a "Connected sources" section; entry `2026-10-20-prs-1601-1617-plan-links.md`); `recursive-perspective-rebinding-v1.md` §11 (D-RPR-1 sub-cases 1a–1f, anti-vacuity, oracles, refusal axes, costs, limits) and §11.10; `crates/mork-pathmap-probe/src/chain.rs`, `tests/chain.rs` (8 tests), `examples/chain_cost.rs`; entries `2026-10-20-d-rpr-consolidation-1624.md`, `2026-10-20-d-rpr-1-handoff-lab-demo.md`. +- **Locked:** `TileExec::program` is `pub`. The no-gather ruling holds: the chain's lookup runs in counted preparation (`rebind`), and its fold program contains no `Gather` and no scatter terminal, which a test reads off the program. +- **Deferred / open:** A1 / D-RMAP-1 §6; D-RPR-1 as written (the probe adds glue types, synthetic fixture); `rebind`'s copy floor; KJV fixture; a termination bound (disabling `keep` livelocks `ask`). +- **Confidence:** measured. Every answer equals a full-scan oracle; 3 of 4 disable runs red, the fourth hangs. 360 seeks against 3 840 for a full rebuild per admission; the direct arm is cheaper per pass (23.6 µs against 1 509 µs for the first framed pass). + +## 2026-10-20 — lance-graph PR #1623 (merged `8b570ed3`, branch `ccr-08f48cec-lbv9l4-tile-gemm`, head `9e6cb940`) — D-RMAP-2 probe: BF16 16×16 tile GEMM against the bit tile + +- **Added:** `crates/mork-pathmap-probe/src/tile_gemm.rs`, `tests/tile_gemm.rs` (4 tests, 5 guards disable-verified), `examples/tile_gemm_cost.rs`; D-RMAP-2 §5a; `ISS-BF16-POLYFILL-PER-ELEMENT-ALLOC`; entry `2026-10-20-d-rmap-2-tile-gemm-cell.md`. +- **Locked:** none. Uses `ndarray::simd::bf16_tile_gemm_16x16{,_packed}` through the facade; no new kernel. +- **Deferred / open:** AMX and `VDPBF16PS` hardware (the host had neither); the polyfill's per-element allocation. The byte-count fix arrived after merge (#1625). +- **Confidence:** measured on the F32x16 polyfill tier only: the bit arm wins every cell; BF16 `A·A` about 19 ms, which measures allocation, not tile arithmetic. + +## 2026-10-20 — lance-graph PR #1622 (merged `4dbd0853`, branch `ccr-08f48cec-lbv9l4`, head `d5c79258`) — plans D-RST (relational geometry amortization) and D-RPR (recursive perspective rebinding) + +- **Added:** `.claude/plans/relstore-quack-petgraph-traversal-v1.md` (D-RST-0..9, reframed) and `.claude/plans/recursive-perspective-rebinding-v1.md` (D-RPR-0..3); plan-index entries, STATUS_BOARD rows, board entries. +- **Locked:** lab exploration only; no production code may be rewired to either plan. Petgraph is an optional consumer (D-RST-3 deferred). Tile GEMM consumes prepared geometry and does not obtain it (§5b). Ownership: `RelationshipMapStore` owns facts, layouts, domains, seals and invalidation; Quack compiles; mask-risc executes. +- **Deferred / open:** admissions A1–A6, blockers B1–B3; D-RPR-1 not authorized; D-RPR-2/3 blocked on D-TGA-3 / D-ASM-4. +- **Confidence:** proposed. Documentation only. + +## 2026-10-20 — lance-graph PR #1621 (merged `fcd1f60e`, branch `ccr-08f48cec-lbv9l4`, head `9108865b`) — D-RMAP focus probe, native join over a relationship table, board rows for #1618–#1620 + +- **Added:** `crates/mork-pathmap-probe/src/rmap.rs` (256-slot focus, slot-space CSR, 256 × 256 bit tile per predicate, `rebind`, thought deltas; 12 tests, 11 guards disable-verified); `src/join.rs` (`JoinTable`, leapfrog `y` intersection as one mask-risc `And`; 8 tests, 7 guards); `Backend::Native` in the differential suite; arc entries for #1618–#1620 and a LATEST_STATE section. +- **Locked:** address translation only in preparation; out-of-focus targets reported as escapes, never dropped. +- **Deferred / open:** the D-RMAP-1 BIND membrane review (native join not admitted); cyclic bodies; the zero-copy against register-copy trade-off (20–24 µs against 1–2 µs). +- **Confidence:** measured. Break-even reuses 76 / 11 / 1.8 (sparse d2, d8, dense); rebind loses to a rebuild at k = 256; per-evaluation cost flat over 1 / 8 / 64 thoughts; native join prepare 2.7 ms against 14.7 (PathMap) and 22.9 (MORK) at n = 50 000. + ## 2026-10-19 — lance-graph PR #1620 (merged `dca8e7b1`, branch `ccr-08f48cec-lbv9l4-mork-pathmap`, head `d514396c`, 5 commits) — MORK / PathMap Schnellverschluss: source switch, typed backend switch, differential probe - **Added:** excluded crate `crates/mork-pathmap-probe`. It has its own workspace and git deps on the AdaWorldAPI MORK (`de9312e3`) and PathMap (`ef02591`) forks; one `[patch]` line keeps a single `pathmap` package in the graph. `boundary.rs` is the only module naming either library. It holds `Backend::{Mork, PathMapZipper, Native}` and typed refusals: `SetOnly`, `NoAdmittedNativeJoin` and `Stale`. The crate also has 8 differential tests plus 1 unit test against a nested-loop oracle, the cost example, CI job `mork-pathmap-probe.yml` (default and `--features leapfrog`), plan `mork-pathmap-schnellverschluss-v1.md` (D-MPS-0..7; §7a ties `RelationView.generation` to the D-RMAP-1A §7 witness), entry `2026-10-19-mork-pathmap-schnellverschluss.md`, and `ISS-MORK-LIBRARY-GLOBAL-ALLOCATOR`. diff --git a/.claude/board/entries/2026-10-20-d-rmap-2-amx-remeasured.md b/.claude/board/entries/2026-10-20-d-rmap-2-amx-remeasured.md new file mode 100644 index 000000000..1faa5f337 --- /dev/null +++ b/.claude/board/entries/2026-10-20-d-rmap-2-amx-remeasured.md @@ -0,0 +1,23 @@ +# 2026-10-20 — D-RMAP-2-AMX-RERUN — §5a-AMX re-measured on a second AMX host + +**Status:** MEASURED, lab probe only. **Basis:** `crates/mork-pathmap-probe` at `main` `bc8012da`; `cargo test --release --test tile_gemm` (5 passed); five runs of `cargo run --release --example tile_gemm_cost`, each the example's medians of 7. Host flags `amx_bf16`, `amx_tile`, `amx_int8`, `avx512_bf16`; `Intel(R) Xeon(R) Processor @ 2.10GHz`, 4 vCPU; ndarray tier `AMX TDPBF16PS`. + +Median of five, µs. The #1626 value is in brackets. + +| Map | bit compose | popcount counts | AMX `A·A` | stage | threshold | bit triangles | BF16 triangles | row-major | +|---|---|---|---|---|---|---|---|---| +| 1 % | 2.1 (2.0) | 181 (164) | 88 (67) | 182 (132) | 61 (50) | 2.5 (1.9) | 57 (45) | 8 819 (5 842) | +| 10 % | 7.6 (6.0) | 184 (135) | 80 (58) | 222 (182) | 133 (105) | 10.8 (7.4) | 110 (94) | 7 789 (5 823) | +| 50 % | 34 (27) | 174 (137) | 84 (63) | 501 (470) | 141 (101) | 48 (36) | 422 (323) | 9 000 (6 107) | +| hubs | 3.7 (2.6) | 174 (128) | 82 (58) | 171 (143) | 133 (97) | 6.0 (3.7) | 63 (41) | 8 819 (5 599) | + +- **The ratios hold:** + - walk counts: AMX over popcount 2.06–2.31× (#1626: 2.2–2.5×); + - staging repaid after 1.85–5.57 products (#1626: 1.4–6.4); + - bit arm over the GEMM for composition 6.6–71×, for triangles 8.8–22.6×; + - the threshold alone costs more than bit composition on every map. +- **Absolute times are 10–60 % higher in every cell.** That points to load on the shared VM, not a code change; it is not verified. +- The `bf16_bytes` column reads 393 216 (384 KiB): the #1625 fix is on `main`. +- **Arithmetic check of #1626's own table:** ratios 2.18–2.46×, staging repaid after 1.36–6.35 products, composition 6.1–59.6×, triangles 8.9–23.8×; every derived claim in its body matches. + +OPEN: why the row-major entry (no AMX) is 6–11 ms on these hosts against about 19 ms on the §5a host. diff --git a/.claude/board/entries/README.md b/.claude/board/entries/README.md index 27fc984ee..ed748e43e 100644 --- a/.claude/board/entries/README.md +++ b/.claude/board/entries/README.md @@ -25,7 +25,7 @@ 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. -382 entries, 2026-08-06 .. 2026-10-20. +383 entries, 2026-08-06 .. 2026-10-20. | date | entry id | finding | file | |---|---|---|---| @@ -37,6 +37,7 @@ exactly one of them, never both. | 2026-10-20 | `D-RPR-1` | | [2026-10-20-d-rpr-1-handoff-lab-demo.md](2026-10-20-d-rpr-1-handoff-lab-demo.md) | | 2026-10-20 | `D-RMAP-2` | | [2026-10-20-d-rmap-2-tile-gemm-cell.md](2026-10-20-d-rmap-2-tile-gemm-cell.md) | | 2026-10-20 | `D-RMAP-2-AMX` | | [2026-10-20-d-rmap-2-amx-tier.md](2026-10-20-d-rmap-2-amx-tier.md) | +| 2026-10-20 | `D-RMAP-2-AMX-RERUN` | §5a-AMX re-measured on a second AMX host | [2026-10-20-d-rmap-2-amx-remeasured.md](2026-10-20-d-rmap-2-amx-remeasured.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) |