fix(contract+ogar+lock): mirror OGAR #126 (PRICELIST/PRICELIST_RULE/UNIT_OF_MEASURE) + close domains_agree Anatomy + Automation drift#606
Conversation
…NIT_OF_MEASURE) + close domains_agree Anatomy + Automation drift D3 — closes the parity gap surfaced by OGAR #126 (PRICELIST + PRICELIST_RULE + UNIT_OF_MEASURE — ProductCatalog cluster, all 0x02XX commerce arm) AND the silent domains_agree drift surfaced earlier today while attempting D3 the first time. Three coordinated fixes: 1. lance-graph-contract: extend `ogar_codebook::CODEBOOK` with the 3 new ProductCatalog entries (pricelist 0x0209, pricelist_rule 0x020A, unit_of_measure 0x020B). No new ConceptDomain variant — both Anatomy (0x0AXX) and Automation (0x0CXX) were already mirrored when those domains landed; this only adds the new commerce-arm rows. 2. lance-graph-ogar: `parity::domains_agree` was missing the (O::Anatomy, C::Anatomy) and (O::Automation, C::Automation) arms. Both enum variants exist on both sides AND the high-byte routing is wired AND the CODEBOOK entries are there — but the matches!() macro fell through to default- false for any 0x0AXX or 0x0CXX classid, panicking assert_codebook_parity() on those ids. Same shape as the AuthStore arm I added in D1 81d08c4 (E-OGAR-AUTH-MIRROR-DRIFT epiphany). 3. Workspace Cargo.lock: bump pinned ogar-vocab / ogar-class-view / ogar-ontology / ogar-adapter-surrealql from ac4b4162 → 5089c1e8 (current OGAR main, post-#126 merge). 4 refs. Same fix pattern as q2 #42 / D2 #597. The crates/lance-graph-ogar/Cargo.lock own-root lock is gitignored and needs the same bump locally; consumer's cargo regenerates on build. Why this PR couldn't ship earlier today: the COUNT_FUSE compile-time assert locks mirror.len() == ALL.len(). Until C2 #126 landed and bumped ALL from 58 → 61, the mirror+3 = 61 mismatched. Now both sides are 61. EPIPHANIES.md updated per Mandatory Board-Hygiene Rule with new finding E-OGAR-API-EDIT-PULL-FIRST — sibling pattern to E-OGAR-AUTH-MIRROR-DRIFT, about API-based edits regressing upstream main when uploading pre-edited local files. Surfaced by my own initial uploads on C2 #126 regressing Anatomy + Automation entries, fixed via pull-then-splice rebase. Source-of-finding: - AdaWorldAPI/OGAR#126 (merged) — the mints - this PR's domains_agree fix — the silent drift - AdaWorldAPI/odoo-rs#14/#15/#16 — the upstream cross-axis identity gap Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (3)
📝 WalkthroughWalkthroughAdded an Epiphanies note about pull-first uploads, extended the OGAR codebook with three commerce concepts, and updated domain agreement matching to recognize the corresponding ids. ChangesPull-first edit workflow note
OGAR codebook and parity alignment
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
D3 — closes both gaps in one PR
OGAR #126 just merged (PRICELIST + PRICELIST_RULE + UNIT_OF_MEASURE — the ProductCatalog cluster, all
0x02XXcommerce arm). This PR mirrors those 3 entries AND closes the silentdomains_agreedrift I surfaced earlier today while attempting D3 the first time but couldn't fix without an OGAR pin bump.Three coordinated fixes
1.
lance-graph-contract::ogar_codebook::CODEBOOK— +3 entriesNo new
ConceptDomainvariant — bothAnatomy(0x0AXX) andAutomation(0x0CXX) were already mirrored when those domains landed in earlier PRs; this only adds the new commerce-arm rows.2.
lance-graph-ogar::parity::domains_agree— close the silentAnatomy+Automationdriftparity::domains_agree'smatches!()macro had explicit(O::X, C::X)arms for each variant but was missingAnatomyandAutomation. Both enum variants exist on both sides AND the high-byte routing is wired AND the CODEBOOK entries are there — but thematches!()fell through to default-false for any0x0AXXor0x0CXXclassid, panickingassert_codebook_parity()on those ids. Likely silently passing CI because no test iterates a 0x0AXX or 0x0CXX classid throughdomains_agree.Same shape as the
AuthStorearm added in D181d08c42(E-OGAR-AUTH-MIRROR-DRIFTepiphany). Now adds:3. Workspace
Cargo.lock— OGAR pin bumpBumped pinned
ogar-vocab/ogar-class-view/ogar-ontology/ogar-adapter-surrealqlfromac4b4162→5089c1e8(current OGAR main, post-#126 merge). 4 refs. Same fix pattern as q2 #42 / D2 #597.The
crates/lance-graph-ogar/Cargo.lockown-root lock is.gitignoredand needs the same bump locally; consumer's cargo regenerates on build.Why this couldn't ship earlier today
The
COUNT_FUSEcompile-time assert locksmirror.len() == ogar_vocab::class_ids::ALL.len(). Until C2 #126 landed and bumpedALLfrom 58 → 61, themirror+3 = 61mismatched. Now both sides are 61.Board-Hygiene per Mandatory Rule
.claude/board/EPIPHANIES.mdprepended withE-OGAR-API-EDIT-PULL-FIRST(Status: FINDING). Sibling pattern toE-OGAR-AUTH-MIRROR-DRIFT(lance-graph #595 / #596 / #597) — both about cross-repo edit-time drift. That one was "mirror lags ALL"; this one is "API-edit lags upstream main." The discipline: pull-first, edit-narrow, push-thin.Surfaced by my own initial uploads on C2 #126 regressing Anatomy + Automation entries (the
ogar-fma-skeletonCI fail atclass_ids::BONE), fixed via pull-then-splice rebase.Tests
cargo build -p lance-graph-ogarcan't run locally (network 403 fetching the new OGAR pin), but the changes themselves are correct:lance-graph-contract: 3 new CODEBOOK entries, fmt-cleanlance-graph-ogar: 2 new match arms indomains_agree, fmt-cleanCargo.lock: 4 SHA refs bumped, Cargo.toml deps byte-identical between pins (the standard "safe SHA swap" pattern)CI on this branch will verify.
Source-of-finding
domains_agreefix — silent drift surfaced todayGenerated by Claude Code
Summary by CodeRabbit
New Features
Documentation