mirror of
https://github.com/we-promise/sure.git
synced 2026-09-08 08:04:15 +00:00
Addresses review feedback on #3160. The exclusivity check was bounded to `new_record? || will_save_change_to_allocated_amount?`. A persisted whole-account row whose `account_id` or `goal_id` changes is neither, so moving one landed it on an account nobody had checked — the same double-counting hole a restore opened, through a different door. The bound is widened rather than dropped. It exists because `Goal has_many :goal_accounts, autosave: true` revalidates every loaded child on `goal.save`, so an unguarded check makes a goal that merely holds a legacy overlap impossible to rename. That reason still holds for every row along for the ride; it does not hold for a row being moved. A test pins both faces. bin/rails test: 6939 runs, 27916 assertions, 0 failures. RuboCop and Brakeman clean. Confirmed load-bearing by narrowing the bound back and watching the move test fail. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016GTNba5qE5NwzaHzbp27ye