Skip to content

IME composition Enter is treated as "send" (Japanese/CJK input unusable) #445

Description

@dim0627
Screen.Recording.2026-06-13.at.13.17.03.mov

Summary

When composing text with an IME (Japanese/Chinese/Korean), pressing Enter to confirm the conversion candidate instead submits the message. The composition is sent half-converted, making the app effectively unusable for CJK input.

Steps to reproduce

  1. Set OS input source to Japanese (or any IME).
  2. Focus the task/chat input.
  3. Type にほんご, press Space to convert to 日本語.
  4. Press Enter to confirm the conversion.

Expected: Enter confirms the IME candidate; text stays in the box.
Actual: The message is submitted immediately, often with unconfirmed/partial text.

Environment

  • Git commit: f073b75 (current main HEAD).
  • OS: macOS (Darwin 25.5.0). The buggy handlers live in the renderer, so this is not OS-specific — it reproduces with any IME on any OS (Japanese, Chinese, Korean).
  • Provider: Provider-agnostic. The bug is in the input keydown handlers and does not depend on the agent provider (reproduces with Claude Code, Codex, etc.).

A screen recording of the repro will be attached below.

Root cause

The keydown handlers submit on Enter && !shiftKey without checking whether an IME composition is in progress. Affected inputs:

  • app/src/renderer/hub/TaskInput.tsx
  • app/src/renderer/hub/AgentPane.tsx (FollowUpInput)
  • app/src/renderer/pill/Pill.tsx
  • app/src/renderer/logs/LogsApp.tsx

Fix

Guard each submit-on-Enter branch with !e.nativeEvent.isComposing && e.keyCode !== 229. PR incoming.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions