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
5 changes: 5 additions & 0 deletions .claude/board/INTEGRATION_PLANS.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
## 2026-11-03 — D-XLOG-WIRE: XLOG wiring gaps to the hot path → `.claude/plans/xlog-wiring-to-hot-path-v1.md`

**Status:** PLAN. Gating input for D-CODEGRAPH-0-BIN B3 (operator 2026-11-03). **Board:** [STATUS_BOARD](STATUS_BOARD.md) D-XLOG-WIRE; [entry](entries/2026-11-03-a10-writers-retract-xlog-pr.md).
**Confidence:** eight gaps W1–W8, each re-verified at the fork `main` `84da1a8` or found in code on 2026-11-03; no wiring done yet. The egglog-r2il text-on-hot-path site is fixed.

## 2026-11-02 — D-TGL-PUB: G10 × G11 atomic publication lab spec → `.claude/plans/g10-g11-atomic-publication-lab-v1.md`

**Status:** SPEC, lab only; nothing implemented. **Board:** [STATUS_BOARD](STATUS_BOARD.md) D-TGL-PUB; [entry](entries/2026-11-02-d-tgl-release-fence-and-g10-g11-boundaries.md).
Expand Down
3 changes: 2 additions & 1 deletion .claude/board/STATUS_BOARD.md
Original file line number Diff line number Diff line change
Expand Up @@ -241,7 +241,8 @@ 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 | 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-XLOG-WIRE** | XLOG wiring gaps W1–W8 to the hot path (magic report, polarity, estimates, degree producer, dormant Fixpoint, semi-naive owner, F100 execution, plan identity) | Queued: plan `xlog-wiring-to-hot-path-v1.md`; gates D-CODEGRAPH-0-BIN B3; W7 and W5 need operator decisions | each gap's named falsifier (reach/far, P-A3, triangle probe, degree regret, P-A4a/b, P-I1) |
| **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 | DEFERRED (operator 2026-11-03): B3 waits until strings are outside the hot path and the XLOG wiring-gap list (6+ gaps, the polyfill among them) has reached the hot path; any remaining string is taken off at the codebook label ("wardrobe"). 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
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# D-XLOG-NATIVE-7: one resident hypercube as XLOG's execution context (probe)

**Date 2026-11-01 · ID D-XLOG-NATIVE-7 · Status PROBE · Plan `.claude/plans/d-xlog-native-v1.md` (Amendment F, pending beside E in #1910) · Crate `crates/lance-graph-xlog` (`cube`)**
**Date 2026-11-01 · ID D-XLOG-NATIVE-7 · Status PROBE · Plan `.claude/plans/d-xlog-native-v1.md` (Amendment E is the decision of record; no Amendment F exists — corrected 2026-11-03) · Crate `crates/lance-graph-xlog` (`cube`)**

DECISION (direction, from the session): the experiment replaces the machine
under XLOG's CUDA-facing API with one resident context, rather than speeding up
Expand Down
28 changes: 28 additions & 0 deletions .claude/board/entries/2026-11-03-a10-writers-retract-xlog-pr.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Epistemic writers, retraction, rule identity, and the reach/far run (2026-11-03)

**Status:** implemented in lance-graph (this PR). The XLOG fork change is in fork PR #7; runtime acceptance is still missing. The NNUE optimizer switch is blocked.

## What changed

- **Retraction (F4 closed).** `pearl::retract` is the counterpart of `pearl::revise`: it re-runs the edge's own operator and lowers the certification to what is still earned, or to Open when the remaining evidence no longer grounds the fold. It never raises; SPO/SP and projections without an operator leave the edge unchanged. The A10 probe's F4 now holds. Two disables turn it red: a no-op retract, and a retract without the never-raise check.
- **No second evidence authority.** `deepnsm_v2::wire` no longer writes CausalCandidate. The contract's obligation for code 4 is Supports plus temporal ordering over a population, and text cannot witness that. The two-source count stays a reading, `WireReport::two_source_causes`. Two disables turn the test red: restoring the promotion, and dropping the count.
- **Production writer boundary.** `causal-edge/tests/epistemic_writer_census.rs` classifies every `with_epistemic_raw5` call in `crates/*/src` by file and enclosing function. The three AUTHORIZED writers are pearl's `stamp` (behind revise / retract / hydrate), `edge_v3::rehydrate` and `deepnsm_v2::wire`; everything else is a TEST_FIXTURE. An unclassified call and a stale entry both fail; the first run, with guessed names, failed in both directions. The test-local admission probe stays test-local: per the A10 ruling it is not promoted before validity survives the publication and read boundary.
- **Rule identity.** NAL derivations name their rule with the existing owner `lance_graph_contract::nars::InferenceType`. Derivations outside NAL (elimination, constraint propagation) have no owner; the probe keeps `DerivationRule::Unowned` for them, and that is the remaining gap.

## XLOG fork: reach/far

- Fork PR AdaWorldAPI/xlog#7 is commit `ea924b3`. The integration request goes to the lead; the PR is not the integration.
- A local run outside the fork tree went through `parse_program`, `rewrite_magic_sets` and `compile`:
- on fork `main`, reach/far is `Applied` (the hazard);
- at `ea924b3`, `on` refuses ("rule for far reads magic_sets target reach outside the demanded queries") and `auto` declines with no magic relations in the plan;
- without `far`, both modes still apply.
- The fork's AGENTS.md excludes local component experiments, so this run is an observation, not runtime evidence. The authorized run on the production path (RunPod GPU) has not been done. The runner was deleted.

## NNUE

- **Exact-degree pairing in the fork optimizer: BLOCKED.** xlog-stats keeps only per-column summaries (`PrefixDegreeStats`: average and maximum degree), and no production code feeds even those; the only caller of `add_prefix_degree` is `wcoj_phase_report`, with hardcoded values. The exact fold needs a per-key degree statistic and a producer on the runtime insert path. That is an XLOG wiring gap and belongs on the XLOG wiring-gap list, not in a blind optimizer change.
- **Second application:** the outcome table now exists on the consumer side, outside this repository. The measured baseline still needs per-round method counts re-derived from harvests.

## Deferral recorded

D-CODEGRAPH-0-BIN B3 (the interner) is DEFERRED until strings are outside the hot path and the XLOG wiring-gap list (6+ gaps, the polyfill among them) has reached the hot path. Any remaining string is taken off at the codebook label ("wardrobe"). The STATUS_BOARD row carries this.
3 changes: 2 additions & 1 deletion .claude/board/entries/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,11 @@ 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.

557 entries, 2026-08-06 .. 2026-11-02.
558 entries, 2026-08-06 .. 2026-11-03.

| date | entry id | finding | file |
|---|---|---|---|
| 2026-11-03 | `a10-writers-retract-xlog-pr` | | [2026-11-03-a10-writers-retract-xlog-pr.md](2026-11-03-a10-writers-retract-xlog-pr.md) |
| 2026-11-02 | `sgr-recovery-gates` | | [2026-11-02-sgr-recovery-gates.md](2026-11-02-sgr-recovery-gates.md) |
| 2026-11-02 | `p4-thought-git-codegraph-dt64-review` | | [2026-11-02-p4-thought-git-codegraph-dt64-review.md](2026-11-02-p4-thought-git-codegraph-dt64-review.md) |
| 2026-11-02 | `p4-operator-decisions-lifecycle-lab` | | [2026-11-02-p4-operator-decisions-lifecycle-lab.md](2026-11-02-p4-operator-decisions-lifecycle-lab.md) |
Expand Down
Loading
Loading