Skip to content

release validation_ja

Kazushi Kamegawa edited this page Oct 8, 2026 · 3 revisions

統合リリース検証 — Issue #156

English

日付:2026-10-09
追跡:Issue #156、#149 配下。
全体計画:Codex App Server 更新とリモート接続 Phase 7。
基準:main commit b44e856、Worker contract v21、CLI 0.159.1、回帰 fixture 0.155.1。
状態:2026-10-09 承認済み。実装 PR #172 はレビュー中。リリース受入は未完了。

概要

App Server 更新全体について、特定の release-candidate commit で再現可能な証跡を作る。完了済みの protocol、復旧、所有者分離、対話、パス、package の実装を再利用し、ローカル受入と公開 CI で実行できない外部サービス検証を分ける。

PR #170 には Debug/Release build、Core 399 合格/5 skip、UI 370 合格/1 skip、schema/cache/method 検査、VSIX/XAML/package hash が記録されている。これらは当時の revision の履歴証跡であり、後続 release candidate の合格を示さない。Issue #155 は PR #170 完了後に close 済み。未完了の Experimental Instance 表示/アクセシビリティ受入は #156 に引き継ぎ、Local-required とする。

シナリオ区分と完了条件

区分 シナリオ 完了条件
Local-required 固定 schema、Fake App Server、Core/UI、ローカル transport/TLS/token rotation 模擬、パス境界、VSIX、Experimental Instance、同一マシン上の2 instance 必須シナリオすべて合格。必須項目の skip/blocked は未完了。
External 認証済み固定 CLI 通信、実 MCP OAuth の失効/再認証、実 remote endpoint/証明書/token rotation 合格、またはリスクと証跡を記録した明示承認済み blocked。

状態は passed、failed、blocked、not-run、flaky で記録する。failed/flaky/not-run があれば準備完了としない。External の blocked は対象、理由、未検証リスク、代替証拠、承認者、日付、承認記録を必要とし、自動免除ではない。Local-required の blocked は未完了のままとする。

Protocol、競合、復旧、分離

  • CLI 0.155.1/0.159.1 の stable/experimental schema を生成・構造比較し、cache と used-method を確認する。Fake 通信と固定 CLI の実通信は別々の証拠とする。
  • 未知/不正/欠落/null の protocol 値、応答前完了、履歴通知、item 重複、resolved 応答競合、古い世代のイベントを検証する。
  • Worker/transport/認証失敗、過負荷、再接続上限、自動変更再送なし、loopback policy、TLS 模擬、health/RPC 不一致を検証する。
  • Windows/POSIX path 対応、traversal/兄弟 prefix/symlink/junction 境界、対応付け済み操作、添付 paging/復旧、owner/principal 分離を確認する。
  • 同じマシン上に Visual Studio Experimental Instance を2つ起動し、会話、下書き、catalog、認証、未完了要求、承認が混在しないことを確認する。
  • 質問/権限/MCP、Gateway OAuth、取消/resolved 競合、秘密情報拒否、失敗 tool の再送なしを検証する。
  • ネイティブ本人確認は未対応のまま扱う。capability 未宣言、投影前拒否、challenge/proof 非露出、遅延解決の無視、principal 変更時の未完了状態破棄を証明する。enroll/verify/cancel/delete の成功フローは要求しない。

実装前に全条件を既存 test または不足 test へ対応付け、不足分だけを追加する。

Windows 自動検証

Windows/PowerShell 7 の統合実行で固定 CLI hash、両 version/surface の schema 生成、比較/cache/method 検査、Debug/Release build、Core/UI suite、VSIX 検査を実行する。CODEX_PATH は必要な段階だけに設定する。

package 内の manifest、Worker payload、contract version、DLL、埋め込み XAML を対応する build 出力と照合する。結果 manifest に commit、環境/tool 版、CLI hash、scenario/区分/状態、command、終了コード、件数、skip 理由、retry 結果、artifact hash を記録する。

CI と Release workflow は初回を保持し、失敗した test だけを1回再実行する。再実行成功も flaky として gate 不合格にする。データ駆動の対象行を特定できない場合や test host が異常終了した場合、suite 全体を再実行せずエラーを記録する。if: always() で秘密除去済み TRX、診断、schema report、hash、manifest を保存する。認証済み通信の生ログを公開しない。

実際の test identity で専用一時領域への symlink/junction 作成を probe する。必須 link を作れなければ setup を失敗させ、理由を記録する。各 skip と実際の理由を残す。PR #170 の6件は TRX なしに理由を断定しない。

External シナリオ

認証済み固定 CLI、実 MCP OAuth 失効/再認証、実 remote TLS/証明書/token rotation は公開 CI の外で手動実行する。専用 workspace を使い、endpoint は実行時に渡す。秘密を除去した要約と manifest だけを保存し、credential/token/認証済み通信の生ログを残さない。

Experimental Instance とアクセシビリティ

SDK 管理の F5/Experimental Instance 手順と重複 identity 防止手順を使う。Light/Dark/High Contrast、狭幅、接続/復旧/履歴/下書き、質問/権限/MCP、成果物、shell 確認、Windows setup の状態を確認する。keyboard、focus 順、accessible name、Narrator/Accessibility Insights の通知、長い履歴の操作、同一マシン上の instance 分離も検証する。

スクリーンショットに scenario ID、環境、期待結果、合否を紐づける。keyboard/screen reader の確認は手順と観測記録も必要。オフスクリーン WPF 描画は補助証跡に限る。Experimental Instance を使えない場合、画面受入は Local-required の未完了として残す。

Platform と記録

完全受入は Windows/PowerShell 7 で実行する。Core/Worker は net8.0 だが、他 OS では platform-specific case が inconclusive になる場合がある。UI/WPF test、固定 Windows CLI schema 生成、VSIX、Experimental Instance は Windows が必要。Bash 例は portable な Core/schema report 作業、または Windows 対応 Bash に限定し、Linux で Windows CLI/UI suite が動くように示さない。

結果 manifest と承認済み制約を最終 doc/implementation.md/doc/task.md に反映する。完了条件は Local-required 全合格、failed/flaky/not-run なし、External は合格または明示受け入れ済み blocked。#150〜#155 の closed 状態を未完了受入の代わりにしない。

候補実装の状態 — 2026-10-09

候補 commit:712d6e19b10683fb2dcc639369e040c3600c80ab。実装と CI/Release 連携は PR #172 でレビュー中。証跡を出力する Windows 検証器、retry/skip 判定を追加し、結果 manifest はこの候補 commit に紐づく。

PR CI run 116 は、この PR head と基準 44e856 を含む merge commit 76599cf9d03545a03d6666875ef441edcf7114f9 で成功した。Hosted Windows runner では symlink が利用でき、Core/UI suite がすべて合格した。秘密除去済みの証跡はworkflow runに保存されている。以下の候補 commit 単体でのローカル結果は、現在の identity に対して別途 blocked と記録する。

合格: CLI 0.155.1/0.159.1 の hash、stable/experimental の4 schema 生成、schema cache/method surface、retry 方針の合成ケース、Debug/Release build(警告・エラー0)、Worker contract v21 と埋め込み XAML を含む VSIX 内容検査。

Local-required blocked: Debug/Release の Core は各403合格、0失敗、5 skip/408件。UI は各375合格、0失敗、1 skip/376件。6件の skip はすべて symlink 作成を必要とする。現在の Windows identity では file/directory symlink を作成できず、junction は作成できた。計画どおり suite と全体 matrix は blocked のまま扱う。

未実行: Experimental Instance の画面/アクセシビリティおよび同一マシン2 instance の受入、認証付き固定 CLI 通信、実 MCP OAuth の失効/再認証、実 remote TLS/証明書/token rotation。External の制約・免除は承認していない。リリース準備完了とは判定しない。

Issue #156 の候補状況と、英語の証跡対応表、日本語版を参照。

参照

Clone this wiki locally