orca/tests
Minsu Lee e31f65f54f
fix(settings): prevent IME composition cancellation in repository Display Name and Worktree Location inputs (#4632)
* fix(settings): prevent IME composition cancellation in repository Display Name and Worktree Location inputs

Controlled inputs bound directly to the zustand store caused IME
composition to be cancelled on every keystroke because React re-rendered
from the stale store value before the async IPC round-trip completed.
On slow typing this yielded bare jamo decomposition (가나다 → ㄱㅏㄴㅏㄷㅏ);
on fast typing characters were silently dropped.

Introduce RepoSettingsDraftInput, a wrapper that keeps keystrokes in
local draft state so the input is always synchronously controlled. The
store is still written on every keystroke in the background so the
sidebar stays live. Draft resets only when the active repo changes, so
async IPC echoes cannot clobber newer draft text.

Apply RepoSettingsDraftInput to both the Display Name and the Worktree
Location inputs (identical store-bound binding, same root cause).

Also link the Display Name Label to its input via htmlFor/id for a11y
and test-locator clarity.

Tests added:
- RepositoryPaneDraftInput.test.tsx: unit tests (happy-dom) — draft
  survives stale store re-render and stale IPC echo; resets on repo
  switch; persists on every keystroke.
- tests/e2e/settings-display-name-ime.spec.ts: Playwright e2e driving
  Blink's real IME pipeline via CDP Input.imeSetComposition /
  Input.insertText with an adaptive 2-set Korean IME emulator.
  Fails with 'ㄱㅏㄴㅏㄷㅏ' on the pre-fix code; passes on the fix.

* fix(settings): preserve external repo setting updates

Co-authored-by: Orca <help@stably.ai>

---------

Co-authored-by: Jinwoo-H <jinwoo0825@gmail.com>
Co-authored-by: Orca <help@stably.ai>
2026-06-04 16:11:56 -04:00
..
e2e fix(settings): prevent IME composition cancellation in repository Display Name and Worktree Location inputs (#4632) 2026-06-04 16:11:56 -04:00
.gitignore feat: add idempotent E2E test suite with headless Electron support (#671) 2026-04-19 12:09:32 -07:00
playwright.config.ts fix: stabilize release e2e failures 2026-05-26 13:25:54 -07:00