Skip to content

Commit 4afa64e

Browse files
committed
board: record #1620; merge main
Merges main (#1620, dca8e7b) into the #1621 branch and resolves the LATEST_STATE conflict by keeping #1620's own section, now marked merged, under a new "main after #1620" section. Adds the PR_ARC_INVENTORY entry for #1620, including the corrected cost figure (1.6x shared vs rebuilt, not 110x). Entries index regenerated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VyWZYKycy6MoYDxHRVnV5K
2 parents fcc4bd4 + dca8e7b commit 4afa64e

17 files changed

Lines changed: 925 additions & 4 deletions

‎.claude/board/INTEGRATION_PLANS.md‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
## 2026-10-19 — mork-pathmap-schnellverschluss-v1 — MORK / PathMap behind one replaceable boundary → `.claude/plans/mork-pathmap-schnellverschluss-v1.md`
2+
3+
**Status:** D-MPS-0/1 MEASURED (probe, results only); D-MPS-2..5 upstream PROPOSALS; D-MPS-6 BLOCKED; D-MPS-7 OPEN.
4+
5+
- Source switch: pinned git revisions plus one `[patch]` for MORK's out-of-repo `../PathMap` path; one package identity, no upstream file edited.
6+
- Execution switch: `Backend::{Mork, PathMapZipper, Native}` with typed refusals (`SetOnly`, `NoAdmittedNativeJoin`, `Stale`); the native arm is refused under the no-gather ruling.
7+
- MORK stays an oracle outside the workspace (D-ASM-10); nothing is wired into Quack, R2IL or mask-risc.
8+
19
## 2026-10-19 — catch-up: seven plans from #1605 and #1612–#1617 had no index entry
210

311
**Status:** INDEX CATCH-UP (post-merge recovery, entry `2026-10-19-post-merge-recovery-1601-1617.md`). All PROPOSAL; nothing implemented.

‎.claude/board/ISSUES.md‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
## ISS-MORK-LIBRARY-GLOBAL-ALLOCATOR — linking MORK replaces the binary's allocator (2026-10-19)
2+
3+
**Status:** OPEN. **Basis:** MEASURED (`crates/mork-pathmap-probe`, a `#[global_allocator]` in the probe fails to link: "conflicts with global allocator in: pathmap").
4+
5+
- MORK's workspace enables PathMap feature `jemalloc`, and PathMap then installs a global allocator from inside the library. Any lance-graph binary that links MORK loses control of its allocator.
6+
- **What closes it:** D-MPS-4 upstream (enable `jemalloc` from MORK's binary, not the library), or a MORK consumer that turns the feature off through Cargo feature resolution, measured.
7+
18
## ISS-GATHER-HOP-1616 — the merged `OutgoingHop` reads positions taken from another lane's values (2026-10-19)
29

310
**Status:** BLOCKED (quarantined; waits on GATHER-DECISION). **Basis:** VERIFIED-IN-CODE (`crates/lance-graph-mask-risc/src/graph_hop.rs`: two `MaskOp::Gather` over `frontier[sources[i]]` and `visible[targets[i]]`, then `ScatterOrU32` by `targets[i]`).

‎.claude/board/LATEST_STATE.md‎

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
1-
## 2026-10-19 — main after #1619 (merged `8e004a20`)
1+
## 2026-10-19 — main after #1620 (merged `dca8e7b1`)
22

3-
- **On main:** #1618 (`dbe0696f`, post-merge recovery for #1601–#1617 plus the remediation) and #1619 (`8e004a20`, D-RMAP binding palette generation and D-RMAP-1A §7 versioning crosswalk). Both have arc entries.
4-
- **In PR:** #1620, the MORK/PathMap Schnellverschluss probe (D-MPS-0..7).
3+
- **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.
4+
- Contract inventory delta: none.
5+
6+
## 2026-10-19 — MORK / PathMap Schnellverschluss probe (#1620, merged `dca8e7b1`)
7+
8+
- New excluded crate `crates/mork-pathmap-probe` (own workspace, git deps on the AdaWorldAPI MORK and PathMap forks, results only) with CI job `mork-pathmap-probe.yml`; plan `mork-pathmap-schnellverschluss-v1.md`; entry `2026-10-19-mork-pathmap-schnellverschluss.md`; issue `ISS-MORK-LIBRARY-GLOBAL-ALLOCATOR`.
59
- Contract inventory delta: none.
610

711
## 2026-10-19 — main after #1617 (merged `47697c77`); post-merge recovery in PR

‎.claude/board/PR_ARC_INVENTORY.md‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
## 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
2+
3+
- **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`.
4+
- **Locked:** none. Results-only probe: no production executor, no CE64 change, nothing wired into Quack/R2IL/Mask-RISC or Lance storage, no upstream file modified, no MORK source vendored (no licence declared, D-MPS-7). The native arm refuses under the 2026-10-16 no-gather ruling.
5+
- **Deferred / open:** D-MPS-2..5 upstream proposals (PathMap as a git/version dep; stable-build commit; no `jemalloc` global allocator in the library; cursor-provider generic `UnifyJoin`), none opened. D-MPS-6 BLOCKED until a sealed `RelationOrder` exists. ABA on a reused generation number is pinned as not detected; the D-RMAP-1A §7 `DurableRef` witness is the replacement.
6+
- **Confidence:** measured. The differential tests pass in both builds, and four disable runs each turned their guard's test red. Cost is from one release run per cell. A Codex review found that the first cost table compared a per-thought shared cost with a 64-thought rebuilt total and reported about 110×. The probe was fixed and re-run in `d514396c`: sharing a PathMap index over 64 thoughts saves 1.6× at n = 50 000 (1 556 vs 2 487 ms), and only the build is saved. The MORK query time includes the probe's text decode.
7+
18
## 2026-10-19 — lance-graph PR #1619 (merged `8e004a20`, branch `ccr-08f48cec-lbv9l4`, head `79baa045`, 3 commits) — D-RMAP palette generation in the binding; versioning derived from Thought Git and #1605
29

310
- **Added:** D-RMAP-1A §7 (`.claude/plans/d-rmap-separate-tables-thought-palettes-v1.md`). It is an ownership crosswalk: map generation is a reading of the sealed RelationshipMap/RelationFacts `DurableRef` only; palette generation is the palette table's `DurableRef` once sealed, or the `ThoughtCommitId` of a speculative palette edit; and the thought-palette binding is `(ThoughtCommitId, palette generation)`. Focus generation and the index seal are retained witnesses, and authorization scope is a separate key. §7 also specifies falsifiers X1–X9, a cost/entropy comparison, and the Schnellverschluss note. The PR also adds gap notes in `thought-git-api-v1.md` and the causal-pickaxe plan, STATUS_BOARD row D-RMAP-1A-V, ENTROPY-MILESTONES M28, and the board entry `2026-10-19-d-rmap-thought-git-versioning.md`. `a7e075d3`: `ThoughtMapPaletteBinding` stores the palette generation it bound; `act-r.yml` also runs on `rust-toolchain.toml` changes.

‎.claude/board/STATUS_BOARD.md‎

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,18 @@
1+
## MORK / PathMap Schnellverschluss (2026-10-19)
2+
3+
Plan `mork-pathmap-schnellverschluss-v1.md`; entry `entries/2026-10-19-mork-pathmap-schnellverschluss.md`.
4+
5+
| D-id | scope | status | gate / falsifier |
6+
|---|---|---|---|
7+
| D-MPS-0 | source and type inventory; fork/upstream switch through Cargo `[patch]` | MEASURED | one `pathmap` package in the graph; 0 / 18 upstream files differ (PathMap / MORK stable branch) |
8+
| D-MPS-1 | differential probe `crates/mork-pathmap-probe`: MORK (product-zipper, leapfrog) and PathMap zipper vs nested-loop oracle | MEASURED (probe; CI job `mork-pathmap-probe.yml`) | 8 + 1 tests in both builds; 4 disable runs red |
9+
| D-MPS-2 | upstream MORK: PathMap as git/version dependency, not `../PathMap` | PROPOSAL | MORK git dep resolves without `[patch]` |
10+
| D-MPS-3 | upstream MORK: `nightly` opt-in (fork `de9312e`) | PROPOSAL | upstream `main` builds on stable |
11+
| D-MPS-4 | upstream MORK: no library-level `jemalloc` global allocator | PROPOSAL | consumer binary sets its own allocator |
12+
| D-MPS-5 | upstream MORK: leapfrog join generic over a cursor provider + reindex hook | PROPOSAL | MORK corpus unchanged on `PathMap<()>` |
13+
| D-MPS-6 | Lance-owned PathMap-trait cursor over a sealed `RelationOrder` | BLOCKED (`RelationOrder` not built) | no copy, or the copy stated |
14+
| D-MPS-7 | licence: no MORK source vendored until a licence is declared (#148 unmerged) | OPEN | probe vendors nothing |
15+
116
## Post-merge recovery for #1601–#1617 (2026-10-19)
217

318
These PRs merged with no board rows. Every row below is a PROPOSAL (documents and fixtures) unless it says otherwise. Entry: `entries/2026-10-19-post-merge-recovery-1601-1617.md` (review-thread reconciliation).
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# MORK / PathMap Schnellverschluss: source switch and differential probe (2026-10-19)
2+
3+
**Status:** MEASURED (D-MPS-0, D-MPS-1). Plan: `.claude/plans/mork-pathmap-schnellverschluss-v1.md`. Probe: `crates/mork-pathmap-probe`.
4+
5+
## Measured
6+
7+
- Forks against upstream: AdaWorldAPI/PathMap `ef02591` = upstream `master` (0 files differ). AdaWorldAPI/MORK `main` `ed57c67` = upstream `main` (0 files). The fork's stable branch `de9312e` differs in 18 files (+421 / −408) and is the only carried change.
8+
- A git dependency on MORK does not resolve on its own: MORK names `pathmap = { path = "../PathMap/" }`, which lies outside its repository. One `[patch."https://github.com/AdaWorldAPI/MORK"] pathmap = { git = …, rev = … }` fixes it with one `pathmap` package in the graph and no edit to MORK.
9+
- Upstream MORK `main` does not build on Rust 1.99 stable (`E0554`, nightly defaults); `de9312e` does. MORK's gxhash fork needs `+aes,+sse2`.
10+
- MORK enables PathMap's `jemalloc` feature, which installs a `#[global_allocator]` in the library; a consumer binary cannot add its own (link error measured).
11+
- MORK has no declared licence; upstream PR #148 (MIT) is not merged.
12+
- `query_multi_leapfrog` takes a concrete `&PathMap<()>`; `SubtermCursor<Z>` is generic over PathMap's public `Zipper + ZipperMoving + ZipperPath + ZipperIteration` traits.
13+
- Differential, `Q(x,y,z) :- R(x,y), S(y,z)`: MORK (product-zipper and leapfrog builds) and a PathMap read-zipper arm equal the nested-loop oracle on 8 cases (shared variable, empty, disjoint, per-atom scope, wide ids, duplicates, stale generation, ABA). Both upstream indexes are sets: bag requests are refused (`SetOnly`). Four disable runs each turned their guard's test red.
14+
- Cost, n = 50 000, release, one run (re-run after review): PathMap index 14.8 ms (236 ns/row), query 24.1 ms; over 64 thoughts a shared index costs 1 556 ms in total vs 2 487 ms rebuilt per thought (1.6×; 24.3 vs 38.9 ms per thought). Sharing saves only the build. (The first version compared a per-thought figure with a 64-thought total and said 110×.) The MORK query time (170 ms) includes the probe's text decode and is not a measure of MORK's join.
15+
16+
## Open
17+
18+
- No admitted native lance-graph arm: the join reads `S` at positions chosen by `R`'s values (no-gather ruling). The native arm waits on a co-addressed producer.
19+
- Whether a Lance-owned PathMap-trait cursor can walk a sealed `RelationOrder` without copying is unproved; `RelationOrder` is not built.
20+
- The generation witness compares numbers, so a reused generation is not detected.

‎.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-
371 entries, 2026-08-06 .. 2026-10-19.
28+
372 entries, 2026-08-06 .. 2026-10-19.
2929

3030
| date | entry id | finding | file |
3131
|---|---|---|---|
3232
| 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) |
33+
| 2026-10-19 | `mork-pathmap-schnellverschluss` | | [2026-10-19-mork-pathmap-schnellverschluss.md](2026-10-19-mork-pathmap-schnellverschluss.md) |
3334
| 2026-10-19 | `D-RMAP-1A` | | [2026-10-19-d-rmap-thought-git-versioning.md](2026-10-19-d-rmap-thought-git-versioning.md) |
3435
| 2026-10-19 | `D-RMAP-1` | | [2026-10-19-d-rmap-implicit-relationship-register.md](2026-10-19-d-rmap-implicit-relationship-register.md) |
3536
| 2026-10-17 | `thinking-tables-wiring` | | [2026-10-17-thinking-tables-wiring.md](2026-10-17-thinking-tables-wiring.md) |

0 commit comments

Comments
 (0)