Skip to content

lgj-abi: bind the real OGAR ClassView provider behind a feature - #42

Merged
AdaWorldAPI merged 1 commit into
mainfrom
claude/c64-6502-falsifier-shztkk
Aug 27, 2026
Merged

lgj-abi: bind the real OGAR ClassView provider behind a feature#42
AdaWorldAPI merged 1 commit into
mainfrom
claude/c64-6502-falsifier-shztkk

Conversation

@AdaWorldAPI

Copy link
Copy Markdown
Owner

What

edge_participation answered FieldMask::FULL for every classid — the fixture's constant. This binds ogar_class_view::OgarClassView (the ontology-backed provider over ogar_vocab) behind a new ogar-classview feature, so participation derives from each class's real field basis instead.

Closes the §4-NG3 named seam ("a real ontology/cache provider is a NAMED SEAM") on the provider half.

Measured

examples/classview_census.rs (new):

distinct participation masks over 98 registered classes
fixture 1 (0xFFFFFFFF for all 98)
real provider 12 (field counts 0–13)

An unregistered classid participates in nothing rather than everything — an unknown class is not a licence to traverse every facet.

The [patch] is load-bearing, not cosmetic

ogar-class-view pulls lance-graph-contract by git branch; this crate pulls it by path. Cargo does not unify a git SourceId with a path SourceId, so without the patch the build carries two lance-graph-contract crates and therefore two incompatible ClassView traits — the same trap recorded in tesseract-rs for ogar-doc-ir. Verified: cargo tree shows one, both resolving to the local path.

What binding it EXPOSED — the finding

The generated row store draws classids from 0..16 (ROWSTORE_CLASS_CARDINALITY); every vocabulary classid is >= 0x0100. The two domains are disjoint, so a generated store under the real provider hops nothing.

That is not a defect in the provider — it is the measurement of how far the fixture reached. FieldMask::FULL is the answer that never disagrees, which is exactly why it could not be falsified in place; the seam read as closed-enough for two waves because nothing in the suite could tell the two providers apart. The remaining fixture is the row content, not the layout or the kernels; Lance-loaded SoA rows are what make the bound provider observable end-to-end. Pinned by hop_under_the_real_provider_narrows_by_class, not left in prose.

Two gated tests, each with a contrasting twin

Neither is deleted or suppressed. Each asserts the opposite fact on the same inputs:

gated OFF under the feature paired ON twin
edge_participation_covers_exactly_the_low_32_bits (all 32) the_real_provider_narrows_rather_than_widens (unregistered → 0; richest registered class → exactly its low-13 prefix)
hop_matches_the_pinned_rowstore_regression_10_19_29 (19/29) hop_under_the_real_provider_narrows_by_class (empty — and two-sided: the provider still answers 13 for 0x0103, so emptiness is the store's domain, not a dead provider)

Gates

  • Default (feature OFF): 134/134 rust, 447/447 Java (304 core + 143 consumer) — unchanged.
  • Feature ON: 136/136.
  • Disable-run (edge_participation's ogar arm returns FULL): 5 tests red, green on restore.
  • clippy --all-targets -- -D warnings and fmt --check clean in both configurations.
  • G11 contract-import fence green: class_view, canonical_node, ontology, facet only.

Board artifacts land in this commit: LATEST_STATE.md entry and EPIPHANIES.md E-BINDING-A-REAL-PROVIDER-MEASURES-THE-FIXTURE-1.


Generated by Claude Code

`edge_participation` answered `FieldMask::FULL` for every classid — the
fixture's constant. Bind `ogar_class_view::OgarClassView` behind a new
`ogar-classview` feature so it derives from each class's real field basis.

Measured (`examples/classview_census.rs`): 98 registered classes, 12
distinct participation masks (field counts 0-13), against the fixture's
single 0xFFFFFFFF for all 98. An unregistered classid participates in
nothing rather than everything.

The `[patch]` is load-bearing: ogar-class-view pulls lance-graph-contract
by git branch, this crate by path, and cargo does not unify a git SourceId
with a path SourceId — without it the build carries two contract crates
and two incompatible ClassView traits.

What binding it exposed: the generated row store draws classids from 0..16
while every vocabulary classid is >= 0x0100. The domains are disjoint, so
a generated store under the real provider hops nothing. The remaining
fixture is the row CONTENT; Lance-loaded SoA rows are what make the bound
provider observable end-to-end. Pinned by a test, not left in prose.

Two fixture-semantics tests are gated off under the feature, each with a
paired twin asserting the contrasting fact on the same inputs — a changed
answer, not a suppressed failure.

Gates: default 134/134 and Java 447/447 unchanged; feature 136/136; five
tests red-then-green under the disable; clippy -D warnings and fmt clean
in both configurations; G11 fence green (class_view, canonical_node,
ontology, facet only).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DCfrD5y19cvFc4AoyydXYv
@coderabbitai

coderabbitai Bot commented Aug 27, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 221bb44c-2e32-4d96-ad12-909048ecd1a7


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@cursor

cursor Bot commented Aug 27, 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_831f546c-4f41-4a0e-b898-fbd7d4616fc7)

@AdaWorldAPI
AdaWorldAPI marked this pull request as ready for review August 27, 2026 15:10
@AdaWorldAPI
AdaWorldAPI merged commit 507cc93 into main Aug 27, 2026
2 checks passed
AdaWorldAPI added a commit that referenced this pull request Aug 27, 2026
board: PR #42 arc entry + backfill the twenty missing arc entries
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