Repository navigation
feat(bridge): add passive pending status observer mode - #261
Merged
Merged
Conversation
Codex Luna #260 の observer token gate、raw status、tools/list metadata と統合テストの作業途中を保存する。 HTTP mock の modern MCP envelope を調整中であり、統合テストは未完了。release/publish は実行していない。 — Codex Luna
Codex Luna #260 の observer 接続を追加し、保存済み token のみで raw pending status と機械可読 metadata を返す。 HTTP/WS の認証拒否から OAuth UI を開始せず、外部 CLI の token 更新後に再読で回復する。並行リクエストの遅延 401 が新 token を誤拒否しないよう送信 token を分離する。 両 bridge の同期、要件・利用説明、実プロセス統合テストと既存 refresh 回帰テストを含む。 — Codex Luna
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
github-webhook-mcp | 256e579 | Oct 18 2026, 08:05 PM |
Codex Luna #260 の初期missing-tokenテストで生じた未分類のmock requestを受け、子process固有IDと全fetchの記録で通信を帰属させる。 foreign request混入を決定的に再現し、標識付き全送信とmock受信の一致を検証する。invalid credentialの両入口とOAuth/refresh入口を実装関数のまま検証し、一読・副作用なしの境界を固定する。 元のrequestは当時path/header未記録のため、原因をstale clientと断定しない。 — Codex Luna
lipluscodex
marked this pull request as ready for review
October 18, 2026 20:06
lipluscodex
commented
Oct 18, 2026
lipluscodex
left a comment
Member
Author
There was a problem hiding this comment.
Codex Luna
親による self-review: pass。head 256e579 の diff を #260 と照合した。
- observer の raw/meta 契約、normal mode の互換、保存 token のみの使用、OAuth/refresh/browser の入口遮断、HTTP/WS 拒否と token 更新の交差、秘密値の非出力を確認。
- 配布 JS と TS twin、docs/README の同時変更を確認。CI run 39161658734 の全チェック成功、ローカル112試験の報告と追加した通信帰属・invalid credential 試験を確認。
- 初期の mock request 一件は元の通信帰属が未記録で原因を断定できない。新しい観測では子プロセスの全 fetch と受信の一致を検証し、外来 request を注入しても認証経路の無通信を正しく判定する。過去の一件を stale client と断定していない。
- scope 逸脱なし。Worker/DB、既存 config、配布 artifact は変更なし。release/publish は未実施で、Pullcept への配布適用は #493 と後段の公開判断で追う。workspace 側の保留変更はない。
auto mode。CLEAN を確認して squash merge に進む。
— Codex Luna
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Codex Luna
Closes #260
WEBHOOK_OBSERVER=1の専用プロセスで、未処理 status を hook 文へ整形せず raw JSON のまま取得できる。通常 mode の既存 hook 契約を維持する。保存済みの有効な access token のみを使い、欠落・期限切れ・HTTP/WS 認証拒否を
auth_requiredtool error として返す。外部 CLI の login 後に次の取得から回復し、browser/登録/refresh/OAuth polling は開始しない。get_pending_statusのtools/listentry にのみ_meta: {"io.github.Liplus-Project/github-webhook-mcp/pending-status-observer": 1}を公開する。raw はpending_count:number,types:Record<string,number>,latest_received_at:string|null(未処理内の最新受信時刻)を保持し、contentと存在するstructuredContentを変更しない。認証失敗の envelope は
isError:true、JSON text とstructuredContentの両方に{error:"auth_required",message:"Observer mode requires an existing valid token. Authenticate using a separate CLI process, then retry."}。通信失敗をゼロ件に変換しない。検証:
WEBHOOK_TEST_TWIN=1 npm test: 112 tests pass。公開 JS / TS twin の実プロセス stdio + mock HTTP/WS で raw 非ゼロ/ゼロ、metadata、missing/expired/malformed token、HTTP401、WS401/1008/4401、再接続、外部 token 更新、通知/get_event、通常 hook、秘密値非出力を確認。local-mcp: tsc --noEmit、JS syntax、git diff --check通過。CI は既存の test discovery で公開 JS の統合テストを実行する。TS twin の実プロセス追加検証は local-mcp の依存を入れてWEBHOOK_TEST_TWIN=1で opt-in。検証上の制限: 初期の全体runで、missing/expired/malformed ケースの全6応答は
auth_requiredだったが、事前assertのmock HTTP件数が一度だけ1になった。当時はpath/headerを記録しておらず、元の1件の発生元は未分類のまま。20回の診断runでは再現していない。別clientの動的port再利用による混入と認証送信を区別できなかったfixtureを補強し、child固有IDで全fetchを標識・記録し、全送信fetchとserver受信件数の一致をassertする。foreign requestを決定的に注入する回帰テストと、invalid tokenの両入口が一度のfile readでrefresh/OAuth/waitなしに失敗する実装関数テストを追加した。これらは元の1件をstale clientと断定する根拠ではない。実装 delegate は親モデルを継承し reasoning_effort=high を選択。認証回復と背景再接続が意図せず browser を起動する経路を横断確認するため。low は試していない。
Worker API/DB、version、配布済み artifact、実 MCP config は変更していない。release/publish/tag/restart は実行していない。Pullcept #493 への配布適用と release 判断はこの PR の後段。
— Codex Luna