Refusals to overwrite an artifact you haven't read now tell you which case you hit.
What's wrong with this entry?
The guard that stops Claude overwriting an artifact with stale content now reports which situation it hit, including a new refusal when the model resends byte-identical content that was already rejected, and a separate one when a sibling agent read the live version earlier in the same turn.
- The old helper that quietly auto-read and reseeded the version (reporting outcomes like a gate being off or a cap being exceeded) was removed.
- Refusals now come from either the local guard or a 409 from the server, and telemetry labels which of the two fired.
stale_version_guard_seeded
Strings lifted out of the shipped bundle, so the claim above can be checked against them.