Skip to content

feat(providers): add Yolo-Auto compatible host - #6408

Open
harryvgiunta wants to merge 1 commit into
Hmbown:mainfrom
harryvgiunta:feat/yolo-auto-compatible-host
Open

harryvgiunta wants to merge 1 commit into
Hmbown:mainfrom
harryvgiunta:feat/yolo-auto-compatible-host

Conversation

@harryvgiunta

@harryvgiunta harryvgiunta commented Sep 23, 2026

Copy link
Copy Markdown

Summary

Adds Yolo-Auto as a data-driven compatible-host descriptor. Yolo-Auto is a flat-rate OpenAI Chat Completions gateway, so no ProviderKind variant is needed — the wire is ordinary Chat Completions (see #6289 for the wire survey this follows).

The row ships endpoint, credential env (YOLO_AUTO_API_KEY), and a bootstrap model (yolo) only, with discovery: models_endpoint and no compiled roster — the same shape every other compatible host uses. Model ids stay out of the compiled catalog by design.

Billing: the gateway sells flat-rate subscription tiers and publishes no per-token catalog, so billing_surface_for_route classifies the route Unknown (the ApiProvider::Custom path). The route is recorded in the reviewed-omission inventory under unknown_billing_basis with an explicit note that a source review of the billing basis is owed, rather than guessed into subscription or local-no-bill. Compatible-default breadth moves 7 → 8, covered by the existing breadth test. Docs: one row in the known-good hosts table in docs/PROVIDERS.md.

No new layer: this is one descriptor row, one inventory entry, one docs row, one count update. No behavior changes.

Testing

  • cargo fmt --all -- --check — clean.
  • python scripts/check-provider-registry.py — passed.
  • cargo test -p codewhale-config --lib descriptors — passed (2 tests).
  • cargo test -p codewhale-tui --lib pricing::default_coverage_tests — passed (1 test).
  • cargo test -p codewhale-tui --lib -- picker_lists_all_providers setup — passed (241 tests), covering the picker/setup surfaces that consume bundled_provider_descriptors().
  • cargo clippy -p codewhale-config -p codewhale-tui --all-targets --all-features --locked with the CI allow list — the config crate is clean. The tui run reports 29 errors; none are in files this PR touches (all four changed files are JSON/data plus one --lib test count), and they are all newer-lint findings on pre-existing code (collapsible_match, nonminimal_bool, needless_return under clippy 1.95). Not introduced here; CI pins the toolchain and is authoritative.

Platform caveats, stated plainly:

  • The Windows GNU toolchain on this machine cannot link the codewhale-tui test binary (ld: cannot find -lshlwapi, missing mingw import lib; CI is MSVC). The tui test runs above used an empty stub archive on -L to get past the link step only; compilation and all 242 assertions are real.
  • The two unfulfilled_lint_expectations errors under [workspace.lints.rust] warnings = "deny" reproduce identically on pristine main with rustc 1.95.0 — they pre-date this change. The local test runs temporarily used warnings = "warn"; Cargo.toml is untouched in the diff.

Checklist

  • This PR adds a new layer/module/abstraction — it names or deletes the layer it replaces
  • Updated docs or comments as needed
  • Added or updated tests where relevant — the compatible-default breadth assertion and the reviewed-omission inventory are the test surface for a descriptor row; the descriptor itself is data validated by check-provider-registry.py and the config crate's descriptor tests
  • Verified TUI behavior manually if UI changes — N/A, no UI change (descriptor surfaces through the existing picker once CI links the binary)
  • Harvested/co-authored credit uses a GitHub numeric noreply address

@github-actions

Copy link
Copy Markdown
Contributor

Thanks @harryvgiunta for taking the time to contribute.

This repository is observing a maintainer-managed PR intake gate in dry-run mode, so this pull request is staying open. This note helps maintainers prepare the allowlist before any enforcement is considered.

Please read CONTRIBUTING.md for the expected contribution shape. A maintainer can grant recurring PR access by commenting /lgtm on a pull request.

@harryvgiunta
harryvgiunta force-pushed the feat/yolo-auto-compatible-host branch from d1112ad to f0805c3 Compare September 23, 2026 01:59
@harryvgiunta

Copy link
Copy Markdown
Author

Gate acknowledged. Rebased onto current main (6c8f242) and reshaped the description to the PR template. Per the pre-push section I also ran the strict release-form clippy (--all-targets, CI allow list): config crate clean; the tui findings are all in files this PR does not touch and are listed honestly in the Testing section rather than reported as green. Single-purpose change: one descriptor row, one inventory entry, one docs row, one count assertion. Happy to hold until the allowlist decision; no action needed from maintainers beyond /lgtm if it is granted.

Yolo-Auto is a flat-rate OpenAI Chat Completions gateway, so it is a
data-driven descriptor row rather than a ProviderKind variant: the wire is
ordinary Chat Completions and offerings come from live GET /v1/models.

The row ships endpoint, credential env, and a bootstrap model only, which is
the same shape every other compatible host uses. Model ids stay out of the
compiled catalog by design.

Billing: the gateway sells subscription tiers and publishes no per-token
catalog, so the route classifies as Unknown and is recorded in the reviewed
omission inventory rather than guessed into a plan surface. Compatible-default
breadth moves 7 -> 8.
@harryvgiunta
harryvgiunta force-pushed the feat/yolo-auto-compatible-host branch from f0805c3 to 26de52a Compare September 23, 2026 14:52

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant