bug: Tracing search bar duplicates text and gets stuck with Korean IME (SearchComposer)
Describe the bug
Typing Korean into the Tracing search bar duplicates every syllable, leaves a pill that cannot be deleted, and Backspace stops working.
https://github.com/user-attachments/assets/4ebddbfd-552c-4210-99f7-9e6b3b984df2
Not covered by #17130
that PR fixes SearchInput.tsx.
but this bar is SearchComposer.tsx.
Related: #15072.
Steps to reproduce
- Open Tracing with an empty search bar (macOS, Chrome, Korean IME)
- Type any Korean characters, press Backspace, type any Korean characters.
- Bar shows broken, unreadable words + the extra text cannot be deleted
Langfuse Cloud or self-hosted?
Langfuse Cloud
If self-hosted, what version are you running?
No response
SDK and integration versions
n/a (UI bug). macOS 15.6.1, Chrome 152.0.7977.83, Korean 2-set IME
Additional information
As I'm backend engineer(not familiar with front-end technical issues), I've used my agent with harness to track this problem and here is the answer from him(just for reference) ============= BY AGENT ============ Two causes, both seen in DOM snapshots:
- Empty bar: the IME creates a text node React doesn't own.
syncFromDom/commitread it viatextContentand render a token next to it, so text doubles; delete is state-based, so that node never goes away. - Space between pills: the IME writes into the whitespace text node from
renderPlainText. React still thinks it's" ", so it never rewrites it.
Possible fix (~20 lines): render plain-text parts as <span>, remove non-element root children in syncFromDom/commit, and remount tokens with a key bumped per composition. I verified this on a small React model with CDP-driven IME input and can open a PR. A repro script that needs no IME is attached.
Are you interested in contributing a fix for this bug?
No
Source: langfuse/langfuse