mirror of
https://github.com/morluto/rea.git
synced 2026-10-26 17:35:11 +00:00
fix(mcp): escalate transient failures before asking for a restart (#6353)
* fix(mcp): escalate transient failures before asking for a restart Give dropped connections and startup failures one bounded retry, then a scripted handoff to the user. Point timeout recovery at a named request field or REA_* setting instead of telling agents those limits are fixed. Co-authored-by: morluto <morluto@users.noreply.github.com> * fix(process): stop unexpected command failures from recommending a retry The catch can already have launched the target, and the projection stays non-retryable. Tell the user to check the inputs and run doctor instead. Co-authored-by: morluto <morluto@users.noreply.github.com> * fix(mcp): limit retries to safe calls and recommended settings A dropped connection may already have changed the target, and a bad catalog rejects the same startup every time. Retry only a repeatable call, and change a setting only when the remediation recommends it. Co-authored-by: morluto <morluto@users.noreply.github.com> * test(mcp): match recovery guidance across wrapped lines Startup handoff capitalization and markdown wrapping still carry the same sentences. Compare the prose with whitespace collapsed. Co-authored-by: morluto <morluto@users.noreply.github.com> --------- Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: morluto <morluto@users.noreply.github.com>
This commit is contained in:
15 files changed
+233
-44
No files matched your search
@@ -95,11 +95,15 @@ optional bounded `recovery` next step. `recovery.kind=inspect_input_contract`
|
||||
names the rejected operation: re-read that operation's advertised input schema
|
||||
(call `tools/list` if the catalog may be stale), correct the listed fields, and
|
||||
do not repeat the unchanged call. `recovery.kind=inspect_timeout_state` names
|
||||
the operation and the REA server/provider deadline; inspect partial Evidence
|
||||
and reported cleanup state, then follow producer-specific remediation or reduce
|
||||
supported work. Generic errors do not assume adjustable timeout controls. Raising
|
||||
only the MCP client's deadline cannot extend this budget. These hints never
|
||||
include the complete catalog or caller arguments.
|
||||
the operation and the REA server/provider deadline. Inspect partial Evidence
|
||||
and reported cleanup state, then follow the returned remediation. Change a
|
||||
request field or REA_* setting only when the returned remediation explicitly
|
||||
recommends that change. Restart REA when that text says the value is read at
|
||||
startup. A mention that a control does not raise the deadline is not a
|
||||
recommendation to change it. When it names no setting, reduce supported work;
|
||||
do not invent one. Raising only the MCP
|
||||
client's deadline cannot extend this budget. These hints never include the
|
||||
complete catalog or caller arguments.
|
||||
Failures omit `structuredContent`, since each advertised `outputSchema`
|
||||
describes successful results. Successful replies retain their schema-validated
|
||||
structured data and matching text projection. Oversized errors are retained
|
||||
|
||||
Reference in new issue
Block a user