From db01f090f8803b4cb7ed29e50c4653122dc62a4d Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 16 Jul 2026 08:58:15 +0000 Subject: [PATCH 1/2] =?UTF-8?q?docs:=20odoo=20transpile=20arc=20closure=20?= =?UTF-8?q?handover=20=E2=80=94=2007-07=20handoff=20fully=20executed;=20li?= =?UTF-8?q?ve=20seams=20named=20(od-server=20hydration=20via=20lance=5Fsin?= =?UTF-8?q?k;=20region=20grammar=20=C3=97=20a2ui)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../2026-07-16-odoo-transpile-arc-closure.md | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 .claude/handovers/2026-07-16-odoo-transpile-arc-closure.md diff --git a/.claude/handovers/2026-07-16-odoo-transpile-arc-closure.md b/.claude/handovers/2026-07-16-odoo-transpile-arc-closure.md new file mode 100644 index 0000000..e317416 --- /dev/null +++ b/.claude/handovers/2026-07-16-odoo-transpile-arc-closure.md @@ -0,0 +1,41 @@ +# Handover — odoo transpile arc CLOSED on the OGAR side; live seams named + +> **Date:** 2026-07-16 · **Closes** `2026-07-07-odoo-transpile-v3-w1-w2-shipped-w3-handoff.md` +> (every item in that handoff has since merged). Append-only: that file is +> not edited; this one records the closure + where the arc's energy goes next. + +## What closed (all merged to mains) + +| Item (from the 07-07 handoff) | Landed as | +|---|---| +| W1 kausal-parity consume pin (real-source witness) | OGAR **#192** — `tests/odoo_kausal_parity_probe.rs`, 11/11 kausal (8 `Depends` + 3 `Constrains` post ruff #49), facts-only guard. Ledger `D-KAUSAL-CONSUME-PIN-ODOO` | +| W2 V3 SoA sink for `CompiledClass` | OGAR **#192** — `ogar-from-ruff::lance_sink` (feature `lance-sink`): `compiled_class_to_facet` / `compiled_class_to_noderow` / `compiled_classes_to_le_bytes`; field-isolation matrix; `ENVELOPE_LAYOUT_VERSION == 2` fuse. Ledger `D-V3-SINK-COMPILEDCLASS` | +| e2e capstone (real .py → CANON NodeRow bytes) | OGAR **#192** — `tests/odoo_v3_sink_e2e.rs` | +| odoo-rs corpus DO-arm deletion + Stage-C fork delete | odoo-rs side, earlier arc (kausal witness `c2094b4`; `surreal_ast.rs` deleted) | +| Region grammar (knowledge transfer of ruff #76) | ruff **#79** (`extract_odoo_view_regions`; `RegionFact`/`region_triples` promoted into shared `ruff_spo_triplet`) + odoo-rs **#35** (Edit 3 digest, live-harvest byte-parity fuse) | + +Verified this session on current mains (OGAR `df7331e`, ruff `6604f45`): +`cargo test -p ogar-from-ruff --features lance-sink` → 86 lib + 5 integration +green. Branch `claude/odoo-rs-v3-ogar-transpile-nwriny` reset to main +(merged-branch policy). + +## The two live seams (where the next session plugs in) + +1. **W2's out-of-scope tail lands in odoo-rs `od-server`.** odoo-rs #36 + shipped in-process `/compile` (Odoo `.py` → `CompiledClass` JSON) and + names the hydration writer as the follow-up. The lance leg IS + `lance_sink` — `compiled_class_to_noderow` → `NodeRowPacket::as_le_bytes` + → `Dataset::write` (the one step W2 deliberately stopped short of). The + postgres leg is `ogar-adapter-postgres-ddl`. Consumer executor wiring: + `.claude/knowledge/hotplug-consumer-migration.md` (`HotPlug` + + `resolve_hotplug`). +2. **Region grammar feeds the a2ui screen-addressing arc** (#204 proposal, + #206 `ogar-a2ui-frame`, #207 fieldview). A screen is a nested ClassView + projection; odoo-rs's `docked_at`/`tab_order`/`opens_popup` facts + + `odoo_regions.conf` are the harvested Odoo layout feed for that + projection (region → position in the parent's ordered set). ⚠ WIDE + masks only (codex P2 on #204/#205): `>64`-field surfaces break narrow + `FieldMask` — never route RBAC through `ClassRbac::field_mask` narrow. + +Authoritative forward plan: odoo-rs +`docs/HANDOVER-2026-07-16-transpile-plan-v3.md`. From c17545deb80728d729f76226dbc924f7d1ddc7f5 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 16 Jul 2026 09:04:06 +0000 Subject: [PATCH 2/2] =?UTF-8?q?docs:=20closure=20handover=20=E2=80=94=20na?= =?UTF-8?q?me=20odoo-rs=20PR=20#37/branch=20for=20the=20plan-doc=20path=20?= =?UTF-8?q?(codex=20P2)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The forward-plan path is not on odoo-rs main yet; a reader from merged repos would hit a missing file. Reference the PR + branch + commit explicitly until #37 lands. --- .claude/handovers/2026-07-16-odoo-transpile-arc-closure.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.claude/handovers/2026-07-16-odoo-transpile-arc-closure.md b/.claude/handovers/2026-07-16-odoo-transpile-arc-closure.md index e317416..7d5b8de 100644 --- a/.claude/handovers/2026-07-16-odoo-transpile-arc-closure.md +++ b/.claude/handovers/2026-07-16-odoo-transpile-arc-closure.md @@ -38,4 +38,7 @@ green. Branch `claude/odoo-rs-v3-ogar-transpile-nwriny` reset to main `FieldMask` — never route RBAC through `ClassRbac::field_mask` narrow. Authoritative forward plan: odoo-rs -`docs/HANDOVER-2026-07-16-transpile-plan-v3.md`. +`docs/HANDOVER-2026-07-16-transpile-plan-v3.md` — landing via **odoo-rs +PR #37**; until that merges, the file lives on the odoo-rs branch +`claude/odoo-rs-v3-ogar-transpile-nwriny` (commit `593b9c2`), not on +odoo-rs `main`.