DEV Community 日本語
フォロー
ステータスバー項目から15秒で5つのリクエスト
Claude Code VS Code 拡張機能は、ユーザーの利便性のために、使用制限をステータスバーに直接表示します。当初、拡張機能は頻繁にAPI呼び出しを行っており、レート制限エラーが発生していました。特定された根本的な問題は、各VS Codeウィンドウが拡張機能の個別のインスタンスを実行し、リクエストが重複していたことでした。これを解決するために、すべてのウィンドウからアクセス可能な使用状況データを保存するための共有グローバルストレージファイルが実装されました。このファイルにより、ウィンドウはキャッシュされたデータを読み取り、リフレッシュ間隔に基づいて必要な場合にのみ更新を取得できます。複数のウィンドウが同時にデータを取得するのを防ぐために、クレームシステムが導入されました。ウィンドウが別のウィンドウがすでに取得中であることを検出した場合、待機します。複数のウィンドウからの同期リクエストを回避するために、タイマーにランダムなジッターが追加されました。APIが429レート制限エラーを返した場合、この情報は共有ファイルに保存され、ブロックが期限切れになるまでそれ以上のリクエストは防止されます。拡張機能は、APIチェックの失敗の処理も改善しました。すぐに警告を表示するのではなく、最後に知られた使用状況データを保持し、間隔を広げてから再試行するようになりました。警告は、複数の連続した失敗の後にのみ表示されます。拡張機能は、ログイン資格情報を読み取るだけで、決してリフレッシュしたり書き戻したりしないことを明示しています。使用状況データのためにウィンドウごとに単一の共有APIリクエストを行い、テレメトリやその他のネットワーク呼び出しは回避します。概説されている原則は、ウィンドウごとに1つのコピーを想定し、429エラーを待機するための指示として扱い、単一の失敗をクリティカルではなくノイズと見なすことです。