diff --git a/crates/lance-graph-contract/src/ogar_codebook.rs b/crates/lance-graph-contract/src/ogar_codebook.rs index 2094926f3..cd15f062d 100644 --- a/crates/lance-graph-contract/src/ogar_codebook.rs +++ b/crates/lance-graph-contract/src/ogar_codebook.rs @@ -54,9 +54,6 @@ pub enum ConceptDomain { Ontology, /// `0x04XX` — Weather / Atmosphere. Shared forecast and atmospheric cells. Weather, - /// `0x05XX` — Mail (mailbox + message). Mirrors - /// `ogar_vocab::ConceptDomain::Mail`. - Mail, /// `0x07XX` — OSINT (open-source intelligence / Palantir-Gotham). Osint, /// `0x08XX` — OCR (optical character recognition / document extraction). @@ -126,7 +123,7 @@ pub enum ConceptDomain { /// lifted program references. Mirrors `ogar_vocab::ConceptDomain::Mmio` /// (OGAR PR #284, 2026-08-25). Mmio, - /// Any high-byte slot not yet assigned a domain (`0x06XX`, + /// Any high-byte slot not yet assigned a domain (`0x05XX`–`0x06XX`, /// `0x10XX`–`0x16XX`, `0x18XX`–`0xBFXX`, `0xC2XX`–`0xC3XX` — a /// DELIBERATE gap, pinned like OGAR's own `0x10`–`0x16` — and /// `0x90XX` — reference (domain reference tree). HIGH byte = compartment, LOW @@ -190,7 +187,6 @@ pub fn canonical_concept_domain(id: u16) -> ConceptDomain { 0x98 => ConceptDomain::Procedure, 0x9A => ConceptDomain::Form, 0x04 => ConceptDomain::Weather, - 0x05 => ConceptDomain::Mail, 0x07 => ConceptDomain::Osint, 0x08 => ConceptDomain::Ocr, 0x09 => ConceptDomain::Health, @@ -635,9 +631,6 @@ pub const CODEBOOK: &[(&str, u16)] = &[ // remain ClassView-owned payload structure, not promoted concept rows. ("weather_cell", 0x0401), ("weather_static_cell", 0x0402), - // ── 0x05XX — Mail domain (mailbox + message; spear / stalwart) ── - ("mailbox", 0x0501), - ("mail_message", 0x0502), // ── 0x08XX — OCR domain (document extraction; the Tesseract-rs arc) ── // Class-level container KINDS only (the 5+3-hardened mint discipline): // the concept slots name the container types the OGAR Core resolves — @@ -703,6 +696,9 @@ pub const CODEBOOK: &[(&str, u16)] = &[ ("auth_zitadel", 0x0B02), ("auth_zanzibar", 0x0B03), ("auth_ory_keto", 0x0B04), + // `email` (OGIT `ogit:Email`) in the IAM domain above the AuthStore + // profiles; spear plugs it. + ("email", 0x0B05), // ── 0x0DXX — HR domain (employment / org / contracts; OGAR PR #127) ── // Closes the final 4-of-11 cross-axis identity gap surfaced by odoo-rs // PR #14: hr.employee / hr.department / hr.job / hr.contract. @@ -877,8 +873,7 @@ mod tests { assert_eq!(canonical_concept_domain(0x0C09), ConceptDomain::Automation); assert_eq!(canonical_concept_domain(0x0D01), ConceptDomain::HR); assert_eq!(canonical_concept_domain(0x0D04), ConceptDomain::HR); - assert_eq!(canonical_concept_domain(0x0500), ConceptDomain::Mail); - assert_eq!(canonical_concept_domain(0x0600), ConceptDomain::Unassigned); + assert_eq!(canonical_concept_domain(0x0500), ConceptDomain::Unassigned); assert_eq!(canonical_concept_domain(0x0E00), ConceptDomain::Genetics); assert_eq!(canonical_concept_domain(0x0F00), ConceptDomain::Geo); assert_eq!(canonical_concept_domain(0x0300), ConceptDomain::Ontology); @@ -960,8 +955,7 @@ mod tests { assert_eq!(canonical_concept_id("currency_policy"), Some(0x0206)); assert_eq!(canonical_concept_id("weather_cell"), Some(0x0401)); assert_eq!(canonical_concept_id("weather_static_cell"), Some(0x0402)); - assert_eq!(canonical_concept_id("mailbox"), Some(0x0501)); - assert_eq!(canonical_concept_id("mail_message"), Some(0x0502)); + assert_eq!(canonical_concept_id("email"), Some(0x0B05)); assert_eq!(canonical_concept_id("unicharset"), Some(0x0801)); assert_eq!(canonical_concept_id("charset"), Some(0x0803)); assert_eq!(canonical_concept_id("patient"), Some(0x0901));