Live 2026-10-18: a left three-finger scroll ran 13 s with that hand on the
keyboard ("typing: left hand on the keyboard"), and blocked every other pinch
("a press is already held"). Ray holds already ended when typing dropped the
ray; gaze pinches, grips and three-finger scrolls didn't. Now a Src::Hand hold
whose hand typing parks ends as lost (no click), and so does the chord's right
button; the three-finger scroll's line says why it ended.
typing-test: a busy hand raised is free, brought down onto the keys it parks.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The posture's and a raise's start used -1 for none, so a replay of a flag
(times before it negative) never saw the posture. Found replaying the
2026-10-10 flags through it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The helper feeds typing.h the relay's keys and each hands frame. A hand it
holds back makes no pinch, middle pinch or grip (ray, gaze or plain), and has
no ray: one that drove the pointer drops it (to the mouse or the gaze, not
the controllers) and can't claim it again until lifted off the keys. A hand
pointing or holding a gesture out of the keyboard zone isn't held back by
the other hand's keys. ft-screens gets "typing <L> <R>" on a change and every
second. The old 1 s guards (beginHold, gazehand's) give way to it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A key holds every hand back for POINTER_PINCH_TYPING (now 2 s); a hand in the
keyboard zone while typing stays held back until it rises POINTER_TYPING_RAISE
above where it typed (or turns its palm); both hands in the keyboard posture
count as typing within POINTER_TYPING_RECENT of a key. Tests with made-up keys
and hands placed as in the 2026-10-10 flags and the desk take.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>