Preserve durable ask_app status recovery handles#2184
Conversation
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
Here's a visual recap of what changed: Open the full interactive recap |
There was a problem hiding this comment.
Builder reviewed your changes — looks good ✅
Review Details
Code Review Summary
PR #2184 adds bounded retries for transient ask_app_status reads in both Core and Dispatch, returning a structured recovery envelope that preserves the original app and taskId instead of converting an exhausted transport failure into a false task failure. Permanent authentication, not-found, and protocol errors continue to propagate, while diagnostics include task correlation, route/origin metadata, retry classification, attempt count, and retry state. The MCP server tests also verify that the envelope is exposed through both text content and structuredContent, and the localized documentation consistently explains that callers must retry status polling rather than resubmit ask_app.
Risk assessment: Standard. Three independent code-review passes found no confirmed bugs, including no retry off-by-one issue, authorization regression, serialization problem, or Core/Dispatch parity issue. The approach is sound and well covered by focused tests. No actionable findings to report.
🧪 Browser testing: Skipped — PR only modifies backend/package logic, tests, and documentation, with no user-facing browser impact.

Summary
Verification
Hosted follow-up
After merge and production deployment, verify repeated status polling against one durable task without resubmitting ask_app.