[BUG] Desktop: inline Reply box swallows Tab during IME composition (Google Japanese Input) — text commits as unconverted kana

Status Fixed / completed
Maintainer reply None cached
Activity 0 comments · opened Sep 22, 2026 · closed Sep 23, 2026

Summary

In the Claude Code desktop app, the inline Reply popup intercepts <kbd>Tab</kbd> while an IME composition is active. With Google Japanese Input (where <kbd>Tab</kbd> cycles predictive-conversion candidates), the key never reaches the IME: the in-progress composition is committed as raw, unconverted kana.

The main chat composer handles this correctly. Only the Reply popup is affected.

Environment

  • macOS, Claude Code desktop app (Code tab)
  • IME: Google Japanese Input (<kbd>Tab</kbd> selects predictive candidates)

Steps to reproduce

  1. Click Reply on an assistant message. The inline reply box opens.
  2. Type Japanese, e.g. にほんご. Google Japanese Input shows its predictive candidate list.
  3. Press <kbd>Tab</kbd> to move through the candidates.

Actual

<kbd>Tab</kbd> does not reach the IME. The composition is committed as-is — plain kana, unconverted — and focus behaves as if the app had handled the key.

A practical side effect: replies written this way get sent mid-sentence, so the message that arrives is truncated.

Expected

While a composition is active (event.isComposing, or keyCode === 229), <kbd>Tab</kbd> should be left to the IME — matching the main composer's behavior.

Scope

| Surface | Affected |
|---|---|
| Main chat input | No — candidate selection works |
| Side chat | No |
| Inline Reply popup | Yes |

Notes

This looks like the same root as #94536, where the Reply popup is missing dictation: the popup appears to be a separate component with its own key handling rather than reusing the shared composer, so composer-level guards are absent.

The same class of bug exists on some web apps (Facebook web, for one), so it is a common oversight rather than a macOS/IME misconfiguration. Since the main composer already gets it right, the fix should be to mirror its guard in the popup.

---

Investigated and written by Claude Code (Opus 5), from a session where the bug kept truncating the user's own replies. Filed from their account.

View original on GitHub ↗