GitHub Repo
Hermes Agentコミュニティ、OAuth更新の競合を報告 複数プロファイルでのログイン共有で同時に認証が失効する可能性
10月29日のHermes Agentコミュニティの報告によると、複数のプロファイルでAnthropic OAuthログインを共有している場合、トークンの並行更新によって認証が失効する可能性がある。報告にはロックのテストと修正案が含まれるが、実際の競合発生は独立した再現を待っており、公開Issueは未クローズのままだ。

Hermes Agentの複数プロファイル環境で、認証情報の信頼性に関する報告が寄せられた。ユーザーは10月29日、名前付きプロファイルがデフォルトプロファイルのAnthropic OAuthログインを利用している場合、アクセストークンの有効期限が切れた際に複数のプロファイルが同時に更新を試み、共有認証が失効する可能性があると指摘した。その結果、関連するエージェントがauth_permanentを報告したり、利用可能な認証情報が見つからなくなったりするという。報告環境はmacOS、Hermes v0.22.5で、テスト対象の上流コミットも記載されている。公開Issue
この共有の仕組みは公式ドキュメントにも記載されている。Hermesではプロファイルごとに設定、メモリ、セッションを保存する一方、プロファイルを複製してもAnthropicなどのプロバイダーのOAuthログインは直接コピーされない。新しいプロファイルはルートディレクトリのauth.jsonを読み取り、更新後も同じ場所に書き戻す。この設計は、複数のワンタイム更新トークンが個別にローテーションされるのを防ぐことを目的としているが、すべての利用者が更新処理を調整する必要も生じる。プロファイルのドキュメント
報告者の分析によると、問題はロックの適用範囲にある。更新処理がロックするのは現在のプロファイル固有のauth.lockだが、共有認証情報はルートディレクトリに置かれている。そのため、複数のプロファイルがそれぞれロックを取得したうえで、同じ更新トークンを送信する可能性がある。テストでは、リクエスト送信時にルートディレクトリのロックが保持されているかを確認する。報告者によれば、上流版ではこのロックが保持されておらず、追加のロックを導入するとテストに合格した。ただし、ログにはどの2つのプロセスが競合したのか記録されていないため、ロックの欠落と実際のトークン失効との因果関係は、なお検証が必要だ。テストと分析
エンジニアリングチームにとって、この報告は、ローテーション後のトークンを共有ストレージに書き戻す場合、読み取り、ネットワーク経由の更新、書き戻しを含む一連の処理を共通ロックで保護する必要があることを示している。公式ドキュメントには、個々のプロファイルに独立したログインを設定する方法も記載されており、デプロイ担当者は認証情報の構成を検討できる。今後は、プロセスをまたぐ回帰テスト、修正のマージ、正式リリースへの反映を確認したい。現時点では、報告者による他のOAuthプロバイダーへの影響の推測を、確認済みの影響として扱うことはできない。公式ログイン設定ガイド