# M14-04F Status status: done task: Chromium touch modal cancel, two-finger navigation and pen single commit updated: 2026-08-19 America/New_York enablingTask: false parityStateChange: false ## Scope `InputModalState` is now consumed by both production viewport backends. Touch cancellation clears the modal without a Main commit, the transition to two active touch pointers increments `navigationRevision` once, and a pen pointerup increments `mainCommitCount` once. Late pen up/cancel events do not create another commit. The state is exposed through bounded `data-input-modal-*` diagnostic attributes for Chromium evidence. ## Evidence - `npm --prefix web run build` passed. - `npm --prefix web run test:chromium-input-modal` passed: 3 protocol tests plus real Chromium main-thread and OffscreenCanvas scenarios. - Checker output: `chromium-input-modal-ok backends=main,offscreen touchCancel=0 twoFingerRevision=1 penCommit=1 execution=DISABLED next=M14-04G`. - `npm --prefix web run typecheck`, `npm --prefix web run lint` and `git diff --check` passed. ## Artifact Hashes - parent manifest: `b5fbb86d4a6a610b4aa25f8edb9a232aca9675e25fb47b16de98858a2d7f007f` - checker: `4f813623d9845b73c1a05aeccaf88d8d3b13d48e5fd83c83fa6222e13324e854` - protocol: `271e4f9e86a6aa4ebe92a43f6ce3d9b42b0931a5d12d9b40a8b4c26b2808cb23` - unit: `f8105ebb59f3a369b15282a3923bdc47249f7a727794d3a89c29c1523f1aa989` - main viewport: `e8d97cb59fd4eca3789aeeb35221a70cf47ef048a5665383d809d0efc49f7119` - offscreen viewport: `4a210ae247d0e29972096da6c206f3457c2238e6061c6eb622f0ce55c6bfd439` - report: `dc8c386a705c4cd7335eb5f7ea0ec9d61feaae8b9529fdab423ab00898ecf911` - manifest: `895b460477a8379594ee93043139b9521952638dbd6670b0205eab1896886455` ## Next Task `M14-04G`: Chromium responsive layout no-overlap/no-overflow matrix. ## Rollback Remove the input-modal reducer integration, viewport diagnostics, tests, checker, report, manifest, package command and this status/task entry; restore `M14-04E` as the queue tail.