Release Date: 2026-06-05
A round of session-sharing polish: a cleaner share dialog, a device approval handshake with rolling access keys, refreshable remote links, and a native macOS Share sheet — plus fixes that stop Tailscale exposure from freezing the UI and remove port-bind crashes on relaunch.
- Device approval handshake — Opt-in approval gate for share connections. A new device's connection is held pending until the host approves; on approval the device receives a 24h sliding-window access key so it isn't re-prompted. A new
sessionSharingApprovalScopesetting (off / funnel / all; default funnel) requires approval only for public reach by default. The host sees an approve/deny toast and a Pending-requests section in the share dialog. - Refresh remote link — A "↻ Refresh link" action mints a fresh Cloudflare quick-tunnel link without restarting the share (handy since those URLs are ephemeral). It captures the new tunnel URL before killing the old one, so the open dialog jumps straight to the new link.
- macOS Share sheet — A "⤴ Share" action opens the native macOS share sheet (AirDrop / Messages / Mail / Notes / Copy…) for the View link, making it easy to send a session link to a phone. Runs out-of-process so it can't hang or crash the app; falls back to copying the link on failure.
- Tailscale exposure no longer freezes the UI for ~2 minutes after clicking Share.
TailscaleExposernow drains stdout on a daemon thread withwaitFor()owning the deadline, and the blocking Tailscale enable runs off the UI thread so the dialog opens immediately with the LAN URL. - Relaunching no longer leaks an uncaught
BindException— the port is probed with aServerSocketbefore starting Ktor (CIO binds asynchronously). - The share dialog now refreshes when the Tailscale URL resolves.
- Share window redesign: QR section first with the View/Control toggle below the code; QR, toggles, and captions centered for matching margins.
- Share is now grouped into a submenu (Tab… / Window…) in the tab-chip and terminal right-click menus.
- Clicking the share button (pill / toolbar QR / context menu) or requesting settings while those windows are already open now raises the existing window to the front.
- The Refresh link and Share actions are rendered inline in the QR and Links section headers (shown only when a remote provider is selected), dropping the verbose helper row for a one-line Cloudflare hint.
None
https://github.com/kshivang/BossTerm/compare/v1.2.103...v1.2.104