feat(od-ontology): readable concept name in catalog COMMENT + consume OGAR #97 app composition#5
Merged
Conversation
…7 app composition Consumes the OGAR Core dependencies from the #95→#97→#98 chain: - OGAR #98 (`canonical_concept_name`, the id→name reverse map): `emit_via_ogar_annotated` now stamps the readable concept NAME + classid into the catalog COMMENT — `COMMENT 'commercial_document (classid:0x00020202)'` instead of bare hex — via `ogar_vocab::canonical_concept_name`, never re-derived locally. This was the PROBE-OGAR-ID-TO-CONCEPT-NAME ask. - OGAR #97 (`PortSpec::APP_PREFIX` + `app::render_classid_for`): `ODOO_APP_PREFIX` is now bound to `OdooPort::APP_PREFIX` (not a 0x0002 literal), and `render_classid` delegates to `app::render_classid_for::<OdooPort>` (not a hand-rolled `(prefix<<16)|concept`). The prefix allocation and the composition live once, in the Core — no consumer-side copy to drift. Rev bumped to OGAR main 7e677185 (#95+#96+#97+#98; OdooPort + the 9 ODOO_ALIASES byte-identical across the range, re-verified). #99 (SurrealQL-AST-trap governance) compliance: this is identity-layer only — the path lowers onto `ogar_vocab::Class` + emits via the canonical `ogar-adapter-surrealql`, and the COMMENT carries identity (concept + classid), never `-- @action/@state/@lifecycle` behavior. It does NOT extend the `surreal_ast` fork. Probe doc updated: W3.3 fork-deletion is lifecycle → `Class+ActionDef`, NOT teaching the adapter to emit `DEFINE EVENT`. 32 lib + 6 bin + 7 convergence + 23 integration green under cli,ogar-emit; clippy 0; fmt-clean. README + UPSTREAM_WISHLIST updated. 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. |
This was referenced Jun 22, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Consumes the OGAR Core dependencies from the #95 → #97 → #98 chain so
odoo-rs stops re-deriving what the Core now owns.
canonical_concept_name(id→name reverse map)emit_via_ogar_annotatedstamps the readable concept name + classid into the catalog COMMENTPortSpec::APP_PREFIX+app::render_classid_forODOO_APP_PREFIXbinds toOdooPort::APP_PREFIX;render_classiddelegates toapp::render_classid_for::<OdooPort>Before → after (emitted DDL)
The concept name comes from
ogar_vocab::canonical_concept_name— neverre-derived locally (Core-First). This closes the name half of
PROBE-OGAR-ID-TO-CONCEPT-NAME.Core-First cleanup (OGAR #97)
ODOO_APP_PREFIXwas a local0x0002literal andrender_classidhand-rolled(prefix << 16) | concept. Both now route through the Core: the prefixallocation and the composition live once, in
ogar_vocab. No consumer copyto drift.
OGAR #99 (SurrealQL-AST-trap) compliance
Ran the spellbook's Q1–Q5 mirror. This change is identity-layer only: it
lowers onto
ogar_vocab::Classand emits via the canonicalogar-adapter-surrealql; the COMMENT carries identity (concept + classid),never
-- @action/@state/@lifecyclebehavior; it does not extend thesurreal_astfork. Probe doc updated to record the #99 reframing of W3.3:the fork-deletion end-state moves lifecycle to
Class + ActionDef, notteaching the adapter to emit
DEFINE EVENT.Dependency
Rev bumped to OGAR main
7e677185(#95 medcare + #96 convergence-pin + #97app-prefix + #98 reverse-map). OdooPort + the 9
ODOO_ALIASESare byte-identicalacross the range (re-verified). #97 + #98 are merged, so this builds against
canonical main.
Tests
32 lib + 6 bin + 7 convergence + 23 integration/doc green under
--features cli,ogar-emit; clippy 0; fmt-clean. Examplecargo run --example classid_pull --features ogar-emitshows the readable COMMENT.Refs: OGAR #97/#98/#99. Builds on merged odoo-rs #3.