docs: correct the redirect-matching and IdP-support claims #8
No reviewers
Labels
No labels
waiting-on-julian
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
jlxq0/carddav-mcp!8
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "docs/correct-redirect-and-idp-claims"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Three prose claims that are false, in one PR because none of them is testable
and all three were found by reading rather than by a failure.
README.md— "Redirect URIs are exact matches"False since v0.1.3.
matches_loopback_entry(src/oauth_redirect.rs:43)relaxes the port for cleartext loopback entries, as RFC 8252 §7.3 requires.
This is the public-facing one and it is actively harmful: it tells an operator
to allowlist every ephemeral port a native client might bind, which is the
conclusion that produced #5 and locked the Claude Code CLI out with
unregistered redirect_uri. Replaced with the actual rule, including what isstill exact (scheme, host, path, query, and the full string for
httpsandprivate-use entries).
AGENTS.md— "Logto or another OIDC provider"Contradicted by
README.md:44("Logto-compatible, not arbitrary-OIDCcompatible") and by AGENTS.md's own Known Pitfalls forty lines below it. Two
correct statements and one stale one in a single file is worse than being
wrong throughout, because a reader who finds an accurate one first has no
reason to keep looking.
No
CLAUDE.mdCodex reads
AGENTS.mdand gets the whole pitfall list; Claude got nothing.One line,
@AGENTS.md, per the repo convention.Verification
Five gates green at
12395a1on rustc 1.98.0, which is what CI'stoolchain: stableresolves to today:cargo fmt --all --check,cargo clippy --all-targets --all-features --locked -- -D warnings,cargo test --all-features --locked(92 passed),cargo auditagainst thefinished lockfile,
cargo deny check bans licenses sources.This change is not test-covered and cannot be. No assertion can catch
prose that contradicts a passing test, which is precisely how the README line
survived #6. Rather than add a token assertion that pretends otherwise, the
behaviour the new wording describes was verified by removal: replacing the
body of
matches_loopback_entrywithreturn false, which is exactly thebehaviour the old README described, turns
loopback_entry_matches_any_portand
loopback_port_relaxation_does_not_relax_host_or_pathred and leaves theother 90 tests green. The suite rejects the state the README documented.
Deployment unaffected: docs only, no
Cargo.toml,Dockerfileor workflowchange.
v0.1.3stays the released version.