OrcaWin and m4air
a5601375d4
feat(ssh): opt-in SSH relay on the pinned Node with prebuilt addons ( #24129 )
...
* feat(relay): runtime self-test flag and informational runtime on handshake-ok
relay.js --orca-runtime-selftest <nonce> dlopens pty.node, opens and closes a
PTY, and prints one JSON line (nonce, node, napi, glibcVersionRuntime) for the
client to classify before it launches a daemon on a runtime (design D5).
handshake-ok gains an optional runtime {kind, version}; bridge and daemon
already match exactly on version, so it is informational only (D8.1).
* feat(ssh): opt-in pinned-Node relay with prebuilt addons (D5, D6 rung A, D8.1)
SshTarget.remoteRuntime (legacy | pinned-node, default legacy; env
ORCA_SSH_REMOTE_RUNTIME for development) selects the runtime. On POSIX hosts
the pinned path resolves the target with its glibc major.minor, ensures
~/.orca-remote/runtimes/node-<sha>/bin/node, uploads the relay bundle plus
the target's node-pty slot and @parcel/watcher from the orcad artifact
(no npm or node-gyp on the host), writes .runtime-ref-node-<sha>, and folds
the runtime and addon digests into the relay version so pinned and host-Node
builds never share a dir or socket.
A 30 s self-test (node --version, then the relay self-test) gates
.install-complete. Timeouts and lost channels are unverifiable and never step
down; noexec, missing_lib, libc_floor, illegal_instruction and wrong_libc
refusals fall back to the untouched host-Node path with a logged reason,
remembered for the session.
* fix(ssh): only an answered libc probe steps the pinned relay down
A lost channel during target detection says nothing about the host; descending
would launch a host-Node daemon beside a running pinned one and strand its sessions.
* test(ssh): mark the mocked SSH connection casts in the pinned relay tests
* test(ssh): resolve the pinned runtime mock to an executable path
---------
Co-authored-by: m4air <m4air@m4airs-Air.localdomain >
2026-10-01 01:41:14 -07:00
..
2026-09-29 10:22:27 -07:00
2026-09-30 18:23:24 -07:00
2026-09-28 20:33:59 -07:00
2026-10-01 01:10:31 -07:00
2026-09-29 01:21:53 -07:00
2026-08-15 18:25:37 -07:00
2026-09-07 23:35:26 -07:00
2026-09-26 12:57:06 -07:00
2026-09-26 12:56:32 -07:00
2026-09-30 03:30:23 -07:00
2026-09-30 03:30:23 -07:00
2026-09-30 22:09:26 -07:00
2026-09-30 23:39:40 -07:00
2026-09-29 01:21:53 -07:00
2026-09-27 14:29:19 -07:00
2026-09-30 02:49:03 -07:00
2026-09-28 18:11:25 -07:00
2026-09-30 23:22:49 -07:00
2026-09-30 01:04:43 -07:00
2026-09-25 20:50:39 -07:00
2026-09-30 03:30:23 -07:00
2026-08-27 10:48:53 -07:00
2026-09-22 01:09:26 -04:00
2026-09-07 23:35:26 -07:00
2026-09-29 18:13:18 -07:00
2026-09-15 02:00:27 -07:00
2026-09-25 18:54:11 -07:00
2026-10-01 00:39:00 -07:00
2026-08-26 23:17:34 -07:00
2026-08-26 15:44:11 -07:00
2026-08-27 10:48:53 -07:00
2026-09-27 22:44:18 -07:00
2026-09-30 21:04:31 -04:00
2026-08-27 10:48:53 -07:00
2026-08-20 09:57:55 -07:00
2026-09-30 18:30:22 -07:00
2026-09-30 03:30:23 -07:00
2026-09-30 04:58:31 -07:00
2026-09-24 20:45:15 -07:00
2026-09-14 01:45:00 -07:00
2026-09-17 20:21:45 -07:00
2026-09-26 22:13:24 -07:00
2026-09-29 23:01:06 -07:00
2026-09-03 17:32:59 -07:00
2026-09-30 18:30:22 -07:00
2026-09-30 02:13:03 -07:00
2026-08-27 16:10:51 -07:00
2026-09-26 20:56:37 -07:00
2026-09-26 23:19:45 -07:00
2026-09-30 02:13:03 -07:00
2026-09-25 18:54:11 -07:00
2026-09-12 20:35:48 -07:00
2026-09-26 00:20:00 -07:00
2026-08-23 15:24:25 -07:00
2026-09-30 02:13:03 -07:00
2026-09-27 22:44:18 -07:00
2026-09-26 12:57:35 -07:00
2026-10-01 01:10:31 -07:00
2026-09-26 23:07:24 -07:00
2026-09-26 20:48:19 -07:00
2026-09-22 18:35:18 -07:00
2026-09-30 16:32:20 -07:00
2026-09-30 15:37:18 -07:00
2026-09-30 15:37:18 -07:00
2026-09-30 03:30:23 -07:00
2026-09-30 03:30:23 -07:00
2026-10-01 01:10:57 -07:00
2026-10-01 01:41:14 -07:00
2026-09-29 16:35:49 -07:00
2026-09-27 23:13:24 -07:00
2026-09-29 01:21:53 -07:00
2026-09-28 02:32:41 -07:00
2026-09-26 20:39:42 -07:00
2026-10-01 00:39:00 -07:00
2026-09-30 14:26:23 -07:00
2026-09-30 01:07:09 -07:00
2026-09-30 19:36:54 -07:00
2026-09-24 17:25:48 -07:00
2026-09-30 23:39:40 -07:00
2026-09-21 17:23:30 -07:00
2026-09-27 01:14:53 -07:00
2026-09-26 23:06:57 -07:00
2026-09-30 02:13:03 -07:00
2026-10-01 01:10:31 -07:00
2026-10-01 01:41:14 -07:00
2026-08-15 00:54:20 -07:00
2026-09-30 18:23:24 -07:00
2026-09-24 10:12:16 -07:00
2026-09-29 14:38:47 -07:00
2026-09-30 12:12:21 -07:00
2026-09-26 12:58:32 -07:00
2026-09-30 03:30:23 -07:00
2026-09-08 19:41:15 -07:00
2026-09-30 20:46:47 -07:00
2026-10-01 00:39:00 -07:00
2026-09-12 18:01:56 -07:00
2026-09-25 02:28:40 -07:00
2026-09-26 12:56:32 -07:00
2026-09-25 22:47:33 -07:00
2026-09-30 00:05:55 -07:00
2026-09-25 22:47:33 -07:00
2026-09-11 15:28:16 -07:00
2026-09-11 15:28:16 -07:00
2026-09-11 15:28:16 -07:00
2026-09-11 15:28:16 -07:00
2026-09-30 00:02:35 -07:00
2026-09-30 14:26:23 -07:00
2026-09-30 14:26:23 -07:00
2026-09-29 16:03:28 -07:00
2026-09-29 16:03:28 -07:00
2026-09-29 16:03:28 -07:00
2026-09-30 00:02:35 -07:00
2026-09-30 00:02:35 -07:00
2026-08-24 19:45:47 -07:00
2026-08-24 19:45:47 -07:00
2026-09-30 00:05:55 -07:00
2026-09-01 14:06:16 -07:00
2026-09-03 21:04:54 -07:00
2026-09-03 21:04:54 -07:00
2026-08-16 12:48:53 -07:00
2026-09-30 02:13:03 -07:00
2026-09-30 02:13:03 -07:00
2026-09-02 20:47:09 -07:00
2026-09-25 22:47:33 -07:00
2026-09-25 22:47:33 -07:00
2026-08-15 18:25:37 -07:00
2026-08-14 19:04:54 -04:00
2026-08-14 19:04:55 -04:00
2026-08-13 22:48:24 -07:00
2026-08-14 19:04:55 -04:00
2026-08-14 19:04:55 -04:00
2026-08-13 16:23:22 -07:00
2026-08-14 19:04:55 -04:00
2026-08-14 19:04:54 -04:00
2026-08-14 19:04:55 -04:00
2026-08-14 19:04:55 -04:00
2026-08-13 16:23:21 -07:00
2026-08-13 16:23:21 -07:00
2026-08-25 02:32:21 -07:00
2026-09-30 00:02:35 -07:00
2026-09-30 00:02:35 -07:00
2026-09-17 12:59:03 -07:00
2026-08-16 23:51:53 -07:00
2026-08-17 20:43:29 -07:00
2026-09-14 14:54:53 -07:00
2026-09-14 14:54:53 -07:00
2026-08-13 22:48:24 -07:00
2026-09-26 21:35:09 -07:00
2026-09-26 21:35:09 -07:00
2026-09-28 00:07:09 -07:00
2026-09-13 22:36:01 -07:00
2026-08-15 18:25:37 -07:00
2026-09-14 14:52:35 -07:00
2026-09-15 01:19:32 -07:00
2026-08-15 18:25:37 -07:00
2026-09-18 00:53:09 -07:00
2026-08-29 01:53:31 -07:00
2026-08-15 18:25:37 -07:00
2026-08-29 01:53:31 -07:00
2026-08-15 00:54:20 -07:00
2026-09-14 14:52:35 -07:00
2026-09-15 01:19:32 -07:00
2026-09-03 21:04:54 -07:00
2026-09-03 21:04:54 -07:00
2026-08-31 15:16:38 -07:00
2026-09-26 17:03:05 -07:00
2026-08-22 16:38:00 -07:00
2026-09-18 00:53:09 -07:00
2026-09-18 00:53:09 -07:00
2026-09-26 03:59:38 -07:00
2026-08-30 18:13:36 -07:00
2026-08-30 18:13:36 -07:00
2026-09-22 05:10:03 -07:00
2026-09-22 05:10:03 -07:00
2026-09-02 03:08:01 -07:00
2026-09-02 03:08:01 -07:00
2026-09-02 03:08:01 -07:00
2026-09-02 03:08:01 -07:00
2026-09-02 03:08:01 -07:00
2026-09-02 03:08:01 -07:00
2026-09-02 03:08:01 -07:00
2026-09-26 12:56:32 -07:00
2026-09-02 03:08:01 -07:00
2026-09-25 18:28:22 -07:00
2026-08-30 12:11:21 -07:00
2026-08-19 17:12:17 -07:00
2026-09-26 20:43:45 -07:00
2026-09-26 20:43:45 -07:00
2026-09-01 22:47:29 -07:00
2026-09-01 22:47:29 -07:00
2026-08-29 16:06:15 -07:00
2026-08-29 16:06:15 -07:00
2026-09-14 14:52:45 -07:00
2026-09-14 14:52:45 -07:00
2026-09-24 00:46:29 -07:00
2026-08-27 13:44:03 -07:00
2026-09-01 02:07:33 -07:00
2026-08-27 13:44:03 -07:00
2026-08-31 08:17:40 -07:00
2026-09-22 01:09:26 -04:00
2026-09-22 01:09:26 -04:00
2026-09-04 16:42:42 -07:00
2026-09-04 16:42:42 -07:00
2026-09-07 09:18:38 -07:00
2026-09-04 16:42:42 -07:00
2026-09-26 12:56:32 -07:00
2026-09-26 12:56:32 -07:00
2026-09-26 12:56:32 -07:00
2026-09-26 12:56:32 -07:00
2026-09-26 12:56:32 -07:00
2026-09-29 13:21:24 -07:00
2026-09-26 12:56:32 -07:00
2026-09-26 12:56:32 -07:00
2026-09-26 12:56:32 -07:00
2026-09-26 12:56:32 -07:00
2026-09-26 12:56:32 -07:00
2026-09-28 16:12:26 -07:00
2026-09-26 12:56:32 -07:00
2026-09-26 12:56:32 -07:00
2026-09-30 03:30:23 -07:00
2026-09-26 12:56:32 -07:00
2026-09-26 12:56:32 -07:00
2026-09-26 12:56:32 -07:00
2026-09-26 12:56:32 -07:00
2026-09-26 12:56:32 -07:00
2026-09-26 12:56:32 -07:00
2026-09-26 12:56:32 -07:00
2026-09-26 12:56:32 -07:00
2026-09-26 12:56:32 -07:00
2026-09-26 12:56:32 -07:00
2026-09-26 12:56:32 -07:00
2026-09-26 12:56:32 -07:00
2026-09-26 12:56:32 -07:00
2026-08-15 00:54:20 -07:00
2026-09-29 14:38:47 -07:00
2026-09-26 12:56:32 -07:00
2026-09-26 12:56:32 -07:00
2026-09-26 12:56:32 -07:00
2026-09-26 12:56:32 -07:00
2026-09-26 12:56:32 -07:00
2026-09-26 12:56:32 -07:00
2026-09-28 12:40:26 -07:00
2026-09-26 12:56:32 -07:00
2026-09-30 04:58:31 -07:00
2026-09-26 12:56:32 -07:00
2026-10-01 01:41:14 -07:00
2026-09-26 12:56:32 -07:00
2026-09-26 12:56:32 -07:00
2026-09-29 12:28:46 -07:00
2026-09-26 12:56:32 -07:00
2026-09-26 12:56:32 -07:00
2026-09-26 12:56:32 -07:00
2026-09-26 12:56:32 -07:00
2026-08-15 00:54:20 -07:00
2026-09-26 12:56:32 -07:00
2026-09-30 23:37:15 -07:00
2026-09-26 12:56:32 -07:00
2026-09-26 12:56:32 -07:00
2026-09-26 12:56:32 -07:00
2026-09-26 12:56:32 -07:00
2026-09-26 12:56:32 -07:00
2026-08-15 21:41:01 -07:00
2026-09-01 23:21:14 -07:00
2026-09-29 21:40:53 -04:00
2026-09-20 14:41:50 -07:00
2026-08-31 20:32:59 -07:00
2026-09-18 20:39:52 -07:00
2026-09-25 22:47:33 -07:00
2026-09-25 22:47:33 -07:00
2026-09-25 22:47:33 -07:00
2026-08-31 19:08:05 -04:00
2026-08-31 19:08:05 -04:00
2026-09-07 00:12:32 -07:00
2026-09-25 14:57:31 -07:00
2026-09-25 14:57:31 -07:00
2026-09-17 20:58:02 -07:00
2026-09-25 14:57:31 -07:00
2026-09-22 04:32:26 -07:00
2026-09-22 04:32:26 -07:00
2026-08-21 21:05:24 -07:00
2026-08-21 21:05:24 -07:00
2026-09-26 12:56:32 -07:00
2026-08-26 15:09:22 -07:00
2026-09-29 18:13:18 -07:00
2026-09-30 02:45:32 -07:00
2026-08-16 23:51:53 -07:00
2026-09-26 12:54:33 -07:00
2026-09-27 00:31:46 -07:00
2026-09-30 04:58:31 -07:00
2026-09-27 00:31:46 -07:00
2026-09-03 00:49:36 -07:00
2026-09-03 00:49:36 -07:00
2026-09-20 14:41:50 -07:00
2026-09-20 14:41:50 -07:00
2026-09-03 00:49:36 -07:00
2026-09-03 00:49:36 -07:00
2026-09-05 20:02:25 -07:00
2026-09-05 20:02:25 -07:00
2026-09-05 20:02:25 -07:00
2026-09-05 20:02:25 -07:00
2026-09-01 19:06:44 -07:00
2026-09-30 16:32:20 -07:00
2026-09-14 14:54:53 -07:00
2026-09-14 14:54:53 -07:00
2026-08-31 14:58:10 -07:00
2026-08-15 18:25:37 -07:00
2026-08-15 18:25:37 -07:00
2026-09-04 23:27:30 -07:00
2026-09-04 23:27:30 -07:00
2026-08-12 20:55:29 -07:00
2026-08-30 18:13:36 -07:00
2026-08-30 18:13:36 -07:00
2026-08-12 14:31:42 -07:00
2026-08-12 14:31:42 -07:00
2026-08-18 03:12:47 -07:00
2026-08-12 20:55:29 -07:00
2026-08-12 20:55:29 -07:00
2026-08-30 18:13:36 -07:00
2026-08-18 15:59:17 -07:00
2026-08-18 15:59:17 -07:00
2026-09-25 21:55:21 -07:00
2026-09-04 16:40:28 -07:00
2026-09-20 14:41:50 -07:00
2026-09-20 14:41:50 -07:00
2026-09-03 16:13:03 -07:00
2026-09-25 22:47:33 -07:00
2026-08-13 22:48:24 -07:00
2026-08-30 18:50:56 -07:00
2026-08-30 18:50:56 -07:00
2026-09-05 21:54:37 -07:00
2026-09-05 21:54:37 -07:00
2026-08-05 01:13:13 -07:00
2026-08-05 01:13:13 -07:00
2026-08-05 01:13:13 -07:00
2026-08-05 01:13:13 -07:00
2026-08-22 21:12:23 -07:00
2026-09-26 21:22:47 -07:00
2026-08-16 23:51:53 -07:00
2026-09-26 21:22:47 -07:00
2026-09-02 13:10:05 -07:00
2026-09-26 21:22:47 -07:00
2026-08-16 23:51:53 -07:00
2026-08-22 21:12:23 -07:00
2026-09-26 21:22:47 -07:00
2026-09-26 21:22:47 -07:00
2026-09-29 16:35:49 -07:00
2026-09-02 13:10:05 -07:00
2026-08-13 22:48:24 -07:00
2026-08-22 21:12:23 -07:00
2026-08-13 22:48:24 -07:00
2026-09-02 03:08:01 -07:00
2026-09-02 03:08:01 -07:00
2026-09-02 03:08:01 -07:00
2026-09-02 03:08:01 -07:00
2026-09-02 03:08:01 -07:00
2026-08-30 12:10:11 -07:00
2026-08-30 14:42:07 -07:00
2026-08-30 12:10:11 -07:00
2026-08-30 14:42:07 -07:00
2026-09-21 11:52:37 -07:00
2026-09-21 11:52:37 -07:00
2026-09-21 11:52:37 -07:00
2026-09-21 11:52:37 -07:00
2026-09-21 11:52:37 -07:00
2026-09-21 11:52:37 -07:00
2026-09-15 01:24:30 -07:00
2026-08-31 13:22:27 -07:00
2026-08-31 13:22:27 -07:00
2026-08-31 02:17:00 -07:00
2026-08-31 13:22:27 -07:00
2026-08-31 13:22:27 -07:00
2026-08-31 13:22:27 -07:00
2026-08-31 13:22:27 -07:00
2026-09-02 03:08:01 -07:00
2026-09-26 12:58:32 -07:00
2026-09-02 03:08:01 -07:00
2026-09-02 03:08:01 -07:00
2026-09-30 05:43:52 -07:00
2026-09-02 03:08:01 -07:00
2026-09-02 03:08:01 -07:00
2026-08-31 13:22:27 -07:00
2026-09-30 05:43:52 -07:00
2026-08-31 13:22:27 -07:00
2026-09-25 22:47:33 -07:00
2026-09-30 05:43:52 -07:00
2026-09-25 22:47:33 -07:00
2026-08-15 00:38:13 -07:00
2026-08-15 00:38:13 -07:00
2026-08-24 18:12:42 -07:00
2026-08-24 18:12:42 -07:00
2026-09-06 17:36:29 -07:00
2026-09-06 17:36:29 -07:00
2026-09-04 16:42:42 -07:00
2026-09-12 20:10:49 -07:00
2026-09-04 16:42:42 -07:00
2026-08-28 16:45:58 -07:00
2026-09-05 21:42:34 -07:00
2026-09-12 20:45:42 -07:00
2026-09-25 22:47:33 -07:00
2026-09-26 03:59:38 -07:00
2026-09-26 03:59:38 -07:00
2026-08-13 23:47:20 -07:00
2026-08-13 23:47:20 -07:00
2026-08-13 23:47:20 -07:00
2026-09-20 14:41:50 -07:00
2026-08-13 23:47:20 -07:00
2026-08-13 23:47:20 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 22:48:24 -07:00
2026-08-13 23:47:20 -07:00
2026-08-13 23:47:20 -07:00
2026-08-13 23:47:20 -07:00
2026-08-30 23:05:32 -07:00
2026-08-24 22:44:08 -07:00
2026-08-24 22:44:08 -07:00
2026-09-15 01:24:30 -07:00
2026-09-02 18:04:48 -07:00
2026-08-24 22:44:08 -07:00
2026-08-24 22:44:08 -07:00
2026-08-24 22:44:08 -07:00
2026-09-29 16:03:28 -07:00
2026-09-15 01:19:32 -07:00
2026-09-15 01:19:32 -07:00
2026-09-30 16:32:20 -07:00
2026-09-30 16:32:20 -07:00
2026-09-30 16:32:20 -07:00
2026-09-05 22:42:06 -07:00
2026-09-05 22:42:06 -07:00
2026-08-14 22:18:36 -07:00
2026-08-14 22:18:36 -07:00
2026-09-03 16:27:13 -07:00
2026-09-03 16:27:13 -07:00
2026-09-01 19:01:59 -07:00
2026-09-05 22:30:01 -07:00
2026-09-01 20:26:00 -07:00
2026-09-01 20:26:00 -07:00
2026-09-25 21:31:25 -07:00
2026-09-25 21:31:25 -07:00
2026-09-15 19:02:50 -04:00
2026-09-25 21:31:25 -07:00
2026-09-01 20:26:00 -07:00
2026-09-25 21:31:25 -07:00
2026-09-25 21:31:25 -07:00
2026-09-01 20:26:00 -07:00
2026-08-18 03:12:47 -07:00
2026-09-01 17:20:17 -07:00
2026-08-29 16:06:15 -07:00
2026-08-29 16:06:15 -07:00
2026-08-27 15:08:40 -07:00
2026-08-17 15:57:07 -07:00
2026-08-20 01:45:17 -07:00
2026-09-15 01:24:30 -07:00
2026-09-05 22:16:57 -07:00
2026-09-14 14:52:45 -07:00
2026-09-14 14:52:45 -07:00
2026-09-30 16:32:20 -07:00
2026-08-13 22:48:24 -07:00
2026-09-29 13:21:24 -07:00
2026-09-16 22:24:10 -07:00
2026-09-16 22:24:10 -07:00
2026-09-20 23:26:51 -07:00
2026-09-20 23:26:51 -07:00
2026-09-30 16:32:20 -07:00
2026-08-17 15:57:07 -07:00
2026-08-17 15:57:07 -07:00
2026-09-30 05:43:52 -07:00
2026-09-16 22:24:10 -07:00
2026-09-26 12:56:32 -07:00
2026-09-16 22:24:10 -07:00
2026-08-29 16:06:15 -07:00
2026-09-15 01:59:58 -07:00
2026-09-15 01:59:58 -07:00
2026-09-30 05:43:52 -07:00
2026-08-20 01:45:17 -07:00
2026-08-20 01:45:17 -07:00
2026-08-20 01:45:17 -07:00
2026-08-17 12:23:50 -07:00
2026-08-17 12:23:50 -07:00
2026-08-31 21:11:09 -07:00
2026-08-31 21:11:09 -07:00
2026-08-29 01:53:31 -07:00
2026-09-30 16:32:20 -07:00
2026-09-30 16:32:20 -07:00
2026-08-07 20:35:22 -07:00
2026-09-06 18:33:12 -07:00
2026-09-06 18:33:12 -07:00
2026-08-22 05:45:21 -07:00
2026-08-07 20:35:22 -07:00
2026-08-31 22:37:23 -07:00
2026-08-31 22:37:23 -07:00
2026-08-22 20:35:59 -07:00
2026-08-22 20:35:59 -07:00
2026-09-29 16:03:28 -07:00
2026-09-02 01:39:48 -07:00
2026-09-02 01:39:48 -07:00
2026-09-25 21:55:21 -07:00
2026-09-25 21:55:21 -07:00
2026-09-26 03:59:38 -07:00
2026-09-26 03:59:38 -07:00
2026-09-12 21:18:50 -07:00
2026-09-26 03:59:38 -07:00
2026-09-15 02:00:27 -07:00
2026-09-02 01:39:48 -07:00
2026-09-02 01:39:48 -07:00
2026-09-15 02:00:27 -07:00
2026-09-20 14:41:50 -07:00
2026-09-26 03:59:38 -07:00
2026-08-19 22:37:42 -07:00
2026-08-19 22:37:42 -07:00
2026-09-01 17:21:10 -07:00
2026-09-29 21:40:53 -04:00
2026-08-18 03:12:47 -07:00
2026-08-19 22:37:42 -07:00
2026-08-19 22:37:42 -07:00