Repository navigation
fix(computer-use): #820 Windows の V1 のレーンの UI Automation に 500 ms のタイムアウトを付ける - #821
Conversation
…WindowsV1Automation にまとめる) - V1 の UIA 生成 8 か所を CreateWindowsV1Automation に集約し、IUIAutomation2 の Connection/TransactionTimeout を 500 ms に設定 - shadow と共通の CreateBoundedAutomation(CUIAutomation8)を uia_source.h に置く。取れなければ従来どおり(タイムアウトなし)で、回数を数えて記録する - タイムアウトは各呼び出し元の「読めない」(未分類・false・stale_target)として fail closed - 応答しない自作の窓に対する live seam(本物の host.cc をコンパイル)と source 契約を追加、ADR に #820 の段落 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
🗺️ PR Walkthrough Note Windows V1 の UI Automation 呼び出しを共通の生成関数経由にし、IUIAutomation2 の接続・処理タイムアウトと呼び出し経路の停止制御を追加しています。タイムアウトや Cancel 時は既存の fail closed 判定に沿って処理を拒否し、応答が送信済みの操作は未確認として区別します。 Changed files (7)
Reviewed by vibe-editor-reviewer — head |
# Conflicts: # tasks/designs/adr-computer-use-agent-driven-v2.md
There was a problem hiding this comment.
🧭 Code review
Warning
未検証の指摘候補 1 件 — 根拠の確認が必要です
| Critical | Warning | Nitpick | Info |
|---|---|---|---|
| 🔴 0 | 🟡 1 | 💬 0 | 💡 0 |
確認内容
- ✅ 変更箇所と関連するコード経路を確認
- ✅ 独立した差分レビュー(Claude)を確認
レビュー所感
固定 HEAD を確認し、UIA 生成、COM 解放、失敗時の拒否処理と Cancel の直列処理を追跡しました。呼び出し単位のタイムアウトが累積し、想定するレーン応答時間を超える経路が残っています。実行検証は行っていません。
🔍 Verification: 1 件は 未検証の指摘候補(必要な判定・コード根拠の照合が未完了です)。検証による除外や重要度の引き下げは行っていません。
指摘の正しさは未確定です。見逃し防止のため候補と現在の判定を保持しています。
根拠の確認は該当スレッドに返信してください。PR全体の再レビューは /reviewer full review、検証設定の確認は /reviewer config で行えます。既存スレッドは再レビューで自動解決されません。
Reviewed by vibe-editor-reviewer — head 6451ecf
Review coverage & tooling
- Files: 5 reviewed (+505 / -46)
- Full file bodies included: 0 / 5
- Reviewer roles: numeric_consistency (deterministic), codex_deep (gpt-6.1-sol), claude_peer (claude-opus-5-5, fixed-diff only, partial)
- Verification: 1 件は 未検証の指摘候補(必要な判定・コード根拠の照合が未完了です)。検証による除外や重要度の引き下げは行っていません。
There was a problem hiding this comment.
🧭 Code review
Warning
1 actionable finding(s) — review recommended
| Critical | Warning | Nitpick | Info |
|---|---|---|---|
| 🔴 0 | 🟡 1 | 💬 0 | 💡 0 |
確認内容
- ✅ 変更箇所と関連するコード経路を確認
- ✅ 独立した差分レビュー(Claude)を確認
レビュー所感
指定 HEAD を確認し、UIA 生成、COM の寿命管理、各経路の失敗処理とテストの前提を静的に追跡しました。既報と重複しない新たな重大不具合は確認できませんでした。Windows の実行検証は行っていません。
⏳ 過去のレビューで指摘済み・未解決のスレッド 1 件(🟡 1)が open のままです。対応済みであればスレッドを resolve してください(verdict に反映されます)。
Reviewed by vibe-editor-reviewer — head 74b6ac8
Review coverage & tooling
- Files: 5 reviewed (+505 / -46)
- Full file bodies included: 0 / 5
- Reviewer roles: numeric_consistency (deterministic), codex_deep (gpt-6.1-sol), claude_peer (claude-opus-5-5, fixed-diff only, partial)
- 呼び出し 1 回の上限を Connection 500 ms / Transaction 300 ms に分け、経路ごとに最初の時間切れで UIA を呼ぶのをやめる(短い経路は 400 ms の予算、observe は 12 s の予算と cancel の確認) - ClassifyWindowsUiaElement は読めない要素で親をたどらず、ClassifyWindowsPoint は facts が不完全なら署名を読まず、observe は未分類のフォーカスの署名を読まない - 理由を accessibility_timeout / observation_timeout / input_timeout_unconfirmed に分ける - live seam を別プロセスの窓(応答しない窓、普通の窓、途中で止まる native provider)に作り直し、source 契約を強める、ADR を更新 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
🧭 Code review
Warning
3 actionable finding(s) — review recommended
| Critical | Warning | Nitpick | Info |
|---|---|---|---|
| 🔴 0 | 🟡 3 | 💬 0 | 💡 0 |
確認内容
- ✅ 変更箇所と関連するコード経路を確認
- ✅ 独立した差分レビュー(Claude)を確認
レビュー所感
固定 HEAD を確認し、UIA の期限管理、取消し、入力失敗の伝播と関連テストを静的に追跡しました。短い経路の予算確認と semantic target 検索の上限に不足があり、Cancel が期限内に完了しないケースが残ります。実行検証は行っていません。
🔍 Verification: 全 4 件の指摘を検証パス(gpt-6.1-sol / high)でクロスチェック済み(コード引用を固定base/headと照合) — 1 件を反証・重複確認により除外
検証パスで除外された指摘 1 件(反証または重複を確認)
apps/desktop/computer-use-native/computer_use_windows_host.cc:3846— このPRによる導入・悪化ではない — The slow-success traversal and absence of epoch/deadline checks already exist in base. Head preserves the same traversal limits and adds early exits for timeout failures; it does not worsen the candidate's successful sub-timeout response scenario.
Reviewed by vibe-editor-reviewer — head 4bc06d9
Review coverage & tooling
- Files: 6 reviewed (+1102 / -91)
- Full file bodies included: 0 / 6
- Reviewer roles: numeric_consistency (deterministic), codex_deep (gpt-6.1-sol), claude_peer (claude-opus-5-5, fixed-diff only, partial)
- Verification: 全 4 件の指摘を検証パス(gpt-6.1-sol / high)でクロスチェック済み(コード引用を固定base/headと照合) — 1 件を反証・重複確認により除外
…の時間切れを検出する(レビュー指摘の反映) - 短い経路の 400 ms の予算を削除(深い木の live app が未分類になる退行)。経路を打ち切るのは、最初の時間切れと cancellation_epoch の変化だけ。preflight / dispatch の 1 フレームを外側の経路で包み、状態を共有する - すべての UIA 呼び出しを WindowsV1UiaCall / Contact / Read(cancel・時間切れ・observe 予算の確認と呼び出しの時間の測定)経由にする。timeout の 30 ms 手前以上かかった呼び出しは、S_OK でも時間切れとして扱う(CI で、答えない native provider の observe が 1.5 s かかって成功した件) - 最悪値を 1 回の呼び出し 500 + 300 = 800 ms で数え直し、コメント・ADR・source 契約(定数どうしの比較)で固定。observe 全体の予算は 25 s(予算切れ時はノード数だけを記録) - dispatch の共通の後処理が input_timeout_unconfirmed を上書きしないようにする - live seam: 子プロセスを Job Object と HANDLE_LIST で起動、深い木・入れ子の経路・cancel・理由・semantic dispatch のケースを追加、前面化に失敗したら理由つきで skip、afterAll の rmSync を再試行付きに Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
🧭 Code review
Warning
3 actionable finding(s) — review recommended
| Critical | Warning | Nitpick | Info |
|---|---|---|---|
| 🔴 0 | 🟡 3 | 💬 0 | 💡 0 |
確認内容
- ✅ 変更箇所と関連するコード経路を確認
- ✅ 独立した差分レビュー(Claude)を確認
レビュー所感
固定 HEAD と全差分を確認し、タイムアウト・キャンセルの伝播、入力前の拒否判定、テストの成立条件を追跡しました。semantic action の停止処理の漏れと、Windows の live seam が必ず失敗する初期値に修正が必要です。検証は静的解析のみで、実行はしていません。
🔍 Verification: 全 3 件の指摘を検証パス(gpt-6.1-sol / high)でクロスチェック済み(コード引用を固定base/headと照合) — 0 件を反証・重複確認により除外
Reviewed by vibe-editor-reviewer — head 12570a5
Review coverage & tooling
- Files: 6 reviewed (+1432 / -105)
- Full file bodies included: 0 / 6
- Reviewer roles: numeric_consistency (deterministic), codex_deep (gpt-6-astra), claude_peer (claude-opus-5-5, fixed-diff only, partial)
- Verification: 全 3 件の指摘を検証パス(gpt-6.1-sol / high)でクロスチェック済み(コード引用を固定base/headと照合) — 0 件を反証・重複確認により除外
…wrappers Semantic action patterns/name/state reads use the timed read, side-effecting calls are gated by WindowsV1UiaMayCall, a cut-off child is released, the live seam initializes accepted=false as production does, and the source contract counts every UIA call. Adds a default-risk harness check, job-handle contract and the 200 ms margin / CI measurements to the ADR. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
🧭 Code review
Warning
3 actionable finding(s) — review recommended
| Critical | Warning | Nitpick | Info |
|---|---|---|---|
| 🔴 0 | 🟡 3 | 💬 0 | 💡 0 |
確認内容
- ✅ 変更箇所と関連するコード経路を確認
⚠️ 独立した差分レビュー(Claude)のレビューを完了できませんでした: 追加レビューのファイル数・入力容量の上限を超過⚠️ リードが指定した重点ファイルの精査(Claude)のレビューを完了できませんでした: 追加レビューのファイル数・入力容量の上限を超過⚠️ 要求された独立した第二読者が未完了のためapprove不可
レビュー所感
指定された全差分と関連呼び出し元を確認し、タイムアウト・取消しの伝播、入力送信前の拒否、送信後の未確認扱いを重点的に追跡しました。静的確認では、新たに報告すべき重大な不具合は認められませんでした。Windows での実行検証は行っていません。
⏳ 過去のレビューで指摘済み・未解決のスレッド 3 件(🟡 3)が open のままです。対応済みであればスレッドを resolve してください(verdict に反映されます)。
Reviewed by vibe-editor-reviewer — head 2450c68
Review coverage & tooling
- Files: 7 reviewed (+1625 / -138)
- Full file bodies included: 0 / 7
- Diff coverage: ✅ complete; reviewed in 2 chunks
- Reviewer roles: numeric_consistency (deterministic), codex_deep (gpt-6-astra)
…lue / Pattern 系を加える Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…までの既知の限界を ADR に書く Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
🧭 Code review
Note
レビュー結果(承認保留)
| Critical | Warning | Nitpick | Info |
|---|---|---|---|
| 🔴 0 | 🟡 0 | 💬 0 | 💡 0 |
確認内容
- ✅ 変更箇所と関連するコード経路を確認
⚠️ 独立した差分レビュー(Claude)のレビューを完了できませんでした: 追加レビューのファイル数・入力容量の上限を超過⚠️ リードが指定した重点ファイルの精査(Claude)のレビューを完了できませんでした: 追加レビューのファイル数・入力容量の上限を超過⚠️ 要求された独立した第二読者が未完了のためapprove不可
レビュー所感
指定された全差分と関連呼び出し元を確認し、タイムアウト後の拒否、キャンセル状態の共有、入力結果の伝播を重点的に追跡しました。重大な新規不具合を裏付ける根拠は見つかりませんでした。実行検証は行っておらず、Windows 上の時間上限と互換性は静的確認に限ります。
Reviewed by vibe-editor-reviewer — head 3388f83
Review coverage & tooling
- Files: 7 reviewed (+1644 / -138)
- Full file bodies included: 0 / 7
- Diff coverage: ✅ complete; reviewed in 2 chunks
- Reviewer roles: numeric_consistency (deterministic), codex_deep (gpt-6-astra)
WindowsV1UiaMayCall は経路が無いとき false を返す(fail closed)。本番の V1 呼び出しはすべて経路の内側から届く。live seam の semantic dispatch も本番と同じく外側の経路の中で呼び、所有者だけがポインタを戻すことを契約テストで固定する。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
🧭 Code review
Note
レビュー結果(承認保留)
| Critical | Warning | Nitpick | Info |
|---|---|---|---|
| 🔴 0 | 🟡 0 | 💬 0 | 💡 0 |
確認内容
- ✅ 変更箇所と関連するコード経路を確認
⚠️ 独立した差分レビュー(Claude)のレビューを完了できませんでした: 追加レビューのファイル数・入力容量の上限を超過⚠️ リードが指定した重点ファイルの精査(Claude)のレビューを完了できませんでした: 追加レビューのファイル数・入力容量の上限を超過⚠️ 要求された独立した第二読者が未完了のためapprove不可
レビュー所感
全差分と関連する呼び出し元を確認し、タイムアウト・キャンセルの状態共有、失敗時の拒否、送信済み操作の効果不明扱いを重点的に追跡しました。重大な不具合を裏付ける証拠は見つかりませんでした。実行検証は行っていません。
Reviewed by vibe-editor-reviewer — head af0d3cd
Review coverage & tooling
- Files: 7 reviewed (+1654 / -138)
- Full file bodies included: 0 / 7
- Diff coverage: ✅ complete; reviewed in 2 chunks
- Reviewer roles: numeric_consistency (deterministic), codex_deep (gpt-6-astra)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
🧭 Code review
Note
レビュー結果(承認保留)
| Critical | Warning | Nitpick | Info |
|---|---|---|---|
| 🔴 0 | 🟡 0 | 💬 0 | 💡 0 |
確認内容
- ✅ 変更箇所と関連するコード経路を確認
⚠️ 独立した差分レビュー(Claude)のレビューを完了できませんでした: 追加レビューのファイル数・入力容量の上限を超過⚠️ リードが指定した重点ファイルの精査(Claude)のレビューを完了できませんでした: 追加レビューのファイル数・入力容量の上限を超過⚠️ 要求された独立した第二読者が未完了のためapprove不可⚠️ 既存レビュー指摘を完全取得できないためapprove不可
レビュー所感
全差分と関連呼び出し元を確認し、UIA の停止状態共有、取消し、送信前の拒否と送信後の効果不明の扱いを重点的に追跡しました。静的確認では重大な新規欠陥は認められませんでしたが、Windows 実機でのタイムアウト上限は実行検証していません。
Reviewed by vibe-editor-reviewer — head 1687575
Review coverage & tooling
- Files: 7 reviewed (+1661 / -138)
- Full file bodies included: 0 / 7
- Diff coverage: ✅ complete; reviewed in 2 chunks
- Reviewer roles: numeric_consistency (deterministic), codex_deep (gpt-6-astra)
…れることを確かめる 830 ms は 1 つずつ測った値の合計で、連鎖は測っていないと書く。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…k の縮退を ADR の既知の限界に書く Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
🧭 Code review
Note
レビュー結果(承認保留)
| Critical | Warning | Nitpick | Info |
|---|---|---|---|
| 🔴 0 | 🟡 0 | 💬 0 | 💡 0 |
確認内容
- ✅ 変更箇所と関連するコード経路を確認
⚠️ 独立した差分レビュー(Claude)のレビューを完了できませんでした: 追加レビューのファイル数・入力容量の上限を超過⚠️ リードが指定した重点ファイルの精査(Claude)のレビューを完了できませんでした: 追加レビューのファイル数・入力容量の上限を超過⚠️ 要求された独立した第二読者が未完了のためapprove不可
レビュー所感
固定HEADと全差分を確認し、停止状態の共有、取消し、入力送信前後の失敗処理、COM所有権を追跡しました。確認範囲では、このPRが導入する重大な不具合は特定できませんでした。実行検証は利用できず、Windowsでの時間上限は静的確認のみです。
Reviewed by vibe-editor-reviewer — head 5c90e79
Review coverage & tooling
- Files: 7 reviewed (+1726 / -138)
- Full file bodies included: 0 / 7
- Diff coverage: ✅ complete; reviewed in 2 chunks
- Reviewer roles: numeric_consistency (deterministic), codex_deep (gpt-6-astra)
…unclassified のままにする 独立レビューの指摘: 署名を分類の完了で絞ったため、8 段より深い要素など生きているが未分類のフォーカスで署名が null になり、preflight が native_focused_target_changed で拒否していた(エージェントは再 observe を繰り返す)。#820 より前と同じく常に読む。時間切れ・Cancel のあとは経路が呼ばずに拒否する。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
独立した第二読者のレビュー(ReviewBOT の第二読者の代わり)ReviewBOT の第二読者は、入力容量の上限で毎回完了しませんでした(承認保留)。代わりに、作業に関わっていないレビュアー 2 名(読み取りのみ)が head 5c90e79 の全差分を読み、出た指摘を別の 1 名が反証を試みて検証しました。
🤖 Generated with Claude Code |
There was a problem hiding this comment.
🧭 Code review
Note
レビュー結果(承認保留)
| Critical | Warning | Nitpick | Info |
|---|---|---|---|
| 🔴 0 | 🟡 0 | 💬 0 | 💡 0 |
確認内容
- ✅ 変更箇所と関連するコード経路を確認
⚠️ 独立した差分レビュー(Claude)のレビューを完了できませんでした: 追加レビューのファイル数・入力容量の上限を超過⚠️ リードが指定した重点ファイルの精査(Claude)のレビューを完了できませんでした: 追加レビューのファイル数・入力容量の上限を超過⚠️ 要求された独立した第二読者が未完了のためapprove不可
レビュー所感
全差分と関連する呼び出し元を確認し、タイムアウト・Cancel の伝播、入力前の拒否、送信済み操作の効果不明扱い、COM リソース管理を重点的に検証しました。重大な新規不具合は確認できませんでしたが、実行検証は利用できないため、Windows 上の時間上限は静的確認に留まります。
Reviewed by vibe-editor-reviewer — head 80d6ff5
Review coverage & tooling
- Files: 7 reviewed (+1731 / -138)
- Full file bodies included: 0 / 7
- Diff coverage: ✅ complete; reviewed in 2 chunks
- Reviewer roles: numeric_consistency (deterministic), codex_deep (gpt-6-astra)
…e のまま)、J12、アーカイブ済み Task の開始拒否 (#822) * feat(computer-use): #785 T15-4w Windows の native が対象 1 ノードの値を読む(能力は production で false のまま) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * test(computer-use): #785 J12 useComputerUse を mount して copied の値がどこにも残らないことを固定する Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(computer-use): #785 T15-E (5) アーカイブ済みの Task ではセッションを始めない Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * test(computer-use): #785 T15-4w live seam を Windows 以外では describe ごと skip する Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(computer-use): #785 T15-4w 読む要素の署名を照合し、放棄された値も scrub する Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(computer-use): #785 T15-4w ワーカーの V1 の解決と署名を、境界のある V1 経路の中で行う #820(#821)で経路の外の V1 の UIA 呼び出しは拒否されるようになったため、ワーカーで要求の epoch を持つ WindowsV1UiaPath を張る。最初の時間切れでそれ以降を打ち切り、Cancel は次の呼び出しの前で止める。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(computer-use): #785 T15-4w 読み取りワーカーの V1 経路にレーンの待ち時間を予算として付ける 独立レビューの指摘: 予算の無い経路では、レーンが諦めた後も V1 の探索が続き、interlock と共有する single-flight の枠を握り続けていた。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(computer-use): #785 T15-4w 期限を過ぎて返った値の読み取りを使わない 独立レビューの指摘: 値の読み取りが shadow の期限を過ぎて返ると、gate は予算切れの印を付けて止まるだけで Canceled() にはならず、その値が ok で返っていた。予算切れと停止も確かめる。harness に期限超過のケースを足し、修正を外すと RED になることを確かめた。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…にしない (#824) #820(PR #821)の規則 4 は、270 ms(最初の接触は 470 ms)以上かかって成功した呼び出しを一律に 時間切れとしていた。応答している app でも負荷が高いと 1 回の呼び出しがこの値を超えることがあり、 経路全体が打ち切られて target_unclassified で拒否されていた(PR #821 の CI の deep tree)。 - WindowsV1UiaTimed は、呼び出しが書く出力そのものを受け取り、遅い成功を時間切れとするのは 出力が空のとき(WindowsV1UiaEmpty)だけにする。空の形は型ごとに 1 つ: 要素・pattern・ SAFEARRAY は null、BSTR は null か長さ 0、RECT はすべて 0、値の型(BOOL / int / enum)は 0。 0 が正しい答えでもありうるもの(空の名前、子なし、FALSE、ToggleState_Off など)は、遅ければ 従来どおり時間切れ(fail closed。IsPassword の遅い FALSE を「password ではない」と読まない)。 - 最初の接触(ElementFromHandle / ElementFromPoint / GetFocusedElement)は例外で、遅ければ 要素を返しても時間切れのまま。UI Automation は provider が切れても HWND から要素を作るため (ローカルの live seam で 1026 ms・S_OK・要素ありを観測。成功扱いにすると observe が 2.5 s に 延びた)。 - すべての UIA 呼び出しの呼び出し元が出力を名指しすることを source 契約で数える (ラップ済み 38 == 全 38、渡す出力がその呼び出しの書く変数であること)。 - live seam の C++ に、窓を使わない決定的なケースを足した: 閾値を超えて眠り S_OK と値を返す 呼び出しは成功で経路が続き、空を返す呼び出し(空の BSTR、null の要素、FALSE)と要素を返した 遅い最初の接触は時間切れで経路を終える。 - live seam の 1 ケースの上限を、数えた 1 回の最悪値(Connection 500 + Transaction 300)と 余裕 150 ms の 950 ms にした(host の定数から求め、1 s の Cancel 確認未満を static_assert と 契約で固定)。PR #822 の CI で連鎖が 844 ms で実際に起きて、旧上限(700 ms)で失敗したため。 - host のコメントと ADR の #820 の段落を更新した。 Refs #823 Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
概要
Windows の V1 の処理で、レーンの上で呼ぶ UI Automation にタイムアウトを付けます(#820。S5-c-2 計画の R8)。いまはタイムアウトがないので、対象の窓が応答しなくなると、レーンが止まったままになります。
変更
computer_use_windows_uia_source.h:CreateBoundedAutomation(timeout_ms, ...)を足しました。CLSID_CUIAutomation8とIUIAutomation2を使い、ConnectionTimeout と TransactionTimeout を設定します。WindowsUiaShadowSource::Createも、この関数を使うように共通化しました。動きは同じです。computer_use_windows_host.cc:CreateWindowsV1Automationを足しました。IUIAutomation2を取れないときだけ、従来のCLSID_CUIAutomation(タイムアウトなし)に戻ります。戻った回数を数え、初回だけOutputDebugStringAに出します。CoCreateInstance(CLSID_CUIAutomation, ...)を直接呼んでいた 8 か所を、このヘルパーに置き換えました。対象は HasUiAutomation、ReadUiaObservation、ClassifyWindowsUiaElement、ClassifyWindowsPoint、ClassifyWindowsFocusedElement、CaptureWindowsControlBindings、WindowsFocusedElementSignature、FindWindowsSemanticTarget です。500 ms にした理由
失敗したときの扱い(各呼び出し元で確認。V1 の判定の意味は変えていません)
ClassifyWindowsPoint/ClassifyWindowsFocusedElementtarget_unclassifiedで拒否ReadUiaObservation/CaptureWindowsControlBindings/WindowsFocusedElementSignaturestale_targetFindWindowsSemanticTargettarget_required/accessibility_unavailableテスト
CLSID_CUIAutomation(8 以外)を作るのは、フォールバックの 1 か所だけ。uia_source.h でCLSID_CUIAutomation8を作るのも 1 か所だけ。computer-use-windows-v1-uia-timeout-live-seam.test.ts)では、本物の host.cc をコンパイルして使います。留意点
CUIAutomation8に変わりました。fixture の journey(署名が必要)では、まだ確かめていません。CI と、人による受入で確かめます。RevalidateWindowsTargetは前面の窓などの前提が多いので、live seam では直接は呼んでいません。中で使っているWindowsFocusedElementSignatureを代わりに確かめています。Refs #820(close は main の CI と反証監査のあとで行う)
🤖 Generated with Claude Code