Skip to content

dt64: lane binding refuses a predicate change at a bound position (D-DRDT-SPLIT-1 S8) - #2021

Merged
AdaWorldAPI merged 2 commits into
mainfrom
ccr-ca0562e7-hudvlz-s8-predicate
Nov 11, 2026
Merged

AdaWorldAPI merged 2 commits into
mainfrom
ccr-ca0562e7-hudvlz-s8-predicate

Conversation

@AdaWorldAPI

Copy link
Copy Markdown
Owner

S8 of dr-widefieldmask-dt-classview-v1.md §5, which closes D-DT64-7 L5d. Before this change, the hot LaneBinding::check could not detect a view reorder under a positional source: the pinned test finding_the_hot_check_does_not_see_a_view_reorder_under_a_positional_source recorded the gap.

Change

  • bind_lanes now records the predicate IRI each bound position resolved to.
  • The hot check compares that IRI after lane_of. When a reorder puts a different predicate at a bound position, the check refuses with the new LaneRefusal::PredicateChanged { class, field }.
  • No hashing on the hot path. A revision key alone cannot see a reorder that keeps the field count, which is why the comparison is on the recorded predicate.
  • Label-only renames still admit. So do reorders outside the bound positions, which the cold path still refuses as before.
  • The plan row's wording now describes this mechanism. It said "keyed on revision", which cannot detect this case.

Existing behaviour that changed: exactly the case the pinned finding recorded. That test is replaced by a_view_reorder_at_a_bound_position_is_refused_under_a_positional_source.

Evidence

  • cargo test -p lance-graph-dt64: all suites pass (59 + 36 + 20 + 2). clippy -D warnings and fmt are clean.
  • Disable runs. Each anchor was asserted to occur exactly once, each run turned its tests red, and the file was restored afterwards.
    • Guard set to never fire: red on T1, T5, T6.
    • Guard set to always fire: red on T2, T3, T4.
    • An empty predicate recorded at bind: red on T2.
    • Predicates zipped in reverse order: red on T5.
  • cargo run --release --example lane_check_cost measures the whole check (currency, lane_of and the predicate compare):
bound lanes ns per check ns per lane
1 35.31 35.31
4 42.10 10.52
16 82.65 5.17

The refused path at k = 1 costs 34.65 ns.

Not verified

  • The increment over the old check was not measured; no baseline arm was run.
  • S4 (the scoped reader in lance-graph-rbac) builds on this and follows in its own PR.

Generated by Claude Code

bind_lanes records the predicate IRI each bound position resolved to; the
hot check compares it after lane_of and refuses with PredicateChanged
{ class, field } when a view reorder put another predicate at that
position. Label-only renames and reorders outside the bound positions
still admit. No hashing on the hot path.

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

coderabbitai Bot commented Nov 11, 2026 •

Copy link
Copy Markdown

Important

  • Trigger review

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

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: ec993c24-9df3-4ce5-aa56-2c4a94181e24
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 11, 2026 •

Copy link
Copy Markdown
Codex Review Summary: ✅ Completed

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-11T19:58:42.452238Z 08eb7c3 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@AdaWorldAPI
AdaWorldAPI merged commit 0d293e8 into main Nov 11, 2026
13 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