Repository navigation
dir-core: keep the fold's sole Entra→EXO row ordinal in Output - #371
Draft
AdaWorldAPI wants to merge 2 commits into
Draft
AdaWorldAPI wants to merge 2 commits into
AdaWorldAPI wants to merge 2 commits into
Conversation
fold's cloud merge already decides, per Entra row, whether exactly one Exchange Online row names it, then discarded the row. Output now keeps it as entra_mailbox (NO_ROW for none or several), and Ruler::from_fold reads it instead of running a second merge. Consumers binding a hybrid AD->Entra->EXO coordinate no longer need their own Entra->EXO lookup. The ogar-az suite checks the field against a scalar scan on every fixture, including the randomized one, and pins the duplicate and cross-tenant cases. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMMJzKZrYnckXRC8x2U
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMMJzKZrYnckXRC8x2U
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: true
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. |
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.
Summary
fold's cloud merge already decides, per Entra row, whether exactly one Exchange Online row names it. It then threw the row away, andRuler::from_foldre-ran the same merge to recover it.This PR keeps the row in
Output::entra_mailbox: the EXO row ordinal, orNO_ROWwhen no row or several rows name the Entra id. A choice is never made.Ruler::from_foldnow reads that field instead of merging a second time. Theixparameter is unused now; it stays in the signature (as_ix) so callers keep compiling.Why: a consumer that binds a hybrid AD→Entra→EXO coordinate (lance-graph's ordinal-chain lab, follow-up to lance-graph #1962) used to need its own Entra→EXO lookup. That lookup was a second correspondence engine, and it goes away.
Behaviour change
None for existing fields.
Outputgains one public field. No code in OGAR or lance-graph buildsOutputwith a struct literal (checked by grep), so nothing breaks.Validation
ogar-az --test correspond: 18/18.run_encodednow comparesentra_mailboxagainst a scalar linear scan on every fixture, including the randomized one.[0], two mailboxes →[NO_ROW], and a newmailbox_ordinal_does_not_cross_tenants(same external id in two bound tenants →[1, 0]).sole(x)with a first match makesexchange_online_dangling_and_duplicatefail. The randomized fixture does not generate duplicate mailboxes, so the targeted test is the one that catches this.cargo clippy -p ogar-dir-core -p ogar-az --all-targets -- -D warnings: clean. fmt: clean.ogar-dir-coreandogar-azsuites: all green.Merge this before the paired lance-graph PR, whose CI checks out OGAR
main.Generated by Claude Code