Skip to content

fix(ssh): ship and validate the Windows terminal provider - #23747

Closed
OrcaWin wants to merge 3 commits into
OrcaWin/np-windows-ssh-bun-launch-fixfrom
OrcaWin/np-windows-ssh-conpty-provider
Closed

OrcaWin wants to merge 3 commits into
OrcaWin/np-windows-ssh-bun-launch-fixfrom
OrcaWin/np-windows-ssh-conpty-provider

Conversation

@OrcaWin

@OrcaWin OrcaWin commented Sep 29, 2026 •

Copy link
Copy Markdown
Collaborator
Files Added Deleted Net
Test 6 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​348 $\color{#cf222e}{\Huge{\mathbf{−}}}$​1 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​347
Prod 10 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​132 $\color{#cf222e}{\Huge{\mathbf{−}}}$​6 $\color{#1a7f37}{\Huge{\mathbf{+}}}$​126

ELI5

Windows SSH terminals need the same console implementation as desktop terminals. Shipping a patched Bun executable alone is insufficient: without the provider files and startup selection, SSH terminals still use the Windows default and retain the observed wide-character resize loss.

What Changed

Windows relay packages now contain the existing pinned ConPTY DLL, OpenConsole executable, license and provenance. All five files participate in the existing relay content hash and completeness checks. The SSH launcher selects the adjacent DLL before starting Bun; the relay verifies both binary hashes and checks that the selector belongs to its installation before starting terminals.

The release watcher fault test now launches both relay processes with the verified bundled CLI Bun runtime. It keeps Node as its test runner, verifies the Windows provider before launch, and checks both packaged provider architectures after signing.

Reconnect and CLI bridge modes do not create terminals and remain independent of this check. POSIX relay artifacts retain their existing order and content. Existing live relay generations are not overwritten.

Why

This reuses the existing provider materializer, hash verification and immutable relay deployment instead of adding a separate download or native launcher. Selecting the provider inside an already running Bun process would be too late for its native startup environment.

Linked Issue

Stacked on #23741 and the Bun consolidation work in #23622. No separate issue.

Visual Proof

N/A — packaging and daemon admission. Native SSH resize evidence is a required remaining draft gate, not yet claimed by this PR.

Testing

  • Six-platform real relay packaging contract and existing install/retry suites: 84 tests passed.
  • Focused provider materializer/manifest tests: 26 passed; admission/launcher tests: 22 passed.
  • Node typecheck, scoped lint, formatting and diff checks passed.
  • Independent cross-review of packaging and launch/admission found no concrete blockers.
  • Release-harness provider/signing correction: 34 focused tests passed. Bundled-runtime correction: 31 focused tests passed.
  • Real macOS ARM64 watcher fault harness at 2084c58ba5: relay and existing terminal survived watcher termination; replacement watcher delivered recovery and new events; recorded PIDs exited. Windows/Linux execution remains open.
  • Native x64/ARM64 SSH repaint, loaded-provider identity, reconnect and cleanup with the final qualified patched runtime.
  • Final external Claude review and final-source CI. The first review found the missing provider selector; follow-up confirmed the existing Node-launched harness could not spawn Bun terminals. Both are corrected. External Opus reviewed 2084c58ba5 with no P0/P1/P2 findings and independently reran 31 tests; final platform CI remains open.

Review

Missing, corrupt, wrong-architecture or foreign provider selections fail before terminal creation. Existing cancellable upload, complete-marker and generation-retention mechanisms carry the new files.

Agent skill upstream boundary

  • Not applicable; no upstream skill source copied.

Notes

Draft: do not merge independently of the qualified runtime. This PR does not change the Bun pin. The current stock binary does not consume the provider selector; JavaScript admission cannot prove otherwise. The patched runtime plus provider passed the separate x64/ARM64 artifact matrix, but final stable-mode binaries and this actual SSH route must still be qualified together.

No tracking, design or measurement documents are included. No merge or runtime promotion is requested.

Checklist

  • Focused packaging and startup change.
  • User behavior, mechanism and alternative explained.
  • N/A visual proof explained.
  • Self-reviewed and independently reviewed.
  • Cross-platform and mixed-generation SSH impact considered.
  • Final native qualification and CI complete.

@OrcaWin

OrcaWin commented Oct 9, 2026

Copy link
Copy Markdown
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).

@OrcaWin OrcaWin closed this Oct 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant