fix: canonicalize provider fallback on keys#121
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 647e575c29
ℹ️ 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".
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".
| if provider_id in repaired_provider_ids: | ||
| continue | ||
| repaired_provider_ids.add(provider_id) | ||
| local_replacements = {provider_id: repaired_provider} |
There was a problem hiding this comment.
Preserve fallback aliases when rewriting provider siblings
When a provider has another key that aliases the same fallback mapping, for example fallback: &fb ... plus fallback_copy: *fb, this provider-level rewrite only seeds the provider replacement. Because fallback ids are never added to the global replacements, that sibling alias keeps pointing at the original SafeLoader mapping with the coerced True key while fallback points at the repaired mapping with "on", breaking alias identity and exposing two different effective fallback schemas under the same provider path. Include the current fallback/repaired fallback pair in the provider rewrite replacements.
Useful? React with 👍 / 👎.
508e0a4 to
9a2d9b8
Compare
9a2d9b8 to
857a6a1
Compare
|
@codex review Please review the current head |
|
Codex Review: Didn't find any major issues. You're on a roll. 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". |
Summary
providers.<category>.<provider>.fallback.onkey while retainingyaml.SafeLoader0.2.30release metadata and changelogsCloses #65.
Verification
uv run pytest tests/unit -q(755 passed)uv run ruff check src testsuv run ruff format --check src testsuv run --extra docs mkdocs build --strictgit diff --cached --checkgobbler doctor --jsonsmoke test returned{"on": ["ip_blocked", "rate_limited"], "provider": "transcriptapi"}E2E note
make test-allreached 797 passing tests, with six live YouTube failures caused by external account state: the free transcript API was blocked and TranscriptAPI reported no active paid plan. Unit, integration, and the remaining E2E coverage passed.