Repository navigation
Resolve and configure Source windows for remote hosts - #941
Merged
Merged
Conversation
thesiti92
added this pull request to stack #943
October 5, 2026 19:37
thesiti92
force-pushed
the
remote/8-source-windows-trust
branch
from
October 5, 2026 19:38
c2ef751 to
ee2a783
Compare
thesiti92
force-pushed
the
remote/8-source-windows-trust
branch
2 times, most recently
from
October 5, 2026 20:19
6437262 to
a845e8c
Compare
thesiti92
force-pushed
the
remote/8-source-windows-trust
branch
from
October 5, 2026 20:34
a845e8c to
c03c240
Compare
thesiti92
force-pushed
the
remote/8-source-windows-trust
branch
2 times, most recently
from
October 5, 2026 20:41
37fd82d to
c03c240
Compare
thesiti92
force-pushed
the
remote/8-source-windows-trust
branch
from
October 5, 2026 21:24
c03c240 to
f94f9ee
Compare
thesiti92
force-pushed
the
remote/8-source-windows-trust
branch
from
October 5, 2026 21:38
f94f9ee to
2092b59
Compare
thesiti92
force-pushed
the
remote/8-source-windows-trust
branch
from
October 5, 2026 21:47
2092b59 to
dd8c379
Compare
thesiti92
force-pushed
the
remote/8-source-windows-trust
branch
from
October 5, 2026 23:08
dd8c379 to
4c9ade0
Compare
thesiti92
force-pushed
the
remote/8-source-windows-trust
branch
from
October 6, 2026 01:08
4c9ade0 to
0515a89
Compare
thesiti92
force-pushed
the
remote/8-source-windows-trust
branch
from
October 6, 2026 01:58
0515a89 to
915abf7
Compare
thesiti92
force-pushed
the
remote/8-source-windows-trust
branch
from
October 6, 2026 02:46
915abf7 to
45a5e72
Compare
thesiti92
force-pushed
the
remote/8-source-windows-trust
branch
from
October 6, 2026 03:46
45a5e72 to
13435fb
Compare
thesiti92
force-pushed
the
remote/8-source-windows-trust
branch
from
October 11, 2026 13:34
c424793 to
97aa0ee
Compare
thesiti92
force-pushed
the
remote/8-source-windows-trust
branch
from
October 13, 2026 14:44
97aa0ee to
326d918
Compare
thesiti92
removed this pull request from stack #943
October 13, 2026 15:38
thesiti92
added this pull request to stack #1105
October 13, 2026 15:38
thesiti92
force-pushed
the
remote/8-source-windows-trust
branch
2 times, most recently
from
October 13, 2026 17:22
79698fa to
96f9e03
Compare
thesiti92
force-pushed
the
remote/8-source-windows-trust
branch
from
October 13, 2026 17:38
96f9e03 to
c94be8a
Compare
thesiti92
force-pushed
the
remote/8-source-windows-trust
branch
from
October 13, 2026 21:49
c94be8a to
e37276a
Compare
thesiti92
removed this pull request from stack #1105
October 13, 2026 22:42
thesiti92
added this pull request to stack #1117
October 13, 2026 22:42
thesiti92
force-pushed
the
remote/8-source-windows-trust
branch
2 times, most recently
from
October 13, 2026 22:54
8465cc9 to
8b4e947
Compare
thesiti92
force-pushed
the
remote/8-source-windows-trust
branch
from
October 14, 2026 00:50
8b4e947 to
9346c74
Compare
thesiti92
force-pushed
the
remote/8-source-windows-trust
branch
3 times, most recently
from
October 14, 2026 07:13
2b9a05a to
62fa8af
Compare
sidkmenon
approved these changes
Oct 14, 2026
Desktop's remote tarball test (#939) builds Whiteboard, bundles, installs and compresses on the same 4-vCPU runner as the Chromium browser tests. Starved of CPU, Chromium drops a test file's module fetch: the file fails with "Failed to fetch dynamically imported module", or its iframe never reports ready and the job hangs until the 60-minute timeout.
getRemoteHostState returns the gateway's entry, detail included, and the window reads main's IPC answers with typed calls.
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 8 of 9 for remote reviews (base:
remote/7-remote-ask; #934, the rename, is merged). Review in order; each PR builds and passes its suites on its own.Manual test plan
Purpose. Builds what a remote Source window needs before anything opens one: the
whiteboard+<serverId>resolver over thereviewchannel, the read-only pin and title for every Source window, and their registration in the navigator. A Source window layers settings as stock VS Code does, but no workspace file, folder.vscode/settings.jsonor host machine setting can lower its read-only rule. There is no UI entry point for a remote Source window yet (PR 9), so the remote half of the read-only check runs at PR 9's head.Setup. Worktree at
origin/remote/8-source-windows-trust. No host is needed for steps 1–3.Steps.
(cd apps/review-desktop && TSX_TSCONFIG_PATH=tsconfig.test.json node --import tsx --test --test-force-exit code-oss/src/vs/review/services/remote/reviewWindowAuthorityResolver.test.ts code-oss/src/vs/review/services/configuration/reviewSourceWindowConfiguration.test.ts code-oss/src/vs/review/electron-main/remote/reviewRemoteHosts.test.ts)→ all pass.W='{"files.readonlyInclude":{"**/*":false},"files.readonlyExclude":{"**/*":true},"window.title":"wb hostile title","editor.fontSize":40}';awk '/^const fixture = String.raw/{f=1;next} /^;/{f=0} f' apps/review-desktop/scripts/e2e/journeys/remote-source-window.mjs | sed "s#^ git add \.\$# mkdir -p .vscode; echo '$W' > .vscode/settings.json; git add .#" > /tmp/wb-source.sh;mkdir -p $H/laptop $H/bin; printf '#!/bin/sh\nexec node %s/packages/review/dist/cli.js "$@"\n' "$PWD" > $H/bin/whiteboard; chmod +x $H/bin/whiteboard. With Desktop running:HOME=$H/laptop DEV_REVIEW_HOME=$H DEV_FAST_REVIEW_CLI_NO_DELEGATE=1 PATH=$H/bin:$PATH bash -s -- Local-source Local-second < /tmp/wb-source.sh→ a laptop review whose committed.vscode/settings.jsontries to lift read-only.wb hostile title; typing in f.ts changes nothing and shows the read-only notice.api /reviews-api→ its entries still haveavailable.sourceWindows: false, and the remote review's Diff view offers no Open file.origin/remote/9-source-windows(needs PR 9's entry point), the same against a host, driven asremote-source-windowdrives it:S wb-test-a 'bash -s -- Remote-source Second-checkout' < /tmp/wb-source.sh(the step 2 script, so the checkout commits the same.vscode/settings.json), andecho "$W" | S wb-test-a 'mkdir -p ~/.dev/whiteboard-remote/server/data/Machine && cat > ~/.dev/whiteboard-remote/server/data/Machine/settings.json'for the host's machine settings. Add the host; Open file on f.ts → the window is titledRemote-source — Source — Whiteboard, its explorer shows.vscode, f.ts is read-only and typing shows the notice. Other settings layer as stock VS Code's: the host'seditor.fontSize40 applies.Covered by unit tests.
reviewWindowAuthorityResolver.test.ts: waits up to 60 s for aconnectinghost, then fails<alias> is offline; re-resolves a moved forward; other authorities pass through.reviewSourceWindowConfiguration.test.ts: the workspace file, a folder's settings and the host's machine settings cannot lowerfiles.readonlyInclude/files.readonlyExclude.reviewRemoteHosts.test.ts: removing a machine's last alias closes only its windows.Cleanup. Quit Desktop;
rm -rf $H /tmp/wb-source.sh; if steps 4–5 used a host, common cleanup.Reviewer notes
docs/superpowers/plans/2026-10-05-adopt-vscode-trust-model.md, rulings T2, T3, T5).connecting(the stage-4 ruling); removing the host closes its windows, which ends the wait.getConnectionData; the base service caches it per authority.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.Also runs Desktop's CI tests after the other packages: #939's remote tarball test starved the concurrent browser tests of CPU, so test files failed to import or hung until the 60-minute timeout (was #1132).