|
| 1 | +## 2026-06-12 — E-OUTER-BOUNDARY-IS-ORM-1 — there is only one boundary, and it is ontology-mediated |
| 2 | + |
| 3 | +**Status:** FINDING (PR #487 tombstone commit makes this source-true; OGAR class + `SoaEnvelope` + Lance columnar I/O is the realized triangle). |
| 4 | +**Confidence:** High — every prior candidate inner boundary has now been removed or recast as ownership transfer; no surviving call-site asserts otherwise. |
| 5 | + |
| 6 | +**The reframing.** `CollapseGateEmission` looked like a wire format for an |
| 7 | +inter-mailbox seam. It was, in fact, the workspace's last hand-written DTO |
| 8 | +asserting an **inner** boundary that does not exist. Between mailboxes there is |
| 9 | +only ownership transfer (Rust move semantics — `E-CE64-MB-4` makes UB a compile |
| 10 | +error); within a mailbox there are only in-place bytes (`SoaEnvelope` geometry). |
| 11 | +The only real boundary is the **outer** one — where the SoA meets persistence |
| 12 | +and meaning — and that boundary is **ontology-mediated, not DTO-mediated**. |
| 13 | + |
| 14 | +**This is exactly the ORM pattern.** |
| 15 | + |
| 16 | +| ORM | This substrate | |
| 17 | +|---|---| |
| 18 | +| Table schema | OGAR class (label, fields, tools, templates) | |
| 19 | +| Column mapping | `SoaEnvelope` + `ColumnDescriptor` (byte geometry) | |
| 20 | +| Active record | register-bank slice wrapped by the class view | |
| 21 | +| SQL writer | Lance columnar I/O (writes LE bytes from the in-place store) | |
| 22 | +| Hand-rolled row DTO | `CollapseGateEmission` — **the anti-pattern** | |
| 23 | + |
| 24 | +In an ORM you don't write a bespoke struct per table-crossing; the mapping |
| 25 | +derives the persisted shape from the schema. Here likewise: the OGAR class |
| 26 | +supplies the semantics, the envelope supplies the geometry, Lance does the |
| 27 | +writing — and any independent carrier struct at that seam is **schema drift by |
| 28 | +definition** (per #477's "every DTO is a derived view of an OGAR class"). The |
| 29 | +emission type was not just unused; it was a second, ontology-bypassing |
| 30 | +description of data the class layer already described. |
| 31 | + |
| 32 | +**Why `MailboxId` / `MergeMode` / `GateDecision` survive.** They are vocabulary |
| 33 | +*of* the ontology side — addressing (which register bank), merge policy (how |
| 34 | +overlapping writes compose), gate decision (apply / block / hold). They are |
| 35 | +not parallel descriptions of row data; they are the operational verbs the |
| 36 | +ontology binds. |
| 37 | + |
| 38 | +**Consequences (the test for any future PR):** |
| 39 | + |
| 40 | +- **Inner seams are ownership transfers**, never carrier types. If a proposed |
| 41 | + type looks like "DTO crossing from mailbox A to mailbox B", it is wrong by |
| 42 | + construction — the SoA is the DTO; the move is the crossing. |
| 43 | +- **The outer seam has exactly one description.** OGAR class on one side, |
| 44 | + `SoaEnvelope` on the other, Lance in between. A new "wire format" at this |
| 45 | + seam is the same anti-pattern by a different name — propose a new column or |
| 46 | + a class-template specialization instead. |
| 47 | +- **Hand-rolled active-record structs are ORM-bypass.** If you find yourself |
| 48 | + serializing-then-deserializing fields the class already names, the class |
| 49 | + template + `ClassView` + `FieldMask` is the right reach. |
| 50 | + |
| 51 | +**Cross-ref:** PR #477 (three-tier model + "what does NOT exist" table); PR |
| 52 | +#487 (tombstone commit — emission artifacts removed; `consume_firing` is the |
| 53 | +in-place ownership successor); `docs/architecture/soa-three-tier-model.md` |
| 54 | +(register-file analogy + ORM mapping); `E-OGAR-NORTHSTAR-1` (the class spine |
| 55 | +this boundary binds to); `I-LEGACY-API-FEATURE-GATED` (legacy carrier paths |
| 56 | +must route to the canonical mapping or be removed — the tombstone is removal). |
1 | 57 | ## 2026-06-10 — E-PROBE-MANTISSA-1 — golden-mantissa centroid placement measured: beats uniform-random on coverage AND pile-up; PHASE-1 bit-exactness green |
2 | 58 |
|
3 | 59 | **Status:** FINDING (probes run first-hand: `crates/helix/tests/probe_mantissa_fill.rs`, 4/4 green) |
|
0 commit comments