{"repo":"NousResearch/hermes-agent","public_id":"100339","display_label":"Anthropic OAuth token rotation bugs across profiles","summary":"These issues and pull requests address problems with single-use Anthropic OAuth refresh tokens being cloned across profiles, causing sibling profiles to lose access after the first rotation, and agent initialization failing hard instead of refreshing expired tokens.","subsystem":null,"counts":{"members":5,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":1,"attempt_prs":3},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":100929},"resolution":{"state":"resolved","by":"pr-100929"},"freshness":{"state":"verified","last_verified_at":"2026-09-02T07:58:30+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.4},"fix_edges":[{"issue_number":100339,"pr_number":100929,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true}],"members":[{"kind":"issue","number":100339,"title":"Profile-cloned Anthropic OAuth credentials strand sibling profiles after first rotation (single-use refresh token), and agent init hard-fails instead of refreshing","url":null,"state":"closed"},{"kind":"pr","number":100389,"title":"fix(auth): stop cloned Anthropic OAuth from stranding sibling profiles","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"37f3ba110a","number":0},{"kind":"pr","value":"#100929","number":100929}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":100598,"title":"fix(auth): sync Anthropic single-use OAuth rotation across profiles and auto-refresh on init (#100339)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#100389","number":100389},{"kind":"pr","value":"#100339","number":100339}],"category":"duplicate_of","implication":"duplicate"},"merged":false},{"kind":"pr","number":100703,"title":"fix(auth): refresh expired Anthropic pool tokens on init","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#100929","number":100929}],"category":"uncategorized","implication":"needs_llm"},"merged":false},{"kind":"pr","number":100929,"title":"Profiles never fork single-use OAuth grants: clone-all strips them, borrowed rotations write through to root (#100339, supersedes #100389/#100703)","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["agent/anthropic_credentials.py","agent/credential_pool.py","hermes_cli/auth.py","hermes_cli/auth_commands.py","hermes_cli/profiles.py","tests/agent/test_credential_pool_profile_oauth_fork.py","tui_gateway/methods_profiles.py","website/docs/user-guide/profiles.md"]}],"trust":{"default_tier":"verified","includes_suggested":false}}