Repository navigation
Conversation
added 30 commits
September 28, 2026 04:49
added 11 commits
September 28, 2026 07:37
added 8 commits
September 28, 2026 12:17
This was referenced Sep 29, 2026
Collaborator
Author
|
Closing as defunct: Orca stays on Node outside Electron, and the bundled-Bun runtime migration this stack belongs to was wound down. Servers and remote hosts now run on the bundled Node 24 runtime (#26171). |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
ELI5
Desktop and WSL terminals use the bundled Bun terminal service, so shells can survive app restarts without retaining an Electron runtime. This removes the desktop node-pty backend and its native rebuild/install path.
What Changed
Why
One terminal service reduces separate lifecycle implementations across desktop, headless and WSL. Retaining a node-pty fallback would keep a second process-ownership model and native build chain. Existing live sessions retain compatibility while new sessions use the shared service.
Linked Issue
Stacked on #23355, following the four bundled-runtime foundation PRs. Earlier exploration in #16741 informed this work.
Visual Proof
Pending rendered terminal, WSL and mobile acceptance. Headless receipts do not establish rendered parity. Draft; not ready to merge.
Testing
02e7f7ba71, Linux x64/ARM64 packages pass including Ubuntu 20.04/glibc 2.31 smoke, and signed macOS x64/ARM64 packages pass signing, notarization, Gatekeeper and public folder/Git terminal round trips: run 36448906343. Both Mac artifact downloads passed SHA256 and CRC. No release was published. These receipts predate the ASCII optimization.c7cf94bae5: run 36449826878. Windows still fails the known wide-character repaint assertion with stock Bun. Nine diagnostic captures pass with patched Bun and the complete ConPTY/OpenConsole pair; durable signed distribution is still required. No diagnostic runtime pin was promoted.c8c74d1d94adds a source-derived headless ASCII row fast path, with exact source-to-generated CJS/ESM map checks. Author, Codex and Opus each pass 40 generator/provider tests plus 34 installed-package contracts. Mutation tests reject missing mode/provider guards and altered source-map contents. Earlier differential runs matched 11,636 states under both Bun and Electron.02e7f7ba71accounts for all 4,194,318 characters despite a simulated 500 ms receipt delay, bounds replay, and confirms the exact child exited. Windows-to-WSL recovery checks preserve identity/scrollback and reject displaced-owner replacement without SQLite mutation. Hidden-renderer/mobile acceptance remains open.PR CI on test-only
04d9099d8ccompleted: all eight Linux shards, typecheck, static checks and relay integration pass; the known Windows repaint failure and aggregate keep the run red. The new test uses the existing CommonJS-compatible path convention. The old c8c74 package build also hit that test-only typecheck failure. Replacement nonpublishing package validation run36456329488 targets corrected04d9099d8c; Linux x64/ARM64 package jobs now pass, including Ubuntu 20.04 userspace smoke. Real Linux 5.4 x64 guest diagnostic run36457786062 passed on the exact artifact: kernel5.4.0-216/glibc2.31, terminal output/resize/history/reconnect, clean guest/QEMU exit and unchanged base images. ARM64 initial run36458970167 failed before guest boot on an optional QEMU network-boot ROM. After removing that unused harness dependency, run36460003467 passed the same final artifact on actualLinux5.4.0-216/glibc2.31, including terminal output/resize/history/reconnect and clean guest/QEMU exit. Both architectures now have actual-kernel evidence for the tested packaged terminal path. Both final04d signed Mac jobs passed. Both Mac artifacts have passed local SHA256/CRC verification. Signed-client A02e→B04d→A02e continuity run36460617328 passed on both native Mac architectures: retained daemon identity, Git/folder shell PIDs and unexported shell memory, fresh output, fresh B terminal admission and verified cleanup. Both sanitized receipts were downloaded and independently checked. The first diagnostic failed before admission because its temporary socket path exceeded the macOS limit; the fixture-only correction preserves the original failure evidence and unchanged app bytes. The paired apps share the same version and Bun runtime, with different daemon-entry bytes. Linux ARM64 rerun36460003467 also completed successfully; its downloaded receipt and serial were independently checked against the source/runtime/entry hashes. These diagnostics do not substitute for updater/install/rollback qualification. The frozen native41509 baseline is separately identified; it is not a replacement claim for the unavailable original75a9 baseline. Every receipt qualifies its named source and scope only.Review
Final combined review remains open. WSL protocol retention/metadata normalization and restart/admission findings have corrections with independent tests. Late guest registration repair
6cfa81d490passed Codex and Opus reviews. Startup repair1ffab10d12fixed delayed-receipt output loss, but Opus correctly found it retained completed spawn inputs. Follow-up corrections clear request/native-cleanup captures after publication, preserve cleanup errors during cancellation, avoid republishing exited attachments and clean up relay listener-admission failures. Production-observer GC coverage now proves inputs collect while the session remains live. Retention/cancellation correctiona2ba9fb421passed independent Codex and Opus reviews with no remaining P0/P1/P2 in scope; Opus ran662 tests and verified old-source failures versus corrected-source passes. Codex reviewed all corrections with91 tests passing. Admission/relay correction02e7f7ba71also passed Opus review:627 tests plus4 scratch interleaving regressions, no P0/P1/P2 in scope. Both commits are pushed. The headless ASCII optimization and its four test/provenance corrections also passed Codex and Claude Opus reviews with no remaining P0/P1/P2 in scope. An optional future manifest-validation guard is recorded locally. Four earlier nonblocking P3 observations remain documented locally; earlier scoped approvals do not imply the entire migration or platform qualification is complete.An inherited local-close failure can leave a daemon process running after its tab closes. A separate acknowledged-close or owner/incarnation-fenced stop-intent change is needed; this PR does not claim to repair it. Loss of contact is never treated as evidence of process exit.
Agent skill upstream boundary
Notes
Do not merge until final review/CI, durable patched Windows runtime distribution, installed update/rollback/uninstall, rendered throughput/interactive latency, WSL/mobile acceptance, and oldest-supported platform checks are resolved. Runtime pins remain unchanged. Plans, trackers and measurements remain local and are excluded from this PR.
Checklist
Final-source Windows→WSL qualification also passed: three byte-exact 4 MiB transfers, dead-owner recovery with retained history and SQLite binding, and refusal to replace a live owner with an unavailable socket. All six recorded daemon/shell processes exited and private fixture cleanup was verified. This fixture does not qualify WSL CLI injection or rendered UI.
Windowless updater qualification follow-up
Signed Mac update testing found that
orca serveexposed the updater API but never initialized the updater because setup only ran when a desktop window was created. The server now initializes it after proxy setup and before reporting readiness, reusing desktop auth preservation, profile export, and awaited flush. Cleanup failure still aborts installation; no dummy window is created.Codex and Claude Opus reviews found no P0/P1 in this fix. Opus passed 430 related tests, the Node typecheck, and changed-file lint. Real signed update/downgrade qualification is being rebuilt; prior signed packages failed before installation and are not a pass. Two nonblocking concerns remain: updater initialization failure can fail serve startup, and cold updater loading adds work before readiness on Windows.