Validate each route in isolation at registration - #34
Merged
Conversation
Codex caught a hole in the intersection probe: the resolver received the ENTIRE route list, so a valid sibling satisfied the allowlist on behalf of the route under test. Upstream /base with routes [/a, /base] probed /a's deeper path (/base) against the whole list, /base vouched for it, and the permanently unservable /a was accepted — exactly the dead-route class the check exists to reject. The allowlist handed to the resolver is now the single route under test. Every prior case still holds: a route under the base path, a route CONTAINING the base path, divergent textual siblings (/a vs /ab), and the default set against a base-path upstream. Test: [/a, /base] against upstream /base must be rejected; fails with the full-list probe restored. Go suite: pass. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Owner
Author
|
@codex review |
|
Codex Review: Didn't find any major issues. Delightful! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
DigiBugCat
added a commit
that referenced
this pull request
Jul 28, 2026
Carries #34: registration validates each route in ISOLATION, so a valid sibling in the same request can no longer satisfy the allowlist on behalf of a permanently unservable route. Tree taken wholesale from main; `git diff origin/main HEAD` is empty. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
DigiBugCat
added a commit
that referenced
this pull request
Jul 28, 2026
Carries #34: registration validates each route in ISOLATION, so a valid sibling in the same request can no longer satisfy the allowlist on behalf of a permanently unservable route. Tree taken wholesale from main; `git diff origin/main HEAD` is empty. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.
Codex caught a hole in #31's intersection probe (raised on promotion PR #32): the resolver received the entire route list, so a valid sibling satisfied the allowlist on behalf of the route under test — upstream
/basewith routes[/a, /base]accepted the permanently unservable/a, exactly the dead-route class the check exists to reject.The allowlist handed to the resolver is now the single route under test. All prior cases still hold (route under the base path, route containing the base path, divergent siblings
/avs/ab, default set against a base-path upstream). New test fails with the full-list probe restored.🤖 Generated with Claude Code