The sync path's mergeJsonConfigAtKey had incoming entries overwriting
existing user entries on conflict. Reverse the spread order so user
config wins, matching the install path's existing behavior.
Also add merge feedback logging and a test for the sync merge path.
Fixes#125
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>