Skip to content

Remove the dor remote command and its control methods - #1530

Merged
nedtwigg merged 4 commits into
mainfrom
remove-dor-remote
Nov 3, 2026
Merged

nedtwigg merged 4 commits into
mainfrom
remove-dor-remote

Conversation

@nedtwigg

@nedtwigg nedtwigg commented Nov 3, 2026 •

Copy link
Copy Markdown
Member

Removes dor remote and its remote.* control methods. It never shipped (v1.3.0 predates it), so there is no deprecation or shim.

Nothing needs it. Settings -> Remote control lists phones, revokes one, and reads the access log on the same machine, and the webview's control router answers these verbs, so they could not work without the UI anyway. Pocket's revoke is coming with a presence proof (#1528).

Keeping the control methods would let any process in a Dormouse terminal cut off a phone or read the access log, and let an attached phone session revoke with no proof. The control socket now carries nothing of the Burrow, and security-local.md says so. An unknown remote.* method gets the Wall's usual unsupported-method refusal; that was read in the code, not tested.

RevocationRequester is now a plain type, and revokeDevice takes no by and logs settings itself, so a webview message cannot name a requester. revokeDevice, pairedDevices, accessLog, and deviceIdFor stay for Settings. A persisted log entry with any other by keeps reading as plain "revoked", which a new Settings test pins.

Specs: dor-cli.md's section is gone, and its budget drops from 5650 to 5500. remote-security-model.md and its rationale, security-remote.md (the S293 clause and Guarantee row), security-local.md, security.md, and pairing.mdx follow. No rule ID is retired, and no audit prompt or canary changed.

Verified: dor tests; lib's wall router, host/remote, remote/burrow, and RemoteControlSection (977); vscode-ext burrow.test; tsc in lib, standalone, and vscode-ext; the specs, md, public-docs, e2e, outbound, and loopback lints; test:audit (197); test:checks; the website's generated docs. Two mutations went red. Not run: the live app.

Merged with #1527: that PR added a Relay requester on top of the verbs removed here, so RevocationRequester is 'settings' | 'relay', the service names it, and no message can. S300 now cites #revokeDevice instead of the removed revocationRequester. #1528 gets main merged in after this lands.

Refs #331.

🤖 Generated with Claude Code

Nothing needs it. Settings -> Remote control lists phones, revokes one, and
reads the access log on the same machine, and the webview's control router
answers these verbs, so they could not work without the UI anyway. Pocket's
revoke is coming with a presence proof (#1528).

Keeping the control methods would let any process in a Dormouse terminal cut
off a phone or read the access log, and let an attached phone session revoke
with no proof. The control socket now carries nothing of the Burrow, and
security-local.md says so. An unknown remote.* method gets the Wall's usual
unsupported-method refusal.

The command never shipped (v1.3.0 predates it), so there is no shim.

The requester only distinguished dor from Settings, so a closed set of one
read through a function that always answered settings had no job left.
RevocationRequester is now a plain type, and revokeDevice takes no `by` and
logs settings itself, so a webview message cannot name a requester. Settings'
revokeDevice, pairedDevices, accessLog and deviceIdFor stay. A persisted log
entry with any other `by` keeps reading as plain "revoked".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Nov 3, 2026 •

Copy link
Copy Markdown

Deploying mouseterm with  Cloudflare Pages  Cloudflare Pages

Latest commit: ec11c7f
Status: ✅  Deploy successful!
Preview URL: https://0dfefa89.mouseterm.pages.dev
Branch Preview URL: https://remove-dor-remote.mouseterm.pages.dev

View logs

nedtwigg and others added 3 commits November 2, 2026 20:14
#1527 added the Relay requester on top of the dor verbs this branch removes. Keep the Relay's: RevocationRequester is 'settings' | 'relay', and the service names it, so no message can. Drop COMMAND_REQUESTERS, revocationRequester, and REVOKED_BY's dor copy, and the dor remote mentions #1527 added to the specs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
S300 audited revocationRequester, which this branch removes, so it now names what holds the rule: #revokeDevice takes no requester from a message and logs settings.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@nedtwigg
nedtwigg merged commit 40ce97d into main Nov 3, 2026
19 checks passed
@nedtwigg
nedtwigg deleted the remove-dor-remote branch November 3, 2026 05:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants