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
4 changes: 4 additions & 0 deletions .claude/board/LATEST_STATE.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
## 2026-11-02 — main after #1929 (merged `4fadef69d`) — plateau

- Codegraph reads `<crate>.rows.bin` (written by ruff `ruff_charon`, ruff #133/#134). An unchanged refresh reads 64 bytes (2.58 µs). A changed crate still interns every symbol (2.5 ms against a 1 ms gate). This is a plateau; the interner step (B3) is open.

## 2026-11-02 — main after #1927 (merged `6768811df`)

- DT64 method-authority census (D-DT64-AUTH): a committed table and a two-way ratchet in `lance-graph-r2il` and `lance-graph-xlog` tests.
Expand Down
16 changes: 16 additions & 0 deletions .claude/board/PR_ARC_INVENTORY.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,19 @@
## 2026-11-02 — lance-graph PR #1929 (merged `4fadef69d`, branch `claude/codegraph-bin-reader`) — PLATEAU: codegraph reads rows.bin; header-only unchanged refresh; changed-crate gate NOT met

- **Merged as a plateau (operator, 2026-11-02), not as the completion of D-CODEGRAPH-0-BIN.**
- **Added:**
- `artifact_bin.rs`: a zero-copy parse and verify of `rows.bin`, with one `BinRefusal` per malformed shape.
- `read_dir` prefers `rows.bin`; `read_bin_as` fills the existing `Lanes`; `prepare_refresh` reads only the 64-byte header when the digest is unchanged.
- `artifact::digest` folds the length little-endian.
- The ruff golden fixture.
- `examples/bin_timing.rs`.
- **Measured** (release, mask-risc store of 17,155 rows, N = 41): unchanged refresh 2.58 µs (gate ≤ 20 µs: met); changed-crate intake 2.5–2.8 ms (gate ≤ 1 ms: **NOT met**), of which `read_bin_as` (`Symbols::intern`) takes 2.04 ms.
- **Open:**
- chunk B3: interner replacement (`SYM_HASH` → global id, no intern at open or refresh, F4/F5), then a re-run of the gate;
- Quack counting (F7);
- the `INVOKES_WORD` association source.
- **Confidence:** 20 new tests; 5 disables red.

## 2026-11-02 — lance-graph PR #1927 (merged `6768811df`, branch `claude/clone-repositories-71a5sw`) — D-DT64-AUTH method-authority census; post-merge record for #1926

- **Added:**
Expand Down
2 changes: 1 addition & 1 deletion .claude/board/STATUS_BOARD.md
Original file line number Diff line number Diff line change
Expand Up @@ -241,7 +241,7 @@ Plan: [d-codegraph-0-resident-codegraph-v1.md](../plans/d-codegraph-0-resident-c
| **D-CODEGRAPH-0-B** | resident rows via the ruff sink; per-file digests; incremental invalidation | LANDED (offline form): ruff #130 (merged `95be2e480b`; offline store in `ruff_charon`; `RefinedTruthSink` not reused, typed to R2IL). Incremental == clean on the fixture, byte-identical; skipped dependent leaves exactly one dangling edge. Follow-up fixes in ruff #131 (open). Lance-graph SoA residency still open | clean import == incremental import |
| **D-CODEGRAPH-0-C** | callers / callees / impact / diagnostics; tiled closure; body → R2IL design check | SHIPPED (fixture scale): ruff #132 (merged `ed8fd4194f`, rows v2) + lance-graph #1921 (merged `4ab93bf3e`), `crates/lance-graph-codegraph` (queries as confirmed / possible / unknown masks over the xlog cube; dead function, unresolved call, dangling call; unused import NOT_RUN). 27 tests, 12 disable runs red. Tiled closure deferred: refusals `ClosureWidth` (> 64) and `TooMany` (> 256) are surfaced as typed UNKNOWN | each guard disable-verified; unused import proven only without macros, traits, globs, re-exports |
| **D-CODEGRAPH-0-C2** | wide closure (multi-word rows, block presence), multi-tile cube, merge-on-read refresh, interned lanes | SHIPPED: #1923 (merged `2e19a5adc`). Impact over any size; mask-risc store (695 symbols, 3 tiles): impact 286 ns, callers 29 µs, references 45 µs; refresh of an unchanged crate 1.5–1.7 ms = FAILED gate (reading the 2.5 MB text file), fixed by D-CODEGRAPH-0-BIN. `refresh_crate` atomic (prepare → validate → commit: staged interner, positions, tile map, `Cube::stage`, closure; commit has no error path); codegraph suites now in `rust-test.yml` | narrow vs wide bit-identical ≤ 64; BFS reference on 694 positions; refresh == clean open; a refused refresh changes nothing (NeedsReopen, injected stage and closure refusals; no version issued); retry == the refresh that never failed, call-site multiplicity included; 7 disable runs red |
| **D-CODEGRAPH-0-BIN** | ruff_charon binary row lanes + header digest; codec9 small codebooks; Quack counting; no strings in the hot path; provenance header + per-row `(artifact, FunDeclId)`; `INVOKES_WORD` to a registered DT64 word | WRITER SHIPPED: ruff #133 merged `6c3d1bf8da` (follow-up ruff #134: stale `rows.tsv` removed when export is off; section offsets past 4 GiB refused, both from Codex review); reader PR B unblocked. ruff #133 `ruff_charon` `store_bin.rs` + `Store` wiring — format §2 + PROV/FUNDECL/OBJ_KIND (ARTREF elided, one artifact), verifying reader with one refusal per shape, golden `cg_lib.rows.bin`; 32 new tests, 6 disables red; TSV export stays ON by default until PR B (lance-graph reader) lands, then flips; `INVOKES_WORD` still OPEN (association source). Plan `d-codegraph-0-binary-lanes-v1.md` (operator: graph-wide u32 ids, TSV kept as debug `open_tsv`; Amendment A §8: PROV section, FUNDECL/ARTREF lanes, `INVOKES_WORD`, F9–F12). Ruff writer PR first, then the codegraph reader. OPEN: source of the "function realises word" association | unchanged refresh ≤ 20 µs; changed-crate open ≤ 1 ms; binary == TSV row for row |
| **D-CODEGRAPH-0-BIN** | ruff_charon binary row lanes + header digest; codec9 small codebooks; Quack counting; no strings in the hot path; provenance header + per-row `(artifact, FunDeclId)`; `INVOKES_WORD` to a registered DT64 word | PLATEAU (operator 2026-11-02): reader merged as lance-graph #1929 `4fadef69d` — rows.bin intake + header-only unchanged refresh 2.58 µs (met); changed-crate 2.5 ms vs ≤1 ms gate NOT met (`Symbols::intern` 2.04 ms) → B3 interner open, then re-run gate; F7 Quack counting open. WRITER SHIPPED: ruff #133 merged `6c3d1bf8da` (follow-up ruff #134: stale `rows.tsv` removed when export is off; section offsets past 4 GiB refused, both from Codex review); reader PR B unblocked. ruff #133 `ruff_charon` `store_bin.rs` + `Store` wiring — format §2 + PROV/FUNDECL/OBJ_KIND (ARTREF elided, one artifact), verifying reader with one refusal per shape, golden `cg_lib.rows.bin`; 32 new tests, 6 disables red; TSV export stays ON by default until PR B (lance-graph reader) lands, then flips; `INVOKES_WORD` still OPEN (association source). Plan `d-codegraph-0-binary-lanes-v1.md` (operator: graph-wide u32 ids, TSV kept as debug `open_tsv`; Amendment A §8: PROV section, FUNDECL/ARTREF lanes, `INVOKES_WORD`, F9–F12). Ruff writer PR first, then the codegraph reader. OPEN: source of the "function realises word" association | unchanged refresh ≤ 20 µs; changed-crate open ≤ 1 ms; binary == TSV row for row |
| **D-TGL-0** | GitHub-analogue Thought-Git lifecycle as a shared contract (branch → change → diff → PR → checks → review → rebase/squash → land → receipt/replay; rework / discard) for Codegraph, DT64, XLOG | CONTRACT (docs): plan `thought-git-lifecycle-contract-v1.md`; PR states are readings of existing records, no workflow engine | each step expressible with listed primitives |
| **D-TGL-LAB** | Codegraph lab: F-LAND / F-DISCARD | SHIPPED (lab, crate-private): `prepare_refresh` / `commit_refresh` with a generation fence (`RefreshRefusal::Stale`); second branch recomputed against current W0 == clean open incl. call-site counts; discard leaves W0 unchanged; 2 disables red (without the fence only a `debug_assert` catches the collision) | not a production land |
| **D-TGL-G8** | bag semantics: merge source revisions, never raw edge ADDs | DECIDED (contract §4) | 5 call sites from two sources after both land (F-LAND) |
Expand Down
Loading
Loading