Skip to content

feat(auth): machine-wide Anthropic OAuth shared credential pool - #1

Merged
danpetkovic merged 1 commit into
mainfrom
feat/universal-anthropic-oauth-pool
Jul 23, 2026
Merged

feat(auth): machine-wide Anthropic OAuth shared credential pool#1
danpetkovic merged 1 commit into
mainfrom
feat/universal-anthropic-oauth-pool

Conversation

@danpetkovic

Copy link
Copy Markdown
Owner

Summary

Implements an opt-in, machine-wide Anthropic OAuth-only credential pool shared by every Hermes profile under one root.

  • Scope marker at <root>/shared/anthropic_pool_scope.json (profile default / shared opt-in)
  • Canonical rows in root auth.jsonshared_credential_pools.anthropic (schema v1, exactly 3 OAuth grants)
  • Cross-process root-auth lock for single-use refresh (token_generation + refresh_attempt)
  • Authoritative resolution gate closes env / Claude Code / explicit-key / profile-pool bypasses for official api.anthropic.com
  • CLI: auth scope|backup|restore, --shared on add/remove/reset/logout; dashboard mutations return 409
  • Generic backup refuses when shared state exists; break-glass + secret scanner scripts
  • Docs updates; §13 OAuth rollout is orchestrator-only (not in this PR)

Refs: NousResearch#29530, NousResearch#8040. Prior art: NousResearch#60639, NousResearch#62945, NousResearch#65844, NousResearch#67261, NousResearch#46614.

Test plan

  • Focused suite 128/128 green via scripts/run_tests.sh on the listed gate paths
  • scripts/scan_auth_secrets.py --git-diff clean
  • ruff check on touched Python
  • Full suite / docs build on CI as available

Add an opt-in shared OAuth-only Anthropic pool under the Hermes root so every
profile resolves the same three grants with one canonical refresh-token chain
per account. Shared scope is controlled by a non-secret marker, uses strict
root-auth locking for single-use refresh, closes env/Claude-Code/explicit-key
bypasses for official api.anthropic.com targets, and guards CLI/dashboard/
backup mutation paths. Includes focused tests, secret scanner, break-glass
helper, and docs.

Refs: NousResearch#29530, NousResearch#8040
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant