Initial public release.
Added
- Local-network remote desktop: stream a Mac's screen to any modern browser
on the same LAN and control it back (keyboard, mouse, scroll, pinch-zoom, and
two-way clipboard) over an authenticated HTTPS + WebSocket endpoint. - Capture → encode → mux pipeline: ScreenCaptureKit capture, H.264 (or
optional HEVC — ~2× compression, automatic H.264 fallback) via VideoToolbox,
and an on-the-fly hand-rolled fragmented-MP4 muxer. - Two browser video backends behind one interface: low-latency WebCodecs
(decode to<canvas>) by default, MSE (SourceBuffer) fallback. The
self-describing init segment lets the client adapt to the stream codec. - System audio streaming (optional), played via the Web Audio API, over a
separate/inputsocket so input/clipboard/ping never queue behind video. - Delta encoding drops an idle screen to near-zero bandwidth, and
RTT-driven auto quality tunes the target bitrate to keep latency low. - Native first-run onboarding: live permission + mkcert status, the tokenized
URL with QR code, Copy URL / AirDrop, a copyable mkcert command, and per-device
trust steps. - Pairing-cookie auth: a tokenized URL sets an HttpOnly session cookie and
redirects to a clean URL (keeping the token out of browser history); WebSockets
stay token/cookie-gated. - In-page HUD: FPS, bitrate, RTT, glass-to-glass latency (incl. 1s peak), a
bitrate graph, and an "Export last 5 min (CSV)" button. - Settings window (Connection / Video / Audio / Display / Security): port,
bitrate, delta encoding, HEVC, audio, headless display, capture-resolution
presets (Auto / 1080p / 1440p / Native-ish), access-token reveal/regenerate,
and a Copy Diagnostics action. - Headless / virtual display support via the private
CGVirtualDisplayAPI. - Security hardening: ≥32-byte Keychain-stored token (constant-time compare),
HTTPS + WSS only via a locally-trusted mkcert cert, binding to the LAN IPv4
interface only (never0.0.0.0/ IPv6), a LAN-private startup pre-flight, and
no UPnP/NAT-PMP port mapping by design. - Packaging & tooling: a signed
SameDesk.app(stable bundle id so
permission grants persist across upgrades), ajustfile(build / run /
install-on-PATH / test / lint), unit tests plus Playwright browser smoke
tests, and a GitHub Actions CI + release pipeline. - App icon authored in Icon Composer (Liquid Glass), and an MIT
LICENSE.