Skip to content

IME regression on macOS: duplicate characters, double-press Backspace, and Tab inserts literal \t with Boshiamy IME (broken between Stable 0.2026.04.29 and 0.2026.05.13) #11091

@ethan-tsai-tsai

Description

@ethan-tsai-tsai

Pre-submit Checks

  • I have searched Warp bugs and there are no duplicates
  • I have searched Warp known issues page and my issue is not there

Describe the bug

Between Warp Stable 0.2026.04.29.08.57.01 and 0.2026.05.13.09.15.03, IME handling on macOS regressed. With the Boshiamy (無蝦米) input method active, three distinct symptoms appear that did not exist in the prior Stable build:

  1. Duplicate characters — committed characters appear twice (committed char + the raw latin keystrokes used during composition leak into the terminal).
  2. Backspace requires two presses to delete a single character (first press is consumed by the IME composition buffer, second press reaches the shell).
  3. Tab inserts a literal \t instead of triggering shell completion (Tab is sent as a raw character before the IME finishes committing).

All three symptoms are facets of the same underlying issue: IME composition keystrokes are leaking into the terminal instead of being fully consumed via NSTextInputClient, contrary to standard macOS NSResponder behavior.

To reproduce

  1. macOS with the Boshiamy (無蝦米) input method selected as the active input source.
  2. Open Warp Stable 0.2026.05.13.09.15.03.
  3. Type any Chinese character via Boshiamy. Example: keys v o r → expected .
  4. Observed: 項項 or 項vor appears in the prompt instead of just .
  5. Press Backspace once → nothing visibly deleted. Press a second time → one character is deleted.
  6. Press Tab during or immediately after composition → a literal \t is inserted; shell completion is not triggered.

Reproduces 100% of the time on the affected build. Does not reproduce at all on Warp Stable 0.2026.04.29.08.57.01 on a second Mac with the same OS family and the same Boshiamy install.

Expected behavior

  • IME composition keystrokes should be fully consumed by the input method during composition. Only the committed text should reach the terminal.
  • Backspace during/after composition should behave atomically — one press deletes one character.
  • Tab should trigger shell completion, not insert a literal tab character, regardless of whether an IME is active.
  • Behavior should match 0.2026.04.29.08.57.01, Terminal.app, and iTerm2.

Screenshots, videos, and logs

Screenshot of the duplicate-character symptom available on request (will attach via web UI in a follow-up comment). Happy to also capture a screen recording and attach Warp logs if it would help narrow down the offending build.

Operating system (OS)

macOS

Operating system and version

macOS 26.5 (build 25F71), Apple Silicon (arm64)

Shell Version

zsh 5.9

Current Warp version

v0.2026.05.13.09.15.03 (Stable channel, bundle ID dev.warp.Warp-Stable)

Regression

Yes, this bug started recently or with an X Warp version

Recent working Warp date

2026-04-29 — confirmed working on Warp Stable v0.2026.04.29.08.57.01 on a second Mac (same macOS family, same Boshiamy install, same shell, same locale). Regression window: 2026-04-29 → 2026-05-13 on the Stable channel.

Additional context

Bisect evidence

Machine Warp version Bundle ID Channel Symptoms
Broken (this report) 0.2026.05.13.09.15.03 dev.warp.Warp-Stable Stable All 3 symptoms
Working (second Mac) 0.2026.04.29.08.57.01 dev.warp.Warp-Stable Stable None

Only the Warp version differs between the two machines.

Cross-terminal verification (same machine as the broken Warp)

A/B tested Boshiamy on this same Mac in:

  • Terminal.app — all 3 symptoms absent, Boshiamy works correctly.
  • iTerm2 — all 3 symptoms absent, Boshiamy works correctly.

So the issue is specific to Warp 0.2026.05.13.09.15.03 on this machine; it is not a system-level IME or Boshiamy install issue.

Workarounds attempted (none resolved the issue)

  • Switched Settings → Appearance → Input to Shell (PS1) (Classic Input). Symptoms unchanged — Classic Input only changes prompt rendering, not the IME handling layer.
  • Verified LC_ALL / LANG are zh_TW.UTF-8.

Suspected cause

The NSTextInputClient implementation in the input layer appears to have changed between 0.2026.04.29 and 0.2026.05.13. Composition keystrokes are no longer being fully consumed by the IME, so they leak through as raw key events to the terminal. Boshiamy is particularly affected because its radical alphabet is a-z, which 100% overlaps with valid shell input — every leak is visible. IMEs whose composition uses non-ASCII radicals (e.g., Zhuyin's ㄅㄆㄇ) may hide the same leak.

Related issues

This appears to be a fresh regression on top of the longer-standing IME limitations, not a pre-existing issue, so a revert of the input-layer change between 04-29 and 05-13 may be a quick fix candidate.

Does this block you from using Warp daily?

No

Is this an issue only in Warp?

Yes, I confirmed that this only happens in Warp, not other terminals.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:shell-terminalTerminal input/output, shell integration, prompt behavior, and block rendering.area:terminal-inputTerminal command-line input, cursor movement, key handling, and input editing.bugSomething isn't working.needs-infoMore issue-specific reporter detail is needed before the problem can be confidently triaged.os:macmacOS-specific behavior, regressions, or requests.repro:highThe report includes enough evidence that the issue appears highly reproducible.triagedIssue has received an initial automated triage pass.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions