Commit eb10bfe
fix(boundary): Enter sau gõ tắt bị nuốt (WhatsApp beep, phải Enter 2 lần) — macOS 26 drop bản copy của phím HID thật
postBoundaryCopy re-post event.copy() của Return thật để nó rơi xuống SAU
edit gõ tắt — nhưng macOS 26 âm thầm drop bản copy đó trước khi tới app:
log bắt tại trận posted → qua tap của mình → không bao giờ tới IMKit.
Hệ quả: 'ko'⏎ nở thành 'không' nhưng tin nhắn không gửi, WhatsApp beep,
phải Enter lần 2.
Fix: dựng cặp down/up MỚI từ source .hidSystemState (giữ keycode + flags
gốc nên Shift+Enter vẫn là xuống dòng). Không magic — bản Enter mới quay
lại handle() như phím thật, engine lúc đó đã rỗng nên pass thẳng, không
loop. Post thêm keyUp để app không thấy phím bị giữ. Không dùng private
source vì Electron (Discord/Slate) hạ cấp Return private-source thành
'insert newline' thay vì Enter-to-send.
Tách makeBoundaryRepost thuần + BoundaryRepostTests pin 3 tính chất:
keycode/flags giữ nguyên, không magic, cặp down/up cân bằng.
Kèm 2 diagnostic: boundary-key code/rewrote (gated debugLogging) và
boundary-copy posted/skipped để field report lần sau tự kể chuyện.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>1 parent 5e015be commit eb10bfe
3 files changed
Lines changed: 92 additions & 15 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
436 | 436 | | |
437 | 437 | | |
438 | 438 | | |
| 439 | + | |
439 | 440 | | |
440 | 441 | | |
441 | 442 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1309 | 1309 | | |
1310 | 1310 | | |
1311 | 1311 | | |
1312 | | - | |
1313 | | - | |
1314 | | - | |
1315 | | - | |
1316 | | - | |
1317 | | - | |
1318 | | - | |
1319 | | - | |
1320 | | - | |
1321 | | - | |
1322 | | - | |
| 1312 | + | |
| 1313 | + | |
| 1314 | + | |
| 1315 | + | |
| 1316 | + | |
| 1317 | + | |
| 1318 | + | |
| 1319 | + | |
| 1320 | + | |
| 1321 | + | |
| 1322 | + | |
| 1323 | + | |
| 1324 | + | |
| 1325 | + | |
| 1326 | + | |
| 1327 | + | |
| 1328 | + | |
1323 | 1329 | | |
1324 | | - | |
1325 | | - | |
1326 | | - | |
1327 | | - | |
| 1330 | + | |
| 1331 | + | |
| 1332 | + | |
| 1333 | + | |
| 1334 | + | |
| 1335 | + | |
| 1336 | + | |
| 1337 | + | |
| 1338 | + | |
| 1339 | + | |
| 1340 | + | |
| 1341 | + | |
| 1342 | + | |
| 1343 | + | |
| 1344 | + | |
| 1345 | + | |
| 1346 | + | |
| 1347 | + | |
| 1348 | + | |
| 1349 | + | |
| 1350 | + | |
| 1351 | + | |
| 1352 | + | |
| 1353 | + | |
| 1354 | + | |
| 1355 | + | |
| 1356 | + | |
1328 | 1357 | | |
1329 | 1358 | | |
1330 | 1359 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
0 commit comments