{"repo":"NousResearch/hermes-agent","public_id":"133856","display_label":"Anthropic sk-ant-usr key misclassification fix","summary":"A bug where Anthropic API keys with the sk-ant-usr prefix are incorrectly classified as OAuth tokens instead of x-api-key credentials. Multiple fixes and a bug report address correcting this classification logic.","subsystem":"agent","counts":{"members":7,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":1,"attempt_prs":5},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":137140},"resolution":{"state":"resolved","by":"pr-137140"},"freshness":{"state":"verified","last_verified_at":"2026-10-12T11:25:37+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.2857142857142857},"fix_edges":[{"issue_number":133856,"pr_number":137140,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true}],"members":[{"kind":"issue","number":133856,"title":"[Bug]: Anthropic API keys with sk-ant-usr- prefix are misclassified as OAuth tokens (Claude Code identity on a pay-per-token key)","url":null,"state":"closed"},{"kind":"pr","number":133874,"title":"fix(auth): classify sk-ant-usr* API keys as x-api-key, not OAuth","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"82ef40ab29","number":0},{"kind":"pr","value":"#137140","number":137140}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":133875,"title":"fix(auth): classify Anthropic user keys as API keys","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#133856","number":133856},{"kind":"pr","value":"#133874","number":133874}],"category":"duplicate_of","implication":"duplicate"},"merged":false},{"kind":"pr","number":135172,"title":"fix(anthropic): stop treating sk-ant-usr workspace API keys as OAuth tokens","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"82ef40ab29","number":0},{"kind":"pr","value":"#137140","number":137140}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":135734,"title":"fix(agent): _is_oauth_token() misclassifying sk-ant-svc/usr keys as OAuth","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"d50ab2a5dc15b2d0c528b11b37ab33743b3de7e0","number":0},{"kind":"commit","value":"cf23a1a5cc3e02b2a2d4526b4a1ac66ffaac614b","number":0},{"kind":"commit","value":"26610b09a5c4aead8d8dfb276ea33decf0d7fa46","number":0},{"kind":"commit","value":"d50ab2a5dc15b2d0c528b11b37ab33743b3de7e0","number":0},{"kind":"commit","value":"d50ab2a5dc15b2d0c528b11b37ab33743b3de7e0","number":0},{"kind":"commit","value":"d50ab2a5dc15b2d0c528b11b37ab33743b3de7e0","number":0},{"kind":"commit","value":"d50ab2a5dc15b2d0c528b11b37ab33743b3de7e0","number":0},{"kind":"commit","value":"d50ab2a5dc15b2d0c528b11b37ab33743b3de7e0","number":0},{"kind":"pr","value":"#101555","number":101555},{"kind":"pr","value":"#123361","number":123361},{"kind":"pr","value":"#107448","number":107448},{"kind":"pr","value":"#75697","number":75697},{"kind":"pr","value":"#113992","number":113992},{"kind":"pr","value":"#80307","number":80307},{"kind":"pr","value":"#135091","number":135091},{"kind":"pr","value":"#133874","number":133874},{"kind":"pr","value":"#135172","number":135172}],"category":"partial_fix","implication":"needs_llm"},"merged":false},{"kind":"pr","number":136142,"title":"fix(anthropic): route API key families through x-api-key, not OAuth","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"82ef40ab29","number":0},{"kind":"pr","value":"#137140","number":137140}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":137140,"title":"fix(auth): Anthropic Console keys (sk-ant-usr/svc/admin) authenticate as x-api-key, not OAuth (#133856, salvage #133874)","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["agent/anthropic_adapter.py","agent/anthropic_credentials.py","tests/agent/test_anthropic_adapter.py","tests/agent/test_anthropic_client_auth.py","tests/agent/test_anthropic_route_oauth_identity.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}