Skip to content

Commit ade51df

Browse files
authored
Merge pull request #606 from AdaWorldAPI/claude/contract-mirror-pricelist-uom-from-ogar-c2
fix(contract+ogar+lock): mirror OGAR #126 (PRICELIST/PRICELIST_RULE/UNIT_OF_MEASURE) + close domains_agree Anatomy + Automation drift
2 parents 1b848a8 + 56d884d commit ade51df

4 files changed

Lines changed: 42 additions & 4 deletions

File tree

.claude/board/EPIPHANIES.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,34 @@
1+
## 2026-06-23 — E-OGAR-API-EDIT-PULL-FIRST — API-based file edits MUST pull-then-splice; uploading pre-edited local files regresses upstream main
2+
3+
**Status:** FINDING (caught in OGAR #126 CI failure mid-PR-life).
4+
5+
When network 403s block direct git push to OGAR, the fallback is PyGithub's
6+
`update_file()` API. The trap: if the locally-edited file was based on a
7+
*stale* checkout of OGAR main (e.g. `/tmp/ogar-work` at `ac4b4162` while
8+
remote main is at `a3574bdf`), then the API upload *overwrites* the upstream
9+
changes between the two commits — silently regressing entries that landed
10+
between them.
11+
12+
In OGAR #126, my initial uploads were against `/tmp/ogar-work@ac4b4162` (pre-
13+
Anatomy + pre-Automation). The OGAR main had landed PRs #112-#125 in between,
14+
adding the Anatomy domain (`anatomical_structure`/`skeleton`/`bone`/`joint`)
15+
and the Automation domain. My uploads regressed those entries. CI fired on
16+
`ogar-fma-skeleton` referencing `ogar_vocab::class_ids::BONE` which was
17+
present on main but absent from my upload.
18+
19+
**Fix:** for every API-based file edit, **pull `main`'s current content FIRST**
20+
(via `r.get_contents(path, ref="main")`), apply only the targeted deltas via
21+
string-anchor splicing, and upload the result. Never upload a locally-prepared
22+
file when the working tree might be stale.
23+
24+
**Cross-ref:** sibling pattern to `E-OGAR-AUTH-MIRROR-DRIFT` (lance-graph
25+
#595 / #596 / #597) — both are about cross-repo edit-time drift. That one
26+
was "mirror lags ALL"; this one is "API-edit lags upstream main." The
27+
discipline is the same: pull-first, edit-narrow, push-thin.
28+
29+
**Source-of-finding:** OGAR #126 CI failure 2026-06-23 (`ogar-fma-skeleton`
30+
referencing `class_ids::BONE`).
31+
132
## 2026-06-24 — E-CLASSID-FMA-PATIENT-COLLISION — `CLASSID_FMA = 0x0901` aliased OGAR `patient`; retargeted to the Anatomy domain `0x0A01`
233

334
**Status:** FINDING + FIX (2026-06-24). Surfaced by OGAR's NodeGuid canon audit

Cargo.lock

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/lance-graph-contract/src/ogar_codebook.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -307,6 +307,11 @@ pub const CODEBOOK: &[(&str, u16)] = &[
307307
// odoo-rs PR #14.
308308
("product", 0x0207),
309309
("accounting_account", 0x0208),
310+
// ProductCatalog cluster (OGAR #126): closes 3 more of the 11 cross-axis
311+
// gaps surfaced by odoo-rs PR #14. All stay in 0x02XX commerce arm.
312+
("pricelist", 0x0209),
313+
("pricelist_rule", 0x020A),
314+
("unit_of_measure", 0x020B),
310315
// ── 0x09XX — Health domain (MedCare; OGIT NTO/Healthcare promotion) ──
311316
("patient", 0x0901),
312317
("diagnosis", 0x0902),

crates/lance-graph-ogar/src/lib.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,9 @@ pub mod parity {
140140
| (O::Osint, C::Osint)
141141
| (O::Ocr, C::Ocr)
142142
| (O::Health, C::Health)
143+
| (O::Anatomy, C::Anatomy)
143144
| (O::Auth, C::Auth)
145+
| (O::Automation, C::Automation)
144146
| (O::Unassigned, C::Unassigned)
145147
)
146148
}

0 commit comments

Comments
 (0)