.NET: Stabilize Foundry recovery tests - #7817
Conversation
There was a problem hiding this comment.
Pull request overview
Synchronizes the Foundry recovery test with persisted checkpoint state instead of live HTTP output.
Changes:
- Polls the persisted response file for expected output.
- Retries file-read failures and improves timeout diagnostics.
💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.
There was a problem hiding this comment.
MAF Automated Review — Iteration 1
Result: No findings
Scope: full PR (1 commit(s)): 03e9ab871403
Model: gpt-5.6-sol
Overview
This test-only change replaces synchronization against live HTTP output with polling of the durable response envelope before stopping the first host. Exact ordered-output checks, bounded polling, post-shutdown persistence assertions, and end-to-end recovery assertions constrain the behavior well. No Critical, High, or Medium defect was established.
Reviewed the supplied pull-request change set across correctness, security/reliability, architecture, and failure behavior.
No publishable findings remained after source verification for this scope.
Motivation & Context
Two Foundry recovery tests could observe state before the platform finished the durable operation they intended to verify.
The local two lifetime unit test stopped the host after the live HTTP response exposed new output, but before AgentServer had saved the matching checkpoint. The live integration test ended the process immediately after the workflow input stage, which could race the first durable recovery boundary and leave a completed response containing only workflow action items. During process replacement, response polling can also return HTTP 409
session_updatingand explicitly ask the caller to retry.Description & Review Guide
Related Issue
Fixes #7816
Contribution Checklist
breaking changelabel (or add "[BREAKING]" to the title prefix, before or after any language prefix). A workflow keeps the label and title prefix in sync automatically.