# M14-04D Status status: done task: Chromium IME composition guard for incomplete operators updated: 2026-08-19 America/New_York enablingTask: false parityStateChange: false ## Scope Added an explicit IME composition state machine and connected it to the App global shortcut gate. Composition start/update records pending text and blocks operator shortcuts; composition end clears the block without dispatching an incomplete operator. A real Chromium page dispatched composition events and `G`; UI revision remained unchanged during composition. Firefox/WebKit are excluded. ## Evidence - `npm --prefix web run build` passed. - `npm --prefix web run test:chromium-ime-guard` passed: 2 protocol tests and real Chromium compositionstart/update/keydown/compositionend events. - Checker output: `chromium-ime-ok composing=BLOCKED_OPERATOR shortcut=G revision=0 execution=DISABLED next=M14-04E`. - `npm --prefix web run typecheck` and `git diff --check` passed. ## Next Task `M14-04E`: Chromium US/non-US/dead-key/modifier keymap fixture.