Skip to content

v0.3.6 — dsh 0.2.1 compatibility, zero-config discovery

Latest

Choose a tag to compare

@DightEndless DightEndless released this 17 Oct 14:47
· 1 commit to main since this release

Fixed

  • The bridge could not connect on dsh 0.2.1-rc.1 and later. dsh 0.2.1 tightened the PeerScope contract that TypertGateway.wireStream.open reads, and the bridge passed undefined for the Peer. The socket still completed its handshake — hello.ok arrived — and then the gateway-owned $events stream threw before delivering a single frame, so the server closed with WS 1011 and the extension retried forever. In the side panel this looked like a status flickering between connecting, connected, and reconnecting while the service worker's Network tab stayed empty.

    Three separate reads failed in sequence, which is why this took three fixes to clear: methodSignal joins every stream's signal with request.peer.signal; requireInteractions rejects a Peer whose interactions is not 'answer'; and openRemoteEvents stores peer.principal and reads principal.kind. The bridge now supplies one real in-process Peer satisfying all three.

    0.3.5 has the same defect, so upgrading along the old line would not have helped.

  • The extension could not find the bridge after a DSH restart. DSH Desktop assigns its web port at random on every launch, and the extension cannot read the filesystem to learn the new one — so the only options were re-pasting the bridge URL by hand or probing a wide port range. The plugin now binds a fixed loopback port (30789-30791, first free one wins) and answers /ext/bridge-config with the live WebSocket URL. The extension tries it first: one request instead of a scan, which also removes the pattern that looks like port scanning to security software.

Changed

  • The plugin has its own settings tab (settings.section) instead of a row inside General settings.
  • The extension moves the bridge address and token under Advanced; on loopback the bridge is found automatically and no token is needed.

Install

dsh plugin --profile web add @dightendless/dsh-bridge-browser

Then restart DSH. The extension releases to ~/.dsh/browser-extension; load it once via chrome://extensions → Developer mode → Load unpacked.

Verification

typecheck clean · 508/508 tests across 58 files · check:runtime passing · real dsh 0.2.1-rc.1 handshake held open with zero error frames.