Zenjibad/dsh-lan-uuid-fix

Zenjibad★ 0JavaScriptLast synced: 2026-08-14

Open on GitHub

dsh bundle: polyfill crypto.randomUUID on insecure origins so the DeepSeek Harness Web UI works over plain-HTTP LAN

README excerpt

dsh-lan-uuid-fix A DeepSeek Harness ( dsh ) plugin bundle that makes the Web UI work over plain-HTTP LAN addresses. The bug it fixes The web client's mintRpcId() calls crypto.randomUUID() . Browsers only expose that API in secure contexts — HTTPS, or loopback. A plain-HTTP LAN origin like http://192.168.1.66:3080 is not secure, so crypto.randomUUID is undefined : Page origin Secure context crypto.randomUUID http://127.0.0.1:3080 yes function http://192.168.1.66:3080 no undefined When it's missing, every unary RPC ( host.describe , workspace.list , session.list , ...) throws TypeError: crypto.randomUUID is not a function , the connection generation aborts, the WebSocket streams are killed mid-handshake, and the UI never loads the session/workspace baseline — the workspace browser just shows "No sessions yet" and the console loops connection lost, retry N . crypto.getRandomValues is available on insecure origins, so a UUID-v4 backfill fixes it without HTTPS. How it works A host plugin registers an index tap on ctx.webServer (the webserver's html-transform hook, applied to every served index.html ). The tap injects an inline polyfill that defines crypto.randomUUID from crypto.getRando…

View full README on GitHub →
Skins / UIdsh-pluginweb ui

Category