From ac9d812eda6519eb5a9e71dc7fffbd91effa4657 Mon Sep 17 00:00:00 2001 From: Neil <4138956+nwparker@users.noreply.github.com> Date: Thu, 6 Aug 2026 18:30:48 -0700 Subject: [PATCH] fix(mobile): ship the patched xterm build, matching desktop MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit mobile pinned @xterm/xterm 6.1.0-beta.285 while the patch is keyed to 6.1.0-beta.287, so mobile shipped stock xterm and neither IME defect fix reached it: the swallowed keystroke after an IME commit (9506039de72) and the preedit sized to the font rather than the grid (e04e0c88da5). Bumps the three xterm packages to the desktop versions and adds the patch to mobile's own pnpm.patchedDependencies. No copy of the patch: pnpm accepts the parent-relative path and records it in the lockfile against hash 8d63166272e9040a…, byte-identical to what desktop resolves, so the two stay in step by construction rather than by a drift check. The workspace separation is untouched — root pnpm-workspace.yaml still declares `packages: []` and mobile keeps its own lockfile, which is what keeps the root's patches from failing as ERR_PNPM_UNUSED_PATCH. Verified in the generated webview bundle rather than at the install: alignPreeditToGrid 0->2, sentComposition 0->3, pendingInput 0->11, and the stock-only _handleAnyTextareaChanges 2->0 and dataAlreadySent 4->0. pnpm applies patches during linking before postinstall regenerates the bundle, confirmed by a revert/reinstall/re-apply cycle in both directions. Mobile suite 2971 passed, 3 skipped — identical before and after. Bundle +1,514 B (+0.24%). Lockfile churn is xterm-only; --frozen-lockfile passes. mobile/src/ime/ime-submit-carry.ts is NOT made redundant and is untouched: it handles iOS firing onSubmitEditing on a React Native native TextInput after unmarking a composition, which is outside the WebView entirely. Known divergence left alone: desktop also patches @xterm/addon-webgl and mobile now runs that version unpatched. That patch is glyph/texture-atlas rendering with nothing IME-related, so it affects neither fix. --- mobile/package.json | 9 +++++---- mobile/pnpm-lock.yaml | 41 ++++++++++++++++++++++------------------- 2 files changed, 27 insertions(+), 23 deletions(-) diff --git a/mobile/package.json b/mobile/package.json index dd63c456453..e00c7437249 100644 --- a/mobile/package.json +++ b/mobile/package.json @@ -22,9 +22,9 @@ "@orca/expo-two-way-audio": "file:./packages/expo-two-way-audio", "@orca/react-native-terminal-input": "file:./packages/react-native-terminal-input", "@react-native-async-storage/async-storage": "^2.2.0", - "@xterm/addon-unicode11": "0.10.0-beta.285", - "@xterm/addon-webgl": "0.20.0-beta.284", - "@xterm/xterm": "6.1.0-beta.285", + "@xterm/addon-unicode11": "0.10.0-beta.287", + "@xterm/addon-webgl": "0.20.0-beta.286", + "@xterm/xterm": "6.1.0-beta.287", "buffer": "^6.0.3", "expo": "^55.0.27", "expo-build-properties": "^55.0.13", @@ -88,7 +88,8 @@ "xcode>uuid": "11.1.1" }, "patchedDependencies": { - "react-native@0.83.9": "patches/react-native@0.83.9.patch" + "react-native@0.83.9": "patches/react-native@0.83.9.patch", + "@xterm/xterm@6.1.0-beta.287": "../config/patches/@xterm__xterm@6.1.0-beta.287.patch" } } } diff --git a/mobile/pnpm-lock.yaml b/mobile/pnpm-lock.yaml index 701f91c7c8c..48c95258fc9 100644 --- a/mobile/pnpm-lock.yaml +++ b/mobile/pnpm-lock.yaml @@ -8,6 +8,9 @@ overrides: xcode>uuid: 11.1.1 patchedDependencies: + '@xterm/xterm@6.1.0-beta.287': + hash: 8d63166272e9040a343ff7070fb5bf44d9b3465b8042211765341c5483db55a6 + path: ../config/patches/@xterm__xterm@6.1.0-beta.287.patch react-native@0.83.9: hash: 1e3ab9b5d076bb62fe44450f30c97b71445aa431bdef314de9671c7ed6f095f1 path: patches/react-native@0.83.9.patch @@ -29,14 +32,14 @@ importers: specifier: ^2.2.0 version: 2.2.0(react-native@0.83.9(patch_hash=1e3ab9b5d076bb62fe44450f30c97b71445aa431bdef314de9671c7ed6f095f1)(@babel/core@7.29.7)(@react-native/metro-config@0.85.2(@babel/core@7.29.7))(@types/react@19.2.14)(react@19.2.6)) '@xterm/addon-unicode11': - specifier: 0.10.0-beta.285 - version: 0.10.0-beta.285(@xterm/xterm@6.1.0-beta.285) + specifier: 0.10.0-beta.287 + version: 0.10.0-beta.287(@xterm/xterm@6.1.0-beta.287(patch_hash=8d63166272e9040a343ff7070fb5bf44d9b3465b8042211765341c5483db55a6)) '@xterm/addon-webgl': - specifier: 0.20.0-beta.284 - version: 0.20.0-beta.284(@xterm/xterm@6.1.0-beta.285) + specifier: 0.20.0-beta.286 + version: 0.20.0-beta.286(@xterm/xterm@6.1.0-beta.287(patch_hash=8d63166272e9040a343ff7070fb5bf44d9b3465b8042211765341c5483db55a6)) '@xterm/xterm': - specifier: 6.1.0-beta.285 - version: 6.1.0-beta.285 + specifier: 6.1.0-beta.287 + version: 6.1.0-beta.287(patch_hash=8d63166272e9040a343ff7070fb5bf44d9b3465b8042211765341c5483db55a6) buffer: specifier: ^6.0.3 version: 6.0.3 @@ -2991,18 +2994,18 @@ packages: resolution: {integrity: sha512-A9gOqLdi6cV4ibazAjcQufGj0B1y/vDqYrcuP6d/6x8P27gRS8643Dj9o1dEKtB6O7fwxb2FgBmJS2mX7gpvdw==} engines: {node: '>=14.6'} - '@xterm/addon-unicode11@0.10.0-beta.285': - resolution: {integrity: sha512-rfijFu7UcYpaFx5wzxvTpQbIyyq/amf2PuS9pktywcFQr4ITxRgid5EVzKLRG1vchkApNcQplWeYxGEtjiw0Cw==} + '@xterm/addon-unicode11@0.10.0-beta.287': + resolution: {integrity: sha512-79JP5qtNh/+emyqW/1TPcFtPrmMIUgypCcx2g6Eo/vQrZF6YNaQrKkJTovMg2RoxbbRy72Oe1SZcpU2b37hzrw==} peerDependencies: - '@xterm/xterm': ^6.1.0-beta.285 + '@xterm/xterm': ^6.1.0-beta.287 - '@xterm/addon-webgl@0.20.0-beta.284': - resolution: {integrity: sha512-tzkUiEfdpHCY8mXCbuIaP9V67QDfBJvDr9jdxs5jjxNCIQvw+NCoKD97y5sUrQhrIlr7xrDGniPgPYThQ/1FWg==} + '@xterm/addon-webgl@0.20.0-beta.286': + resolution: {integrity: sha512-Nvk9Jic7OCXtL1lS1/Ryurkpd2VElO7PCBOf+DEB3ODs9yU+F31sJwQD+LIdZ6GAJ+Atp7LuWHjSNhRv/xSY0w==} peerDependencies: - '@xterm/xterm': ^6.1.0-beta.285 + '@xterm/xterm': ^6.1.0-beta.287 - '@xterm/xterm@6.1.0-beta.285': - resolution: {integrity: sha512-S3K58tepMkbpWRBzOGKd0In6AVvt9QPAnNs8DJ8rPUPODYtsCYWAtINHKYtC2OpXcE5EBKM35dl+Dgv03OoE/w==} + '@xterm/xterm@6.1.0-beta.287': + resolution: {integrity: sha512-3aOHVlxlRVb3tOHI4b/z2O/OsRnqpW5u0qq8OqpqbwLVTbUhThmQ7mBKaehGdbsmcCCBTP1cBwhG0qcvuOjowA==} abab@2.0.6: resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} @@ -10360,15 +10363,15 @@ snapshots: '@xmldom/xmldom@0.9.10': {} - '@xterm/addon-unicode11@0.10.0-beta.285(@xterm/xterm@6.1.0-beta.285)': + '@xterm/addon-unicode11@0.10.0-beta.287(@xterm/xterm@6.1.0-beta.287(patch_hash=8d63166272e9040a343ff7070fb5bf44d9b3465b8042211765341c5483db55a6))': dependencies: - '@xterm/xterm': 6.1.0-beta.285 + '@xterm/xterm': 6.1.0-beta.287(patch_hash=8d63166272e9040a343ff7070fb5bf44d9b3465b8042211765341c5483db55a6) - '@xterm/addon-webgl@0.20.0-beta.284(@xterm/xterm@6.1.0-beta.285)': + '@xterm/addon-webgl@0.20.0-beta.286(@xterm/xterm@6.1.0-beta.287(patch_hash=8d63166272e9040a343ff7070fb5bf44d9b3465b8042211765341c5483db55a6))': dependencies: - '@xterm/xterm': 6.1.0-beta.285 + '@xterm/xterm': 6.1.0-beta.287(patch_hash=8d63166272e9040a343ff7070fb5bf44d9b3465b8042211765341c5483db55a6) - '@xterm/xterm@6.1.0-beta.285': {} + '@xterm/xterm@6.1.0-beta.287(patch_hash=8d63166272e9040a343ff7070fb5bf44d9b3465b8042211765341c5483db55a6)': {} abab@2.0.6: {}