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: 3 additions & 2 deletions .claude/board/STATUS_BOARD.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,9 @@ Pixel/tile position = geometry; `PaletteState(u8)` = material (needle); `FisherZ
| **D-CTX-2** | Isotropic Gaussian/EWA accumulation from virtual surfels: `s = (Σxx+Σyy)/2W`, `Σ_fp = ewa_sandwich(√s·I, I) = s·I`, `A = activation·W/2032`, 7 × 7 clipped window into a transient 2 KB field; footprint evaluator probe-local; identity weight 254 (operator DECISION 2026-10-06) | Shipped (#1357) | `cognitive-shader-driver/examples/ewa_render_probe.rs`; fused = materialized `Vec<Surfel>`→`Vec<Gaussian>`→field bit for bit (18 tiles); fused = independent closed-form gather within 1e-12·max (measured 6.7e-16); fused path 0 allocations (materialized: surfels 4,100 B, gaussians 8,200 B); sandwich = `s·I`, SPD, and scales an anisotropic Σ by `s`; footprint = closed-form isotropic Gaussian (≤ 1e-14 rel.); field total = Σ amplitude × own window mass, window mass ≤ 1.001, interior ≥ 0.99, total ≤ input activation; zero activation renders nothing; replay exact, law and palette both matter; 8 tests, 6 disable runs red. Surfel reading moved to `examples/support/virtual_surfel.rs` (D-CTX-1 unchanged) |
| **D-CTX-3** | Anisotropic Gaussian/EWA accumulation: footprint `Σ_fp = ewa_sandwich(Σ̂'^{1/2}, I)` with `Σ̂ = Σ_c/W` and eigenvalues floored at ½ (the law's own minimum isotropic scale, since every Moore offset has `|d|² ≥ 1`); isotropic readings collapse onto D-CTX-2 | Shipped (#1361) | `cognitive-shader-driver/examples/ewa_anisotropic_probe.rs`; fused = materialized bit for bit (16 tiles); fused = independent rotated closed-form gather (own eigen-decomposition) within 1e-12·max, measured 6.7e-16; isotropic readings give D-CTX-2's footprint (≤ 1e-14) and an all-isotropic tile renders as D-CTX-2 (196 surfels); a stripe spreads the render along itself (var x 0.886 vs y 0.499), turns with it, and its peak equals `A/(2π√det Σ_fp)`; without the floor a thin footprint holds > 1.3 of its mass (manufactured evidence) and cross code −127 gives a singular Σ̂, with it every footprint ≤ 1.001; the law never yields an isotropic scale below the floor; i8 quantization: worst 1.11° orientation and 1.27 % eigenvalue error over 2,672 anisotropic surfels (pinned 1.5° / 2 %); no BF16, no Σ codebook, `PaletteState` not widened; 0 allocations; 8 tests, 5 disable runs red. Isotropic law moved to `examples/support/ewa.rs` (D-CTX-2 unchanged) |
| **D-CTX-4** | One read-only measurement over the D-CTX-2 surface: strongest boundary, central-difference gradient argmax over the inner region `5..=10` (pixels whose value and difference cannot see the tile edge: footprint radius 3 + Moore 1 + difference 1), ties to the smaller Morton code; returns a 32-byte `BoundaryWitness { at, magnitude, gx, gy }`, no field | Shipped (#1364) | `cognitive-shader-driver/examples/boundary_measure_probe.rs`; streaming (Morton order, one register) = materialized row-major `Vec` + explicit argmax on 6 rendered fields and a synthetic one; 0 allocations (materialized 1,152 B); a material boundary is found within a pixel of the palette change, points across it (gx > 10·gy) and turns with it; a uniform tile reads flat (2.0e-14 against field max 255); the rendered boundary response changes deterministically with the signed pair-law code (negative-code pair 25.18 > mid-negative pair > positive-code pair 5.37; an observation about the rendered surface, no epistemic or semantic strength derived from it); tie-break checked on a tied set where row-major and Morton pick different winners; field unchanged by measuring; 7 tests, 5 disable runs red (incl. region widened by one pixel → uniform tile no longer flat). `pair_with_code` moved to `support/fisher_relation.rs` |
| **D-CTX-5** | Morton/HHTL visit order vs row-major for the D-CTX-2 render: four orders (Morton = nibble-trie DFS = D-CTX-2's own, row-major, 4 × 4 tiled, reversed); addressing via the contract's `Morton8x8` (= `FacetTier::morton`), palette never read as a coordinate | In PR | `cognitive-shader-driver/examples/morton_order_probe.rs`; every order a distinct permutation; 7 × 7 footprint neighbours via the code = geometry over the whole tile; Morton order = D-CTX-2 bit for bit; **`f64` scatter depends on the visit order at the last bits** (row-major 134, tiled 85, reversed 181 pixels changed, ≤ 1.1e-15), so the order is part of that render's replay identity; an `i64` accumulator at 2⁻³² is order-free (identical bits for all four orders on 10 tiles) within 1.4e-9 of `f64` (bound 49·2⁻³³); trie ascent per step: Morton = tiled = reversed 1.0588 (270/255), row-major 1.2471, so `nibble_climb` cannot separate block-finishing orders; 0 allocations; 7 tests, 4 disable runs red, 1 equivalent mutant (round-per-add on the 2⁻³² grid equals integer summation) |
| **D-CTX-6** | Measurement → observation → `GadamerRevision` → replay over the D-CTX-2 surface: belief = `InterpretiveHorizon<(), [u64; 4]>`, one bit per pixel (roots = observed, claims = observed material boundary); the D-CTX-4 witness is presented as an inherited interpretation with no root, an observation reads only the resident palette (pixel + Moore neighbours) and is one new root; `delta.resulting` adopted only on `IncreaseEligible` | In PR | `cognitive-shader-driver/examples/observation_revision_probe.rs`; every inner pixel's rendered witness, presented to a horizon already holding observations, is `Reinterpretation`/`NoIncrease` and moves nothing; every observation is `HorizonExpansion` or `IndependentConfirmation` and the adopted claims equal an x/y palette oracle on 5 tiles; the render points at (5, 5) with |g| 1.65 when the only material change is at x = 2, outside the inner region, and the observation records a negative; two Fisher-Z laws render different fields but give identical final belief; replay is identical, `revision_index` = steps, and re-presenting every observation is `Echo`; one loop step allocates 0 B. Measured, not claimed useful: the steepest rendered pixel on the split tile is (6, 7), one pixel off the material boundary (x = 7, 8); steering by the render covers the 12 inner boundary pixels at step 24 vs 34 row-major, but quadrants at 35 vs 34. 7 tests, 5 disable runs red (adopt every revision; render claims a root; observation claims what was pointed at; ancestry forgets roots; wrong oracle). `strongest_boundary` moved to `support/boundary.rs` with an address-predicate variant |
| **D-CTX-5** | Morton/HHTL visit order vs row-major for the D-CTX-2 render: four orders (Morton = nibble-trie DFS = D-CTX-2's own, row-major, 4 × 4 tiled, reversed); addressing via the contract's `Morton8x8` (= `FacetTier::morton`), palette never read as a coordinate | Shipped (#1367) | `cognitive-shader-driver/examples/morton_order_probe.rs`; every order a distinct permutation; 7 × 7 footprint neighbours via the code = geometry over the whole tile; Morton order = D-CTX-2 bit for bit; **`f64` scatter depends on the visit order at the last bits** (row-major 134, tiled 85, reversed 181 pixels changed, ≤ 1.1e-15), so the order is part of that render's replay identity; an `i64` accumulator at 2⁻³² is order-free (identical bits for all four orders on 10 tiles) within 1.4e-9 of `f64` (bound 49·2⁻³³); trie ascent per step: Morton = tiled = reversed 1.0588 (270/255), row-major 1.2471, so `nibble_climb` cannot separate block-finishing orders; 0 allocations; 7 tests, 4 disable runs red, 1 equivalent mutant (round-per-add on the 2⁻³² grid equals integer summation) |
| **D-CTX-6** | Measurement → observation → `GadamerRevision` → replay over the D-CTX-2 surface: belief = `InterpretiveHorizon<(), [u64; 4]>`, one bit per pixel (roots = observed, claims = observed material boundary); the D-CTX-4 witness is presented as an inherited interpretation with no root, an observation reads only the resident palette (pixel + Moore neighbours) and is one new root; `delta.resulting` adopted only on `IncreaseEligible` | Shipped (#1367) | `cognitive-shader-driver/examples/observation_revision_probe.rs`; every inner pixel's rendered witness, presented to a horizon already holding observations, is `Reinterpretation`/`NoIncrease` and moves nothing; every observation is `HorizonExpansion` or `IndependentConfirmation` and the adopted claims equal an x/y palette oracle on 5 tiles; the render points at (5, 5) with |g| 1.65 when the only material change is at x = 2, outside the inner region, and the observation records a negative; two Fisher-Z laws render different fields but give identical final belief; replay is identical, `revision_index` = steps, and re-presenting every observation is `Echo`; one loop step allocates 0 B. Measured, not claimed useful: the steepest rendered pixel on the split tile is (6, 7), one pixel off the material boundary (x = 7, 8); steering by the render covers the 12 inner boundary pixels at step 24 vs 34 row-major, but quadrants at 35 vs 34. 7 tests, 5 disable runs red (adopt every revision; render claims a root; observation claims what was pointed at; ancestry forgets roots; wrong oracle). `strongest_boundary` moved to `support/boundary.rs` with an address-predicate variant |
| **D-CTX-7** | `GadamerRevision` as a candidate evidence writer of EpistemicState5 (`ISS-NO-EVIDENCE-WRITER-FOR-EPISTEMIC-STATE`): one `MailboxSoA` CE64 row, start-of-cycle copy via `MailboxSoaView`, encounters → revision → declared versioned transition (V1: 3 → 7 on ≥ 2 admitted `Differs` roots; 7 → 3 on `ContradictionPreserved`), `write_row` in k, read in k+1; bits 59..63 written as one joint code | In PR | `cognitive-shader-driver/examples/revision_epistemic_writer_probe.rs`; codes `3, 3, 3, 7, 3` / eligibility `OBS, OBS, OBS, OBS\|STRATIFY, OBS` over render-only, one source, two sources, complete Same check; 360 rendered witnesses never move the code; one source repeated is one root; a Same reading is not support; V2 refuses what V1 accepts; only bits 59..63 move; every write a declared `EPI_LAW` code; LE restart; 0 allocations; a complete check counts only its differing roots (1 does not promote, 2 promote under V1 only); cross-cycle corroboration pinned as missing; 12 tests, 8 disable runs red. Entry: `entries/2026-10-07-ctx7-revision-writer-for-epistemic-state.md` |

## D-MORTON — Checked 8:8 Morton address arithmetic (2026-10-06)

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# 2026-10-07 — D-CTX-7: a revision-gated writer for EpistemicState5 (candidate)

Addresses `ISS-NO-EVIDENCE-WRITER-FOR-EPISTEMIC-STATE` with one declared,
versioned candidate. Does not close it: the production decision stays open.

## MEASURED

`cognitive-shader-driver/examples/revision_epistemic_writer_probe.rs`:

- One `MailboxSoA` CE64 row tracks "pixel P is a material boundary" on a
16 × 16 palette tile. A source is one Moore direction of P, read from the
resident tile only. Each cycle: start-of-cycle copy through
`MailboxSoaView` → encounters → `GadamerRevision` → declared transition →
`write_row` in cycle k → read in k+1.
- Transition V1: 3 → 7 on ≥ 2 roots the revision admitted with
`IncreaseEligible` from `Differs` readings; 7 → 3 on a
`ContradictionPreserved` verdict on the claim (a complete Moore check that
reads only `Same`). Bits 59..63 are written as one joint code (the #1370
reading) through `with_spare` + `with_truth`; every write lands on a code
`EPI_LAW` declares.
- Trajectory (render only, one source, two sources, tile rewritten + complete
check): codes `3, 3, 3, 7, 3`; eligibility `OBS, OBS, OBS, OBS|STRATIFY, OBS`.
- 360 rendered witnesses (D-CTX-4) proposing the claim never move the code in
either direction: they carry no independent root, so the revision never
admits them. One direction repeated 50 times is one root. A `Same` reading
is not support. A complete check counts only its `Differs` roots: 3 promote
alone, 1 does not (codex review on #1379: the first draft counted all 8
roots of a check with one `Differs`). V2 (3 roots) refuses what V1 accepts. Only bits 59..63 move.
Restart from `to_le_bytes` continues identically. 0 allocations per settle.
- 12 tests, 8 disable runs red. Two disables were green on the first draft and
exposed vacuous gates: the render was kept out by the probe's own
`supports = false` flag instead of by the revision (the flag now says the
render supports the claim, so only the missing root keeps it out), and no
fixture admitted more than one root per encounter (the complete-check test
now separates "roots" from "encounters").

## OPEN

- Whether this transition, or any, belongs in production.
- Cross-cycle corroboration: the horizon dies with its cycle, so one source in
cycle k and another in k+1 never combine (`sources_split_across_cycles_do_not_combine`).
Carrying the source set needs state the register does not have.
- Demotion reads a `Suspend` verdict (`ContradictionPreserved`); promotion
reads `IncreaseEligible`. Whether demotion should require more than one
complete check is a policy question the probe does not answer.
3 changes: 2 additions & 1 deletion .claude/board/entries/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,13 @@ 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.

240 entries, 2026-08-06 .. 2026-10-07.
241 entries, 2026-08-06 .. 2026-10-07.

| date | entry id | finding | file |
|---|---|---|---|
| 2026-10-07 | `tinker-janus-fold-harvest` | TinkerPop bulk = K (GroupReduce), ONE_BULK = S, GValue pinning = bundle invalidation; JanusGraph slice = OrderedLaneWitness→Range (30–38×); no new V4 op | [2026-10-07-tinker-janus-fold-harvest.md](2026-10-07-tinker-janus-fold-harvest.md) |
| 2026-10-07 | `gated-gather-bit-schedule` | Production gather is 3.8× slow from a per-row branch; bit-gated visitation wins or ties at every density; ordinal vectors never win (R1 holds) | [2026-10-07-gated-gather-bit-schedule.md](2026-10-07-gated-gather-bit-schedule.md) |
| 2026-10-07 | `D-CTX-7` | | [2026-10-07-ctx7-revision-writer-for-epistemic-state.md](2026-10-07-ctx7-revision-writer-for-epistemic-state.md) |
| 2026-10-07 | `bind-bundle-gated-gather` | One bound query, five routes, identical answers; the semijoin is never gated and dominates; a gated mask gather beats a selection vector (R1 survives) | [2026-10-07-bind-bundle-gated-gather.md](2026-10-07-bind-bundle-gated-gather.md) |
| 2026-10-06 | `v3-v4-dual-reading-round3` | | [2026-10-06-v3-v4-dual-reading-round3.md](2026-10-06-v3-v4-dual-reading-round3.md) |
| 2026-10-06 | `D-ANCESTRY-K1-0` | | [2026-10-06-streamdto-circuit-ancestry.md](2026-10-06-streamdto-circuit-ancestry.md) |
Expand Down
4 changes: 4 additions & 0 deletions crates/cognitive-shader-driver/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,10 @@ test = true
name = "observation_revision_probe"
test = true

[[example]]
name = "revision_epistemic_writer_probe"
test = true

# D-GSO-6 recipe selector probe; tests run under `cargo test`.
[[example]]
name = "recipe_selector_probe"
Expand Down
13 changes: 13 additions & 0 deletions crates/cognitive-shader-driver/examples/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -357,3 +357,16 @@ and the same final belief.
```bash
cargo run -p cognitive-shader-driver --example observation_revision_probe
```

## revision_epistemic_writer_probe.rs

D-CTX-7. A candidate for the missing evidence writer of the CE64 epistemic
code (bits 59..63, read as one joint code). One mailbox row tracks "pixel P is
a material boundary"; each cycle presents its encounters to `GadamerRevision`
and a declared, versioned transition settles the code, written in cycle k and
read in k+1. Observations of the resident tile can promote and demote it;
rendered witnesses never move it.

```bash
cargo run -p cognitive-shader-driver --example revision_epistemic_writer_probe
```
Loading
Loading