Skip to content

feat(computer-use): #785 T15-4w Windows の native で対象ノードの値を読む(能力は false のまま)、J12、アーカイブ済み Task の開始拒否 - #822

Merged
yusei531642 merged 9 commits into
mainfrom
feat/785-t15-4w-windows-read
Oct 17, 2026
Merged

yusei531642 merged 9 commits into
mainfrom
feat/785-t15-4w-windows-read

Conversation

@yusei531642

Copy link
Copy Markdown
Collaborator

概要

#785 の T15-4w です。Windows の native が、対象のノード 1 つの値を読めるようにします。このほかに小さな作業を 2 つ、別々の commit で入れています。どれも production の能力(artifactReadSupported)は false のままで、有効にするのは T15-E です。

1. T15-4w: Windows の native でノードの値を読む(2c8349f7)

  • 新しく computer_use_windows_artifact_read.h を足しました(ReadWindowsArtifactValue、portable)
    • 対象は、shadow の reader の Capture("copy", targetId) で探します。探し方はセマンティック操作と同じ id の探索です。
    • facts は capture から作ります。role は ControlTypeName 系(Text / Edit / Document)で、subrole は見ません。
    • パスワード欄は、is_password と、classifier の secure / credential で拒否します。名前や class が読めないときは metadata_complete=false にします。
    • 読めるかどうかの判定は、JudgeArtifactRead に任せます。
      • 面は shadow の facts で判定し、shell と secure は拒否します。
      • ブラウザの窓は、窓の class、origin、実行ファイル名の表で拒否します。この表が Main 側の表と一致することは、source 契約で固定しました。
    • 値を読むのは、判定で許可されたときだけです。
      • 上限は contracts の 4,096 バイトで、超えたときは切り詰めずに拒否します。
      • 値が無いノードも拒否します。
  • 値の読み方(実機で確かめて選びました)
    • TextPattern で読み、TextPattern が無ければ ValuePattern で読みます。
    • 新しいメモ帳の Document は、ValuePattern で読むと全文が返ってきました(88,042 文字)。そのため、TextPattern の GetText(上限+1) で上限付きに読んでいます。
  • host
    • 新しく read_node_value を足しました。PR-1 と同じ形で、評価ごとに MTA ワーカーを使い、レーンの待ちは 500 ms 以下、UIA は 250 ms です。
    • ノードは、V1 の探索と署名で解決します。
    • 応答はキャッシュせず、送ったあとに値のコピーを消します。
  • Main
    • Windows の addon に readNodeValue を足しました。返り値は { ok: true, text } | { ok: false } に揃えます。余分なキーがある、空、上限を超える、throw した、の場合は拒否します。
  • 設計書: §6.2 に T15-4w の記述と、既知の限界を足しました。

2. J12: useComputerUse を mount するテスト(ea119d8a)

  • 本物の useComputerUse を、preload API の fake で mount します。
  • 確かめること:
    • copied の抜粋がカードに出る。
    • 抜粋が、preload API の呼び出しの引数にも、local / session storage にも残らない。
    • セッションの終了後と unmount 後に、抜粋が消える。
  • hook に storage への書き込みを足す変異で、RED になることを確かめました。

3. T15-E の前提 (5): アーカイブ済みの Task ではセッションを始めない(09b3b2a2)

  • ipc の canStartSession を、computerUseSessionMayStart に切り出しました。
  • アーカイブ済みの Task と、読めない Task では、パネルからの開始も computer_start も拒否します。V1 の開始にも効きます。ほかの条件は変えていません。

検証

  • MSVC harness: 全件 PASS しました。新しいケース(約 35 件)は次のとおりです。
    • 値の有無と上限
    • パスワード
    • role
    • ブラウザ
    • console と面の語
    • 対象が無い・曖昧
    • cancel、予算、読み取りの失敗
  • RED(変異): 判定の門、role、ブラウザの表のそれぞれを外すと失敗することを確かめました。
  • tsc、prettier、host のビルド(新しい警告なし)は通りました。
  • vitest: 次のテストは、作業の途中で緑でした。最終状態では、まだ全体を実行していません(下の留意点)。
    • source 契約、host adapter、J12、session gate、c6-acceptance、ipc-integration
    • live seam の新規 computer-use-windows-artifact-read-live-seam.test.ts(Edit を読む、パスワード / Button / Static / Chrome_WidgetWin_1 / Console を拒否、fixture のダイアログの Edit を読む)

留意点

  • 作業の途中から、この PC では窓を作るテストを止めています。最終状態での live seam と、vitest 全体の再実行はまだです。CI と、あとで行う再実行で確かめます。
  • 新しいメモ帳の Document は、origin の既知の gap により拒否される見込みです(設計書に記載)。

Refs #785

🤖 Generated with Claude Code

yusei531642 and others added 3 commits October 17, 2026 12:35
…roduction で false のまま)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…残らないことを固定する

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@sprintreviewer

sprintreviewer Bot commented Oct 17, 2026 •

Copy link
Copy Markdown

🗺️ PR Walkthrough

Note

Windows native で対象ノードの値を署名確認後に読み取る処理を追加し、アーカイブ済み Task のセッション開始を拒否します。値読み取り機能は追加されましたが、本番 capability は false のままです。

Changed files (6)
File Summary
apps/desktop/computer-use-native/computer_use_windows_artifact_read.h shadow capture から対象の判定情報を作り、許可されたノードだけを上限付きで読み取ります。
apps/desktop/computer-use-native/computer_use_windows_host.cc 値読み取りを bounded worker で実行し、遅延・取消時の値を破棄して応答後にコピーを消去します。
apps/desktop/src/main/computer-use-native-host.ts Windows addon の読み取り応答を厳密に検証し、失敗時は一律拒否します。
apps/desktop/src/main/computer-use-session-gate.ts Task のアーカイブ状態と既存の Turn・worker 条件を確認し、開始可否を判定します。
apps/desktop/src/renderer/hooks/useComputerUse.mount.test.tsx 抜粋表示と、storage・セッション終了・unmount 時に抜粋が残らないことを確認するテストを追加します。
tasks/designs/t13-readback-design.md T15-4w の仕様と既知の制限を設計書に記録します。

Reviewed by vibe-editor-reviewer — head da5089d

@sprintreviewer sprintreviewer Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧭 Code review

Warning

2 actionable finding(s) — review recommended

Critical Warning Nitpick Info
🔴 0 🟡 2 💬 1 💡 0

確認内容

  • ✅ 変更箇所と関連するコード経路を確認
  • ✅ 独立した差分レビュー(Claude)を確認
  • ✅ リードが指定した重点ファイルの精査(Claude)を確認

レビュー所感

Windows の読み取り境界、対象の署名検証、キャンセル処理とセッション開始条件を確認しました。対象の再探索による取り違えと、Windows 専用テストが macOS CI で必ず失敗する問題に修正が必要です。判定は固定ソースの静的追跡に基づき、実行検証は行っていません。

🔍 Verification: 全 3 件の指摘を検証パス(gpt-6.1-sol / high)でクロスチェック済み(コード引用を固定base/headと照合) — 0 件を反証・重複確認により除外


Reviewed by vibe-editor-reviewer — head 09b3b2a

Review coverage & tooling
  • Files: 21 reviewed (+1760 / -13)
  • Full file bodies included: 0 / 21
  • Reviewer roles: numeric_consistency (deterministic), codex_deep (gpt-6-astra), claude_peer (claude-opus-5-5, fixed-diff only, partial), claude_specialist (claude-opus-5-5, fixed-diff only, partial)
  • Verification: 全 3 件の指摘を検証パス(gpt-6.1-sol / high)でクロスチェック済み(コード引用を固定base/headと照合) — 0 件を反証・重複確認により除外

Comment thread apps/desktop/computer-use-native/computer_use_windows_host.cc Outdated
Comment thread apps/desktop/src/main/computer-use-windows-artifact-read-live-seam.test.ts Outdated
Comment thread apps/desktop/src/main/computer-use-windows-artifact-read.test.ts Outdated
…skip する

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@sprintreviewer sprintreviewer Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧭 Code review

Warning

2 actionable finding(s) — review recommended

Critical Warning Nitpick Info
🔴 0 🟡 2 💬 1 💡 0

確認内容

  • ✅ 変更箇所と関連するコード経路を確認
  • ✅ 独立した差分レビュー(Claude)を確認
  • ✅ リードが指定した重点ファイルの精査(Claude)を確認

レビュー所感

全指定差分と関連する呼び出し元を確認し、値読み取りの認可・機密情報・取消処理と、アーカイブ済み Task の開始拒否を重点的に追跡しました。新規の重大な欠陥は確認できませんでした。実行検証は行っておらず、Windows の時間制限と並行処理は追加精査の対象としています。

⏳ 過去のレビューで指摘済み・未解決のスレッド 3 件(🟡 2 · 💬 1)が open のままです。対応済みであればスレッドを resolve してください(verdict に反映されます)。


Reviewed by vibe-editor-reviewer — head d614a5c

Review coverage & tooling
  • Files: 21 reviewed (+1764 / -13)
  • Full file bodies included: 0 / 21
  • Reviewer roles: numeric_consistency (deterministic), codex_deep (gpt-6-astra), claude_peer (claude-opus-5-5, fixed-diff only, partial), claude_specialist (claude-opus-5-5, fixed-diff only, partial)

@sprintreviewer sprintreviewer Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧭 Code review

Note

レビュー結果(承認保留)

Critical Warning Nitpick Info
🔴 0 🟡 0 💬 0 💡 0

確認内容

  • ⚠️ Codexのリポジトリ検査が未完了: 検査処理を完了できませんでした(詳細は実行ログ)
  • ⚠️ Claudeのリポジトリ検査は完了せず、固定差分のみ確認: 変更箇所と関連コードが検査量の上限を超過
  • ✅ 独立した差分レビュー(Claude)を確認
  • ⚠️ Claudeの差分レビューは完了しましたが、Codexのリポジトリ検査が未完了のため、必須の二者レビューが成立せずapprove不可
  • ⚠️ Codexの必須レビュアーが利用できなかったためClaudeのdiffベースレビューにフォールバックしました。リポジトリ実体・未変更の呼び出し元は未検査のため、このrunはAPPROVEを発行しません。
  • ⚠️ high-risk routeで必須のリポジトリ検査が完了しませんでした。利用可能な縮退レビュー所見は保持しますが、このrunはAPPROVE / REQUEST_CHANGESを発行せずCOMMENTとして投稿します。

レビュー所感

chunk 1: 提供された差分(native の値読み取り ReadWindowsArtifactValue、host の read_node_value、harness ケース)を静的に確認しました。

  • 次の流れを追いました。
    • 署名照合と判定の後でのみ値を読むこと
    • 取り消し、予算、レーン放棄時の値の破棄
    • 上限検査
    • キャッシュしない応答経路
  • この範囲で、根拠付きの具体的な欠陥は見つかりませんでした。
  • テストは実行していません。
  • 次の定義は差分に含まれず、確認できていません。
    • WindowsShadowReader::ReadTargetSignature / ReadTargetValue
    • FakeUia の Tick / cancel_after
    • Respond / JsonEscape
    • 実機の WindowsUiaShadowSource の Value 実装(UTF-16 から UTF-8 への変換とバイト上限)
  • PR 説明にあるとおり、最終状態での live seam と vitest 全体の再実行は未完了です。
  • 特に、取り消しの harness ケース(artifact-read-canceled-during-the-value-drops-it)は、新しく入った署名読み取りの呼び出し回数に左右される可能性があります。最終状態で harness を再実行して確認してください。; chunk 2: 提示された差分を確認しました。対象は UIA の Value / ControlSignature の追加、computerUseSessionMayStart の切り出し、source 契約テスト、live seam テストです。このうち、実際に起こりうる条件で発生し、変更行に結び付けられる具体的な欠陥は見つかりませんでした。Value は TextPattern を上限+1 文字で読み、超えた場合は拒否します。TextPattern が無い場合だけ ValuePattern を使う順序も、説明どおりです。セッション開始の判定は、アーカイブ済みの Task と getTask が例外を投げた場合に開始を拒否し、それ以外の条件は従来と同じです。これはコードを読んだうえでの判断で、テストは実行していません。また、host.cc、artifact_read.h、ipc.ts の呼び出し側は提示されていないため確認できていません。

Reviewed by vibe-editor-reviewer — head 63e42f8

Review coverage & tooling
  • Files: 21 reviewed (+1908 / -13)
  • Full file bodies included: 0 / 21
  • Diff coverage: ✅ complete; reviewed in 2 chunks
  • Reviewer roles: numeric_consistency (deterministic), claude_peer (claude-opus-5-5, fixed-diff only, partial), claude_repository (claude-opus-5-5, fixed-diff only, partial), degraded_route (required repository coverage unavailable; fallback evidence only)

yusei531642 and others added 2 commits October 17, 2026 21:49
#820(#821)で経路の外の V1 の UIA 呼び出しは拒否されるようになったため、ワーカーで要求の epoch を持つ WindowsV1UiaPath を張る。最初の時間切れでそれ以降を打ち切り、Cancel は次の呼び出しの前で止める。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@sprintreviewer sprintreviewer Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧭 Code review

Note

レビュー結果(承認保留)

Critical Warning Nitpick Info
🔴 0 🟡 0 💬 0 💡 0

確認内容

  • ⚠️ Codexのリポジトリ検査が未完了: 検査処理を完了できませんでした(詳細は実行ログ)
  • ⚠️ Claudeのリポジトリ検査は完了せず、固定差分のみ確認: 変更箇所と関連コードが検査量の上限を超過
  • ✅ 独立した差分レビュー(Claude)を確認
  • ⚠️ Claudeの差分レビューは完了しましたが、Codexのリポジトリ検査が未完了のため、必須の二者レビューが成立せずapprove不可
  • ⚠️ Codexの必須レビュアーが利用できなかったためClaudeのdiffベースレビューにフォールバックしました。リポジトリ実体・未変更の呼び出し元は未検査のため、このrunはAPPROVEを発行しません。
  • ⚠️ high-risk routeで必須のリポジトリ検査が完了しませんでした。利用可能な縮退レビュー所見は保持しますが、このrunはAPPROVE / REQUEST_CHANGESを発行せずCOMMENTとして投稿します。

レビュー所感

chunk 1: 提供された差分と文脈の範囲を静的に確認しましたが、指摘すべき具体的な欠陥は確認できませんでした。確認した経路は次のとおりです。

  • native の読み取り(ReadWindowsArtifactValue): 対象の探索、署名の照合、判定の門、上限、cancel 時の破棄
  • host の read_node_value: 単一実行のワーカー、待ちを諦めたときの値の消去、エポックと対象の再検証、応答をキャッシュしないこと
  • harness の新規ケース

なお、本文が提供されていない次の要素の内部の動作は確認していません。テストも実行していません。

  • WindowsV1UiaPath
  • InterlockWorkerRunning
  • ShadowUiaSource の cancel の計数
  • session.cancel_epoch とグローバルな cancellation_epoch の関係
  • TypeScript 側の変更; chunk 2: 提供された差分と文脈の範囲では、具体的な欠陥は確認できませんでした。結果は静的な追跡によるもので、テストは実行していません。確認した内容は次のとおりです。
  • WindowsUiaShadowSource::Value:TextPattern を優先し、GetText(上限+1) で上限付きに読みます。UTF-16 の 1 単位は UTF-8 で 1 バイト以上になるため、上限を超える値は切り詰めではなく超過として扱われます。TextPattern が無い場合の ValuePattern へのフォールバックも妥当です。
  • ControlSignature:provider が無いとき、または計算結果が空のときは kAbsent を返し、失敗時は kFailed を返します。
  • computerUseSessionMayStart:アーカイブ済みの Task と読めない Task を拒否し、それ以外の条件は従来どおりです。
  • 新しい source 契約テストと live seam テストも確認しました。
    未確認の範囲があります。computer_use_windows_artifact_read.h、host 側の read_node_value 実装、shadow reader の変更、ipc.ts の呼び出し側の本文は今回の文脈に含まれていません。そのため、これらの正しさは検証できておらず、この結果をレビュー全体として問題なしとは扱えません。

Reviewed by vibe-editor-reviewer — head 2dba5ab

Review coverage & tooling
  • Files: 21 reviewed (+1922 / -13)
  • Full file bodies included: 0 / 21
  • Diff coverage: ✅ complete; reviewed in 2 chunks
  • Reviewer roles: numeric_consistency (deterministic), claude_peer (claude-opus-5-5, fixed-diff only, partial), claude_repository (claude-opus-5-5, fixed-diff only, partial), degraded_route (required repository coverage unavailable; fallback evidence only)

@yusei531642

Copy link
Copy Markdown
Collaborator Author

/reviewer review

@sprintreviewer

Copy link
Copy Markdown

Review pipeline finished (rc=0).

独立レビューの指摘: 予算の無い経路では、レーンが諦めた後も V1 の探索が続き、interlock と共有する single-flight の枠を握り続けていた。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@sprintreviewer sprintreviewer Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧭 Code review

Note

レビュー結果(承認保留)

Critical Warning Nitpick Info
🔴 0 🟡 0 💬 0 💡 0

確認内容

  • ⚠️ Codexのリポジトリ検査が未完了: 検査処理を完了できませんでした(詳細は実行ログ)
  • ⚠️ Claudeのリポジトリ検査は完了せず、固定差分のみ確認: 変更箇所と関連コードが検査量の上限を超過
  • ✅ 独立した差分レビュー(Claude)を確認
  • ⚠️ Claudeの差分レビューは完了しましたが、Codexのリポジトリ検査が未完了のため、必須の二者レビューが成立せずapprove不可
  • ⚠️ Codexの必須レビュアーが利用できなかったためClaudeのdiffベースレビューにフォールバックしました。リポジトリ実体・未変更の呼び出し元は未検査のため、このrunはAPPROVEを発行しません。
  • ⚠️ high-risk routeで必須のリポジトリ検査が完了しませんでした。利用可能な縮退レビュー所見は保持しますが、このrunはAPPROVE / REQUEST_CHANGESを発行せずCOMMENTとして投稿します。

レビュー所感

chunk 1: 与えられた差分と文脈の範囲を静的に確認しましたが、具体的なトリガーで再現できる重大・警告レベルの欠陥は見つかりませんでした。テストは実行していません。

主に次の点を追いました。

  • 新規コミット a8503f6 で、V1 経路にレーンの待ち時間を予算として付けた部分
  • 単一実行スロット(running)の取得と解放
  • レーンが諦めた後(abandoned)の値の消去
  • 署名照合 → 判定 → 値の読み取りの順序と、キャンセルの再確認
  • 上限(4096 バイト)の再検証
  • 応答をキャッシュしないこと(Respond を使用)

WindowsSession のコピー時の意味、ScrubString、FindWindowsSemanticTarget、WindowsV1UiaPath の実装は差分に含まれていないため、確認できていません。; chunk 2: 提示された差分を確認しました。対象は UIA ソースの Value と ControlSignature、セッション開始ゲートの切り出し、ソース契約テスト、live seam テストです。具体的な欠陥は確認できませんでした。

  • Value: TextPattern を先に GetText(上限+1) で読み、無ければ ValuePattern を使います。GetCurrentPatternAs は、パターンが無いとき null で成功を返し、コードはそれを想定しています。超過した値は切り詰めずに判定へ渡ります。
  • computerUseSessionMayStart: 次の場合に false を返します。
    • アーカイブ済みの Task
    • 読めない Task
    • Turn の所有者が一致しない
    • busy な worker がいる

確認できなかった点:

  • ipc.ts、computer_use_windows_artifact_read.h、host.cc の本体は差分にありません。そのため、空値の扱いと、a8503f6 で足したレーン予算の実装そのものは検証していません。
  • テストは静的に読んだだけで、実行していません。

Reviewed by vibe-editor-reviewer — head a8503f6

Review coverage & tooling
  • Files: 21 reviewed (+1925 / -13)
  • Full file bodies included: 0 / 21
  • Diff coverage: ✅ complete; reviewed in 2 chunks
  • Reviewer roles: numeric_consistency (deterministic), claude_peer (claude-opus-5-5, fixed-diff only, partial), claude_repository (claude-opus-5-5, fixed-diff only, partial), degraded_route (required repository coverage unavailable; fallback evidence only)

独立レビューの指摘: 値の読み取りが shadow の期限を過ぎて返ると、gate は予算切れの印を付けて止まるだけで Canceled() にはならず、その値が ok で返っていた。予算切れと停止も確かめる。harness に期限超過のケースを足し、修正を外すと RED になることを確かめた。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@sprintreviewer sprintreviewer Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Code review

Tip

LGTM — actionable issues were not found.

確認内容

  • ✅ 変更箇所と関連するコード経路を確認
  • ✅ 独立した差分レビュー(Claude)を確認
  • ✅ リードが指定した重点ファイルの精査(Claude)を確認

レビュー所感

全差分と関連する呼び出し元を確認し、Windows の署名照合・機密面の拒否・期限切れ応答・セッション開始条件を重点的に追跡しました。重大な欠陥は確認できず、本番の読み取り能力も無効のままです。実行環境がないため、検証は静的確認に限ります。

🛡️ blockingな指摘はありません。bot側の安全設定により、merge-relevantなAPPROVEではなくCOMMENTとして投稿します。

Review coverage & tooling
  • Files: 21 reviewed (+1938 / -13)
  • Full file bodies included: 0 / 21
  • Diff coverage: ✅ complete; reviewed in 2 chunks
  • Reviewer roles: numeric_consistency (deterministic), codex_deep (gpt-6-astra), claude_peer (claude-opus-5-5, fixed-diff only, partial), claude_specialist (claude-opus-5-5, fixed-diff only, partial)

Reviewed by vibe-editor-reviewer — head da5089d

@yusei531642
yusei531642 merged commit 558676c into main Oct 17, 2026
75 of 78 checks passed
yusei531642 added a commit that referenced this pull request Oct 17, 2026
…にしない (#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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant