Step 2 keyed each refusal by the dinner's name, so a second add of the same name still in flight replaced the first add's refusal when it was refused too. Each attempt now keys its refusal uniquely; trying a change again once it has been refused still clears that earlier refusal. A refused removal was put back at the index it had in the list as it stood when it was removed, so refusing two overlapping removals of A and B restored B, A, C until a reread corrected it. A removal now only marks its Regular in the cache and the list hides it; a refusal clears the mark, so the Regular returns to its own place whatever else changed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>