Repository navigation
Conversation
thesiti92
force-pushed
the
remote/10-diffr-npm-packages
branch
2 times, most recently
from
October 5, 2026 22:26
1aeb32b to
b9736dd
Compare
thesiti92
force-pushed
the
remote/9-source-windows
branch
5 times, most recently
from
October 6, 2026 03:46
4c2c1ae to
1214041
Compare
thesiti92
force-pushed
the
remote/10-diffr-npm-packages
branch
from
October 6, 2026 03:46
b9736dd to
0a501e8
Compare
thesiti92
changed the base branch from
remote/9-source-windows
to
remote/10-gateway-transport
October 6, 2026 13:09
thesiti92
force-pushed
the
remote/10-diffr-npm-packages
branch
from
October 6, 2026 13:19
0a501e8 to
ca62a03
Compare
thesiti92
force-pushed
the
remote/10-diffr-npm-packages
branch
from
October 6, 2026 15:57
ca62a03 to
8a0ecc7
Compare
thesiti92
force-pushed
the
remote/10-gateway-transport
branch
2 times, most recently
from
October 6, 2026 16:06
09ab700 to
cff15cc
Compare
thesiti92
force-pushed
the
remote/10-diffr-npm-packages
branch
2 times, most recently
from
October 6, 2026 16:16
2ab72e1 to
bb5d597
Compare
thesiti92
force-pushed
the
remote/10-gateway-transport
branch
2 times, most recently
from
October 6, 2026 17:10
6bd9583 to
f036686
Compare
thesiti92
force-pushed
the
remote/10-diffr-npm-packages
branch
from
October 6, 2026 17:10
bb5d597 to
9814fe6
Compare
5 tasks
thesiti92
force-pushed
the
remote/10-gateway-transport
branch
from
October 7, 2026 13:31
f036686 to
c9b8536
Compare
thesiti92
force-pushed
the
remote/10-diffr-npm-packages
branch
from
October 7, 2026 13:31
9814fe6 to
aeb3f67
Compare
thesiti92
force-pushed
the
remote/10-gateway-transport
branch
from
October 8, 2026 12:59
c9b8536 to
76c4cfc
Compare
Merged
thesiti92
added a commit
that referenced
this pull request
Oct 14, 2026
Stacked PR 7 of 9 for remote reviews (base: `remote/6-installer-connect`; #934, the rename, is merged). Review in order; each PR builds and passes its suites on its own. ## Manual test plan **Purpose.** Ask works on a review whose checkout is on a host: the headless server serves Ask, the agent runs on the host with its own sign-ins, and threads live on the host. File names in answers show as text because Source windows do not exist yet. **Setup.** Worktree at `origin/remote/7-remote-ask`. `R up a --fake-agent; R install a` (a fake OpenCode that answers `You asked: <question>`). Create the remote review on a. Launch; add `wb-test-a`. **Steps.** 1. Open Remote-order, select "One now returns", press ⌘L → Ask opens; its header names OpenCode with no agent menu (main's #914: one installed agent gets no dropdown). 2. `S wb-test-a 'mv ~/.opencode ~/.opencode.off'`, refocus the window → Claude Code, Codex and OpenCode each read `Not installed on wb-test-a`. Move it back → the composer returns. 3. Ask `what does f.ts do` → `You asked: what does f.ts do` streams in. 4. `f.ts` in the answer is plain text with the tooltip `Source windows are not available for a review on another machine.`; clicking it does nothing. 5. Kill Desktop's master (PR 3 step 7) → host back `online` → **Saved conversations** lists the thread. 6. Quit and relaunch Desktop → the thread is still listed. 7. Quit; launch again with a fresh `DEV_REVIEW_HOME` (redo the settings file), add the host → the same thread is listed (threads are on the host). 8. Ask `and then`, then `R pause a` → the panel shows an alert containing `lost its connection` within 15 s; the host reads `offline` within 15 s. `R resume a`. 9. Remove the host → the review leaves Home. **Negative checks.** - DevTools Network: every Ask request goes to `$URL`; none carries the remote token; no `navigator` or `files` request. - Idle threads closing 10 min after their last watcher leaves (main's Ask sweep, #948): not practical by hand; covered by `src/server/headless-host.test.ts`. Journey `remote-ask`. **Cleanup.** Common cleanup; also `rm -rf` the second home. **Folded in from #945.** Remote installs keep `--omit=optional` (drops ~650 MB of agent binaries), so the install script reads diffr's version from the tarball and installs `@dev.fast/diffr-<target>@<version>` explicitly. The installer containers test checks the diffr binary; `remote-install` checks it came through the relay. **Rebased onto main's Ask changes (#947, #948).** One `POST ask/watch` stream replaces the per-thread watch route, and the gateway forwards it plus `GET ask/:thread` (saved conversations). The stack's own headless idle close is gone; main's sweep covers it. <details><summary>Common setup for all plans</summary> ## Common setup (read once) - Test each PR in a worktree at its head branch: `git -C <core> worktree add --detach ../review-prN origin/<head>`, then `pnpm install` there. Run everything below from that worktree root. - Helpers (bash or zsh): ```sh R() { node apps/review-desktop/scripts/e2e/remote/remote.mjs "$@"; } export WB_TEST_RUN=manual-$$ # before the first `R up` S() { ssh -F /tmp/wbt.$WB_TEST_RUN/ssh_config "$@"; } # host aliases are wb-test-<name> H=/tmp/wb-home-$WB_TEST_RUN # isolated Desktop home mkdir -p $H/review-desktop/state/user-data/User echo '{"review.experimental.remoteHosts.enabled": true}' > $H/review-desktop/state/user-data/User/settings.json awk '/createRemoteReview = String.raw`/{f=1;next} /^`;/{f=0} f' apps/review-desktop/scripts/e2e/journeys/remote-host.mjs > /tmp/wb-review.sh sed -e 's/open\\":false/open\\":true/' -e 's/wbrepo/wbrepo2/g' /tmp/wb-review.sh > /tmp/wb-push.sh edit() { printf '{"sessionId":"%s","edit":{"type":"insert","content":{"type":"markdown","markdown":"%s"}}}' "$2" "$3" | S "$1" 'whiteboard api session_edit -'; } ``` - Launch (dev build only; a packaged build ignores both env vars): `DEV_REVIEW_HOME=$H DEV_FAST_REVIEW_SSH_CONFIG=/tmp/wbt.$WB_TEST_RUN/ssh_config pnpm dev` (prefix `DEV_FAST_REVIEW_DESKTOP_BACKGROUND=1` to keep it from taking focus). - Desktop API: `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"; }` - A remote review: `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.sh` is the same with `open: true` in `~/wbrepo2`. - Settings: ⌘, → region **Remote hosts** → type the alias in **SSH alias** → **Add**. - Fork unit tests: `(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>`. - Journeys: stage a runtime per `apps/review-desktop/scripts/e2e/TESTING.md` ("Staging the runtime"), then `node apps/review-desktop/scripts/e2e/run.mjs --runtime "$REVIEW_E2E_RUNTIME" --journey <name>`. - The harness has `pause`/`resume` (there is no `unpause`). - Cleanup, every plan: quit Desktop first (its `ssh` masters count as leftovers), then `R down --all; R verify-clean; rm -rf $H /tmp/wb-*.sh`. Without an `aws sso login` session `verify-clean` also prints `AWS could not be checked` and exits 1; no other line may appear. </details>
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 on #949. Installs diffr on remote hosts from npm.
#965 already moved Desktop and the server to the bundled
@dev.fast/diffrplatform package. The stack's fetched-diffr path (ensureDiffr,remote diffr ensure, thediffrfield inremote attach) is gone from the lower layers, so this PR is only the remote install.--omit=optional, which leaves out ~650 MB of agent binaries. The install script reads diffr's version from the package tarball and also installs@dev.fast/diffr-<target>@<version>. A host without registry access gets it through Desktop's relay.remote-installjourney checks that diffr came through the relay.Test plan
pnpm lint,pnpm format:check.electron-main/remote/*.test.ts(188 pass, containers test excluded).WB_TEST_CONTAINERS=1installer containers test.remote-installjourney.