{"repo":"NousResearch/hermes-agent","public_id":"104635","display_label":"Pooled OAuth credential refresh and recovery","summary":"These items concern adding functionality to force individual pooled OAuth credentials to refresh and clear their cooldown state. The work includes a salvage/recovery mechanism and a Hermes auth refresh feature targeting pooled credentials specifically.","subsystem":null,"counts":{"members":3,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":1,"attempt_prs":1},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":104910,"merged_at":"2026-09-07T15:06:48+00:00"},"resolution":{"state":"unresolved","by":null},"freshness":{"state":"verified","last_verified_at":"2026-09-07T15:06:48+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.6666666666666666},"fix_edges":[{"issue_number":104634,"pr_number":104910,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-09-07T15:06:48+00:00"},{"issue_number":104635,"pr_number":104910,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-09-07T15:06:48+00:00"},{"issue_number":104636,"pr_number":104910,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-09-07T15:06:48+00:00"},{"issue_number":104637,"pr_number":104910,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-09-07T15:06:48+00:00"},{"issue_number":104638,"pr_number":104910,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-09-07T15:06:48+00:00"}],"members":[{"kind":"issue","number":104635,"title":"[Feature]: hermes auth refresh to force one pooled OAuth credential to refresh and clear its cooldown","url":null,"state":"closed"},{"kind":"pr","number":104661,"title":"feat(auth): add hermes auth refresh for pooled OAuth credentials","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"32a59f3bf7","number":0},{"kind":"commit","value":"12ad29a48a","number":0},{"kind":"commit","value":"de25786dc7","number":0},{"kind":"pr","value":"#104910","number":104910},{"kind":"pr","value":"#104660","number":104660},{"kind":"pr","value":"#104664","number":104664},{"kind":"pr","value":"#104635","number":104635}],"category":"merged_via","implication":"superseded"},"merged":false},{"kind":"pr","number":104910,"title":"feat: recover and prioritize individual pooled credentials (salvage #104660–#104664)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["agent/credential_pool.py","agent/credential_pool_admin.py","contributors/emails/[redacted:email]","evals/auth_pool_controls.py","hermes_cli/_parser.py","hermes_cli/auth_commands.py","hermes_cli/console_engine.py","hermes_cli/subcommands/auth.py","hermes_cli/tips.py","tests/agent/test_credential_pool_operations.py","tests/hermes_cli/test_auth_pool_operations.py","website/docs/reference/cli-commands.md","website/docs/user-guide/features/credential-pools.md"]}],"trust":{"default_tier":"verified","includes_suggested":false}}