You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(cli): harden the Remote Control tunnel and lock
- align ws with the rest of the workspace and restage the web bundle
- report the lock holder when acquisition retries run out, instead of a
raw EEXIST
- reject a non-positive pid in the lock file; process.kill(0, 0) signals
our own process group and would pin the lock forever
- settle the startup promise when the relay loop throws outside its
retry block
- buffer management frames between register_ack and the HTTP tunnel, so
an immediate open_ws is not dropped
- refuse chunked request bodies and derive Content-Length from the bytes
actually forwarded
- run every startup-cleanup step and keep the original error
Correct the guide: the relay does receive the token in the WebSocket
handshake, so it has to be trusted.
Copy file name to clipboardExpand all lines: docs/guides/remote-control.md
+4-2Lines changed: 4 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,7 +26,9 @@ The terminal prints a QR code, a link, and the path of a PNG copy of the QR code
26
26
27
27
The link grants control of this machine. Do not share the link or the QR code.
28
28
29
-
The link carries no access token. Requests reach the local server through the tunnel, and the Pythinker Code process on this machine adds the bearer token to each one, so the token never leaves this machine.
29
+
The link itself carries no access token: requests arrive through the tunnel, and the Pythinker Code process on this machine adds the bearer token to each one before it reaches the local server. The QR code, the printed link, and the PNG on disk hold no credential.
30
+
31
+
The relay is a different matter. Pythinker Code authenticates to it with the same token, sent in the WebSocket handshake, and every request and response passes through it in the clear. Use a relay you operate or otherwise trust. Rotate the token with `pythinker web rotate-token` if a relay is ever compromised.
0 commit comments