Skip to content

原文(日本語に翻訳)

スリープからの復帰後のOAuthリフレッシュ競合で実行中の全セッションがログアウトされる可能性があった問題を修正しました。

原文(英語)

Fixed OAuth refresh race after wake-from-sleep that could log out all running sessions

概要

ラップトップやデバイスがスリープから復帰した際に、複数のClaude Codeセッションが同時にOAuthトークンのリフレッシュを試み、競合(レースコンディション)が発生することで全セッションがログアウトされてしまう問題が修正されました。修正後はトークンリフレッシュが適切に調整され、スリープ復帰後も全セッションが認証状態を維持します。

基本的な使い方

この修正は自動的に適用されます。スリープ復帰後のOAuth認証問題が解消され、以下のシナリオで安定した動作が確認できます。

bash
# 複数のターミナルでClaude Codeを使用
# ターミナル1
claude "プロジェクトAの作業を続けてください"

# ターミナル2(別タブ/ウィンドウ)
claude "プロジェクトBの作業を続けてください"

# スリープ後に復帰 → 修正前は両セッションがログアウト
# 修正後: 両セッションが正常に認証状態を維持

実践例

複数セッションでの長時間作業

bash
# tmux で複数のペインを開いてClaude Codeを使用
tmux new-session -d -s work
tmux send-keys -t work "claude" Enter
tmux split-window -t work
tmux send-keys -t work "claude" Enter

# スリープして翌朝復帰しても認証状態が維持される
# 修正前: 全セッションが "認証が必要です" とログアウト状態に
# 修正後: 全セッションが正常に継続

VSCode + ターミナルの併用

# VSCodeのClaude Code拡張機能とターミナルのClaude Codeを同時使用

# 修正前: スリープ復帰後に
# - VSCode拡張: ログアウト
# - ターミナル: ログアウト
# → 再ログインが必要

# 修正後:
# - 両方のセッションが認証状態を維持

バックグラウンドタスクとの組み合わせ

bash
# バックグラウンドで長時間タスクを実行中
claude "大規模なコードベースを分析してください" &

# タスク実行中にスリープ
# 修正後: 復帰後もバックグラウンドタスクのセッションが維持される

注意点

  • この問題はスリープ/復帰が発生する環境(主にラップトップ)で顕著でした。デスクトップやサーバー環境では発生しにくい問題でした。
  • OAuthトークンは定期的にリフレッシュされます。ネットワーク接続が不安定な環境では、スリープ復帰後のリフレッシュが失敗する可能性があります。
  • ログアウトが発生した場合は claude auth login で再認証できます。
  • 企業環境でシングルサインオン(SSO)を使用している場合は、組織のセッションポリシーも確認してください。

関連情報