OrcaWin and m4air
38cb4a0ac8
feat(ssh): runtime-store GC in production and exec-stdin upload fallback ( #24136 )
...
* feat(ssh): run runtime-store GC after a pinned relay launch, under a store lock (D5)
The pinned-Node relay deploy now collects runtimes/ after a successful
launch, keeping the pin it runs. Promotion in ensureRemoteOrcadNodeRuntime
and GC deletion both hold runtimes/.store-lock (install-lock primitives,
20-minute stale rule); GC only tries the lock and skips when busy. A cold
pinned install re-checks its runtime under the lock once the relay ref is
visible, closing the ensure-then-ref window. GC also sweeps runtimes/.stage-*
dirs nothing has written to within the stale rule.
* feat(ssh): stream relay and runtime uploads over exec stdin when SFTP is refused (D5)
On the bundled ssh2 transport to a POSIX host, a definite SFTP refusal
(subsystem refused, sftp-server exited during the handshake, or a chrooted
view answering NO_SUCH_FILE for a shell-created path) now falls back to
writing through an exec channel's stdin, reusing makePosixWriteFileCommand
with a byte-count check and atomic rename. Transport loss, timeouts and
aborts never select the fallback. execCommand gains a stdin option.
* test(ssh): answer the runtime store lock in the OpenCode runtime setup test
Promotion now runs under runtimes/.store-lock, so the mocked host must grant
the lock and the stage-exhaustion case makes four more round trips.
* test(ssh): rung C relays never take the runtime store lock
---------
Co-authored-by: m4air <m4air@m4airs-Air.localdomain >
2026-10-01 02:55:21 -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-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-10-01 04:54:36 -04: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-09-22 01:09:26 -04: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-09-27 22:44:18 -07:00
2026-09-30 21:04:31 -04: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-10-01 02:08:26 -07:00
2026-09-30 02:13:03 -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-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 04:54:36 -04: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 02:08:26 -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 02:55:21 -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-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-09-30 00:05:55 -07:00
2026-09-30 02:13:03 -07:00
2026-09-30 02:13:03 -07:00
2026-09-25 22:47:33 -07:00
2026-09-25 22:47:33 -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-09-14 14:54:53 -07:00
2026-09-14 14:54:53 -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-09-14 14:52:35 -07:00
2026-09-15 01:19:32 -07:00
2026-09-18 00:53:09 -07:00
2026-09-14 14:52:35 -07:00
2026-09-15 01:19:32 -07:00
2026-09-26 17:03:05 -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-09-22 05:10:03 -07:00
2026-09-22 05:10:03 -07:00
2026-09-26 12:56:32 -07:00
2026-09-25 18:28:22 -07:00
2026-09-26 20:43:45 -07:00
2026-09-26 20:43:45 -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-09-22 01:09:26 -04:00
2026-09-22 01:09:26 -04: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-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 02:08:26 -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-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-09-29 21:40:53 -04:00
2026-09-20 14:41:50 -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-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-09-26 12:56:32 -07:00
2026-09-29 18:13:18 -07:00
2026-09-30 02:45:32 -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-20 14:41:50 -07:00
2026-09-20 14:41:50 -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-09-25 21:55:21 -07:00
2026-09-20 14:41:50 -07:00
2026-09-20 14:41:50 -07:00
2026-09-25 22:47:33 -07:00
2026-09-26 21:22:47 -07:00
2026-09-26 21:22:47 -07:00
2026-09-26 21:22:47 -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-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-09-26 12:58:32 -07:00
2026-09-30 05:43:52 -07:00
2026-09-30 05:43:52 -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-09-12 20:10:49 -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-09-20 14:41:50 -07:00
2026-09-15 01:24:30 -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-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-25 21:31:25 -07:00
2026-09-25 21:31:25 -07:00
2026-09-15 01:24:30 -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-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-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-09-15 01:59:58 -07:00
2026-09-15 01:59:58 -07:00
2026-09-30 05:43:52 -07:00
2026-09-30 16:32:20 -07:00
2026-09-30 16:32:20 -07:00
2026-09-29 16:03:28 -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-15 02:00:27 -07:00
2026-09-20 14:41:50 -07:00
2026-09-26 03:59:38 -07:00
2026-09-29 21:40:53 -04:00