fix: refresh Ticket regression design evidence
This commit is contained in:
@@ -8,17 +8,19 @@
|
||||
|
||||
## 優先順位と採否
|
||||
|
||||
| 優先 | 利用者の操作と困る故障 | 判定・後続単位 |
|
||||
| ---------- | ----------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| P1 | Ticketを読むWorkerが、返された観測IDで同じ委任へ回答できない | **新規接続が必要な候補、T-744所有**。Tools/WIPとsigned router/storeの薄い適合を優先。こちらに同じ一巡suiteを作らない。 |
|
||||
| P1 維持 | 長いWorkspace操作を待つWorkerのHTTPが暗黙の30秒で切れる | **既存で充足**。timeoutの本番適用漏れを今回再現検出。31秒待ちを復活させない。 |
|
||||
| P1 維持 | 人間・Workerが保存済み履歴を読むと、budget中断後の行やoffsetが壊れる | **既存で充足**。readerの中断状態喪失を今回検出。画像実storage接続は別の既存試験を維持。 |
|
||||
| P2 | 親Runtime Workerの復元後、既知の子が一覧から消える/入力できない | **新規が必要(証拠不足)**。DB再openとclient型確認の間を、復元親のclientから公開list→inputまで接続する1ケース。既知の製品回帰と断定しない。 |
|
||||
| P2 | Ticketの実read結果がWeb parserと不適合/移行後の履歴が配送対象へ化ける | **既存強化・新規適合の候補、T-744所有**。個別案・fault結果は同Ticket成果を採用する。 |
|
||||
| P2 維持 | 開発者が成功suiteを信じたが一部ケースを実行していない/取消後の子が残る | **選んだ規則は既存で充足**。runnerのargv脱落を今回検出。結果件数の総合照合まで自動保証するとは主張しない。 |
|
||||
| P2 維持 | DB fixture共有により他ケースのseedが混入、再openで保存値や制約が消える | **既存で充足**。fixture所有の隔離・実再読取り試験を維持し、全APIケースで同じ確認を繰り返さない。 |
|
||||
| 保留 | RepositoryなしDrive資料の共有・更新を別入口から使えない | **T-725の既存証拠を再利用、不足は未確認**。ユーザー保留中であり本文改稿は再開指示ではない。本件で追加設計・起動しない。 |
|
||||
| 仕様確認先 | 親を復元すればInternal SubWorkerも再出現すると期待する | **実装未対応**。現実装はInternal子を復元しない。成功テストの不足として扱わず、復元機能が必要か利用者・spawn所有者へ確認。 |
|
||||
| 優先 | 利用者の操作と困る故障 | 判定・後続単位 |
|
||||
| ---------- | -------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| P1 | Ticketを読むWorkerが、返された観測IDで同じ委任へ回答できない | **A:薄い適合結合が必要、T-744所有**。通常Tools/WIPの実read→Answer。WIP probe成功・観測field脱落検出、通常Toolsは未試行。 |
|
||||
| P1 | 結果返却Tool/WIPがHost retry identityを落とし実Backendへ同じ依頼を渡せない | **B:薄い適合だけ追加候補、T-744所有**。HTTP→実永続sessionは既存で充足。Tools/WIP適合は未試行。 |
|
||||
| P1 維持 | 長いWorkspace操作を待つWorkerのHTTPが暗黙の30秒で切れる | **既存で充足**。timeoutの本番適用漏れを今回再現検出。31秒待ちを復活させない。 |
|
||||
| P1 維持 | 人間・Workerが保存済み履歴を読むと、budget中断後の行やoffsetが壊れる | **既存で充足**。readerの中断状態喪失を今回検出。画像実storage接続は別の既存試験を維持。 |
|
||||
| P2 | 親Runtime Workerの復元後、既知の子が一覧から消える/入力できない | **新規が必要(証拠不足)**。DB再openとclient型確認の間を、復元親のclientから公開list→inputまで接続する1ケース。既知の製品回帰と断定しない。 |
|
||||
| P2 | Ticketのlifecycle履歴を公開readとWebで正しく保持・解釈できない | **C:分離して強化、T-744所有**。detail/history再read、局所履歴component、実Backend bytes→production parserを分担。waiting parser probe成功、全lifecycle/DOMは未試行。 |
|
||||
| P2 | 真の旧schemaから移行・再open後にTicketを公開read/queryできない | **D:公開read/queryだけ強化、T-744所有**。migration→配送対象は既存で充足。Dの追加部分は未試行。 |
|
||||
| P2 維持 | 開発者が成功suiteを信じたが一部ケースを実行していない/取消後の子が残る | **選んだ規則は既存で充足**。runnerのargv脱落を今回検出。結果件数の総合照合まで自動保証するとは主張しない。 |
|
||||
| P2 維持 | DB fixture共有により他ケースのseedが混入、再openで保存値や制約が消える | **既存で充足**。fixture所有の隔離・実再読取り試験を維持し、全APIケースで同じ確認を繰り返さない。 |
|
||||
| 保留 | RepositoryなしDrive資料の共有・更新を別入口から使えない | **T-725の既存証拠を再利用、不足は未確認**。ユーザー保留中であり本文改稿は再開指示ではない。本件で追加設計・起動しない。 |
|
||||
| 仕様確認先 | 親を復元すればInternal SubWorkerも再出現すると期待する | **実装未対応**。現実装はInternal子を復元しない。成功テストの不足として扱わず、復元機能が必要か利用者・spawn所有者へ確認。 |
|
||||
|
||||
## 既存の検出範囲と追加不要の根拠
|
||||
|
||||
@@ -80,9 +82,16 @@ Internal子は `worker/src/spawn/registry.rs::load_from_worker_state_with_reclai
|
||||
|
||||
## Ticket / Driveとの重複・コストの扱い
|
||||
|
||||
T-744の早期共有(result `01a147e7-a048-73e0-b101-4112bd1abee4`)は `develop@10d200d9ba8bc313bb7f72eabafc279c9def3cf5` を対象にする。基準との差はMR follow-up/Prompt中心で主要Ticket testは同一との報告であり、最終設計・mutation結果はまだ未確認。P1のTools/WIP→実read観測ID→AnswerはT-744で1つの薄い接続に集約し、P2のWeb parser・移行read候補もそちらの最終採否を使う。
|
||||
T-744最終handoff(result `01a147f8-cde5-7cf2-8900-d6e2a44240bf`)の全文をtyped queryで確認し、上表のA〜Dを採否・コスト判断に用いる。設計書はsource `eeca864b23d7b476db829da60fff067830d33667`、branch `work/T-744-ticket-test-design` の `docs/development/ticket-regression-test-design.md`、baseは `develop@10d200d9ba8bc313bb7f72eabafc279c9def3cf5`。T-761基準との差15 filesはMR follow-up/Prompt中心で主要Ticket testは同一との報告。T-744文書はこのtreeへ未採用なので相対リンクを作らず、source/pathで参照する。以下は他Workerの最終報告による実績であり、こちらでの再測定・再設計ではない。
|
||||
|
||||
`server_implementation_result_tests.rs::implementation_result_signed_http_reaches_persistent_orchestrator_without_assignment_or_mr` は署名HTTP→本番store→永続Orchestrator session・再送を既に扱う。T-744から1 passed、本体9.61秒、初回外側build4分55秒(jobs 2、別checkout)の実測が共有された。**こちらの測定ではない**。同じ経路を巨大なTicket一巡やDrive一巡へ組み込む費用は払わず、新規adapter適合の外側ではこの証拠を再利用する。
|
||||
| 所有設計 | 最終採否と検出実績 | 横断の費用判断・未確認 |
|
||||
| -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| A / P1 | 通常Tools/WIPの実read観測ID→同一Answerの薄い適合結合が必要。一時WIP mount→署名router/実SQLiteのprobeで保存イベント1件・同receipt replay・waiting不変を確認。実read応答の`last_event_id`だけの脱落でNull対String assertionが失敗。 | 単独probe2.37秒、field脱落の正常1 pass/fault1 failは3.49秒の共有値。通常Tools側・障害表は未試行で、この値を恒久追加コストとは断定しない。自己Answerの通知抑止を尊重し、外部Answer配送は既存証拠へ分離。 |
|
||||
| B / P1 | Host retry identityを含む返却Tool/WIP→実Backendの薄い適合だけ追加候補。assignment/MR不要のHTTP→本番store→実永続Orchestrator session・再送は `server_implementation_result_tests.rs::implementation_result_signed_http_reaches_persistent_orchestrator_without_assignment_or_mr` で既存充足。 | B適合は未試行。既存signed HTTP→sessionは9.61秒。重い接続の再起動を追加せず、adapter境界だけに費用を限定する。 |
|
||||
| C / P2 | 既存lifecycleへの公開detail/history再read、Web局所履歴componentのassertion、実Backend bytes→production parser適合を分離して強化。 | 実Backend detail/page/receipt→production parser/answerOperationのwaiting probe0.137秒。既存lifecycle2.41秒、Web parser/operation/case 32 testsは本体147ms/外側0.867秒。全lifecycle bridge・新component/DOMは未試行。parser成功を画面保証へ広げず、既存fixtureと局所componentを分担する。 |
|
||||
| D / P2 | 真の旧schema→移行・再open→公開read/queryだけを強化。migration→配送対象、ACK喪失/復旧/並行scan→実sessionは既存で充足。 | Dの公開query追加は未試行。既存migration2件は1.91/2.04秒、real Worker response loss/restore/concurrent scansは14.58秒。移行行列ごとに実Worker配送を繰り返すE2Eは追加不要。 |
|
||||
|
||||
T-744では既存Rust代表8件が成功(上表以外の公開reissue/case/Answerは0.54/0.66/0.72秒)。初回jobs 2の外側build4分55秒は実行時間と分離されている。これらは追加テストの増分見積りではなく、既存fixture再利用の費用判断に使う。具体的配置・fault・assertion・同期回収・通常/明示実行・保守費は上記source/pathの最終設計を参照し、T-761で同じケースを作り直さない。初版probeの非公開API/runtime/ID形式/自己配送の誤期待はfixture誤りの修正であり、製品バグ検出とは数えない。Aのfield脱落検出とCのparser成功も、未試行のB適合・C全履歴・D公開queryを充足した証拠にはしない。
|
||||
|
||||
T-725現行本文・保留trackingを読んだ。`workspace-drive/tests/storage.rs::receipts_survive_response_loss_and_restart_without_double_mutation` は実DB/blob再open後のreceipt一致、同request再送一致、別actor競合拒否、list件数1をassertする。`workspace-server/src/server/tests/worker_drive_tests.rs::lost_mutation_response_is_resolved_by_receipt_without_resending_effect` は本番DriveFeature→署名router/storeを通し、receipt committed・POST mutate数1・別Worker listのlast mutation一致をassertするがRuntime起動はfixtureである。これらの保存/応答喪失規則を再設計しない。実Web adapter接続は `drive_web_roundtrip_tests.rs::repositoryless_drive_real_web_adapter_preserves_bytes_cas_and_latest_reference_lifecycle` の既存ignore/明示実行であり、通常suiteの成功へ含めない。Worker寿命・Web画面までの不足と必要コストはT-725再開時の判断で、今回未確認とする。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user