Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 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
19 changes: 19 additions & 0 deletions .claude/board/AGENT_LOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,22 @@
## 2026-06-17 — W3+W4a atomic read/write shim landed (BindSpace→MailboxSoA migration, first behaviour-touching step)

**Main thread (Opus) — single implementer**, on branch `claude/bindspace-mailbox-soa-w3-w4a` (plan v2 already committed). Sole-owner working tree; ran cargo freely against the shared `target/`.

**Shipped (D-id W3+W4a under `bindspace-singleton-to-mailbox-soa-v1`):**
- New `src/backing.rs` (`pub(crate)`): `BackingStore<'a>` (read shim) + `BackingStoreWrite<'a>` (write shim, C1). Enum-over-trait (OQ-C). `Singleton(&BindSpace)` = live default; `#[cfg(feature="mailbox-thoughtspace")] Mailbox(&MailboxSoA<1024>)` = migration target. Six read methods (prefilter/content_row/qualia_17d/edge/entity_type/len) + eight write methods. Mailbox prefilter iterates `win.start.min(populated)..win.end.min(populated)` — byte-identical to `BindSpace::meta_prefilter` window semantics (C2, P0). `set_edge` wraps `u64↔CausalEdge64` on the singleton arm.
- New Cargo feature `mailbox-thoughtspace` — **default-OFF, NOT in `lab`**.
- `driver.rs`: `const DEFAULT_MAILBOX: MailboxId = 0` (OQ-D Option A, no contract change), private `fn backing()` selector (`debug_assert!(mailboxes.len() <= 1)`, singleton fallback when none registered), ALL 6 reads in `run()` re-pointed through one `backing` value (one body, no `#[cfg]` inside `run`). `ontology()` stays on the singleton (W4b re-home); `entity_type` ctx_id read routes through the shim.
- `engine_bridge.rs::unbind_busdto`: C5 downgrade — cycle-plane index recovery `#[cfg(not(mailbox-thoughtspace))]` (cycle plane is never migrated, D-DIST-5); headline survives via `qualia[9]`; singleton build keeps bit-exact recovery. Doc migration pointer added (I-LEGACY-API-FEATURE-GATED).
- Tests: `tests/w2_differential.rs` (4, whole-ShaderCrystal `to_bits()` parity incl. non-zero-window + non-vacuity + meta-prefilter + alpha-merge cases); `tests/firewall.rs` (2, twin-bar lint via std::fs walk + planted-twin meta-sanity); `mailbox_soa.rs` field-isolation matrix + cycle-drop footprint; `backing.rs` in-module read+write round-trip (singleton + mailbox windowed prefilter); `busdto_bridge_test.rs` gated the 3 cycle-plane-dependent tests to `not(mailbox-thoughtspace)` + added a mailbox-arm test pinning the non-headline-idx→0 loss.

**Test counts:** default `97 lib + 2 firewall + 2 e2e` all green (regression gate — singleton arm byte-identical, the existing 94 lib + 2 e2e untouched); feature-on `98 lib + 2 firewall + 2 e2e + 4 w2` all green. clippy `-p cognitive-shader-driver --all-targets` (both cfgs) + `cargo fmt` clean on touched files (no new warnings, the two `#[allow(dead_code)]` are on the forward-staged C1 write surface, justified + tested).

**P0 surfaced (pre-existing, NOT mine, left untouched):** `--features with-engine` does NOT compile on clean HEAD (`engine_bridge.rs:259` references `QUALIA_DIMS` unimported); consequently the busdto tests (incl. my C5 mailbox-arm test) are dormant, and the D-CSV-5b i4-qualia cutover separately breaks the busdto `codebook_index` round-trip (u16 stored in ±7 i4 `qualia[9]`). Verified pre-existing via `git stash` on clean HEAD. Flagged for operator decision; out of W3+W4a scope.

**Board hygiene (this commit):** STATUS_BOARD W3+W4a row (→ In PR), LATEST_STATE dated bullet, this AGENT_LOG entry — all in the same commit per the mandatory rule.

---

## 2026-06-16 — odoo-rs SEEDED + PR #511 board hygiene (cross-repo)

**Main thread (Opus 4.7) — two outputs, one session arc.**
Expand Down
2 changes: 2 additions & 0 deletions .claude/board/LATEST_STATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@

---

> **2026-06-17 — IN PR (branch `claude/bindspace-mailbox-soa-w3-w4a`)** — W3+W4a atomic read/write shim, the first behaviour-touching step of the BindSpace→MailboxSoA migration. New `cognitive-shader-driver::backing` module (`pub(crate)`): `BackingStore<'a>` (read) + `BackingStoreWrite<'a>` (write) — an enum with a `Singleton(&BindSpace)` arm (live default) and a `#[cfg(feature = "mailbox-thoughtspace")] Mailbox(&MailboxSoA<1024>)` arm. New Cargo feature **`mailbox-thoughtspace`** — **default-OFF, NOT in `lab`**; production stays singleton-read+write until W7. `driver.run()` keeps ONE body: all six dispatch reads (meta_prefilter / qualia17d / content_row / edge / entity_type / len) re-pointed through a `self.backing()` selector (`const DEFAULT_MAILBOX: MailboxId = 0`, `debug_assert!(mailboxes.len() <= 1)`, singleton fallback when no mailbox registered); `ontology()` stays on the singleton (re-home is W4b). Gates: **W2 differential** (`tests/w2_differential.rs`, 4 tests) asserts the WHOLE `ShaderCrystal` bit-identical (`f32::to_bits()`) across both arms incl. a non-zero-window case + non-vacuity; firewall CI lint (`tests/firewall.rs`) bars the two `CausalEdge64` twins (`ndarray::hpc::causal_diff` / `thinking_engine::layered`) from `src/`; field-isolation matrix + cycle-drop footprint (~6 KB/row vs ~71.6 KB) in `mailbox_soa.rs`. `unbind_busdto` C5 downgrade: cycle-plane index recovery feature-gated OUT under `mailbox-thoughtspace` (cycle plane never migrated — D-DIST-5), headline survives via `qualia[9]`; singleton build keeps bit-exact recovery. Tests: default **97 lib + 2 firewall + 2 e2e**; feature-on **98 lib + 2 firewall + 2 e2e + 4 w2**; clippy `--all-targets` (both cfgs) + fmt clean on touched files. **Pre-existing P0 surfaced (NOT introduced, NOT fixed here):** the `with-engine` build does not compile on `main`/HEAD (`engine_bridge.rs:259` uses `QUALIA_DIMS` without importing it); the busdto round-trip tests have never run, and (separately) the D-CSV-5b i4-qualia cutover breaks the `codebook_index` round-trip (stored in i4 `qualia[9]`, ±7 range, cannot hold a u16). Left untouched to keep scope to W3+W4a — flagged for operator. Plan: `.claude/plans/bindspace-mailbox-soa-w3-w4a-impl-v1.md`.
>
> **2026-06-16 — MERGED #512** (perturbation-sim review fixes + **core-first transcode doctrine**): +591/-5 across 11 files. **Code fixes (review of #511):** `examples/calibrate.rs` divide-by-zero guard on degenerate grid; `src/hhtl.rs::basin_lambda2` `assert_eq!(keys.len(), grid.n, …)` precondition (silent corruption→loud panic); `TECH_DEBT.md` MD018 reflow. **Doctrine (the structural delivery):** new mandatory-read `core-first-transcode-doctrine.md` (218 LOC) + 3 new agent cards (`core-first-architect`, `core-gap-auditor`, `adapter-shaper`) + `BOOT.md`/`README.md` wires + EPIPHANIES entry + CLAUDE.md (+21 LOC, doctrine wire-up — NEW content unread by this session). Likely directly aligned with the ontology-first stance the operator locked on odoo-rs. Branch `claude/happy-hamilton-0azlw4`, merge `1e23c410`. 75 lib tests + clippy + fmt clean.
>
> **2026-06-16 — MERGED #513** (perturbation-sim: inertia §0 promotion gate + CAKES/CHAODA + witness standing-wave + H ingest): +1009/-2 across 10 files. Disjoint from #512 by design. **(1) §0 gate** — `GuardrailVerdict::RatifiedReuse`: `inertia_buffer` takes `ResidueEdge` `INERTIA_SLOT = 5`, reuses an existing tenant, invents no new axis → passes §0 by **reuse, not waiver**. Topology stays HHTL-OGAR GUID key; the buffer is one more value, orthogonal by key/value split. **(2) Probe 1 CAKES + CHAODA-lite** over HHTL basins: per-basin `[λ₂, size, inertia]` features; `CHAODA_FLAG=0.75` mirrors ndarray::clam's flag; example `chaoda` flags planted brittle block (basin 1.1.0, score 1.000). Full `ClamTree` ensemble path gated on local ndarray sibling. **(3) Probe 2 witness arc as standing wave** (METHODS §11): `particle == wave` via Parseval (`Hᵀ·H = N·I`), agreement to **0.00e0**; `witness_from_spectrum` is the O(N)-per-arc read-many amortization win. **(4) Probe 3** per-bus inertia (H) ingest path opened. Branch `claude/perturbation-sim-inertia-clam`, merge `8a3e335b`. Does NOT touch `canonical_node`.
Expand Down
1 change: 1 addition & 0 deletions .claude/board/STATUS_BOARD.md
Original file line number Diff line number Diff line change
Expand Up @@ -676,6 +676,7 @@ Plan path: `.claude/plans/bindspace-singleton-to-mailbox-soa-v1.md`. Epiphany `E
| D-id | Title | Crate(s) | ~LOC | Risk | Status | PR / Evidence |
|---|---|---|---|---|---|---|
| D-MBX-1 | add migrated columns (`edges`/`qualia`/`meta`/`entity_type`) to `MailboxSoA<N>` behind `mailbox-thoughtspace` feature | cognitive-shader-driver | 120 | MED | **Queued** | gated on D-CE64-MB-1-impl + PR-NDARRAY-MIRI-COMPLETE |
| W3+W4a | atomic read/write shim (`backing::{BackingStore,BackingStoreWrite}`) — `driver.run()` keeps ONE body, `mailbox-thoughtspace` (default-OFF) flips substrate singleton→`MailboxSoA`; 6 reads re-pointed; W2 differential proves bit-identity; firewall lint + field-isolation + footprint gates | cognitive-shader-driver | 600 | MED | **In PR** | branch `claude/bindspace-mailbox-soa-w3-w4a`; default 97+2+2 tests, feature 98+2+2+4; clippy/fmt clean; `unbind_busdto` C5 downgrade feature-gated (cycle plane never migrated). Plan `bindspace-mailbox-soa-w3-w4a-impl-v1.md` |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify CI test-matrix expectations are documented
grep -A5 "mailbox-thoughtspace\|feature.*CI matrix" .github/workflows/*.yml || echo "Feature CI matrix NOT FOUND IN WORKFLOWS"

Repository: AdaWorldAPI/lance-graph

Length of output: 108


🏁 Script executed:

# List workflow files
ls -la .github/workflows/ 2>/dev/null || echo "No .github/workflows directory"

Repository: AdaWorldAPI/lance-graph

Length of output: 549


🏁 Script executed:

# Show workflow file names and their basic structure
fd -e yml -e yaml . .github/workflows 2>/dev/null | head -20

Repository: AdaWorldAPI/lance-graph

Length of output: 251


🏁 Script executed:

# Search for any test-related configuration in workflows (broader search)
rg "cargo test|features" .github/workflows/ -i -A 2 || echo "No test configurations found"

Repository: AdaWorldAPI/lance-graph

Length of output: 3057


🏁 Script executed:

# Check if feature flags are used anywhere in test configuration
rg "mailbox|thoughtspace" . --type md --type yml -i | head -20 || echo "No feature references found"

Repository: AdaWorldAPI/lance-graph

Length of output: 95


🏁 Script executed:

# Read the main test workflow file
cat -n .github/workflows/rust-test.yml

Repository: AdaWorldAPI/lance-graph

Length of output: 9425


🏁 Script executed:

# Check if mailbox-thoughtspace feature is defined in Cargo.toml
rg "mailbox-thoughtspace" . --type toml 2>/dev/null | head -20 || echo "No mailbox-thoughtspace feature found"

Repository: AdaWorldAPI/lance-graph

Length of output: 137


🏁 Script executed:

# Check for feature-gated tests in cognitive-shader-driver
rg "#\[cfg\(feature.*mailbox" . --type rust 2>/dev/null | head -20

Repository: AdaWorldAPI/lance-graph

Length of output: 2040


🏁 Script executed:

# More broadly, search for feature-gated tests in the crate
rg "cfg.*feature.*mailbox\|mailbox.*feature" . --type rust | head -30

Repository: AdaWorldAPI/lance-graph

Length of output: 49


🏁 Script executed:

# Check if W2 differential tests mentioned in the status board exist
rg "w2|W2|differential" crates/cognitive-shader-driver --type rust | head -20

Repository: AdaWorldAPI/lance-graph

Length of output: 2353


Add feature-gated test matrix to CI workflow.

The mailbox-thoughtspace feature and its 4 W2 differential tests (in crates/cognitive-shader-driver/tests/w2_differential.rs) exist and are properly gated with #[cfg(feature = "mailbox-thoughtspace")] throughout the codebase, but rust-test.yml currently has no --features flags in any cargo test invocation. Add a dedicated CI step or matrix row:

cargo test --manifest-path crates/cognitive-graph/Cargo.toml --features mailbox-thoughtspace

This ensures the feature-gated differential tests (97+2+2+4 tests) are validated alongside default builds, preventing regressions in the new code path.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.claude/board/STATUS_BOARD.md at line 679, The CI workflow `rust-test.yml`
is missing a cargo test invocation with the `--features mailbox-thoughtspace`
flag, which means the feature-gated differential tests in `w2_differential.rs`
are never validated in CI. Add a new test step or matrix row to the workflow
that runs `cargo test` with `--features mailbox-thoughtspace` targeting the
cognitive-shader-driver crate manifest. This ensures the 4 feature-gated
differential tests are executed during CI and prevents regressions in the
mailbox-thoughtspace code path.

| D-MBX-2 | move `engine_bridge` per-row read/write surface onto mailbox rows; `cycle` plane becomes a transient local | cognitive-shader-driver | 180 | MED | **Queued** | blocked on D-MBX-1 + OQ-1 (content-ref shape) |
| D-MBX-3 | `ShaderDriver` holds a sea-star of mailboxes; kill the `BindSpace::zeros(4096)` singleton in `serve.rs` | cognitive-shader-driver | 160 | HIGH | **Queued** | blocked on D-MBX-2 + OQ-2 (temporal/expert fold) |
| D-MBX-4 | death → SPO-G quad + Lance tombstone-witness (link-integrity back-pointer) | cognitive-shader-driver + Lance | 200 | HIGH | **Queued** | blocked on D-MBX-3 + Zone-2 persistence |
Expand Down
Loading
Loading