From 8074f67c6a57286196796246a782924dc44cf29a Mon Sep 17 00:00:00 2001 From: Codeman maintainer Date: Wed, 28 Oct 2026 09:35:20 +0100 Subject: [PATCH] fix: keep the soft-keyboard recovery on Android with a fine pointer (release review, #726) #726 attaches the keyCode 229 recovery only when (pointer: coarse) matches, which keeps a desktop dead key from arriving twice. Chromium reports the PRIMARY pointer as fine once a mouse, a trackpad cover or a stylus is attached, so on such an Android device the module was off while the text still came from the soft keyboard, and the #441 dropped last character and the #541 autocorrect duplication came back. The gate is now a coarse pointer OR an Android user agent. Android ran the recovery unconditionally before #726, so this only keeps that; a desktop (fine pointer, not Android) and a touchscreen laptop stay off. Co-Authored-By: Claude Opus 5.5 --- src/web/CLAUDE.md | 2 +- .../public/terminal-keycode229-recovery.js | 22 +++++++++------ test/terminal-keycode229-recovery.test.ts | 28 +++++++++++++++++-- 3 files changed, 41 insertions(+), 11 deletions(-) diff --git a/src/web/CLAUDE.md b/src/web/CLAUDE.md index c04ac9c4..ed210de6 100644 --- a/src/web/CLAUDE.md +++ b/src/web/CLAUDE.md @@ -30,7 +30,7 @@ ## Frontend modules and UI subsystems -Frontend JS modules have `@fileoverview` with `@dependency`/`@loadorder` tags. Load order is the `