Skip to content

Add refresh failure logging and proactive token refresh #185

@liplus-lin-lay

Description

@liplus-lin-lay

目的

v0.10.3 (#184) でリトライ無限ループは修正済みだが、セッション再開時にブラウザOAuth認可ページが毎回開く問題が残っている。
トークンリフレッシュが失敗→performOAuthFlow()にフォールバック→ブラウザが開く、という流れだが、catch {} がエラーを完全に飲み込んでいるため原因が不明。

前提

  • @cloudflare/workers-oauth-provider v0.3.x はリフレッシュトークンに対応済み
  • Worker側のOAuthProvider設定: accessTokenTTL: 3600(1時間)、refreshTokenTTL: 30日
  • v0.10.3で refresh_token || ""null に修正済み(Worker側)
  • ローカルMCPの getAccessToken() 内の catch {} がリフレッシュ失敗理由を隠蔽している
  • ローカルトークンファイル ~/.github-webhook-mcp/oauth-tokens.json にはrefresh_tokenが保存されている

制約

  • リフレッシュ失敗時のエラーをstderrにログ出力すること
  • トークン期限切れ後ではなく期限切れ前にプロアクティブにリフレッシュすること(60秒→5分バッファ)
  • mcp-server/server/index.js と local-mcp/src/index.ts の両方を修正すること
  • 既存のOAuthフロー・トークン保存形式を変更しないこと

対象ファイル

  • mcp-server/server/index.js — getAccessToken, refreshAccessToken
  • local-mcp/src/index.ts — getAccessToken, refreshAccessToken

Metadata

Metadata

Labels

bugSomething isn't workingreadybody converged for implementation

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions