fix(mobile): coalesce keyboard viewport settling - #194
Conversation
Ark0N
commented
Aug 5, 2026
Hi Lior, closing this one as part of a cleanup of the seventeen PRs currently open from you. The full explanation is in #173, and I would rather you read that one than this note, because it is the honest version and it is not a dismissal of your work. The short form: sixteen PRs opened in a single day, roughly 42,000 added lines in total, landing mostly on the same few files (nine touch Going forward, please keep no more than three open PRs at a time, each one a single behavior change that stands on its own, with a test that fails on master and passes with the fix. #214 and #215, merged today, are good models. If this particular change fixes something that genuinely annoys you in daily use, it is a good candidate to be the first one you reopen on its own, rebased on current master. I will review it properly. Thanks for the effort you put in, and sorry to close it this way. |
Summary
Coalesce the burst of mobile
visualViewportresize events into one final xterm layout and PTY resize after the software-keyboard animation settles.Root cause
Keyboard open and close used separate fixed 150 ms and 100 ms timers. Mobile browsers report several intermediate viewport heights during the OS animation, so those timers could fit xterm against a transient height and expose another layout/redraw before the final size arrived.
What changed
Commit structure
fix(mobile): coalesce keyboard viewport settlingValidation
test/mobile/keyboard.test.ts: 28 passed, 4 existing unrelated failuresnpm run typechecknpm run lintnpm run check:frontend-syntaxnpm run check:public-assetsnpm run buildgit diff --checkThe four existing failures are the stale toolbar-transform expectation, outdated accessory action list, and two local-input assertions. The new coalescing regression passes in that same run.
Scope
This PR does not change resize arbitration, mobile terminal controls, input handling, session replay, or authoritative frame capture.