Repository navigation
Conversation
|
Thank you, @teo-nex! The fixes from this PR, including the follow-ups through a496a83, have been selectively integrated and released in 1.8.5-beta2. The main integration is in 5c9771b on The separate native browser-window feature, extra esbuild dependency and macOS UI smoke launcher were intentionally excluded from this bug-fix integration. Final verification of the released tree passed: Linux, Windows and macOS tests and installer builds, plus 400 source and 400 packaged macOS PTY cycles. Real-session and macOS performance feedback is still needed. Closing as incorporated through selective integration into beta2, rather than merging this branch directly. Thanks again for the fixes! |
Mac users on 1.8.5-beta.1 can lose terminal output while hidden, lose xterm state on fullscreen transitions, and see fast drag/resize gestures revert. This series fixes those paths, note/settings preservation, plugin rollback ownership and process-group cleanup, browser freeze/visibility/reload lifecycles, late skin-cache disposal, ultrawide wallpaper coverage, and F2 rename. It also adds independent native browser windows.
Behavior changes are gated to macOS; Windows/Linux adaptations and the global Electron pin are unchanged. Mac packaging selects Electron 43.8.1 for GHSA-jr5w-w6x2-84p9. Shared bundle/startup/memoization tests now follow production compilation and the shared card renderer.
Validation at a496a83: 2,532 tests, 2,526 passed, 6 skipped, no failures; typecheck, production build, secret audit and diff checks passed. Hidden native Electron + real PTY delivered and parsed all 56,623,104 characters. Real React/TerminalCard/xterm retained history, selection, viewport and focus across four fullscreen transitions. Fresh packaged macOS arm64 app on Electron 43.8.1 passed wallpaper, PTY/arrow history, F2 rename, fast drag, fullscreen instance retention and two independent browser windows; ASAR/build hashes and deep strict ad-hoc signature verified. 31 foreign sender/subframe IPC attempts were rejected.
A separate macOS node-pty fix retains unread output when a finite producer exits while parser backpressure has paused reading, and resumes before kill so close/quit can release native resources. A real packaged Electron 43.8.1 regression now receives/parses all 1,049,088 bytes after a 500 ms delayed ACK (the original lost the last 512); close-paused cleanup leaves no live owned process. Actual dependency TS/JS callback regressions cover cleanup, repeated pause, and unchanged Linux/FreeBSD behavior. The FD-resource smoke acknowledges real output before allowing its short-lived child to exit; it still fails on missing output, echo-only input, or timeout. The exact cause of the earlier CI short-output failure was not established. All 8 CI jobs passed at a496a83: verify, Windows pipe host, macOS CLI resolution, both mascot pipelines, Android contracts/debug, and macOS native-and-packaged. The macOS resource job passed 400 source PTY cycles plus 400 packaged-addon cycles, injected native failures, closed-stdio combinations, and bundle/signature checks. Build/dev dependency advisories remain. One independent file-security audit was blocked by a model safety filter, so this is not a complete security audit. Long-session FPS degradation and physical keyboard/trackpad reports were not conclusively reproduced. The prepared app has not replaced the user's running installation; active terminals, profile and harness were preserved.