Repository navigation
Conversation
thesiti92
added this pull request to stack #943
October 5, 2026 19:37
thesiti92
force-pushed
the
remote/3-ssh-hosts
branch
from
October 5, 2026 20:00
44c88d8 to
ed284ce
Compare
thesiti92
force-pushed
the
remote/3-ssh-hosts
branch
from
October 5, 2026 20:19
ed284ce to
5bd8df1
Compare
thesiti92
force-pushed
the
remote/3-ssh-hosts
branch
2 times, most recently
from
October 5, 2026 20:40
85c4310 to
d60133f
Compare
thesiti92
force-pushed
the
remote/3-ssh-hosts
branch
from
October 5, 2026 20:41
d60133f to
85c4310
Compare
thesiti92
force-pushed
the
remote/3-ssh-hosts
branch
from
October 5, 2026 21:38
c4cc9a1 to
f89e9b6
Compare
thesiti92
force-pushed
the
remote/3-ssh-hosts
branch
2 times, most recently
from
October 6, 2026 03:46
0f294cb to
af05567
Compare
Agent-Session: 459ae7ec-7302-42c5-b473-4e315a7e4e19 Agent-Session: bc41ade8-aab1-4279-b31a-ea472fcfaacc Agent-Session: 01a10d6d-cc61-7a60-8be6-0d3d48878694 Agent-Session: 0742d3f8-2ac6-4fee-8102-c6e930f316ad Agent-Session: 96eed70a-4af6-4249-a91d-8064746610b6 Agent-Session: 04f92d25-41e1-4ba0-aef1-7a1a1d409286 Agent-Session: 01a10d75-7d32-7f11-8d5a-7aa1c81b5390 Agent-Session: 01a10db4-61fc-7181-82a9-ac2de659fb25 Agent-Session: 8a675162-2f63-4f2c-8be7-66b7ae4cdd6a Agent-Session: a5134983-fbca-42d2-ac6c-fe14cf3ce20e Agent-Session: 01a0fd55-7d25-70c3-bf87-46cdb881d91e Agent-Session: 13cd2035-0029-45cb-a2c9-65f0c01b6460 Agent-Session: e9b9e23e-de55-4291-9391-cd234f736397 Agent-Session: 5368a6f5-df0c-4411-8eec-4b9cccbfbef0 Agent-Session: f086ac47-f054-41fb-8279-be4df7aa2dee Agent-Session: 3a3376c5-3f72-46df-930c-a66d5c3bcce5 Agent-Session: 7633c50b-998d-4b1e-8ca2-ffb350a26066
One master connection per alias, and every other call through its control socket: exec, loopback forwards and their cancels, check and close. An alias that could become an option or reach a shell is refused. Agent-Session: 459ae7ec-7302-42c5-b473-4e315a7e4e19 Agent-Session: 01a0fd55-7d25-70c3-bf87-46cdb881d91e Agent-Session: 10f346e1-a3d6-4004-b9ae-e69332b86ef7 Agent-Session: 01a0fde5-49f5-7691-b5d7-6bed5e5e4448 Agent-Session: 61ddd1f7-126b-4756-8f8e-ed5123004afa Agent-Session: 01a0fde5-5de7-7a00-8f1e-508af5d4455c Agent-Session: 7d6b1dc9-dc43-474e-a7cf-897a3eb667e1 Agent-Session: 01a10c6b-6286-7d63-bec6-b36570f309dc Agent-Session: fe2ac599-fe10-4bdd-a496-a121682ac842 Agent-Session: c7d5d811-b851-4c36-93a4-ea2325ac973a Agent-Session: 01a10cab-5911-7c00-92f4-5e3404373ba2 Agent-Session: 17be59a9-37ae-45bc-ad47-3cdb1660c6c2 Agent-Session: 0742d3f8-2ac6-4fee-8102-c6e930f316ad Agent-Session: 01a10cc6-7bb1-7652-8fe2-f99e54e4d14e Agent-Session: bc41ade8-aab1-4279-b31a-ea472fcfaacc Agent-Session: 01a10d6d-cc61-7a60-8be6-0d3d48878694 Agent-Session: 96eed70a-4af6-4249-a91d-8064746610b6 Agent-Session: 04f92d25-41e1-4ba0-aef1-7a1a1d409286 Agent-Session: 01a10d75-7d32-7f11-8d5a-7aa1c81b5390 Agent-Session: 01a10db4-61fc-7181-82a9-ac2de659fb25 Agent-Session: 8a675162-2f63-4f2c-8be7-66b7ae4cdd6a Agent-Session: a5134983-fbca-42d2-ac6c-fe14cf3ce20e Agent-Session: 13cd2035-0029-45cb-a2c9-65f0c01b6460 Agent-Session: e9b9e23e-de55-4291-9391-cd234f736397 Agent-Session: 5368a6f5-df0c-4411-8eec-4b9cccbfbef0 Agent-Session: f086ac47-f054-41fb-8279-be4df7aa2dee Agent-Session: 3a3376c5-3f72-46df-930c-a66d5c3bcce5 Agent-Session: 7633c50b-998d-4b1e-8ca2-ffb350a26066
Read for display only, in file order and following Include; patterns are not aliases. Agent-Session: 459ae7ec-7302-42c5-b473-4e315a7e4e19 Agent-Session: 01a0fd55-7d25-70c3-bf87-46cdb881d91e Agent-Session: 10f346e1-a3d6-4004-b9ae-e69332b86ef7 Agent-Session: 01a0fde5-49f5-7691-b5d7-6bed5e5e4448 Agent-Session: 61ddd1f7-126b-4756-8f8e-ed5123004afa Agent-Session: 01a0fde5-5de7-7a00-8f1e-508af5d4455c Agent-Session: 7d6b1dc9-dc43-474e-a7cf-897a3eb667e1 Agent-Session: 01a10c6b-6286-7d63-bec6-b36570f309dc Agent-Session: fe2ac599-fe10-4bdd-a496-a121682ac842 Agent-Session: c7d5d811-b851-4c36-93a4-ea2325ac973a Agent-Session: 01a10cab-5911-7c00-92f4-5e3404373ba2 Agent-Session: 17be59a9-37ae-45bc-ad47-3cdb1660c6c2 Agent-Session: 0742d3f8-2ac6-4fee-8102-c6e930f316ad Agent-Session: 01a10cc6-7bb1-7652-8fe2-f99e54e4d14e Agent-Session: bc41ade8-aab1-4279-b31a-ea472fcfaacc Agent-Session: 01a10d6d-cc61-7a60-8be6-0d3d48878694 Agent-Session: 96eed70a-4af6-4249-a91d-8064746610b6 Agent-Session: 04f92d25-41e1-4ba0-aef1-7a1a1d409286 Agent-Session: 01a10d75-7d32-7f11-8d5a-7aa1c81b5390 Agent-Session: 01a10db4-61fc-7181-82a9-ac2de659fb25 Agent-Session: 8a675162-2f63-4f2c-8be7-66b7ae4cdd6a Agent-Session: a5134983-fbca-42d2-ac6c-fe14cf3ce20e Agent-Session: 13cd2035-0029-45cb-a2c9-65f0c01b6460 Agent-Session: e9b9e23e-de55-4291-9391-cd234f736397 Agent-Session: 5368a6f5-df0c-4411-8eec-4b9cccbfbef0 Agent-Session: f086ac47-f054-41fb-8279-be4df7aa2dee Agent-Session: 3a3376c5-3f72-46df-930c-a66d5c3bcce5 Agent-Session: 7633c50b-998d-4b1e-8ca2-ffb350a26066
ssh runs a packaged helper as SSH_ASKPASS. The helper sends the prompt over a socket in the 0700 control directory to the main process, which asks one prompt at a time and never logs or stores the answer. Agent-Session: 459ae7ec-7302-42c5-b473-4e315a7e4e19 Agent-Session: 01a0fd55-7d25-70c3-bf87-46cdb881d91e Agent-Session: 10f346e1-a3d6-4004-b9ae-e69332b86ef7 Agent-Session: 01a0fde5-49f5-7691-b5d7-6bed5e5e4448 Agent-Session: 61ddd1f7-126b-4756-8f8e-ed5123004afa Agent-Session: 01a0fde5-5de7-7a00-8f1e-508af5d4455c Agent-Session: 7d6b1dc9-dc43-474e-a7cf-897a3eb667e1 Agent-Session: 01a10c6b-6286-7d63-bec6-b36570f309dc Agent-Session: fe2ac599-fe10-4bdd-a496-a121682ac842 Agent-Session: c7d5d811-b851-4c36-93a4-ea2325ac973a Agent-Session: 01a10cab-5911-7c00-92f4-5e3404373ba2 Agent-Session: 17be59a9-37ae-45bc-ad47-3cdb1660c6c2 Agent-Session: 0742d3f8-2ac6-4fee-8102-c6e930f316ad Agent-Session: 01a10cc6-7bb1-7652-8fe2-f99e54e4d14e Agent-Session: bc41ade8-aab1-4279-b31a-ea472fcfaacc Agent-Session: 01a10d6d-cc61-7a60-8be6-0d3d48878694 Agent-Session: 96eed70a-4af6-4249-a91d-8064746610b6 Agent-Session: 04f92d25-41e1-4ba0-aef1-7a1a1d409286 Agent-Session: 01a10d75-7d32-7f11-8d5a-7aa1c81b5390 Agent-Session: 01a10db4-61fc-7181-82a9-ac2de659fb25 Agent-Session: 8a675162-2f63-4f2c-8be7-66b7ae4cdd6a Agent-Session: a5134983-fbca-42d2-ac6c-fe14cf3ce20e Agent-Session: 13cd2035-0029-45cb-a2c9-65f0c01b6460 Agent-Session: e9b9e23e-de55-4291-9391-cd234f736397 Agent-Session: 5368a6f5-df0c-4411-8eec-4b9cccbfbef0 Agent-Session: f086ac47-f054-41fb-8279-be4df7aa2dee Agent-Session: 3a3376c5-3f72-46df-930c-a66d5c3bcce5 Agent-Session: 7633c50b-998d-4b1e-8ca2-ffb350a26066
Every window on the Desktop channel shows each prompt as plain text; the first answer wins, and a prompt stays open across a window reload. A typed secret is cleared before the input hides. Agent-Session: 459ae7ec-7302-42c5-b473-4e315a7e4e19 Agent-Session: 01a0fd55-7d25-70c3-bf87-46cdb881d91e Agent-Session: 10f346e1-a3d6-4004-b9ae-e69332b86ef7 Agent-Session: 01a0fde5-49f5-7691-b5d7-6bed5e5e4448 Agent-Session: 61ddd1f7-126b-4756-8f8e-ed5123004afa Agent-Session: 01a0fde5-5de7-7a00-8f1e-508af5d4455c Agent-Session: 7d6b1dc9-dc43-474e-a7cf-897a3eb667e1 Agent-Session: 01a10c6b-6286-7d63-bec6-b36570f309dc Agent-Session: fe2ac599-fe10-4bdd-a496-a121682ac842 Agent-Session: c7d5d811-b851-4c36-93a4-ea2325ac973a Agent-Session: 01a10cab-5911-7c00-92f4-5e3404373ba2 Agent-Session: 17be59a9-37ae-45bc-ad47-3cdb1660c6c2 Agent-Session: 0742d3f8-2ac6-4fee-8102-c6e930f316ad Agent-Session: 01a10cc6-7bb1-7652-8fe2-f99e54e4d14e Agent-Session: bc41ade8-aab1-4279-b31a-ea472fcfaacc Agent-Session: 01a10d6d-cc61-7a60-8be6-0d3d48878694 Agent-Session: 96eed70a-4af6-4249-a91d-8064746610b6 Agent-Session: 04f92d25-41e1-4ba0-aef1-7a1a1d409286 Agent-Session: 01a10d75-7d32-7f11-8d5a-7aa1c81b5390 Agent-Session: 01a10db4-61fc-7181-82a9-ac2de659fb25 Agent-Session: 8a675162-2f63-4f2c-8be7-66b7ae4cdd6a Agent-Session: a5134983-fbca-42d2-ac6c-fe14cf3ce20e Agent-Session: 13cd2035-0029-45cb-a2c9-65f0c01b6460 Agent-Session: e9b9e23e-de55-4291-9391-cd234f736397 Agent-Session: 5368a6f5-df0c-4411-8eec-4b9cccbfbef0 Agent-Session: f086ac47-f054-41fb-8279-be4df7aa2dee Agent-Session: 3a3376c5-3f72-46df-930c-a66d5c3bcce5 Agent-Session: 7633c50b-998d-4b1e-8ca2-ffb350a26066
A development stand-in for the remote host manager, to exercise the prompts. Agent-Session: 459ae7ec-7302-42c5-b473-4e315a7e4e19 Agent-Session: 01a0fd55-7d25-70c3-bf87-46cdb881d91e Agent-Session: 10f346e1-a3d6-4004-b9ae-e69332b86ef7 Agent-Session: 01a0fde5-49f5-7691-b5d7-6bed5e5e4448 Agent-Session: 61ddd1f7-126b-4756-8f8e-ed5123004afa Agent-Session: 01a0fde5-5de7-7a00-8f1e-508af5d4455c Agent-Session: 7d6b1dc9-dc43-474e-a7cf-897a3eb667e1 Agent-Session: 01a10c6b-6286-7d63-bec6-b36570f309dc Agent-Session: fe2ac599-fe10-4bdd-a496-a121682ac842 Agent-Session: c7d5d811-b851-4c36-93a4-ea2325ac973a Agent-Session: 01a10cab-5911-7c00-92f4-5e3404373ba2 Agent-Session: 17be59a9-37ae-45bc-ad47-3cdb1660c6c2 Agent-Session: 0742d3f8-2ac6-4fee-8102-c6e930f316ad Agent-Session: 01a10cc6-7bb1-7652-8fe2-f99e54e4d14e Agent-Session: bc41ade8-aab1-4279-b31a-ea472fcfaacc Agent-Session: 01a10d6d-cc61-7a60-8be6-0d3d48878694 Agent-Session: 96eed70a-4af6-4249-a91d-8064746610b6 Agent-Session: 04f92d25-41e1-4ba0-aef1-7a1a1d409286 Agent-Session: 01a10d75-7d32-7f11-8d5a-7aa1c81b5390 Agent-Session: 01a10db4-61fc-7181-82a9-ac2de659fb25 Agent-Session: 8a675162-2f63-4f2c-8be7-66b7ae4cdd6a Agent-Session: a5134983-fbca-42d2-ac6c-fe14cf3ce20e Agent-Session: 13cd2035-0029-45cb-a2c9-65f0c01b6460 Agent-Session: e9b9e23e-de55-4291-9391-cd234f736397 Agent-Session: 5368a6f5-df0c-4411-8eec-4b9cccbfbef0 Agent-Session: f086ac47-f054-41fb-8279-be4df7aa2dee Agent-Session: 3a3376c5-3f72-46df-930c-a66d5c3bcce5 Agent-Session: 7633c50b-998d-4b1e-8ca2-ffb350a26066
A host opens a master connection, runs `whiteboard remote attach` through the CLI its login shell finds, and forwards a loopback port to the remote server. It reports an endpoint or a problem, reconnects with backoff when the master ends, and attaches again when the remote server restarts. Agent-Session: 459ae7ec-7302-42c5-b473-4e315a7e4e19 Agent-Session: 01a0fd55-7d25-70c3-bf87-46cdb881d91e Agent-Session: 10f346e1-a3d6-4004-b9ae-e69332b86ef7 Agent-Session: 01a0fde5-49f5-7691-b5d7-6bed5e5e4448 Agent-Session: 61ddd1f7-126b-4756-8f8e-ed5123004afa Agent-Session: 01a0fde5-5de7-7a00-8f1e-508af5d4455c Agent-Session: 7d6b1dc9-dc43-474e-a7cf-897a3eb667e1 Agent-Session: 01a10c6b-6286-7d63-bec6-b36570f309dc Agent-Session: fe2ac599-fe10-4bdd-a496-a121682ac842 Agent-Session: c7d5d811-b851-4c36-93a4-ea2325ac973a Agent-Session: 01a10cab-5911-7c00-92f4-5e3404373ba2 Agent-Session: 17be59a9-37ae-45bc-ad47-3cdb1660c6c2 Agent-Session: 0742d3f8-2ac6-4fee-8102-c6e930f316ad Agent-Session: 01a10cc6-7bb1-7652-8fe2-f99e54e4d14e Agent-Session: bc41ade8-aab1-4279-b31a-ea472fcfaacc Agent-Session: 01a10d6d-cc61-7a60-8be6-0d3d48878694 Agent-Session: 96eed70a-4af6-4249-a91d-8064746610b6 Agent-Session: 04f92d25-41e1-4ba0-aef1-7a1a1d409286 Agent-Session: 01a10d75-7d32-7f11-8d5a-7aa1c81b5390 Agent-Session: 01a10db4-61fc-7181-82a9-ac2de659fb25 Agent-Session: 8a675162-2f63-4f2c-8be7-66b7ae4cdd6a Agent-Session: a5134983-fbca-42d2-ac6c-fe14cf3ce20e Agent-Session: 13cd2035-0029-45cb-a2c9-65f0c01b6460 Agent-Session: e9b9e23e-de55-4291-9391-cd234f736397 Agent-Session: 5368a6f5-df0c-4411-8eec-4b9cccbfbef0 Agent-Session: f086ac47-f054-41fb-8279-be4df7aa2dee Agent-Session: 3a3376c5-3f72-46df-930c-a66d5c3bcce5 Agent-Session: 7633c50b-998d-4b1e-8ca2-ffb350a26066
With `review.experimental.remoteHosts.enabled` on, main connects each alias in `review.remote.hosts` after the first window opens and sends the hosts to the local server, in the setting's order, at most once a second. At start it closes the masters an earlier run left. Agent-Session: 459ae7ec-7302-42c5-b473-4e315a7e4e19 Agent-Session: 01a0fd55-7d25-70c3-bf87-46cdb881d91e Agent-Session: 10f346e1-a3d6-4004-b9ae-e69332b86ef7 Agent-Session: 01a0fde5-49f5-7691-b5d7-6bed5e5e4448 Agent-Session: 61ddd1f7-126b-4756-8f8e-ed5123004afa Agent-Session: 01a0fde5-5de7-7a00-8f1e-508af5d4455c Agent-Session: 7d6b1dc9-dc43-474e-a7cf-897a3eb667e1 Agent-Session: 01a10c6b-6286-7d63-bec6-b36570f309dc Agent-Session: fe2ac599-fe10-4bdd-a496-a121682ac842 Agent-Session: c7d5d811-b851-4c36-93a4-ea2325ac973a Agent-Session: 01a10cab-5911-7c00-92f4-5e3404373ba2 Agent-Session: 17be59a9-37ae-45bc-ad47-3cdb1660c6c2 Agent-Session: 0742d3f8-2ac6-4fee-8102-c6e930f316ad Agent-Session: 01a10cc6-7bb1-7652-8fe2-f99e54e4d14e Agent-Session: bc41ade8-aab1-4279-b31a-ea472fcfaacc Agent-Session: 01a10d6d-cc61-7a60-8be6-0d3d48878694 Agent-Session: 96eed70a-4af6-4249-a91d-8064746610b6 Agent-Session: 04f92d25-41e1-4ba0-aef1-7a1a1d409286 Agent-Session: 01a10d75-7d32-7f11-8d5a-7aa1c81b5390 Agent-Session: 01a10db4-61fc-7181-82a9-ac2de659fb25 Agent-Session: 8a675162-2f63-4f2c-8be7-66b7ae4cdd6a Agent-Session: a5134983-fbca-42d2-ac6c-fe14cf3ce20e Agent-Session: 13cd2035-0029-45cb-a2c9-65f0c01b6460 Agent-Session: e9b9e23e-de55-4291-9391-cd234f736397 Agent-Session: 5368a6f5-df0c-4411-8eec-4b9cccbfbef0 Agent-Session: f086ac47-f054-41fb-8279-be4df7aa2dee Agent-Session: 3a3376c5-3f72-46df-930c-a66d5c3bcce5 Agent-Session: 7633c50b-998d-4b1e-8ca2-ffb350a26066
The gateway takes a 401, or nothing answering behind a working forward, as a restart and asks Desktop once to attach again. Agent-Session: 459ae7ec-7302-42c5-b473-4e315a7e4e19 Agent-Session: 01a0fd55-7d25-70c3-bf87-46cdb881d91e Agent-Session: 10f346e1-a3d6-4004-b9ae-e69332b86ef7 Agent-Session: 01a0fde5-49f5-7691-b5d7-6bed5e5e4448 Agent-Session: 61ddd1f7-126b-4756-8f8e-ed5123004afa Agent-Session: 01a0fde5-5de7-7a00-8f1e-508af5d4455c Agent-Session: 7d6b1dc9-dc43-474e-a7cf-897a3eb667e1 Agent-Session: 01a10c6b-6286-7d63-bec6-b36570f309dc Agent-Session: fe2ac599-fe10-4bdd-a496-a121682ac842 Agent-Session: c7d5d811-b851-4c36-93a4-ea2325ac973a Agent-Session: 01a10cab-5911-7c00-92f4-5e3404373ba2 Agent-Session: 17be59a9-37ae-45bc-ad47-3cdb1660c6c2 Agent-Session: 0742d3f8-2ac6-4fee-8102-c6e930f316ad Agent-Session: 01a10cc6-7bb1-7652-8fe2-f99e54e4d14e Agent-Session: bc41ade8-aab1-4279-b31a-ea472fcfaacc Agent-Session: 01a10d6d-cc61-7a60-8be6-0d3d48878694 Agent-Session: 96eed70a-4af6-4249-a91d-8064746610b6 Agent-Session: 04f92d25-41e1-4ba0-aef1-7a1a1d409286 Agent-Session: 01a10d75-7d32-7f11-8d5a-7aa1c81b5390 Agent-Session: 01a10db4-61fc-7181-82a9-ac2de659fb25 Agent-Session: 8a675162-2f63-4f2c-8be7-66b7ae4cdd6a Agent-Session: a5134983-fbca-42d2-ac6c-fe14cf3ce20e Agent-Session: 13cd2035-0029-45cb-a2c9-65f0c01b6460 Agent-Session: e9b9e23e-de55-4291-9391-cd234f736397 Agent-Session: 5368a6f5-df0c-4411-8eec-4b9cccbfbef0 Agent-Session: f086ac47-f054-41fb-8279-be4df7aa2dee Agent-Session: 3a3376c5-3f72-46df-930c-a66d5c3bcce5 Agent-Session: 7633c50b-998d-4b1e-8ca2-ffb350a26066
The SSH alias rule moves to common code so the renderer checks an alias as main does. Agent-Session: 01a0fd55-7d25-70c3-bf87-46cdb881d91e Agent-Session: 10f346e1-a3d6-4004-b9ae-e69332b86ef7 Agent-Session: 61ddd1f7-126b-4756-8f8e-ed5123004afa Agent-Session: 459ae7ec-7302-42c5-b473-4e315a7e4e19 Agent-Session: 01a0fde5-5de7-7a00-8f1e-508af5d4455c Agent-Session: 7d6b1dc9-dc43-474e-a7cf-897a3eb667e1 Agent-Session: 01a0fde5-49f5-7691-b5d7-6bed5e5e4448 Agent-Session: 01a10c6b-6286-7d63-bec6-b36570f309dc Agent-Session: fe2ac599-fe10-4bdd-a496-a121682ac842 Agent-Session: c7d5d811-b851-4c36-93a4-ea2325ac973a Agent-Session: 01a10cab-5911-7c00-92f4-5e3404373ba2 Agent-Session: 17be59a9-37ae-45bc-ad47-3cdb1660c6c2 Agent-Session: 0742d3f8-2ac6-4fee-8102-c6e930f316ad Agent-Session: 01a10cc6-7bb1-7652-8fe2-f99e54e4d14e Agent-Session: bc41ade8-aab1-4279-b31a-ea472fcfaacc Agent-Session: 01a10d6d-cc61-7a60-8be6-0d3d48878694 Agent-Session: 96eed70a-4af6-4249-a91d-8064746610b6 Agent-Session: 04f92d25-41e1-4ba0-aef1-7a1a1d409286 Agent-Session: 01a10d75-7d32-7f11-8d5a-7aa1c81b5390 Agent-Session: 01a10db4-61fc-7181-82a9-ac2de659fb25 Agent-Session: 8a675162-2f63-4f2c-8be7-66b7ae4cdd6a Agent-Session: a5134983-fbca-42d2-ac6c-fe14cf3ce20e Agent-Session: 13cd2035-0029-45cb-a2c9-65f0c01b6460 Agent-Session: e9b9e23e-de55-4291-9391-cd234f736397 Agent-Session: 5368a6f5-df0c-4411-8eec-4b9cccbfbef0 Agent-Session: f086ac47-f054-41fb-8279-be4df7aa2dee Agent-Session: 3a3376c5-3f72-46df-930c-a66d5c3bcce5 Agent-Session: 7633c50b-998d-4b1e-8ca2-ffb350a26066
Home puts the host's alias before the repository name, groups by host, and explains an unavailable review instead of opening it. A review on another machine has no Open file, source tree, sharing or traces. Agent-Session: 01a0fd55-7d25-70c3-bf87-46cdb881d91e Agent-Session: 10f346e1-a3d6-4004-b9ae-e69332b86ef7 Agent-Session: 61ddd1f7-126b-4756-8f8e-ed5123004afa Agent-Session: 459ae7ec-7302-42c5-b473-4e315a7e4e19 Agent-Session: 01a0fde5-5de7-7a00-8f1e-508af5d4455c Agent-Session: 7d6b1dc9-dc43-474e-a7cf-897a3eb667e1 Agent-Session: 01a0fde5-49f5-7691-b5d7-6bed5e5e4448 Agent-Session: 01a10c6b-6286-7d63-bec6-b36570f309dc Agent-Session: fe2ac599-fe10-4bdd-a496-a121682ac842 Agent-Session: c7d5d811-b851-4c36-93a4-ea2325ac973a Agent-Session: 01a10cab-5911-7c00-92f4-5e3404373ba2 Agent-Session: 17be59a9-37ae-45bc-ad47-3cdb1660c6c2 Agent-Session: 0742d3f8-2ac6-4fee-8102-c6e930f316ad Agent-Session: 01a10cc6-7bb1-7652-8fe2-f99e54e4d14e Agent-Session: bc41ade8-aab1-4279-b31a-ea472fcfaacc Agent-Session: 01a10d6d-cc61-7a60-8be6-0d3d48878694 Agent-Session: 96eed70a-4af6-4249-a91d-8064746610b6 Agent-Session: 04f92d25-41e1-4ba0-aef1-7a1a1d409286 Agent-Session: 01a10d75-7d32-7f11-8d5a-7aa1c81b5390 Agent-Session: 01a10db4-61fc-7181-82a9-ac2de659fb25 Agent-Session: 8a675162-2f63-4f2c-8be7-66b7ae4cdd6a Agent-Session: a5134983-fbca-42d2-ac6c-fe14cf3ce20e Agent-Session: 13cd2035-0029-45cb-a2c9-65f0c01b6460 Agent-Session: e9b9e23e-de55-4291-9391-cd234f736397 Agent-Session: 5368a6f5-df0c-4411-8eec-4b9cccbfbef0 Agent-Session: f086ac47-f054-41fb-8279-be4df7aa2dee Agent-Session: 3a3376c5-3f72-46df-930c-a66d5c3bcce5 Agent-Session: 7633c50b-998d-4b1e-8ca2-ffb350a26066
It lists each alias with its state and detail as plain text, offers the SSH configuration's hosts, and shows the install command Desktop builds, never one from a remote's text. The canvas passes each review's host and the host states to the UI. Agent-Session: 01a0fd55-7d25-70c3-bf87-46cdb881d91e Agent-Session: 10f346e1-a3d6-4004-b9ae-e69332b86ef7 Agent-Session: 61ddd1f7-126b-4756-8f8e-ed5123004afa Agent-Session: 459ae7ec-7302-42c5-b473-4e315a7e4e19 Agent-Session: 01a0fde5-5de7-7a00-8f1e-508af5d4455c Agent-Session: 7d6b1dc9-dc43-474e-a7cf-897a3eb667e1 Agent-Session: 01a0fde5-49f5-7691-b5d7-6bed5e5e4448 Agent-Session: 01a10c6b-6286-7d63-bec6-b36570f309dc Agent-Session: fe2ac599-fe10-4bdd-a496-a121682ac842 Agent-Session: c7d5d811-b851-4c36-93a4-ea2325ac973a Agent-Session: 01a10cab-5911-7c00-92f4-5e3404373ba2 Agent-Session: 17be59a9-37ae-45bc-ad47-3cdb1660c6c2 Agent-Session: 0742d3f8-2ac6-4fee-8102-c6e930f316ad Agent-Session: 01a10cc6-7bb1-7652-8fe2-f99e54e4d14e Agent-Session: bc41ade8-aab1-4279-b31a-ea472fcfaacc Agent-Session: 01a10d6d-cc61-7a60-8be6-0d3d48878694 Agent-Session: 96eed70a-4af6-4249-a91d-8064746610b6 Agent-Session: 04f92d25-41e1-4ba0-aef1-7a1a1d409286 Agent-Session: 01a10d75-7d32-7f11-8d5a-7aa1c81b5390 Agent-Session: 01a10db4-61fc-7181-82a9-ac2de659fb25 Agent-Session: 8a675162-2f63-4f2c-8be7-66b7ae4cdd6a Agent-Session: a5134983-fbca-42d2-ac6c-fe14cf3ce20e Agent-Session: 13cd2035-0029-45cb-a2c9-65f0c01b6460 Agent-Session: e9b9e23e-de55-4291-9391-cd234f736397 Agent-Session: 5368a6f5-df0c-4411-8eec-4b9cccbfbef0 Agent-Session: f086ac47-f054-41fb-8279-be4df7aa2dee Agent-Session: 3a3376c5-3f72-46df-930c-a66d5c3bcce5 Agent-Session: 7633c50b-998d-4b1e-8ca2-ffb350a26066
The journey runs a review server in a container over SSH, or on a host prepared by hand, and checks Home, the canvas, live edits, pushes, reconnects, a hung server, a version mismatch and removal. Agent-Session: 203ee435-a867-494c-bb56-ddde9edf962e Agent-Session: 879f8dc8-4a2e-4c1d-a221-935df47f9854 Agent-Session: 459ae7ec-7302-42c5-b473-4e315a7e4e19 Agent-Session: 01a0f84f-dd30-7a41-b2fe-0d7af3946366 Agent-Session: b74726e7-9218-4d00-81bd-c3fc64dcd8d7 Agent-Session: 01a0f894-9661-79c0-a6c4-71002d15105c Agent-Session: 00102a68-dcd0-4748-a95e-fc417ddbb706 Agent-Session: 01a0fd55-7d25-70c3-bf87-46cdb881d91e Agent-Session: 10f346e1-a3d6-4004-b9ae-e69332b86ef7 Agent-Session: 61ddd1f7-126b-4756-8f8e-ed5123004afa Agent-Session: 01a0fde5-5de7-7a00-8f1e-508af5d4455c Agent-Session: 7d6b1dc9-dc43-474e-a7cf-897a3eb667e1 Agent-Session: 945245a7-5fc9-4d4e-bb9a-8fa4987ac199 Agent-Session: 01a0f7e4-a040-7c70-958e-c32707c30fa1 Agent-Session: 01a0fde5-49f5-7691-b5d7-6bed5e5e4448 Agent-Session: 01a10c6b-6286-7d63-bec6-b36570f309dc Agent-Session: fe2ac599-fe10-4bdd-a496-a121682ac842 Agent-Session: c7d5d811-b851-4c36-93a4-ea2325ac973a Agent-Session: 01a10cab-5911-7c00-92f4-5e3404373ba2 Agent-Session: 17be59a9-37ae-45bc-ad47-3cdb1660c6c2 Agent-Session: 0742d3f8-2ac6-4fee-8102-c6e930f316ad Agent-Session: 01a10cc6-7bb1-7652-8fe2-f99e54e4d14e Agent-Session: bc41ade8-aab1-4279-b31a-ea472fcfaacc Agent-Session: 01a10d6d-cc61-7a60-8be6-0d3d48878694 Agent-Session: 96eed70a-4af6-4249-a91d-8064746610b6 Agent-Session: 04f92d25-41e1-4ba0-aef1-7a1a1d409286 Agent-Session: 01a10d75-7d32-7f11-8d5a-7aa1c81b5390 Agent-Session: 01a10db4-61fc-7181-82a9-ac2de659fb25 Agent-Session: 8a675162-2f63-4f2c-8be7-66b7ae4cdd6a Agent-Session: a5134983-fbca-42d2-ac6c-fe14cf3ce20e Agent-Session: 13cd2035-0029-45cb-a2c9-65f0c01b6460 Agent-Session: e9b9e23e-de55-4291-9391-cd234f736397 Agent-Session: 5368a6f5-df0c-4411-8eec-4b9cccbfbef0 Agent-Session: f086ac47-f054-41fb-8279-be4df7aa2dee Agent-Session: 3a3376c5-3f72-46df-930c-a66d5c3bcce5 Agent-Session: 7633c50b-998d-4b1e-8ca2-ffb350a26066
A server that misses three /health checks in a row is attached again. Agent-Session: 10f346e1-a3d6-4004-b9ae-e69332b86ef7 Agent-Session: 459ae7ec-7302-42c5-b473-4e315a7e4e19 Agent-Session: 01a0fd55-7d25-70c3-bf87-46cdb881d91e Agent-Session: 6f4264ba-6e8e-4283-8a0d-c70b0912c75d Agent-Session: e8fb83ae-d61f-497d-8c6f-2949c5e4760b Agent-Session: 6aa25413-6ff2-4207-a23e-f435d86aeff7 Agent-Session: 7d6b1dc9-dc43-474e-a7cf-897a3eb667e1 Agent-Session: 01a0fde5-5de7-7a00-8f1e-508af5d4455c Agent-Session: 2843f7c1-df99-4190-ae44-e0bec53ffa49 Agent-Session: 01a1034a-9158-7d23-bc59-21b4a209a1d8 Agent-Session: ef4983e0-5b02-4105-b264-6ae48c727a8a Agent-Session: 01a10c6b-6286-7d63-bec6-b36570f309dc Agent-Session: fe2ac599-fe10-4bdd-a496-a121682ac842 Agent-Session: c7d5d811-b851-4c36-93a4-ea2325ac973a Agent-Session: 01a10cab-5911-7c00-92f4-5e3404373ba2 Agent-Session: 17be59a9-37ae-45bc-ad47-3cdb1660c6c2 Agent-Session: 0742d3f8-2ac6-4fee-8102-c6e930f316ad Agent-Session: 01a10cc6-7bb1-7652-8fe2-f99e54e4d14e Agent-Session: bc41ade8-aab1-4279-b31a-ea472fcfaacc Agent-Session: 01a10d6d-cc61-7a60-8be6-0d3d48878694 Agent-Session: 96eed70a-4af6-4249-a91d-8064746610b6 Agent-Session: 04f92d25-41e1-4ba0-aef1-7a1a1d409286 Agent-Session: 01a10d75-7d32-7f11-8d5a-7aa1c81b5390 Agent-Session: 01a10db4-61fc-7181-82a9-ac2de659fb25 Agent-Session: 8a675162-2f63-4f2c-8be7-66b7ae4cdd6a Agent-Session: a5134983-fbca-42d2-ac6c-fe14cf3ce20e Agent-Session: 13cd2035-0029-45cb-a2c9-65f0c01b6460 Agent-Session: e9b9e23e-de55-4291-9391-cd234f736397 Agent-Session: 5368a6f5-df0c-4411-8eec-4b9cccbfbef0 Agent-Session: f086ac47-f054-41fb-8279-be4df7aa2dee Agent-Session: 3a3376c5-3f72-46df-930c-a66d5c3bcce5 Agent-Session: 7633c50b-998d-4b1e-8ca2-ffb350a26066
Agent-Session: 459ae7ec-7302-42c5-b473-4e315a7e4e19 Agent-Session: bc41ade8-aab1-4279-b31a-ea472fcfaacc Agent-Session: 96eed70a-4af6-4249-a91d-8064746610b6 Agent-Session: 04f92d25-41e1-4ba0-aef1-7a1a1d409286 Agent-Session: 01a10d75-7d32-7f11-8d5a-7aa1c81b5390 Agent-Session: 01a10db4-61fc-7181-82a9-ac2de659fb25 Agent-Session: 8a675162-2f63-4f2c-8be7-66b7ae4cdd6a Agent-Session: a5134983-fbca-42d2-ac6c-fe14cf3ce20e Agent-Session: 01a0fd55-7d25-70c3-bf87-46cdb881d91e Agent-Session: 13cd2035-0029-45cb-a2c9-65f0c01b6460 Agent-Session: e9b9e23e-de55-4291-9391-cd234f736397 Agent-Session: 5368a6f5-df0c-4411-8eec-4b9cccbfbef0 Agent-Session: f086ac47-f054-41fb-8279-be4df7aa2dee Agent-Session: 3a3376c5-3f72-46df-930c-a66d5c3bcce5 Agent-Session: 7633c50b-998d-4b1e-8ca2-ffb350a26066
attachAgain and connect now end in the same establish step, and a reattach waits on the same timer and failure count as a reconnect. connect drops any running master first, so a resume during a reattach delay no longer leaves the old master behind. Agent-Session: 459ae7ec-7302-42c5-b473-4e315a7e4e19 Agent-Session: bc41ade8-aab1-4279-b31a-ea472fcfaacc Agent-Session: 96eed70a-4af6-4249-a91d-8064746610b6 Agent-Session: 04f92d25-41e1-4ba0-aef1-7a1a1d409286 Agent-Session: 01a10d75-7d32-7f11-8d5a-7aa1c81b5390 Agent-Session: 01a10db4-61fc-7181-82a9-ac2de659fb25 Agent-Session: b432f7be-90f7-4d63-894d-7d75660d19b2 Agent-Session: a5134983-fbca-42d2-ac6c-fe14cf3ce20e Agent-Session: 01a0fd55-7d25-70c3-bf87-46cdb881d91e Agent-Session: 13cd2035-0029-45cb-a2c9-65f0c01b6460 Agent-Session: e9b9e23e-de55-4291-9391-cd234f736397 Agent-Session: 5368a6f5-df0c-4411-8eec-4b9cccbfbef0 Agent-Session: f086ac47-f054-41fb-8279-be4df7aa2dee Agent-Session: 3a3376c5-3f72-46df-930c-a66d5c3bcce5 Agent-Session: 7633c50b-998d-4b1e-8ca2-ffb350a26066
Agent-Session: 459ae7ec-7302-42c5-b473-4e315a7e4e19 Agent-Session: bc41ade8-aab1-4279-b31a-ea472fcfaacc Agent-Session: 96eed70a-4af6-4249-a91d-8064746610b6 Agent-Session: 04f92d25-41e1-4ba0-aef1-7a1a1d409286 Agent-Session: a5134983-fbca-42d2-ac6c-fe14cf3ce20e Agent-Session: 01a0fd55-7d25-70c3-bf87-46cdb881d91e Agent-Session: 13cd2035-0029-45cb-a2c9-65f0c01b6460 Agent-Session: e9b9e23e-de55-4291-9391-cd234f736397 Agent-Session: 5368a6f5-df0c-4411-8eec-4b9cccbfbef0 Agent-Session: f086ac47-f054-41fb-8279-be4df7aa2dee Agent-Session: 3a3376c5-3f72-46df-930c-a66d5c3bcce5 Agent-Session: 7633c50b-998d-4b1e-8ca2-ffb350a26066
Agent-Session: c155cff4-ccd6-416d-a2e3-f65113f2d163 Agent-Session: edffabb0-c704-439a-bf69-7b366f2f332d Agent-Session: 13cd2035-0029-45cb-a2c9-65f0c01b6460 Agent-Session: e9b9e23e-de55-4291-9391-cd234f736397 Agent-Session: 5368a6f5-df0c-4411-8eec-4b9cccbfbef0 Agent-Session: f086ac47-f054-41fb-8279-be4df7aa2dee Agent-Session: 3a3376c5-3f72-46df-930c-a66d5c3bcce5 Agent-Session: 7633c50b-998d-4b1e-8ca2-ffb350a26066
Agent-Session: c155cff4-ccd6-416d-a2e3-f65113f2d163 Agent-Session: 13cd2035-0029-45cb-a2c9-65f0c01b6460 Agent-Session: e9b9e23e-de55-4291-9391-cd234f736397 Agent-Session: 5368a6f5-df0c-4411-8eec-4b9cccbfbef0 Agent-Session: f086ac47-f054-41fb-8279-be4df7aa2dee Agent-Session: 7633c50b-998d-4b1e-8ca2-ffb350a26066 Agent-Session: 3a3376c5-3f72-46df-930c-a66d5c3bcce5
thesiti92
force-pushed
the
remote/3-ssh-hosts
branch
from
October 6, 2026 17:10
abd137d to
1453dfd
Compare
This branch has not been deployed
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.
Stacked PR 3 of 9 for remote reviews (base:
remote/2-headless-server-gateway; #934, the rename, is merged). Review in order; each PR builds and passes its suites on its own.Manual test plan
Purpose. Desktop connects to hosts named by SSH alias: one
sshmaster per alias,remote attachover it, anssh -Lforward, prompts shown in the window through askpass, and a host manager feeding the gateway. Settings gets a Remote hosts section, and Home labels remote reviews<alias>: <repo>.Setup. Worktree at
origin/remote/3-ssh-hosts.R up a; R install a; R up p --auth password; R install p; R up n; R up nf --no-forwarding; R install nf. Create the remote review on a. Launch withDEV_FAST_REVIEW_SSH_CONFIG.Steps.
wb-test-a,wb-test-p,wb-test-n,wb-test-nf(read from the run's ssh_config).wb-test-a→connecting, thenonline;review.remote.hostsin$H/.../User/settings.jsonbecomes["wb-test-a"].wb-test-a: wbrepo.edit wb-test-a $ID "Edited on the remote."→ appears without a reload.S wb-test-a 'bash -s -- Pushed' < /tmp/wb-push.sh→ a "Pushed" tab opens, labelled as the host's.pkill -f -- ' -M -N .*-- wb-test-a$'(Desktop's master) → the open review showsConnection lost…, then recovers in the same page; the row returns toonline.R pause a→offlinewithin about 15 s; the review rows read unavailable and opening one says why; a laptop review still opens at once.R resume a→online.wb-test-p→ a quick input titledSSH: wb-test-pshows ssh's password prompt; entercat /tmp/wbt.$WB_TEST_RUN/password→online.wb-test-a→ its reviews leave Home;R ssh a -- ls ~/.dev/review-api.db→ still there.Negative checks.
-oProxyCommand=touch /tmp/x→ refused (… starts with -.); the setting is unchanged and/tmp/xdoes not exist.wb-test-p, press Esc at the prompt →auth-failed; no retry by itself; Retry prompts again.wb-test-n(no package) →not-installed, showingnpm install -g @dev.fast/whiteboard@0.2.0.wb-test-nf→unreachable, detail quoting OpenSSH'sadministratively prohibited.R install a --version 0.0.2-e2e; R ssh a -- whiteboard server stop→incompatiblewith the install command; rows readincompatible.R install a; R ssh a -- whiteboard server stop→onlinewithin about 10 s.$URL; none carries the remote's token (R ssh a -- whiteboard remote attach --json).code-oss/src/vs/review/electron-main/remote/reviewSsh*.test.ts,reviewRemoteHost*.test.ts; journeyremote-host.Cleanup. Common cleanup.
Common setup for all plans
Common setup (read once)
git -C <core> worktree add --detach ../review-prN origin/<head>, thenpnpm installthere. Run everything below from that worktree root.DEV_REVIEW_HOME=$H DEV_FAST_REVIEW_SSH_CONFIG=/tmp/wbt.$WB_TEST_RUN/ssh_config pnpm dev(prefixDEV_FAST_REVIEW_DESKTOP_BACKGROUND=1to keep it from taking focus).D=$(ls $H/review-desktop/instances/dev-*.json); URL=$(node -p "require('$D').url"); TOK=$(node -p "require('$D').token"); api() { curl -s -H "x-review-token: $TOK" "$URL$1"; }ID=$(S wb-test-a 'bash -s -- Remote-order' < /tmp/wb-review.sh | head -1)(repo~/wbrepo, review "Remote-order" with a prose line and a code peek of f.ts)./tmp/wb-push.shis the same withopen: truein~/wbrepo2.(cd apps/review-desktop && TSX_TSCONFIG_PATH=tsconfig.test.json node --import tsx --test --test-force-exit <files>). Package tests:pnpm --filter @dev.fast/whiteboard test <files>.apps/review-desktop/scripts/e2e/TESTING.md("Staging the runtime"), thennode apps/review-desktop/scripts/e2e/run.mjs --runtime "$REVIEW_E2E_RUNTIME" --journey <name>.pause/resume(there is nounpause).sshmasters count as leftovers), thenR down --all; R verify-clean; rm -rf $H /tmp/wb-*.sh. Without anaws sso loginsessionverify-cleanalso printsAWS could not be checkedand exits 1; no other line may appear.