test(runner): preserve idempotent receiver result retries

Verify identical tool-result retries emit one sidecar resolution while changed payloads, operations, and error status remain rejected.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
DottaandPaperclip committed 2026-10-01 11:20:58 -05:00
1 parent e12b25f2b4
commit b97f3ce7c7
1 file changed
+20 -1
@@ -273,7 +273,26 @@ fn check_tool_receiver_admission(oversized: bool) {
assert!(session.state().pending_tool("call-admission").is_some());
session.deliver_tool_result(&result).unwrap();
assert!(!session.state().has_pending_tools());
assert!(session.deliver_tool_result(&result).is_err());
session
.deliver_tool_result(&result)
.expect("an identical receipt retry must be idempotent");
let mut changed_payload = result.clone();
changed_payload.result = json!({"id":"another-issue"});
let mut changed_operation = result.clone();
changed_operation.operation_id = "issues.write".to_owned();
let mut changed_error = result.clone();
changed_error.is_error = true;
for conflicting in [changed_payload, changed_operation, changed_error] {
let error = session
.deliver_tool_result(&conflicting)
.unwrap_err()
.to_string();
assert!(
error.contains("conflicting duplicate tool result"),
"{error}"
);
}
assert!(!session.state().has_pending_tools());
}
session.shutdown("admission test complete").unwrap();
let rows: Vec<serde_json::Value> = std::fs::read_to_string(&journal)