fix: force scroll to bottom on conversation switch
Detect conversation changes by tracking the first message ID.
When switching conversations, the component is reused by SvelteKit
so the action's isDetached state persists — without this fix, a new
conversation could open mid-scroll instead of at the bottom.