-
Notifications
You must be signed in to change notification settings - Fork 0
feat(contract): FMA-V3 + CPIC-V3 mints + Genetics domain — Phase 1 V3 set complete #618
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 1 commit
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 |
|---|---|---|
|
|
@@ -74,7 +74,13 @@ pub enum ConceptDomain { | |
| /// bridge) and from `Health` PHI. Mirrors OGAR | ||
| /// `ogar_vocab::ConceptDomain::HR` (added in OGAR PR #127). | ||
| HR, | ||
| /// Any high-byte slot not yet assigned a domain (`0x03XX`–`0x06XX`, `0x0EXX`+). | ||
| /// `0x0EXX` — Genetics (pharmacogenomics; CPIC gene–drug guidelines, variant | ||
| /// annotations). Public reference knowledge, distinct from `Health` PHI. | ||
| /// Operator-allocated 2026-06-26 (`0x0D` was already HR). Mirror target | ||
| /// `ogar_vocab::ConceptDomain::Genetics` — OGAR catches up under the drift | ||
| /// guard (the parity tests pin `0x0E00 → Genetics`). | ||
| Genetics, | ||
|
Comment on lines
+77
to
+82
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. 🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win Update the OGAR parity bridge for Adding Also applies to: 104-104 🤖 Prompt for AI Agents |
||
| /// Any high-byte slot not yet assigned a domain (`0x03XX`–`0x06XX`, `0x0FXX`+). | ||
| Unassigned, | ||
| } | ||
|
|
||
|
|
@@ -95,6 +101,7 @@ pub fn canonical_concept_domain(id: u16) -> ConceptDomain { | |
| 0x0B => ConceptDomain::Auth, | ||
| 0x0C => ConceptDomain::Automation, | ||
| 0x0D => ConceptDomain::HR, | ||
| 0x0E => ConceptDomain::Genetics, | ||
| _ => ConceptDomain::Unassigned, | ||
| } | ||
| } | ||
|
|
@@ -439,7 +446,9 @@ mod tests { | |
| assert_eq!(canonical_concept_domain(0x0D01), ConceptDomain::HR); | ||
| assert_eq!(canonical_concept_domain(0x0D04), ConceptDomain::HR); | ||
| assert_eq!(canonical_concept_domain(0x0500), ConceptDomain::Unassigned); | ||
| assert_eq!(canonical_concept_domain(0x0E00), ConceptDomain::Unassigned); | ||
| // Genetics (0x0E) operator-allocated 2026-06-26 for CPIC-V3 (was Unassigned). | ||
| assert_eq!(canonical_concept_domain(0x0E00), ConceptDomain::Genetics); | ||
| assert_eq!(canonical_concept_domain(0x0F00), ConceptDomain::Unassigned); | ||
| } | ||
|
|
||
| #[test] | ||
|
|
||
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.
When
guid-v3-tailis enabled and callers project rows for these newly registered V3 classids,mint_for(... TailVariant::V3 ...)storesleafin bytes 10..12 and the actual family in bytes 12..14, butsoa_graph::project_snapshot/nearest_anchorstill group, label, and anchor rows with the V1row.key.family()/identity()decoding from bytes 10..13 and 13..16. That pollutes FMA_V3/CPIC_V3 family IDs with the leaf byte, so family nodes, adapter-edge resolution, and anchor matching won't correspond to the minted V3 family; update those consumers to branch on the resolved tail variant (e.g. usefamily_v2/identity_v2for V3) before enabling these read-mode entries.Useful? React with 👍 / 👎.