[BUG] Ctrl+J newline broken under Korean IME after v2.1.84 cursor tracking fix

Resolved 💬 5 comments Opened Mar 26, 2026 by ragtimelab Closed Mar 27, 2026

Description

After updating to Claude Code v2.1.84, Ctrl+J no longer inserts a newline when the Korean (Hangul) IME is active. It still works correctly in English input mode.

This regression appears to be caused by the v2.1.84 change:

"Fixed native terminal cursor not tracking the text input caret, so IME composition (CJK input) now renders inline and screen readers can follow the input position."

Steps to Reproduce

  1. Open Claude Code in Warp terminal
  2. Switch macOS input source to Korean (한국어)
  3. Press Ctrl+J in the chat input
  4. Expected: A newline is inserted
  5. Actual: Nothing happens

Switch back to English input → Ctrl+J works as expected.

Before v2.1.84

Ctrl+J inserted a newline in both Korean and English input modes without any custom keybinding configuration.

After v2.1.84

  • English input: Ctrl+J → newline ✅
  • Korean IME active: Ctrl+J → no response ❌

Workaround Attempted

Adding "ctrl+j": "chat:newline" to ~/.claude/keybindings.json restores newline in English mode only. Korean IME mode remains broken, suggesting the issue is in how key events are captured/dispatched when IME composition is active.

Root Cause Hypothesis

The v2.1.84 cursor tracking fix changed the key input processing path so that IME composition now renders inline. This likely moved key event handling from the terminal's native layer (where Ctrl+J = LF regardless of IME state) to Claude Code's internal keybinding system, which does not receive Ctrl+J when the Korean IME is active.

Environment

  • Claude Code: 2.1.84
  • Terminal: Warp 0.2026.03.18.08.24.03
  • OS: macOS Sequoia 15.5 (24F74) x86_64
  • Input Method: macOS built-in Korean IM
  • Machine: iMac (Retina 5K, 27-inch, 2019), Intel Core i5-9600K

Related Issues

  • #26075 — Add chat:newline keybinding action
  • #22732 — Korean IME composition visibility
  • #10547 — Ctrl+Backspace / Ctrl+Arrow with CJK input

View original on GitHub ↗

This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗