the happy path hides the hardest input
updated Jul 4, 2026
The tone translator exists for typing Japanese, and it shipped with a composer that broke for exactly those users. It submitted on Enter. But typing Japanese with an IME, you press Enter to confirm a kanji candidate (かんじ → 漢字), and that Enter reached the submit handler and sent the half-typed message.
It reached production because every path I naturally tested misses it. I type the UI in English, and when I did test Japanese I confirmed candidates with the mouse. The users the tool was built for were the only ones on the broken path.
The fix is one line of standard knowledge I didn’t have: bail out of the handler while isComposing is true, plus a keyCode === 229 check for Safari. It applies to any composed input — Chinese, Korean, accent entry, dictation. “It works when I try it” doesn’t mean much when you don’t use the app the way your users do.
the hub · warm terminal