|
| 1 | +# unified-soa-convergence-v1.1 — AMENDMENT to v1 (merged in PR #434) |
| 2 | + |
| 3 | +> **Status:** AMENDMENT. **Predecessor:** `unified-soa-convergence-v1.md` (merged 2026-05-29 via PR #434, commit `1186dfd`). |
| 4 | +> **Authored:** 2026-05-29 (session `017GFLBn`, branch `claude/splat3d-cpu-simd-renderer-MAOO0`). |
| 5 | +> **Trigger:** user correction on 2026-05-29 — *"where do you see a collapse gate? input/output proposer definitely doesn't belong into the SoA and is extremely hallucinated"* — followed by *"the only thing inside the SoA is the kanban board."* |
| 6 | +> **Council gate:** this amendment is DERIVED spec (not author-stated). MUST pass `epiphany-brainstorm-council` (PR #433) before any field-isolation matrix code lands. |
| 7 | +
|
| 8 | +--- |
| 9 | + |
| 10 | +## 0. Why an amendment, not a v2 |
| 11 | + |
| 12 | +Two retractions and one architectural restatement. The v1 plan is correct in its skeleton (one LE SoA, never re-encoded; nine consumers; Lance 6.0.1 stack; 4-phase Rubicon kanban; Libet −550 ms anchor; lance-graph-planner DTO overhaul). What broke is the SoA *payload* model: v1 imported the other session's proposer-in-SoA framing and welded it to a symbol (`CollapseGateEmission`) that does not exist. This amendment corrects both. |
| 13 | + |
| 14 | +--- |
| 15 | + |
| 16 | +## 1. Retractions |
| 17 | + |
| 18 | +### R1. `CollapseGateEmission` does NOT exist as a symbol |
| 19 | + |
| 20 | +**What v1 said** (§6.2, §11.2): the per-row witness arc is "the per-row arc of `CausalEdge64` emissions (`CollapseGateEmission` arc)" stamping NARS revision. The witness-arc column `[u32; W]` was indexed by these emissions. |
| 21 | + |
| 22 | +**What actually exists** (verified by `grep -rn` 2026-05-29): |
| 23 | +- `CollapseGate` (a query-planner result-filter) at `crates/lance-graph-planner/src/ir/logical_op.rs:297`, `crates/lance-graph-planner/src/physical/collapse.rs`, `crates/lance-graph-planner/src/strategy/collapse_gate.rs`. |
| 24 | +- Provenance: agi-chat's FLOW/HOLD/BLOCK Two-Stroke engine; cold-path planner gate; filters low-resonance results in `Strategy #10`. |
| 25 | +- **There is no per-mailbox emission type carrying witness arc-handles.** The symbol was invented. |
| 26 | + |
| 27 | +**Retraction:** v1 §6 (the witness-arc model anchored to `CollapseGateEmission`) is withdrawn. The real `CollapseGate` stays in `lance-graph-planner` as a planner-side filter; it does not enter the SoA. |
| 28 | + |
| 29 | +### R2. Import discovery is COLD-PATH; it does NOT belong in the SoA |
| 30 | + |
| 31 | +**What v1 said** (§2.1, §2.2, §6.1, §7): the SoA carries proposer outputs; AriGraph episodic chain traversal happens via SoA witness-arc handles; `discovery_arc` + `discovery_origin` columns (PR #435's §7) were affirmed. |
| 32 | + |
| 33 | +**What's correct** (per user 2026-05-29): |
| 34 | + |
| 35 | +``` |
| 36 | +witness × Ontology × witness = mailbox/graph cold-path fact |
| 37 | +``` |
| 38 | + |
| 39 | +Any external witness — dentist invoice, X-ray DICOM, OpenStreetMap, Palantir Gotham/Foundry, neo4j dump, Aerial+ ARM-discovered rule — is served by the **existing** cold-path stack: |
| 40 | + |
| 41 | +| Crate | Role | |
| 42 | +|---|---| |
| 43 | +| `lance-graph-callcenter` | Zone-2 persistence (the cold-path commit surface) | |
| 44 | +| `lance-graph-ontology` | Registry / relations / lazy-locked dictionary cache | |
| 45 | +| `lance-graph-contract` | LE types (`CausalEdge64`, `QualiaI4_16D`, `MetaWord`, etc.) | |
| 46 | + |
| 47 | +ARM-discovery, AST extraction, L-doc projection, and every future proposer are all **cold-path witness producers** feeding `callcenter × ontology × contract`. **None of them touch the SoA.** |
| 48 | + |
| 49 | +**Retraction:** v1 §6.1, §6.2, §6.3 (SoA-side witness-arc model) and §7 (the `discovery_arc` / `discovery_origin` column proposals folded from PR #435 §7) are withdrawn. The AriGraph episodic Markov chain is **cold-path over callcenter rows**, not a SoA traversal. The SoA does not participate in chain walking. |
| 50 | + |
| 51 | +### R3. `witness_arc: [u32; W]` SoA column (D-MBX-A3) is withdrawn |
| 52 | + |
| 53 | +Under R1 + R2 there is nothing for this column to carry. The committed-witness pointer lives on the kanban card (§2 below); the cold-path arc is reconstructed via `callcenter` SPO-G queries when needed. |
| 54 | + |
| 55 | +**OQ-11.2 (witness arc width W)** is DISSOLVED — no column, no width. |
| 56 | + |
| 57 | +--- |
| 58 | + |
| 59 | +## 2. What this amendment does NOT yet cover (deferred to a fresh session) |
| 60 | + |
| 61 | +Authored under explicit token-degradation acknowledgment. The retractions above (R1/R2/R3) are load-bearing and stand alone — they pull the SoA back to a coherent surface. The constructive additions need careful authoring and are **deferred**: |
| 62 | + |
| 63 | +- **A1 (deferred) — kanban-cards-only SoA payload schema.** What does a single kanban card carry? Confirmed: 1 card per lane, no in-kanban collapse gate (Rubicon = the collapse). Open: card field layout (`phase_in_lane`, `witness_handle: u64`, `free_energy_residual: f32`, `content_ref`, `entity_type`), lane cardinality (4 phases of the Rubicon kanban? more?), per-mailbox hot footprint budget after `witness_arc` retraction. |
| 64 | +- **A2 (deferred) — advocatus-diaboli / EFE dialogue spec.** Default position to refine: diaboli is **modulation-only** (perturbs protagonist's EFE landscape via i4 mantissa precision channel; does not commit; does not cross Rubicon; does not consume a kanban lane slot). The "*meta-exploration mantissa of the other*" framing maps to an extra 4-bit-per-qualia-dimension modulation payload on the baton. Wire format needs spec. |
| 65 | +- **A3 (deferred) — plasticity spreader dissolution.** v1 §11.5 / D-MBX-A4 / OQ-11.1 (Staunen × Wisdom radius + decay) becomes the diaboli channel amplitude in the dialogue, not a focal-row Hebbian. OQ-11.1's radius/decay defaults become moot; replaced by the diaboli amplitude curve. |
| 66 | +- **A4 (deferred) — D-MBX deliverable re-map.** D-MBX-A3 reframes from `witness_arc` array to single `witness_handle: u64` on the kanban card. D-MBX-A5 (SPO-W dual-residency) collapses into a pure cold-path callcenter SPO-G commit (no SoA touch). D-MBX-A4 reframes per A3 above. D-MBX-7/8/9/10/11/12 survive unchanged. |
| 67 | +- **A5 (deferred) — AriGraph episodic Markov chain restatement.** Chain = cold-path over callcenter rows; traversal = SPO-G query. The mailbox SoA holds at most a `witness_handle` from the active kanban card; no SoA-side chain walking. |
| 68 | + |
| 69 | +A fresh session should treat the retractions in §1 as ratified architecture and draft A1–A5 as new spec, ratified through `epiphany-brainstorm-council`. |
| 70 | + |
| 71 | +--- |
| 72 | + |
| 73 | +## 3. Cross-session items that SURVIVE the retractions (cold-path, independent of SoA) |
| 74 | + |
| 75 | +The other session's PR #435 review feedback contained four items that are independent of the SoA decisions and stand unchanged: |
| 76 | + |
| 77 | +1. **Jirak math fix.** Rate is `n^{-(p/2-1)}` (= `n^{1-p/2}`). At p=2.5 → n⁻¹/⁴; at p=3 → n⁻¹/² (coincides with classical Berry-Esseen, not stricter); at p=4 → n⁻¹/² (L^q cap). Code default: `.powf(-(p / 2.0 - 1.0))` or equivalently `.powf(1.0 - p / 2.0)`. Soften the "stricter than IID" framing: Jirak bites *below* p=3; at p=3 the iron-rule's bite is the requirement to *justify* p≥3, not a different rate. **Apply to PR #435's plan §4 + the `jirak` module default.** |
| 78 | +2. **Recipe-dedup CodeRabbit #6.** Decline the hard `assert!()`; collapse-by-`recipe_id` is intentional design per `style_recipe.rs:84-85`. Optional `debug_assert!` for a debug-build safety net is acceptable. |
| 79 | +3. **FNV-1a 32-bit → 64-bit for `recipe_id` only.** At sustained ARM-discovery throughput, birthday-paradox collision hits ~50% near ~78k cumulative recipes. Switch *the recipe space alone* to xxhash-64 / blake3-trunc-64. Keep the SoA-layout `layout_checksum` (proposed for `MailboxSoAHeader` in v1 §3.1) at FNV-32 — its keyspace (the column-offset table, ~10 entries) has no birthday surface. The two hash decisions are independent. |
| 80 | +4. **Aerial+ fork blocker.** Same *class* as `surreal_container` BLOCKED(C) — fork-access-human gate. Separate OQ tickets (different URLs, different feature flags, different downstream consumers); cross-reference with a "blocker class: fork-access-human" tag. If a third one appears, hoist the class to a `FORK-ACCESS-BACKLOG.md`. |
| 81 | + |
| 82 | +--- |
| 83 | + |
| 84 | +## 4. v1 OQ catalogue — post-amendment status |
| 85 | + |
| 86 | +| OQ | v1 status | Amendment status | |
| 87 | +|---|---|---| |
| 88 | +| OQ-11.1 (Staunen × Wisdom radius / decay) | Open | **DISSOLVED** — folded into diaboli amplitude curve (A2/A3, deferred). | |
| 89 | +| OQ-11.2 (witness arc width W) | Open | **DISSOLVED** — no SoA witness arc (R3). | |
| 90 | +| OQ-11.3 (vetoed / ghosted kanban column) | Default: No | **CONFIRMED** — no extra column; Prune is terminal-veto. | |
| 91 | +| OQ-11.4 (CLAUDE.md `Vsa16kF32` doctrinal update timing) | Open | Unchanged. | |
| 92 | +| OQ-11.5 (SoA version field width) | Default: u16 | Unchanged. | |
| 93 | +| OQ-11.6 (surrealdb fork access — BLOCKED(C)) | Open | Unchanged. Same blocker class as new OQ-ARM-X (Aerial+ fork). | |
| 94 | +| OQ-11.7 (planner DTO overhaul scope) | Default: feature-gated | Unchanged. | |
| 95 | +| OQ-11.8 (D-MBX-12 sub-PR sequencing) | Default sequence | Unchanged. | |
| 96 | +| OQ-11.9 (NEW, deferred A1) | — | Kanban card field layout + lane cardinality + per-mailbox hot footprint. | |
| 97 | +| OQ-11.10 (NEW, deferred A2) | — | Diaboli mantissa channel wire format on the baton. | |
| 98 | + |
| 99 | +--- |
| 100 | + |
| 101 | +## 5. Provenance — user-stated rulings (verbatim, 2026-05-29) |
| 102 | + |
| 103 | +- *"where do you see a collapse gate?"* |
| 104 | +- *"input output proposer definitely doesn't belong into the SoA and is extremely hallucinated"* |
| 105 | +- *"we already have lance-graph-callcenter, lance-graph-ontology, lance-graph-contract"* |
| 106 | +- *"any import discovery or whatever is a witness × Ontology × witness = mailbox/graph cold path facts"* |
| 107 | +- *"whether it's a dentist invoice or X-ray or open street map or Palantir Gotham foundry or neo4j"* |
| 108 | +- *"if you want something inside the SoA it's the kanban board"* |
| 109 | +- *"kanban is Orchestration"* |
| 110 | +- *"a planner kanban can hold multiple thoughts or 1 only (sparse and efficient)"* + answered "1 per lane, no gate" |
| 111 | +- *"otherwise we need collapse gate for kanban which I don't want, waiting for the commit of another ractor feels wrong"* |
| 112 | +- *"one mailbox being the advocatus diaboli / sarcastic remarks / meta exploration mantissa of the other"* |
| 113 | + |
| 114 | +These rulings are **load-bearing** for the retractions in §1 and the deferred additions in §2. Do not paraphrase or "fix" them. |
0 commit comments