Repository navigation
glove-parity: refuse two populations of one relation target concept (#1514 follow-up) - #1516
Conversation
A call names one population per target concept, so a method whose two relations reach the same concept in different universes cannot say which one each relation reads. Preparation now refuses it (ConflictingUniverse) instead of keeping the first. Codex review on #1514. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011BMJnDBAfzcuQh5HeT39Rh
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011BMJnDBAfzcuQh5HeT39Rh
|
Warning Review limit reachedYour organization has reached its usage spending cap. Adjust your spending cap in the billing tab. Next included review available in 50 minutes. View limit details
Warning Billing warning: we have not been able to collect payment for this subscription for more than 72 hours. Please update the payment method or pay any pending invoices in Billing to avoid service interruption. Comment |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
What
This carries the Codex finding on #1514 into main. The fix (
74f4be9) was pushed seconds after #1514 merged, so it never landed.The bug: a method can read two relations whose targets are the same concept in different populations. Preparation kept only the first population. A call that named that population passed the check, but the program still read the second relation's planes, so data from two populations could mix.
The fix: preparation now refuses the method with
PrepareError::ConflictingUniverse(concept). A call names one population per concept, so the conflict can't be resolved at call time and is refused up front.Evidence
two_populations_of_one_target_concept_are_refused, with a silence twin: the same population reached through both relations still prepares.tests/relation.rspasses 8/8; the crate's full suite and clippy (-D warnings) were green when the fix commit was made, and clippy is clean again on this branch.Board
STATUS_BOARD.mdand plangremlin-composable-algebra-v1.md: D-CMH-G1-4a marked Shipped (glove-parity: functional relation carrier — out(rel) as a method (D-CMH-G1-4a) #1514).ConflictingUniverserule.🤖 Generated with Claude Code
https://claude.ai/code/session_011BMJnDBAfzcuQh5HeT39Rh
Generated by Claude Code