dsh-remote 0.1.11
·
1 commit
to main
since this release
dsh-remote 0.1.11
Fixed
- Newer dsh builds guard the web app behind an authority-bound browser session
cookie (browser token authentication): the index goes through
authorizeIndex, and/api/*RPC plus the/api/remote.muxevent WebSocket
answer 401 for a trusted-but-unauthenticated request. The host plugin proxied
the phone as a plain loopback client with no cookie, so every phone request
hit that 401. The plugin now mints the loopback cookie in-process from the
Connection launch token and attaches it to every upstream HTTP request and the
local WebSocket dial; a 401 triggers one refresh-and-retry. The launch token
never leaves the desktop. Older harness builds have no browser-auth service,
so the auth owner stays a pass-through and behavior is unchanged. - The local WebSocket dial now uses the
wsclient (to attach the cookie on the
upgrade).wsstays an external runtime dependency and adependencies
entry — the plugin bundle is ESM, and bundling the CJSwspackage turns its
require('events'/*)builtins into unsupported dynamic requires. - Upstream bodies are read through the fetch layer, which transparently decodes
gzip/deflate/br — the host previously forwarded the decoded bytes with the
originalcontent-encodingheader, so every proxied response failed
decompression on the phone. The plane now requestsaccept-encoding: identityupstream and stripscontent-encodingfrom the response head. - Cookie minting called
connection.authorizeIndexas a detached function —
cordis-traced service methods losethisthere, which threw inside every
proxied request and produced a 502. The mint now calls the methods
receiver-bound on the rawbrowserAuthinstance and swallows a mint failure
to pass-through.
Install (desktop DSH, web profile): download dsh-remote-0.1.11.tgz below, then
dsh plugin --profile web add ./dsh-remote-0.1.11.tgz
Restart DSH after installing.