Files
orca/src
b76a2ddae6 fix(settings): defer Display Name persistence until IME composition ends (#6238)
* fix(settings): defer Display Name persistence until IME composition ends

The repository Display Name input persisted every keystroke via async
updateRepo, including unconfirmed IME text. For Japanese (and other CJK)
input this wrote pre-confirmation text to the store, and its async echo
could cancel the active composition. Track composition state and hold
persistence until compositionend so only confirmed text reaches
updateRepo; non-IME typing still persists per keystroke.

* fix(settings): de-duplicate Display Name persist on trailing IME change

Some IMEs (e.g. Firefox) fire the final change event after compositionend,
which repeated the already-persisted confirmed value through updateRepo.
Track the composition-end text and skip the next matching change so the
confirmed value is persisted exactly once. Model the trailing input event
in the unit test so the single-fire guard is exercised.

* fix(settings): reset IME draft guards after repo changes

Co-authored-by: Orca <help@stably.ai>

---------

Co-authored-by: Jinwoo-H <jinwoo0825@gmail.com>
Co-authored-by: Orca <help@stably.ai>
2026-06-24 00:12:22 -07:00
..