On mobile, typing the first characters of a work description on a new
entry caused the form to remount: the auto-save POST replaced the temp
entry with the server copy, changing its React key, which destroyed the
textarea, dropped focus and closed the keyboard.
- Key EntryForm on a stable clientKey that survives the id swap
- Merge only the server id into the local entry so keystrokes typed
while the create request is in flight are kept
- Track temp-id -> real-id and in-flight creates so queued changes
become PUTs instead of duplicate POSTs; deletes resolve to the real row
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>