Do not infer the root cause from raw pinyin.rc.8 already has three composition guards; verify the artifact and event sequence.

Route the first broken boundary.

No candidatesbrowser / DOM

Check clean profile, focus, remounts, injected scripts, and stale assets.

Candidates, wrong Enterkeyboard arbitration

Find the first consumed key inside the composition interval.

Only old page failsbuild identity

Resolve the listener PID, CLI version, response asset, and cache.

What rc.8 proves—and does not.

Bound

Start and end handlers are attached.

Guarded

Ref, isComposing, and keyCode 229 block submit.

Tested

Synthetic composition Enter does not send.

Still open

Real OS candidate-window initiation is not covered.

Acceptance contract.

Commit once; send once.

Candidates must work across pinyin, kana, and Korean IMEs; composition keys must not trigger Harness actions; ordinary Enter must recover after settlement.

Keep the full diagnostic runbook.

The canonical guide includes an isolation matrix, DevTools event fields, safe recovery order, and a real-browser regression contract.

Read the complete guide