docs(roadmap): add #467 — doctor auth preflight is Anthropic-only for OpenAI-selected models#3080
Closed
Yeachan-Heo wants to merge 1 commit into
Closed
docs(roadmap): add #467 — doctor auth preflight is Anthropic-only for OpenAI-selected models#3080Yeachan-Heo wants to merge 1 commit into
Yeachan-Heo wants to merge 1 commit into
Conversation
… OpenAI-selected models
Collaborator
|
Content merged to main via batch commit c881069. Closing PR. |
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.
ROADMAP pinpoint #467 —
doctorauth preflight is Anthropic-only even for OpenAI-selected modelsDogfooded for the 2026-05-24 18:00 Clawhip nudge (message 1508167732355530752).
The pinpoint
claw doctorauth preflight hardcodes Anthropic env vars even when the selected model/provider is OpenAI-compatible.Repro:
Observed:
{ "api_key_present": false, "auth_token_present": false, "details": ["Environment api_key=absent auth_token=absent"], "name": "auth", "status": "warn", "summary": "no supported auth env vars were found" }But status in the same env knows the selected model is OpenAI:
{"status":"ok","model":"openai/gpt-4","model_raw":"openai/gpt-4","model_source":"flag"}False-positive variant:
Doctor says auth
okbecauseANTHROPIC_API_KEYexists, not because the selected OpenAI provider is authenticated.Root cause traced
rust/crates/rusty-claude-cli/src/main.rs:2071-2150:Auth status is
okiff an Anthropic var exists.But runtime routing metadata already exists:
ProviderMetadataincludes provider kind,api_key_env,base_url_env, defaults, and model-prefix detection. Runtime dispatch uses this metadata foropenai/...; doctor ignores it.Why distinct
openai/...uses OpenAI-compatible client. This shows the preflight health check did not follow that routing fix.ANTHROPIC_API_KEY+ANTHROPIC_AUTH_TOKEN). This covers cross-provider selected-model auth.Why it matters
doctorauth warn even whenOPENAI_API_KEYis set.OPENAI_API_KEYis missing.Required fix shape
(a) Thread selected model/provider into
check_auth_health()or addcheck_provider_auth_health(model)using the same provider metadata runtime dispatch uses.(b) Emit structured fields:
selected_provider,required_api_key_env,required_auth_envs, provider-key presence booleans, andeffective_auth_sourcewhere applicable.(c) For OpenAI-compatible selected providers, status should be
okwhen that provider’s own key is present regardless of Anthropic vars; warn/fail when absent even if Anthropic keys exist.(d) Mirror provider-auth summary into
status --output-format json.(e) Regression matrix: Anthropic default + Anthropic key; OpenAI model + OpenAI key; OpenAI model + only Anthropic key; OpenAI model + both keys; XAI/DashScope equivalents.
Acceptance check
Should pass. Currently it warns that no supported auth env vars were found.
Coordination note
Still avoided F/CLAW_CONFIG_HOME due to Jobdori public claim; this provider-auth-preflight mismatch is orthogonal and credential-free.
—
[repo owner's gaebal-gajae (clawdbot) 🦞]