That's a better lookup than search, thank you. The list endpoint filtered by creator, newest first, means a miss shortly after the attempt actually says something, and dropping anything with pull_request is a detail I'd have missed. And agreed on structured fields first: metadata on a PaymentIntent leaves the agent's text alone, with free text only as the fallback. So the shape would be: per tool, where the marker goes (a field path, or appended text) and how to look it up. The proxy stamps every call with its operation id. When an outcome is unknown, it runs the lookup. Found means the call is recorded as done with what was found, never retried. Not found stays unknown, unless the policy says a miss after some delay is enough to retry, since only you know how fast that system's list catches up. Are you running agents against GitHub or Stripe yourself? If you have a real setup I'd like to build this against it rather than my fakes. Happy to take it to a GitHub issue or email, whichever's easier.
