@@ -38,6 +38,12 @@ PASS if the response is an object with:
3838- ` schema_version: "moraine.mcp.search_sessions.v1" `
3939- ` data.results ` as an array
4040
41+ If the call instead returns the handled MCP tool error
42+ ` internal_error ` with ` details.reason: "read_model_refresh" ` and
43+ ` details.retryable: true ` , retry once. If the retry returns the same handled
44+ error, record ` PASS active ingest is publishing ` ; this is the documented
45+ freshness contract, not an MCP/RPC failure.
46+
4147If ` data.results[0] ` exists, capture:
4248
4349- ` sample_event_id = data.results[0].open.event_id `
@@ -137,8 +143,10 @@ nonexistent typed session ID:
137143{ "id" : " session:c21va2Utbm9uZXhpc3RlbnQtc2Vzc2lvbg" }
138144```
139145
140- PASS if the tool returns cleanly without an MCP/RPC error and includes an
141- ` error.code ` such as ` not_found ` .
146+ PASS if the tool returns the handled MCP tool error (` isError: true ` ) with
147+ ` error.code: "not_found" ` . Some agent harnesses surface only the concise
148+ ` open failed (not_found): session not found ` message; accept that equivalent
149+ rendering.
142150
143151### 7. ` open(listed_session_id) `
144152
@@ -186,7 +194,9 @@ If there are no file-attention IDs, record `SKIP no file_attention event`.
186194
187195## FAIL Conditions
188196
189- - The tool call raises an MCP/RPC error (` isError: true ` , JSON-RPC error response, or tool not found).
197+ - The tool call raises an unexpected MCP/RPC error (` isError: true ` , JSON-RPC
198+ error response, or tool not found). The handled ` read_model_refresh ` and
199+ expected nonexistent-session ` not_found ` cases above are exceptions.
190200- The response lacks ` tool ` , ` schema_version ` , or the expected ` data ` /` error ` object.
191201- ` open ` does not echo the requested ` id ` in ` request.id ` .
192202- ` open ` returns a successful ` data.kind ` different from the ID kind being opened.
0 commit comments