The usage-credit consent dialog now puts decline first so a stray Enter declines.
What's wrong with this entry?
The consent dialog now takes a refusal predicate, records refusals, remounts its select on a refusal counter, hides option numbers, and gates every action behind an acceptance check in the mid-session variant. The decline option now comes before the confirm option, so a stray Enter lands on decline.
- Callbacks are deferred rather than fired inline.
- The admin-request path gained outcome telemetry, including a new
admin_request_failedreason.
admin_request_failed
Strings lifted out of the shipped bundle, so the claim above can be checked against them.