Skip to content

ogar-obo: row_schema_of accepts both address forms of an aliased namespace - #294

Merged
AdaWorldAPI merged 2 commits into
mainfrom
claude/medcare-rs-continue-6nhbxn
Aug 31, 2026
Merged

ogar-obo: row_schema_of accepts both address forms of an aliased namespace#294
AdaWorldAPI merged 2 commits into
mainfrom
claude/medcare-rs-continue-6nhbxn

Conversation

@AdaWorldAPI

@AdaWorldAPI AdaWorldAPI commented Aug 31, 2026

Copy link
Copy Markdown
Owner

Follow-up to #293, found by MedCare's consumption suite: the flip set the reader rule at from_concept_id (both 0x0301 and 0x9101 resolve Mondo), but row_schema_of still probed the registry with the raw concept id — so a pre-flip artifact's legacy ids stopped resolving the row carve the moment the registry minted the domain forms. A legacy artifact carries exactly this carve; its ids must resolve it.

Fix: fold through the namespace alias before the registry probe. Concepts without an alias (PATO/RO, spine, foreign) probe as themselves; 0x0306 and non-OBO ids stay refused, pinned by the existing foreign_concepts_are_refused_not_guessed.

New falsifier legacy_alias_concepts_resolve_to_the_same_schema (red on the pre-fix code by construction — the legacy trio is in no registry).

Gates: ogar-obo 49/49, clippy --all-targets clean, fmt clean.

🤖 Generated with Claude Code

https://claude.ai/code/session_01PFnYKqw6d7TTiB9cT8eFdK


Generated by Claude Code

Summary by CodeRabbit

  • Bug Fixes
    • Improved compatibility with legacy concept IDs when resolving row schemas.
    • Legacy aliases 0x03010x0303 now resolve to the same schemas as their canonical IDs.

…space

The S3 producer flip (#293) set the reader rule at from_concept_id —
both 0x0301 and 0x9101 resolve Mondo — but row_schema_of still probed
the registry with the RAW concept id, so a pre-flip artifact's legacy
ids stopped resolving the carve the moment the registry minted the
domain forms. Fold through the namespace alias before the registry
probe; concepts without an alias (PATO/RO, spine, foreign) probe as
themselves, and 0x0306 / non-OBO ids stay refused.
@cursor

cursor Bot commented Aug 31, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_0767c68e-ce5c-4355-88ed-ae656d11037e)

@coderabbitai

coderabbitai Bot commented Aug 31, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

Next included review available in 56 minutes.

View limit details

Limit details: You’ve used the included review currently available. Your 62 included PR review attempts over the past 7 days set your current allowance at 1 review per hour.

Your organization has reached its usage spending cap. Adjust your spending cap in the billing tab.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 911a0f98-f3f9-42a2-b668-adb4d7ed9529

📥 Commits

Reviewing files that changed from the base of the PR and between c4ba85b and 6392bcf.

📒 Files selected for processing (1)
  • crates/ogar-obo/src/crosswalk.rs

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 592c183f-a655-4e1f-a827-76dfdface2bd

📥 Commits

Reviewing files that changed from the base of the PR and between fbce8d5 and c4ba85b.

📒 Files selected for processing (1)
  • crates/ogar-obo/src/layout.rs

Included review availability: 0 reviews are currently available. Your included PR review attempts over the past 7 days set your current allowance at 1 review per hour.


📝 Walkthrough

Walkthrough

row_schema_of now canonicalizes legacy aliased concept IDs before checking OBO Core and META Study Spine schemas. Tests confirm that aliases 0x0301, 0x0302, and 0x0303 resolve to OBO_CORE_ROW.

Changes

Row schema lookup

Layer / File(s) Summary
Canonicalize row schema IDs
crates/ogar-obo/src/layout.rs
row_schema_of converts aliased concept IDs to canonical IDs before registry lookup. Tests verify resolution for aliases 0x03010x0303.

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk: ⚪ Minimal · up to c4ba8

This localized change makes aliased legacy namespace identifiers resolve to the intended row schema while preserving refusal of unsupported identifiers; no actionable merge-blocking risk remains after normal checks and review.

Poem

I twitch my nose at aliases old,

Canonical paths now neatly fold.
Three legacy IDs join the queue,
The row schema lookup sees them through,
And OBO Core greets them true.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: row_schema_of now accepts both legacy and canonical address forms for an aliased namespace.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 4 functions across 1 files.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch

Comment @coderabbitai help to get the list of available commands.

The two export constants were literals (0x0303/0x0301) and the flip
missed them — resolve_fma rendered 0x9303 while ANATOMY_CLASSID still
said 0x0303, caught by MedCare's conformance suite. Derived from
Namespace::concept_id() so they can never disagree with the renderer
again.
@AdaWorldAPI
AdaWorldAPI merged commit 3f70fdf into main Aug 31, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants