v1.12.0 — an effect that is already true says so
An effect that is already true is not a pending one. When an action's declarative verify contract covers every key it declares it writes and already holds at fire time, the fire never waits for a state report that nothing will send — it settles on its own handler and answers alreadyTrue.
alreadyTrue — for an action whose effect the world already holds
What changes. Press a control while the thing it does is already the case, and the fire says so on the very first result instead of waiting forever. It carries the conditions that already hold, plus one sentence telling the reader nothing needed changing and not to press it again. Your handler still runs — deciding on your behalf that a press was pointless is not this library's call.
Why it wasn't there. An agent opened a domain view while already inside that domain. The app's store publishes when a value changes, so writing the value it already held notified nobody, the report never came, and the fire waited for it with no clock over it. did_it_work could only answer still-pending; the agent read that as the app still working, and spent fifteen of its thirty steps on an outcome that could never arrive. Nobody was at fault — the app's netting is correct and the library's refusal to guess is correct. The library is simply the only party standing where both halves are visible.
How it improves. Declare the postcondition beside the action and the library can see the outcome already holds before anything runs. An action with no declarative verify behaves exactly as it did in 1.11.0 — nothing is guessed on its behalf.
Four refusals learn to teach
ACTION_REQUIRED, JOURNEY_REQUIRED, TRANSITION_ID_REQUIRED and KEY_REQUIRED were raised as bare codes. Each now carries a plain sentence saying what is needed, the valid values where a valid set exists, and the fact that nothing was performed — a missing argument is not the app turning something down. KEY_REQUIRED deliberately serves no list and says why, because no ceiling of valid keys exists.
Every code is unchanged for consumers catching them today. Clean-room probed on the packed tarball: 66/66.