-
Notifications
You must be signed in to change notification settings - Fork 0
refactor(contract): remove CollapseGateEmission + MailboxSoA::emit(); in-place consume_firing() successor
#487
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -1,3 +1,59 @@ | ||||||||||||
| ## 2026-06-12 — E-OUTER-BOUNDARY-IS-ORM-1 — there is only one boundary, and it is ontology-mediated | ||||||||||||
|
|
||||||||||||
| **Status:** FINDING (PR #487 tombstone commit makes this source-true; OGAR class + `SoaEnvelope` + Lance columnar I/O is the realized triangle). | ||||||||||||
| **Confidence:** High — every prior candidate inner boundary has now been removed or recast as ownership transfer; no surviving call-site asserts otherwise. | ||||||||||||
|
|
||||||||||||
| **The reframing.** `CollapseGateEmission` looked like a wire format for an | ||||||||||||
| inter-mailbox seam. It was, in fact, the workspace's last hand-written DTO | ||||||||||||
| asserting an **inner** boundary that does not exist. Between mailboxes there is | ||||||||||||
| only ownership transfer (Rust move semantics — `E-CE64-MB-4` makes UB a compile | ||||||||||||
| error); within a mailbox there are only in-place bytes (`SoaEnvelope` geometry). | ||||||||||||
| The only real boundary is the **outer** one — where the SoA meets persistence | ||||||||||||
| and meaning — and that boundary is **ontology-mediated, not DTO-mediated**. | ||||||||||||
|
|
||||||||||||
| **This is exactly the ORM pattern.** | ||||||||||||
|
|
||||||||||||
| | ORM | This substrate | | ||||||||||||
| |---|---| | ||||||||||||
| | Table schema | OGAR class (label, fields, tools, templates) | | ||||||||||||
| | Column mapping | `SoaEnvelope` + `ColumnDescriptor` (byte geometry) | | ||||||||||||
| | Active record | register-bank slice wrapped by the class view | | ||||||||||||
| | SQL writer | Lance columnar I/O (writes LE bytes from the in-place store) | | ||||||||||||
| | Hand-rolled row DTO | `CollapseGateEmission` — **the anti-pattern** | | ||||||||||||
|
|
||||||||||||
| In an ORM you don't write a bespoke struct per table-crossing; the mapping | ||||||||||||
| derives the persisted shape from the schema. Here likewise: the OGAR class | ||||||||||||
| supplies the semantics, the envelope supplies the geometry, Lance does the | ||||||||||||
| writing — and any independent carrier struct at that seam is **schema drift by | ||||||||||||
| definition** (per #477's "every DTO is a derived view of an OGAR class"). The | ||||||||||||
| emission type was not just unused; it was a second, ontology-bypassing | ||||||||||||
| description of data the class layer already described. | ||||||||||||
|
|
||||||||||||
| **Why `MailboxId` / `MergeMode` / `GateDecision` survive.** They are vocabulary | ||||||||||||
| *of* the ontology side — addressing (which register bank), merge policy (how | ||||||||||||
| overlapping writes compose), gate decision (apply / block / hold). They are | ||||||||||||
| not parallel descriptions of row data; they are the operational verbs the | ||||||||||||
| ontology binds. | ||||||||||||
|
|
||||||||||||
| **Consequences (the test for any future PR):** | ||||||||||||
|
|
||||||||||||
| - **Inner seams are ownership transfers**, never carrier types. If a proposed | ||||||||||||
| type looks like "DTO crossing from mailbox A to mailbox B", it is wrong by | ||||||||||||
| construction — the SoA is the DTO; the move is the crossing. | ||||||||||||
| - **The outer seam has exactly one description.** OGAR class on one side, | ||||||||||||
| `SoaEnvelope` on the other, Lance in between. A new "wire format" at this | ||||||||||||
| seam is the same anti-pattern by a different name — propose a new column or | ||||||||||||
| a class-template specialization instead. | ||||||||||||
| - **Hand-rolled active-record structs are ORM-bypass.** If you find yourself | ||||||||||||
| serializing-then-deserializing fields the class already names, the class | ||||||||||||
| template + `ClassView` + `FieldMask` is the right reach. | ||||||||||||
|
|
||||||||||||
| **Cross-ref:** PR #477 (three-tier model + "what does NOT exist" table); PR | ||||||||||||
| #487 (tombstone commit — emission artifacts removed; `consume_firing` is the | ||||||||||||
| in-place ownership successor); `docs/architecture/soa-three-tier-model.md` | ||||||||||||
|
Comment on lines
+51
to
+53
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Keep
Fix- **Cross-ref:** PR `#477` (three-tier model + "what does NOT exist" table); PR
- `#487` (tombstone commit — emission artifacts removed; `consume_firing` is the
+ **Cross-ref:** PR `#477` (three-tier model + "what does NOT exist" table); PR `#487` (tombstone commit — emission artifacts removed; `consume_firing` is the📝 Committable suggestion
Suggested change
🧰 Tools🪛 markdownlint-cli2 (0.22.1)[warning] 52-52: No space after hash on atx style heading (MD018, no-missing-space-atx) 🤖 Prompt for AI AgentsSource: Linters/SAST tools |
||||||||||||
| (register-file analogy + ORM mapping); `E-OGAR-NORTHSTAR-1` (the class spine | ||||||||||||
| this boundary binds to); `I-LEGACY-API-FEATURE-GATED` (legacy carrier paths | ||||||||||||
| must route to the canonical mapping or be removed — the tombstone is removal). | ||||||||||||
| ## 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 | ||||||||||||
|
|
||||||||||||
| **Status:** FINDING (probes run first-hand: `crates/helix/tests/probe_mantissa_fill.rs`, 4/4 green) | ||||||||||||
|
|
||||||||||||
| Original file line number | Diff line number | Diff line change | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -936,6 +936,8 @@ Cross-ref: `docs/TYPE_DUPLICATION_MAP.md`; `crates/lance-graph-contract/src/mul. | |||||||||
|
|
||||||||||
| ## 2026-05-16 — TD-COLLAPSE-GATE-SMALLVEC-1: `CollapseGateEmission` uses `Vec` instead of `SmallVec`; zero-dep constraint was the tradeoff | ||||||||||
|
|
||||||||||
| **Status: CLOSED 2026-06-11 (moot)** — `CollapseGateEmission` was removed entirely per the PR #477 three-tier model (zero-copy SoA, no inter-mailbox handoff type; tombstone commit). No carrier, no Vec, nothing to optimize. | ||||||||||
|
|
||||||||||
| **Status:** Open | ||||||||||
|
Comment on lines
+939
to
941
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Resolve conflicting status lines for this debt row. Line 939 marks this row as closed, but Line 941 still says 🛠️ Proposed fix-**Status: CLOSED 2026-06-11 (moot)** — `CollapseGateEmission` was removed entirely per the PR `#477` three-tier model (zero-copy SoA, no inter-mailbox handoff type; tombstone commit). No carrier, no Vec, nothing to optimize.
-
-**Status:** Open
+**Status:** CLOSED 2026-06-11 (moot) — `CollapseGateEmission` was removed entirely per the PR `#477` three-tier model (zero-copy SoA, no inter-mailbox handoff type; tombstone commit). No carrier, no Vec, nothing to optimize.As per coding guidelines, governance files should keep status updates authoritative on the status line. 📝 Committable suggestion
Suggested change
🤖 Prompt for AI AgentsSource: Coding guidelines |
||||||||||
| **Priority:** P3 | ||||||||||
| **Scope:** crate:lance-graph-contract domain:perf | ||||||||||
|
|
||||||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Record the exact commit SHA in this AGENT_LOG entry.
Commit: in PR.is not immutable/auditable for run traceability. Please stamp the concrete commit hash in this prepended record.As per coding guidelines,
.claude/board/AGENT_LOG.mdentries for completed runs must include D-ids, commit, tests, and outcome in the same commit.🤖 Prompt for AI Agents
Source: Coding guidelines