# Behavioral comparison

No rendered surface changes. Pixel Diff0 and DiffT do not apply. `behavior-diff0.diff` is an exact comparison of recorded case results after removal of timestamps, elapsed times, and exception stacks (whose paths differ by checkout). All input fields, outcomes, exception messages, preventDefault counts, menu-ignore arguments and outgoing IPC remain in the comparison. No numerical threshold or approximate matching is used.

What else changed:
- R2: all three forced post-destruction keyboard cases throw on base and return on head.
- R3: forced post-destruction gesture begin/end throw on base and return on head. The unrelated mouse input returns on both.
- R4: live keyboard control results are identical, including initial/repeat/up Ctrl+W, plain W, Ctrl+X, Alt/Shift-modified Ctrl+W.
- R5: live gesture begin/end each send exactly one matching IPC on both; unrelated input sends none on both.
- R1 release: forced missing keyUp after native hold destroys the real window during quit; base throws, head returns. Both continue normal shutdown because the harness catches the base exception.
- R1 quiet: both revisions quit through the real watchdog after repeat forwarding stops and before physical Q keyUp. No exception in either capture.
- Native smoke: both revisions resolve Hold, arm after 1200 ms of native repeats, and quit via watchdog after X11 release. No native keyUp callback was observed, so this is not a natural race reproduction.
- Chronology, startup/backend timings, event counts from native repeat scheduling, Xvfb display numbers, process IDs and generated run identifiers differ between runs; no claim of identical timing is made.

Limitations: R1 native release path and natural race remain unverified. R6 is `cannot-verify macos`. R4 DevTools-focus dispatch is not captured; supporting live callback controls cover the guard-false path. No web/mobile/provider/remote fixture applies to these Electron main-window guards.
