* fix(chat): prevent message send during IME composition
Add isComposing check to ChatInput to prevent messages from being sent
during Japanese/CJK character conversion. This fixes the issue where
pressing Enter to confirm IME composition would immediately send the
message instead of just completing the character conversion.
Changes:
- Add early return in handleKeyDown when IME is composing
- Add explicit isComposing check to Enter key handler
Fixes issue where Enter during IME composition sends incomplete text.
* fix(chat): improve IME composition detection with keyCode 229 fallback
Add isIMECompositionEvent helper function that checks both isComposing
and keyCode === 229, as recommended by MDN. This fixes IME input issues
on WebKit-based browsers (including Tauri WebView on macOS) where
compositionend may fire before keydown, causing isComposing to be false
when Enter key is processed.
Changes:
- Add isIMECompositionEvent helper function with dual detection
- Update handleKeyDown to use the new helper for IME checks
Fixes MacUI desktop app issue where pressing Enter during IME
composition would send the message instead of confirming the input.
* fix(agent-manager): prevent message send during IME composition
Apply the same IME composition fix as ChatInput to AgentManagerEmptyState.
Add isIMECompositionEvent helper and check it in handleKeyDown to prevent
accidental form submission when confirming IME input with Enter key.
* fix(agent-manager): add redundant IME check to Enter key handler
Add explicit isIMECompositionEvent check to the Enter key condition in
handleKeyDown. Although the early return already handles this, this
change ensures the implementation pattern matches ChatInput.tsx exactly
for consistency and safety.