fix(mobile): ship the patched xterm build, matching desktop

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 (9506039de7) and
the preedit sized to the font rather than the grid (e04e0c88da).

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.
This commit is contained in:
Neil
2026-08-06 18:30:48 -07:00
parent fc5ec84965
commit ac9d812eda
2 changed files with 27 additions and 23 deletions
+5 -4
View File
@@ -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"
}
}
}
+22 -19
View File
@@ -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: {}