Report #009 showed that authorization can become invalid between check and use. Report #010 removes authorization changes entirely and asks a narrower distributed-systems question: what if the business state itself changes between a correct read and the write it was supposed to justify?
Split check/write reproduced a duplicate.
Both synthetic nodes observed the same valid state: ABSENT, version 100, zero effects. Node B wrote first and advanced the store to version 101. Node A then used its old snapshot without enforcing it at write time.
ABSENT / version 100.
ABSENT / version 100.
Effect #1, version becomes 101.
Old v100 snapshot reused; effect #2.
Comparative result
Unsafe split check/writeBoth nodes reused the same ABSENT/version=100 observation.
Safe two-node CASNode B changed 100→101; Node A's stale expected version failed.
Unchanged-version controlNo competing mutation occurred, so the conditional transition progressed normally.
External mutationAnother writer changed state first; stale Node A was rejected before mutation.
CAS turns two valid readers into one valid writer.
In the safe race, both nodes again read version 100. Node B called the conditional transition first:
Node A then arrived with the same expected version:
After the conflict, Node A reread the state and observed COMMITTED / version=101 / effects=1. No blind second write occurred.
A conflict can be a successful safety outcome.
The losing node did not “fail” in the ordinary sense. It detected that the world had changed since its observation and refused to mutate on stale evidence. The correct recovery path is reread → reconcile → decide again.
Atomic safety must still permit progress.
The control scenario had no concurrent mutation. Version 100 still matched when Node A committed, so the transition succeeded exactly once and advanced the state to version 101.
Atomic state-version score · 10/10
Unsafe duplicate · 2/2Two stale writes reproduced two effects.
Single CAS winner · 2/2One transition succeeded and one stale transition was rejected.
Conflict + reread · 2/2The loser observed COMMITTED after the precondition failure.
Progress + mutation blocking · 2/2Unchanged state progressed; changed state blocked the stale writer.
Pinned evidence · 2/2Exact upstream SHA, deterministic FakeModel, synthetic effects only.
The atomic-transition invariant
For irreversible state changes, verification cannot end at “the precondition was true when I looked.” The write must prove that the same relevant state still holds while the transition is committed.
The RESONANCE model reaches the mutation boundary.
A verified transition now includes actor, intended action, observed state, observed state version, authorization/trust version, invariant, atomic commit precondition and resulting evidence.
Interpretation boundary
This experiment uses a synthetic in-memory store and deterministic local side effects. It is not a production database, linearizability, consensus, exactly-once, payment-rail or blockchain-finality certification. The OpenAI Agents SDK executes the application protocol; it does not automatically provide application-level distributed atomicity.
Reproduce / inspect
Evidence artifact digest: sha256:e69f4f65802ff653e7575b8e9fbaa9b6c97a83455d88a191bfe8aa8a06aaa3dc. No live model, production credential or external side-effecting service was used.
Verdict: two nodes acting on the same previously valid state snapshot reproduced a duplicate when check and write were split. Version-bound compare-and-transition produced one winner, rejected the stale writer and preserved exactly one side effect.
RESONANCE Verified Report #010
observe state → bind version → atomic compare + transition → reread on conflict.
Back to Issue 001