{"repo":"NousResearch/hermes-agent","public_id":"28140","display_label":"Empty credential pool entries treated as unauthenticated","summary":"Multiple fixes and reports addressing a bug where empty credential pool entries incorrectly caused providers to appear as authenticated in the model picker and CLI. Changes enforce that only non-empty credentials are treated as valid.","subsystem":null,"counts":{"members":6,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":1,"attempt_prs":4},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":28312},"resolution":{"state":"resolved","by":"pr-28312"},"freshness":{"state":"verified","last_verified_at":"2026-05-19T02:33:08+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.3333333333333333},"fix_edges":[{"issue_number":28140,"pr_number":28312,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true}],"members":[{"kind":"issue","number":28140,"title":"Empty credential pool entries cause providers to show as authenticated in /model picker","url":null,"state":"closed"},{"kind":"pr","number":20705,"title":"fix(model-picker): require real credentials in section 1 (api_key path)","url":null,"state":"closed","close_reason":{"category":"implemented_elsewhere","implication":"superseded"},"merged":false,"is_fix_pr":true,"fix_tier":"suggested","fix_detail_withheld":true},{"kind":"pr","number":28150,"title":"fix(model-picker): ignore empty credential-pool entries","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"95846eddd","number":0},{"kind":"pr","value":"#28312","number":28312},{"kind":"pr","value":"#28312","number":28312}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":28190,"title":"fix(cli): empty credential pool entries no longer authenticate provider (#28140)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"95846eddd","number":0},{"kind":"pr","value":"#28312","number":28312},{"kind":"pr","value":"#28150","number":28150},{"kind":"pr","value":"#28312","number":28312}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":28241,"title":"fix(auth): treat empty credential pool entries as unauthenticated in /model picker","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"95846eddd2a2453049a090c2e8f9a96c5f1f480b","number":0},{"kind":"pr","value":"#28312","number":28312}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":28312,"title":"fix(auth): treat empty credential pool entries as unauthenticated in /model picker (#28241)","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["hermes_cli/model_switch.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}