From 25a4306e7dd41d7eae1888d5e836cdaf531a755b Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 2 Nov 2026 05:57:47 +0000 Subject: [PATCH 1/2] board: post-merge record for #1918 and ruff #129 PR_ARC entry, LATEST_STATE block, D-CODEGRAPH-0-A shipped. Hygiene only: generates no arc entry of its own (CLAUDE.md termination clause). Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01X6y3drwKSE2zSgoexheLFX --- .claude/board/LATEST_STATE.md | 8 ++++++++ .claude/board/PR_ARC_INVENTORY.md | 20 ++++++++++++++++++++ .claude/board/STATUS_BOARD.md | 2 +- 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/.claude/board/LATEST_STATE.md b/.claude/board/LATEST_STATE.md index 922df7f54..84c7dda2b 100644 --- a/.claude/board/LATEST_STATE.md +++ b/.claude/board/LATEST_STATE.md @@ -1,3 +1,11 @@ +## 2026-11-02 — main after #1918 (merged `c11e4262e`) and ruff #129 + +- D-CODEGRAPH-0 (resident Codegraph, Charon → ruff → lance-graph + crai-rs): plan, gap map G1–G9, oracle fixture `sag-ra-probe/fixtures/codegraph`, hand-read Kythe pins, `tools/kythe_calls_check.py`, and `sag-ra-probe GRAPH=1` as the independent rust-analyzer check. +- Slice A landed in ruff (#129): `crates/ruff_charon` reads Charon LLBC through `charon-lib` (AdaWorldAPI fork, stable) and emits calls, graded relation rows (`DEFINES`, `CALLS_RESOLVED`, `MAY_DISPATCH`, `UNRESOLVED_CALL`) with a conservation receipt, and Kythe entries. +- `sag-ra-probe` builds again from a fresh resolution (`unicode-properties = "=0.1.4"`). +- `rust-test.yml` runs the `lance-graph-dt64` and `lance-graph-xlog` tests. +- D-DQM M1: timing arms on both sides of the Quack/DuckDB differential; exit gate open, no performance claim. + ## 2026-11-01 — main after #1904–#1907 (merged `39511c92e`) - New workspace crate `lance-graph-xlog` (#1907): XLOG's admitted two-atom chain (support, bag count) described in Quack, evaluated by mask-risc, addressed by DT64/DR, run from an admitted bind-store method. No `xlog-*` or arrow dependency. `xlog-relcomp-probe` keeps XLOG admission and calls it. diff --git a/.claude/board/PR_ARC_INVENTORY.md b/.claude/board/PR_ARC_INVENTORY.md index 00bbe2dbf..2c118f303 100644 --- a/.claude/board/PR_ARC_INVENTORY.md +++ b/.claude/board/PR_ARC_INVENTORY.md @@ -1,3 +1,23 @@ +## 2026-11-02 — lance-graph PR #1918 (merged `c11e4262e`, branch `claude/clone-repositories-71a5sw`, head `c0f81a2a8`) — D-CODEGRAPH-0 gap map and slice A evidence; D-DQM M1 timing arms; dt64/xlog CI lines + +- **Added:** + - D-CODEGRAPH-0 plan, board entry and STATUS_BOARD rows (gap map G1–G9); + - `sag-ra-probe`: `GRAPH=1` rust-analyzer oracle rows, `unicode-properties = "=0.1.4"` build fix, `fixtures/codegraph/{rev1,rev2}`, hand-read pins (19 xrefs, 3 calls), `tools/kythe_calls_check.py`; + - D-DQM M1 timing arms (DuckDB reference, Quack timed differential) and the M2 input note (Lance 13 `with_row_addr_prefilter`); + - ledger revision (f); `ISS-RECIPE-LOCO-VOCABULARY-EXISTS-TWICE`; + - CI lines running `lance-graph-dt64` and `lance-graph-xlog` tests. +- **Locked:** representation Kythe facts + R2IL + DT64/DR; route Charon → ruff → lance-graph + crai-rs; rust-analyzer is the independent check, never the ingestion path. +- **Deferred:** slice B (resident rows, incremental update, through ruff's unmerged `claude/r2il-pr2-*` sink); body → R2IL (G4, G7); MCP. +- **Confidence:** + - Kythe `/xrefs` 22/22 symbols and 19/19 pins on the fixture; + - the D-SAG-6 runs reproduced: identity chain and `sag_fixture` Kythe exact; `mask-risc` join exact but one body (a derived `PartialEq::eq` joins EXACT instead of DERIVED); + - Python tool tests 15/15 + 9/9. +- **Companion:** ruff PR #129 (merged `9913e90946`), `crates/ruff_charon`: + - calls byte-identical to `llbc_calls.py` on the fixture and on `mask-risc` (459 functions); + - receipt conserved, 16,149 = 16,149 + 0; + - Kythe call pins 3/3; + - 4 disable runs, each red in its own test. + ## 2026-11-01 — lance-graph PR #1907 (merged `39511c92e`, branch `ccr-85acaff0-oszq40-xlogcrate`, head `1087758d1`) — lance-graph-xlog: XLOG's admitted chain over Quack → mask-risc (D-XLOG-NATIVE-4) - **Added:** `crates/lance-graph-xlog` (workspace member): `Bounds`, `Intake`, `support`, `bag_count`, `bag_count_admitted`, `Word`, `Support`, `NativeRefusal`, `BoundRefusal`, `ids`, `nonzero`, and `and` (= `ndarray::simd::mask_and`). `xlog-relcomp-probe` now calls it and keeps `admit`, `admit_count`, `ChainQuery::bounds()`. diff --git a/.claude/board/STATUS_BOARD.md b/.claude/board/STATUS_BOARD.md index ed478ed72..d1c7a28ef 100644 --- a/.claude/board/STATUS_BOARD.md +++ b/.claude/board/STATUS_BOARD.md @@ -237,7 +237,7 @@ Plan: [d-codegraph-0-resident-codegraph-v1.md](../plans/d-codegraph-0-resident-c | D-id | scope | status | gate / falsifier | |---|---|---|---| -| **D-CODEGRAPH-0-A** | ruff `ruff_charon`: LLBC → Kythe facts with a witness status per call, for one real crate | LANDED on ruff `claude/clone-repositories-71a5sw` (`53c6711a84`): calls byte-identical to `llbc_calls.py` on the fixture and `mask-risc`; receipt conserved (16,149); Kythe `/xrefs` 3/3 call pins | rust-analyzer oracle (`sag-ra-probe GRAPH=1`) and rustc on `fixtures/codegraph`; `POSSIBLE` never counted as a confirmed caller | +| **D-CODEGRAPH-0-A** | ruff `ruff_charon`: LLBC → Kythe facts with a witness status per call, for one real crate | SHIPPED: ruff #129 (merged `9913e90946`), lance-graph #1918 (merged `c11e4262e`): calls byte-identical to `llbc_calls.py` on the fixture and `mask-risc`; receipt conserved (16,149); Kythe `/xrefs` 3/3 call pins | rust-analyzer oracle (`sag-ra-probe GRAPH=1`) and rustc on `fixtures/codegraph`; `POSSIBLE` never counted as a confirmed caller | | **D-CODEGRAPH-0-B** | resident rows via the ruff sink; per-file digests; incremental invalidation | QUEUED | clean import == incremental import | | **D-CODEGRAPH-0-C** | callers / callees / impact / diagnostics; tiled closure; body → R2IL design check | QUEUED | each guard disable-verified; unused import proven only without macros, traits, globs, re-exports | | **D-CODEGRAPH-0-D** | local stdio MCP over C | QUEUED | only after B and C gates | From 98f9ee08e910a5ebce0187952bbf7424ce249949 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 2 Nov 2026 05:59:32 +0000 Subject: [PATCH 2/2] D-CODEGRAPH-0: withdraw G8, the ruff sink was merged as ruff #101-#103 The claude/r2il-pr2-* branches look unmerged only because ruff main was rebuilt on upstream (#121); their content is on main. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01X6y3drwKSE2zSgoexheLFX --- .claude/board/entries/2026-11-02-d-codegraph-0-gap-map.md | 4 ++++ .claude/plans/d-codegraph-0-resident-codegraph-v1.md | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/.claude/board/entries/2026-11-02-d-codegraph-0-gap-map.md b/.claude/board/entries/2026-11-02-d-codegraph-0-gap-map.md index a517e08ac..ca902e5ae 100644 --- a/.claude/board/entries/2026-11-02-d-codegraph-0-gap-map.md +++ b/.claude/board/entries/2026-11-02-d-codegraph-0-gap-map.md @@ -63,3 +63,7 @@ Closed by this slice: the cross-crate callee ambiguity. Charon's formatter names Tests (6 integration, 3 unit) on the fixture's committed LLBC, with `llbc_calls.py`'s output as the reference. Disable runs, each red in exactly its own test: bound dispatch counted as resolved; no file nodes; callee id dropped from the report; impl names by path only. Not yet: rust-analyzer as an independent check of the rows (the comparison is still the Python span join), resident storage (slice B), body → R2IL (G4). + +## Correction (2026-11-02): G8 withdrawn + +The ruff sink is not unmerged. Ruff PRs #101 (`RefinedTruthSink` + offline backend), #102 (v2 facts/residuals artifacts and their reader) and #103 (round-trip reconstruction oracle) merged on 2026-08-18. The #121 replay carried their content onto today's `main` (`crates/ruff_r2il/src/sink.rs:72` `pub trait RefinedTruthSink`; `read_facts`, `read_residuals`), where it has since changed. The three `claude/r2il-pr2-*` branches only look unmerged because they share no history with the rebuilt `main`. Slice B builds on `main`'s `sink.rs`, not on those branches. diff --git a/.claude/plans/d-codegraph-0-resident-codegraph-v1.md b/.claude/plans/d-codegraph-0-resident-codegraph-v1.md index 637aea111..48a13aecf 100644 --- a/.claude/plans/d-codegraph-0-resident-codegraph-v1.md +++ b/.claude/plans/d-codegraph-0-resident-codegraph-v1.md @@ -53,6 +53,7 @@ Route: **Charon → ruff → lance-graph + crai-rs.** | G6 | Closure in the xlog cube refuses more than 64 positions per tile; frontier masks may not feed another program (`graph_hop` quarantined, ISS-GATHER-HOP-1616) | `cube.rs` `closure`, `graph_hop.rs` header | C | | G7 | Method body anchor is open: `ogar-loco::Program` is not the body (operator correction 2026-10-31) | `2026-10-31-coresearch-mandatory-codegraph.md` | C | | G8 | The ruff → lance-graph sink is unmerged (`RefinedTruthSink`, ruff branches `claude/r2il-pr2-*`) | `git ls-remote` ruff | B | +| ~~G8~~ | **Withdrawn 2026-11-02:** the sink is merged. Ruff #101 (`RefinedTruthSink`), #102 (v2 artifacts and `read_facts` / `read_residuals`) and #103 (round-trip oracle) merged 2026-08-18 and survive the #121 replay on `main` (`ruff_r2il/src/sink.rs:72`). The branch names had been read as unmerged work because they share no history with the rebuilt `main` | ruff PRs #101–#103, `git grep` on ruff `origin/main` | — | | G9 | `sag-ra-probe` did not build from a fresh resolution (`unicode-ident` 1.0.24 vs `unicode-properties` 0.1.5) | build log 2026-11-02; fixed by pinning `unicode-properties = "=0.1.4"` | done | ## 2. Slices @@ -121,4 +122,4 @@ record the reference. - Where the method body revision is anchored (G7). - Whether R2IL can carry Rust places, drops and panics, or needs a separate reading (G4). -- Merge order of the ruff sink branches (G8). +- ~~Merge order of the ruff sink branches (G8).~~ Withdrawn: merged as ruff #101–#103.