{"repo":"NousResearch/hermes-agent","public_id":"14105","display_label":"Fallback provider key_env/api_key_env resolution bug fixes","summary":"Multiple bug reports and fix attempts addressing that `key_env`/`api_key_env` fields are silently ignored when resolving API keys for fallback provider chain entries. The cluster centers on a single recurring issue with several overlapping fix PRs targeting the same code path.","subsystem":null,"counts":{"members":5,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":2,"merged_prs":2,"attempt_prs":1},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":14116},"resolution":{"state":"partially_resolved","by":"pr-14116"},"freshness":{"state":"verified","last_verified_at":"2026-05-17T06:11:44+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_PARTIAL","link_density":0.33599999999999997},"fix_edges":[{"issue_number":7487,"pr_number":27308,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false},{"issue_number":14105,"pr_number":14116,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true},{"issue_number":25091,"pr_number":27308,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false}],"members":[{"kind":"issue","number":14105,"title":"[Bug] fallback_providers ignores key_env — only reads api_key field","url":null,"state":"closed"},{"kind":"issue","number":25091,"title":"[Bug]: `api_key_env` alias silently ignored in `fallback_providers` entries — falls through to \"no-key-required\" placeholder","url":null,"state":"closed"},{"kind":"pr","number":14116,"title":"fix(agent): resolve fallback provider key_env secrets","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["run_agent.py","tests/run_agent/test_provider_fallback.py"]},{"kind":"pr","number":25294,"title":"fix(auxiliary): resolve api_key_env alias in named custom provider path of resolve_provider_client","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#27308","number":27308}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":27308,"title":"Batch salvage group 4: 9 low-risk new-contributor PRs (proxy-env/gateway-fixes/security-headers/custom-providers)","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["agent/auxiliary_client.py","gateway/platforms/api_server.py","gateway/platforms/base.py","gateway/platforms/helpers.py","gateway/platforms/slack.py","gateway/platforms/sms.py","gateway/run.py","hermes_cli/doctor.py","plugins/platforms/google_chat/adapter.py","plugins/platforms/line/adapter.py","plugins/platforms/teams/adapter.py","scripts/release.py","tests/gateway/test_api_server.py","tests/gateway/test_bluebubbles.py","tests/gateway/test_update_streaming.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}