Releases: JochenYang/dsh-remote
Releases · JochenYang/dsh-remote
Release list
dsh-remote-relay 0.1.3
dsh-remote-relay 0.1.3
Fixed
- Host reconnect race no longer strands a device as offline: a displaced host
socket'sclose(or heartbeat timeout) used tounregisterHost(deviceId)
unconditionally, wiping the newer host that had just replaced it. With two
desktop instances flapping on the same deviceId, the relay then had a healthy
live host socket (ping/pong fine) that phone routes never reached — phone
requests answered409 host offlineindefinitely. Both teardown paths now
only unregister when the closing socket is still the device's registered host.
Deploy (relay-server): replace the previous bundle with dsh-remote-relay-0.1.3.tgz (or pnpm build from source) and restart the service.
dsh-remote 0.1.11
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.
dsh-remote 0.1.10
dsh-remote 0.1.10
Fixed
- Mobile settings sheet now scrolls: the content pane's default
min-height:autolet it grow past the clamped full-screen panel, so the inner scroll region never received a bounded height andoverflow:hiddenclipped the rest; bounding the pane withmin-height:0lets the existing inner scroll engage.
Install (desktop DSH, web profile): download dsh-remote-0.1.10.tgz below, then
dsh plugin --profile web add ./dsh-remote-0.1.10.tgz
and restart DSH. See the README for building from source.