# dsh.mbt 0.1.28

This version adds opt-in Windows IME composition to the native desktop composer
through gpui.mbt 0.10.1's bounded IMM32 transport. The macOS composition path and
the Windows native runtime from 0.1.27 are unchanged except for the shared fixes
below.

## Changes

- Windows desktop accepts opt-in system IME composition (`DSH_DESKTOP_IME=1`).
  Preedit is rendered inline with a caret underline, commit replaces the captured
  selection, cancel discards it, and the candidate window follows the composer
  caret. Enter commits without sending, Escape cancels, and clicking Send commits
  before sending.
- The shared desktop state now finishes the native composition on focus loss,
  Settings, New, session switch, approval, response cancel, and Command
  shortcuts, so IMM32 marked text cannot outlive the desktop state.
- `WM_CHAR` / `WM_IME_CHAR` after a commit and duplicate Enter / Escape delivery
  are suppressed while a composition is active.
- The native UI dependency moves to `f4ah6o/gpui@0.10.1`, resolved from
  Mooncakes. The embedded browser assets are refreshed.
- Linux / X11 desktop keeps its typed unsupported composition fallback and
  remains paste-only at the dsh layer.

## Compatibility

- Session and store schemas are unchanged. The desktop composition state is
  UI-only and is not persisted.
- Windows composition is opt-in and default-off. macOS composition remains
  opt-in under the same flag. Physical Japanese IME acceptance is still not
  established for either platform.
- The Windows zip remains unsigned; the macOS app remains ad-hoc signed.

## Evidence

- `moon test desktop --target native --deny-warn`: pass, including the shared
  composition state machine.
- `moon build --target native --release desktop/windows cmd/dsh` against
  `f4ah6o/gpui@0.10.1`: pass.
- The synthetic desktop E2E posts Update / Commit / Cancel through the Windows
  host hook and records `"ime_composition":true`; this is a synthetic queue
  path, not physical IME evidence.
- Real Microsoft IME, candidate-window placement, and 100% / 150% / 200% DPI
  acceptance are **NOT RUN**. The dsh Windows desktop E2E must be exercised on
  an interactive Windows 11 desktop before claiming Japanese IME support.
