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
38 changes: 38 additions & 0 deletions .claude/board/EPIPHANIES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,41 @@
## 2026-05-27 — E-RUBICON-RACTOR — the Σ10 Rubicon commit IS the Heckhausen action-phase crossing; ractor start/stop = crossing/closing the Rubicon; Libet "free won't" = the pre-commit veto; the kanban is a SurrealDB VIEW over leading LanceDB storage

**Status:** CONJECTURE / design-grounding. Names the psychological origin of the *already-shipped* Σ10 Rubicon doctrine. **Provenance note:** "Σ10 Rubicon" is canonical and implemented (`SigmaTierRouter` Rubicon-resonance dispatch, `D-CSV-10` shipped PR #388; origin `linguistic-epiphanies-2026-04-19.md` E21), but **"Libet" and "Heckhausen" appear nowhere in the board/code/transcripts** — that grounding was a different session or verbal, recorded here now.

**The model.** Heckhausen/Gollwitzer's **Rubicon model of action phases**: pre-decisional *deliberation* (motivational, reversible) → **crossing the Rubicon** (intention formed = volitional, *irreversible* commitment) → pre-actional → *actional* → post-actional *evaluation*. **Libet**: the readiness potential precedes conscious decision; conscious will's role is the **veto** ("free won't") — abort before the act.

**The mapping (orchestration = ractor start/stop):**
- **Deliberation (pre-decisional)** = a mailbox accumulating energy, **no commit** — reversible; the `MailboxSoA.energy` integrates baton receipts (`apply_edges`) below threshold.
- **Crossing the Rubicon** = the **Σ10 commit**: `ΔF < threshold AND resonance > Rubicon-bar` (`SigmaTierRouter`, D-CSV-10) → **ractor START of the actional phase** — irreversible: the baton emits (`CollapseGateEmission`), the row's contents flow through L3 to AriGraph/SPO (calcify). "Opinions are committed contradictions preserved" = post-Rubicon irreversibility.
- **Libet veto ("free won't")** = the CollapseGate **pre-commit abort window**: a mailbox can be preempted/vetoed *before* crossing (ghost-tier preemptible to zero — `E-LADDER-SERVES-MAILBOX` §5). The veto is the only "free will" lever; the readiness potential (energy ramp) is mechanical.
- **Post-actional evaluation → ractor STOP / die** → tombstone-witness persists (`E-LADDER-SERVES-MAILBOX` §6). Start=spawn-at-crossing, stop=evaluate-and-die is the ractor outer-swarm lifecycle (`D-PERSONA-5`, async at the boundary; inner Click stays sync).

**The kanban = a SurrealDB VIEW over leading LanceDB.** The Rubicon action-phase board (deliberation | crossed/intention | actional | evaluated) is a **SurrealDB view projecting LanceDB rows** — moving a thought across columns = ractor start/stop transitions. **LanceDB is the leading storage (source of truth, append-only/versioned); SurrealDB-on-`kv-lance` is a view/query surface over it, never a separate store** (corrects any "SurrealDB-on-Lance is the cold tier" framing — the cold tier is LanceDB; SurrealDB is one view over it). See `bindspace-singleton-to-mailbox-soa-v1` §2.7.

**Cross-ref:** `linguistic-epiphanies-2026-04-19.md` E21 (Σ10 Rubicon tier doctrine), `causaledge64-mailbox-rename-soa-v1` §10 + E-CE64-MB-8 (SigmaTierRouter = substrate-tier router), `cognitive-substrate-convergence-v*` (D-CSV-10 Rubicon-resonance, #388), `E-LADDER-SERVES-MAILBOX` (§1 ractor outer-swarm sync/async, §5 ghost preempt = veto, §6 tombstone), `E-MAILBOX-IS-BINDSPACE` + `bindspace-singleton-to-mailbox-soa-v1` §2.7 (LanceDB-leading / SurrealDB-view), `D-PERSONA-5` (ractor outer-swarm runtime). **Open:** whether to add a `linguistic-epiphanies` entry naming the Heckhausen/Libet origin alongside E21 (awaits go).

---

## 2026-05-27 — E-MAILBOX-IS-BINDSPACE — the singleton `Arc<BindSpace>` dissolves *onto* mailboxes: `MailboxSoA<N>` *becomes* the per-mailbox ephemeral thoughtspace (BindSpace surrogate), it is NOT copied per mailbox

**Status:** CONJECTURE / design-ruling (migration spec authored this session; NOT yet implemented). Extends `E-BATON-1` + `E-CE64-MB-4` downward into the column layout. Plan: `.claude/plans/bindspace-singleton-to-mailbox-soa-v1.md`.

**The correction:** the ask began as *"MailboxSoA has an individual **copy** of the BindSpace."* That is still a singleton (N synchronized copies = the aliasing problem `E-CE64-MB-4` kills). The ruling: **there is no global address space to copy.** `MailboxSoA<N>` *is* the BindSpace for the life of one think-arc — each mailbox **owns** its per-row SoA columns (born in the mailbox, die with it), and the shared singleton `Arc<BindSpace>` is **dissolved**, not sharded.

**Current singleton (to migrate):** `crates/cognitive-shader-driver` — `ShaderDriver.bindspace: Arc<BindSpace>` (`driver.rs:56`); one `Arc::new(BindSpace::zeros(4096))` in `bin/serve.rs:29`; per-row read/write surface in `engine_bridge.rs`. `BindSpace` (`bindspace.rs:234`) carries a **64 KB/row `Vsa16kF32` `cycle` plane** (`FLOATS_PER_VSA=16384`) — 256 MB across the 4096-row singleton.

**Column migration (full map in the plan §3):** `cycle` `Vsa16kF32` plane → **DROP** (ephemeral local compute, never a column — `E-BATON-1`); `content/topic/angle` dense planes → **reference** (CAM-PQ code ≤6 B), not own (`I-VSA-IDENTITIES`); `edges`(`CausalEdge64`)/`qualia`(i4-16D)/`meta`(u32)/`entity_type`(u16) → **own** in `MailboxSoA`; `temporal`/`expert` → fold into `CausalEdge64`/mailbox identity (OQ-2); **`ontology: Arc<OntologyRegistry>` STAYS shared** (cold Zone-2, read-only). Per-row hot footprint drops ~71.6 KB → ~24–30 B.

**Why it's safe:** mailbox *moves* batons in (`apply_edges`) and *moves* emissions out (`CollapseGateEmission`), so the borrow checker proves no shared-mutable aliasing of the thoughtspace — the guarantee the `Arc<BindSpace>`+`CollapseGate` "read-only by convention" only enforced by discipline becomes a **compile error** (`E-CE64-MB-4`).

**Gated staging (plan §6):** S1 add columns behind `mailbox-thoughtspace` feature → S2 move `engine_bridge` surface onto mailbox rows → S3 driver holds a sea-star of mailboxes (kill the 4096 singleton in `serve.rs`) → S4 death→SPO+Lance tombstone-witness → S5 delete `BindSpace`+`cycle` plane. Gated on `D-CE64-MB-1-impl` (par-tile) + `PR-NDARRAY-MIRI-COMPLETE`; S5 blocked on the CLAUDE.md "The Click" / `Vsa16kF32` doctrinal update (OQ-4, already flagged in `surreal/RECONCILIATION`).

**Refinement (same session, 2026-05-27):** the per-mailbox SoA *is* **THE little-endian contract** — singular, and the **same SoA layout runs the whole vertical with no boundary re-encode**: cognitive-shader-driver `MailboxSoA` → `lance-graph-contract` LE types (`CausalEdge64`/`QualiaI4_16D`/`MetaWord`/`SoaColumns`/`entity_type`) → lance-graph storage (Lance columns / tombstone-witness); `ShaderCrystal.persisted_row` is a pointer to the same SoA row, not a serialized copy (plan §2.5). **The Ontology is NOT in the SoA and stays AS IS** — lazylock (`registry.rs:39 LazyLock<NamespaceRegistry>`) + the `ontology_dictionary` Lance **cache** (`lance_cache.rs`, TTL-sourced, drop-and-rebuild; its own header already says "BindSpace … never lands here") (plan §4). **DTO audit (plan §2.6):** `p64-bridge` already conforms (maps `CausalEdge64`/`ThinkingStyle` straight to palette, no re-encode — the template); the legacy re-encode seam is `engine_bridge.rs` `bind_busdto`/`unbind_busdto`/`busdto_to_binary16k` (collapse in S2); `thinking-engine` DTOs survive only as the `StreamDto` ingress adapter + thin read-projections (`BusDto`/`ThoughtStruct`) over the mailbox SoA; `ResonanceDto.energy` *is* `MailboxSoA.energy` (the two `ResonanceDto` defs are `TD-RESONANCEDTO-DUP-1`, **deferred**). **Hot/cold (plan §2.7):** the SoA extends past RAM — `ThoughtStruct` is *later also a transparent view into the SurrealDB ThoughtStruct container table(s)*, same SoA layout hot (mailbox) or cold (container), no RAM↔storage re-encode. Hot ceiling **~64k–256k thoughts** (64k ≈ 300–600 MB ⇒ ~6 KB/thought, dominated by the content/topic/angle Hamming planes that stay hot — dropping only the 64 KB `Vsa16kF32` plane is what makes the working set fit; **resolves OQ-1**). New deliverable D-MBX-6.

**Cross-ref:** `E-BATON-1`, `E-CE64-MB-4`, `E-LADDER-SERVES-MAILBOX` (§6 tombstone-witness), `I-VSA-IDENTITIES`, `I-LEGACY-API-FEATURE-GATED` (feature-gate the v1 accessors during S1–S4), `E-CONTRACT-NO-SERIALIZE` (compile-time handshake, no membrane serialize — same byte layout to disk), `causaledge64-mailbox-rename-soa-v1` (§5 MailboxSoA), `cognitive-substrate-convergence-v1` (D-CSV-7 shipped accumulator), `TD-RESONANCEDTO-DUP-1`.

---

## 2026-05-27 — E-CONTRACT-NO-SERIALIZE-2 — correction to E-CONTRACT-NO-SERIALIZE (below): the audit event never leaves the inside; "serialize at the membrane" was the wrong half — audit is not membrane traffic at all

**Status:** FINDING (sharpens the entry directly below; user correction via the question "why should the audit event go outside?"). The §1 half of the prior entry — *contracts compile types, never serialize; build-time serde codegen is fine* — stands. This entry replaces its "outer membrane's job" framing (board is append-only, so the prior entry is left intact and corrected here).
Expand Down
9 changes: 9 additions & 0 deletions .claude/board/INTEGRATION_PLANS.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
## 2026-05-27 — bindspace-singleton-to-mailbox-soa-v1 (dissolve the shared `Arc<BindSpace>` into per-mailbox `MailboxSoA<N>` ephemeral thoughtspace)

**Status:** PROPOSAL / design (migration spec; NOT yet implemented). **Plan file:** `.claude/plans/bindspace-singleton-to-mailbox-soa-v1.md`. **Epiphany:** `E-MAILBOX-IS-BINDSPACE`.
**Scope:** `MailboxSoA<N>` *becomes* the per-mailbox, mailbox-owned, ephemeral "thoughtspace" — the BindSpace surrogate. The singleton `ShaderDriver.bindspace: Arc<BindSpace>` (`cognitive-shader-driver/src/driver.rs:56`; one `BindSpace::zeros(4096)` in `bin/serve.rs:29`) is **dissolved**, not copied. Column map: drop the 64 KB `Vsa16kF32` `cycle` plane; own `edges`/`qualia`/`meta`/`entity_type` in the mailbox; reference content via CAM-PQ; keep `ontology` a shared `Arc`.

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 | 🟠 Major | ⚡ Quick win

This summary line conflicts with the migration plan’s resolved OQ-1.

Line 4 says mailbox content is referenced via CAM-PQ, but the plan resolves OQ-1 to keep content/topic/angle Hamming planes hot in the mailbox and use CAM-PQ as cold/spill form. Please align this entry with the plan to avoid implementation drift.

🤖 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/INTEGRATION_PLANS.md at line 4, The summary line conflicts
with resolved OQ-1: update the text so MailboxSoA<N> remains the per-mailbox
ephemeral BindSpace surrogate but explicitly state that content/topic/angle
Hamming planes are kept hot in the mailbox (not just referenced), while CAM-PQ
is used only as the cold/spill representation; retain the other points (dissolve
singleton ShaderDriver.bindspace/Arc<BindSpace> and BindSpace::zeros(4096)
handling, drop Vsa16kF32 cycle plane, own edges/qualia/meta/entity_type in the
mailbox, and keep ontology as a shared Arc) so the entry matches the migration
plan rather than claiming mailbox content is referenced via CAM-PQ.

**Deliverables:** D-MBX-1 add migrated columns to `MailboxSoA<N>` (feature-gated) · D-MBX-2 move `engine_bridge` per-row surface onto mailbox rows · D-MBX-3 driver holds sea-star of mailboxes (kill the singleton) · D-MBX-4 death→SPO+Lance tombstone-witness · D-MBX-5 delete `BindSpace`+`cycle` plane.
**Gates:** `D-CE64-MB-1-impl` (par-tile) + `PR-NDARRAY-MIRI-COMPLETE` first; D-MBX-5 blocked on the CLAUDE.md "The Click"/`Vsa16kF32` doctrinal update (OQ-4).
**Invariants:** `E-CE64-MB-4` (ownership = compile-time no-alias) · `E-BATON-1` (LE baton is the only cross-boundary state) · `I-VSA-IDENTITIES` (reference content, don't copy planes) · `I-LEGACY-API-FEATURE-GATED` (feature-gate v1 `BindSpace` accessors during S1–S4) · no double-mailbox (sync inner / ractor outer).

---
## 2026-05-27 — odoo-savant-reasoners-v1 (lance-graph side of the Odoo richness harvest: 2 new OGIT families + Layer-2 axioms + StyleCluster wiring + 5 Reasoner impls)

**Status:** PROPOSAL (picks up the cross-repo handover boundary in `.claude/odoo/SAVANTS.md` §"lance-graph handover boundary"). woa-rs defined the 25-Savant roster + delegation tuples; lance-graph implements (a) Reasoner impls, (b) 2 new families + Layer-2 alignment axioms for the `None` classes, (c) StyleCluster wiring.
Expand Down
16 changes: 16 additions & 0 deletions .claude/board/STATUS_BOARD.md
Original file line number Diff line number Diff line change
Expand Up @@ -514,6 +514,22 @@ hot/cold/feedback loop onto our contract types + SoA floor

---

## bindspace-singleton-to-mailbox-soa-v1 — dissolve `Arc<BindSpace>` into per-mailbox `MailboxSoA<N>`

Plan path: `.claude/plans/bindspace-singleton-to-mailbox-soa-v1.md`. Epiphany `E-MAILBOX-IS-BINDSPACE`. Migration of the shared singleton address space into mailbox-owned ephemeral thoughtspace (LE-contract SoA columns); drops the 64 KB `Vsa16kF32` `cycle` plane.

| 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 |
| 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) |

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 | 🟠 Major | ⚡ Quick win

Update D-MBX-2 blocker text: OQ-1 is already documented as resolved.

Line 524 still says D-MBX-2 is blocked on OQ-1, but the migration spec marks OQ-1 resolved. This should be updated to the current ratified constraint to keep board state reliable.

🤖 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 524, Update the blocker text for
D-MBX-2 by removing OQ-1 (since OQ-1 is resolved) and reflect the current
ratified constraint — e.g., change the status cell from "blocked on D-MBX-1 +
OQ-1 (content-ref shape)" to "blocked on D-MBX-1 (content-ref shape)" so the row
for D-MBX-2 lists only the active blocker; edit the line containing the D-MBX-2
entry and update the blocker clause accordingly.

| 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 |
| D-MBX-5 | delete `BindSpace` singleton + `Vsa16kF32` `cycle` plane; remove feature gate | cognitive-shader-driver | 80 | MED | **Queued** | blocked on D-MBX-4 + OQ-4 (CLAUDE.md "The Click" doctrinal update) |
| D-MBX-6 | `ThoughtStruct` = transparent hot/cold view over SurrealDB container table(s) (same SoA both tiers; ~64k–256k hot ceiling, ~6 KB/thought) | cognitive-shader-driver + surreal_container | 220 | HIGH | **Queued** | blocked on D-MBX-3 + surreal_container unblock (BLOCKED A/B/C/D) or callcenter Zone-2 |
| TD-RESONANCEDTO-DUP-1 | dedup the two `ResonanceDto` (thinking-engine) | thinking-engine | 60 | LOW | **Deferred** | user 2026-05-27 — fold into D-MBX-2 |

---

## Update protocol

When a deliverable ships:
Expand Down
8 changes: 8 additions & 0 deletions .claude/board/TECH_DEBT.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,14 @@
---


### TD-RESONANCEDTO-DUP-1 (bindspace-singleton-to-mailbox-soa-v1)

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 | ⚡ Quick win

Fix heading-level jump to satisfy markdown lint.

Line 16 uses ### immediately after a section break; change it to ## (or introduce the missing parent heading) to resolve MD001 and keep heading hierarchy consistent.

🧰 Tools
🪛 markdownlint-cli2 (0.22.1)

[warning] 16-16: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3

(MD001, heading-increment)

🤖 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/TECH_DEBT.md at line 16, The heading "TD-RESONANCEDTO-DUP-1
(bindspace-singleton-to-mailbox-soa-v1)" is using level ### directly after a
section break which violates MD001; update that heading to use ## (or add the
appropriate parent heading above it) so the markdown heading hierarchy is
consistent and linter MD001 is satisfied.


- **Severity:** P3 (name collision; two distinct `ResonanceDto` structs under the same name)
- **Surfaced in:** DTO vertical audit, 2026-05-27, branch `claude/splat3d-cpu-simd-renderer-MAOO0`
- **What:** `crates/thinking-engine/src/dto.rs:59` defines `ResonanceDto { energy: Vec<f32>, top_k, cycle_count, converged }` (the Ψ ripple field); `crates/thinking-engine/src/awareness_dto.rs:21` defines a *different* `ResonanceDto { hdr: HdrResonance, dominant_perspective, gate, dissonance, total_energy, … }` (multi-perspective S/P/O). Same name, different shape, same crate.
- **Owed:** dedup under `bindspace-singleton-to-mailbox-soa-v1` — the `dto.rs` energy field unifies into `MailboxSoA.energy: [f32; N]`; the `awareness_dto.rs` scalars map to SoA `meta`/`edge` columns and `HdrResonance` becomes the S/P/O read over the SoA. Rename/merge so one canonical resonance read remains.
- **Status:** Open — **Deferred** (user, 2026-05-27): not now; revisit folded into D-MBX-2 (the `engine_bridge` re-encode-seam collapse).

### TD-GHOST-ECHO-DUP-1 (D-PERSONA-1)

- **Severity:** P3 (cosmetic type-dup; no runtime correctness risk — the two enums are not exchanged across a crate boundary today)
Expand Down
Loading
Loading