Writes up what is still OpenAI-specific in this fork, since the base URL
being configurable is what makes it reach a compatible endpoint, not what
makes it behave correctly against one. Four findings, each with what it
actually costs:
1. service_tier, store and prompt_cache_retention are sent on every
request whatever the provider is (entity.py:515-563); reasoning,
include and text.verbosity are gated on OpenAI name prefixes.
2. 23 startswith() model-name gates plus the UNSUPPORTED_* lists infer
capability from OpenAI naming, which fails in both directions: service
tier, code interpreter and web search are offered to providers that
cannot honour them, while reasoning effort/summary and verbosity are
withheld from any model whose name does not look like OpenAI's.
3. manufacturer="OpenAI" and the "Error talking to OpenAI" error text.
4. Repair issues citing core's 2026.9.0 removal schedule, which has
passed and was never this fork's commitment, and an OpenAI-only
organization-verification repair.
Two things worth having written down beyond the list itself:
- A proxy set to drop incompatible parameters hides finding 1 entirely
and makes finding 2 worse, because a dropped parameter turns a
misconfigured option into a silent no-op rather than an error. Testing
only against such a proxy therefore says nothing about portability, and
a strict server is the honest target. This reorders the priorities:
finding 2 first, since it is what the user sees and the failure is
silent; finding 1 matters for setups without a normalising proxy.
- The prerequisite decision is recorded rather than assumed. There is no
capability discovery in the OpenAI API -- GET /v1/models returns ids,
not feature support -- so the three candidates (per-entry capability
toggle, host detection, per-endpoint checkboxes) are laid out with
their trade-offs and explicitly marked unsettled.
No behaviour change; the README links it from a short "known
OpenAI-specific behaviour" section so it is findable from the front page.
Local: 170 passed.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NxJYWgGJtCw13qUHZtG8ki