From 772b109a0bdee55e1f00149464c04885ca001427 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 21 Oct 2026 20:07:18 +0000 Subject: [PATCH] Board: D-TGB-4 shipped (#1674, 414377f3) STATUS_BOARD D-TGB-4 row to Shipped, PR_ARC_INVENTORY and LATEST_STATE entries for #1674. Also regenerates the entries index, whose count went stale when #1674 and #1675 merged one after the other (421 -> 422). Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_019fbZ92dFKQ5BJHrA3YcH9A --- .claude/board/LATEST_STATE.md | 4 ++++ .claude/board/PR_ARC_INVENTORY.md | 7 +++++++ .claude/board/STATUS_BOARD.md | 2 +- .claude/board/entries/README.md | 2 +- 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/.claude/board/LATEST_STATE.md b/.claude/board/LATEST_STATE.md index d9bf9ee8a..10851de30 100644 --- a/.claude/board/LATEST_STATE.md +++ b/.claude/board/LATEST_STATE.md @@ -1,3 +1,7 @@ +## 2026-10-21 — main after #1674 (merged `414377f3`) + +- **On main:** #1674 (D-TGB-4 thought-git receipt and deterministic replay, lab, `thought-git-probe`). Contract inventory: unchanged (lab crate, CI workflow and board only). + ## 2026-10-21 — D-RFT-0 / D-QSP-0: Kleene form of set normalization (in PR) - **Contract:** `set_algebra::{Logic, normalize_kleene, normalize_with}` added; `normalize` unchanged (two-valued). `set_rules::SetNormalize` under `Truth::ThreeValued` now applies the Kleene form instead of refusing (its `CATALOGUE` entry has no refusals). Example `k3_pg_parity` (PostgreSQL differential, skips without a server). Entries `entries/2026-10-21-d-rft-0-kleene-normalization.md` and `entries/2026-10-21-d-rft-d-lfa-0-assessment.md` (docs-only D-RFT-1..5 sequence, D-LFA-0 census). diff --git a/.claude/board/PR_ARC_INVENTORY.md b/.claude/board/PR_ARC_INVENTORY.md index 756bb2106..169322753 100644 --- a/.claude/board/PR_ARC_INVENTORY.md +++ b/.claude/board/PR_ARC_INVENTORY.md @@ -1,3 +1,10 @@ +## 2026-10-21 — lance-graph PR #1674 (merged `414377f3`, branch `ccr-f5674497-orfkox`, head `ed54930e`) — D-TGB-4: thought-git receipt and deterministic replay + +- **Added:** `thought_git_probe::receipt::{BaseRef, VersionStore, ProgramId, DERIVE, ProgramInputs, ExecConfig, EXEC_DEFAULT, Fold, Receipt, ReceiptIdentity, Refusal, Plan, capture, Replayed, replay, replay_live, MetaKey, MetaRow, MetadataTable}`; `tests/receipt.rs` (10 falsifiers); `.github/workflows/thought-git-probe.yml` (first CI line for the crate); entry `2026-10-21-d-tgb-4-receipt-replay.md`. +- **Locked:** replay takes no slot pool and refuses on a missing seed, a changed config, an unknown base, changed sources (source fold) or a different output (output fold). The live slot is provenance only and outside identity. Landed receipts sit in a separate metadata relation keyed by (dataset, data version, thought): data first, then a staged row, then a seal folded over every identity field, outcome included. Replay reports roots as inherited, never independent. +- **Deferred / open:** `BaseRef` stands in for D-CPG's `DurableRef`; the receipt, slot and `DurableRef` move into the contract at D-TGB-7. Lance-backed metadata, two-version atomicity, programs other than `DERIVE`, and rebase-as-replay are not built. Codex's review of the head commit was still running at merge. +- **Confidence:** measured on the fixture address space, no timing. 36 tests (26 + 10), 11 disables each red on its target (10 in the PR, one for the Codex P2 outcome-seal fix), clippy `-D warnings` and fmt clean; CI green on `3496242f`. + ## 2026-10-21 — lance-graph PR #1659 (merged `1c161533`, branch `ccr-0455e606-wmtsor`, head `79e31661`) — zero-copy joins: relations are lanes, a side is an index map; ClassView × DR IAM probe; guardrails; coresearch map - **Added:** `mork_pathmap_probe::{Lane, RelationView}` (two refcounted `ScalarBuffer` lanes); `join::{Run, rows}`; `Side::{positions, lane}`; `JoinExec::{bag_count, matching, for_each_answer}`; `JoinDomain` dense rank (presence mask + per-word running count); `crepe_plan_probe::native::Store::from_rows`; `dir-rmap-probe/tests/classview_dr.rs` + `examples/classview_dr_cost.rs`; `.claude/knowledge/hypothesis-atomization-guardrails.md` (G1–G11) + `.claude/agents/hypothesis-atomizer.md`; entries `2026-10-21-zero-copy-join-index-map.md`, `2026-10-21-classview-dr-iam.md`, `2026-10-21-coresearch-classview-algebra-polyfill.md`. diff --git a/.claude/board/STATUS_BOARD.md b/.claude/board/STATUS_BOARD.md index 2030b77e1..cf0639efc 100644 --- a/.claude/board/STATUS_BOARD.md +++ b/.claude/board/STATUS_BOARD.md @@ -390,7 +390,7 @@ Plan: `.claude/plans/ce64-hypothesis-layers-v1.md`. Plateau: `.claude/knowledge/ | **D-TGB-1** | slot pool, autonomous: taken by `branch`, freed by `squash`/`discard`/`land` (the write is the Rubicon decision, 2026-10-20) | Shipped (lab, #1630/#1631; `crates/thought-git-probe/src/slots.rs`). Slot pool only: no production land, rebase or persistence (D-TGB-2..5 Queued) | at 63 taken `branch` picks a FIFO or least-used candidate, squashes it along its dependency chain if it has one, else evicts it (DECISIONS 2026-10-20; was: squash unremarkable first, else refuse); stale handles refused; 6 tests | | **D-TGB-2** | `w_slot` lane labels (W = thought layer, not a pointer) qualified by base version / slot generation | Queued (lab) | no live cell carries a landed slot; old-generation edge refused | | **D-TGB-3** | `Commit` lands one sparse batch through `LanceCycleWriter`; `DurableRef` = dataset + `Ref::Version(branch, version)` | Queued (lab) | empty cycle writes nothing; re-submit reconciles; two branches at version 7 told apart | -| **D-TGB-4** | receipt (base ref, program id, seeds, slot generation) instead of history | In PR (lab, `thought-git-probe/src/receipt.rs`, entry 2026-10-21-d-tgb-4-receipt-replay; 10 tests, 10 disables red) | replay from receipt reproduces writes cell for cell | +| **D-TGB-4** | receipt (base ref, program id, seeds, slot generation) instead of history | Shipped (#1674, `414377f3`; lab, `thought-git-probe/src/receipt.rs`, entry 2026-10-21-d-tgb-4-receipt-replay; 10 tests, 11 disables red) | replay from receipt reproduces writes cell for cell | | **D-TGB-5** | reads as resident folds: `checkout`/`log`/`diff`/`blame` | Queued (lab) | equal the oracle; durable `diff` equals Lance `delta()` | | **D-TGB-7** | reusable git API: verb trait + types in the contract, one implementation crate; phase-1 driver `ogar-loco` / `ActionDef`, ACT-R in phase 2; first runs may call the engine crates directly; stack below: datafrog > mask-risc > relalg > r2il | Queued (lab) | driver independence: two drivers with the same decisions give byte-identical cells, receipts, metadata rows | | **D-TGB-8** | abstraction API: Datalog rules over the metadata table on `datafrog`; ACT-R `Candidate` / intent as the decision vocabulary | Queued (lab, after D-TGB-7) | rule answers == direct scan; recorded intents replayed as verbs reproduce the run byte for byte | diff --git a/.claude/board/entries/README.md b/.claude/board/entries/README.md index be6256020..4e59bc717 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. -421 entries, 2026-08-06 .. 2026-10-21. +422 entries, 2026-08-06 .. 2026-10-21. | date | entry id | finding | file | |---|---|---|---|