Cover the reachable controller and control branches: each failure code's
copy, dispose-during-flight, non-Error rejections, and non-conflict
mutation failures.
Two paths were unreachable rather than untested, so remove them instead:
commit() cannot run after disposal because mutate() refuses admission
first, and the mutation tail cannot reject because every queued operation
settles as a result. Pass the recorded rating into the note save so the
editor's render site proves it exists.