Skip to content

LinkToMac 0.6.0

Choose a tag to compare

@grkndev grkndev released this 02 Jul 19:20
· 68 commits to main since this release

A reliability, security, and correctness pass across the whole stack — phone app, Mac app, and relay — from a full codebase review.

🔒 Security

  • Authenticated clipboard bridge — the on-device bridge to the privileged clipboard daemon now requires a per-install secret, so no other app on your phone can read your clipboard or inject clipboard content over loopback.
  • Replay protection & type binding — every encrypted frame (clipboard, remote lock, telemetry, notifications, SMS) is now bound to its type and timestamped; a captured frame can't be replayed or relabeled (ChaCha20-Poly1305 v2 envelope, ±2 min freshness window + nonce cache).
  • Pairing keys and the relay token in the Keychain are now device-only — they no longer migrate off the Mac via backup/sync.
  • The LAN peer slot is auth-gated: a stranger on your network can no longer evict your phone or occupy the connection.

📶 Reliability

  • The Mac no longer shows "linked" when the connection has silently died (Wi-Fi drop, sleep/wake) — it now detects the dead link and reconnects.
  • The phone no longer shows the Mac online during reconnection, so "Lock Mac" won't silently do nothing.
  • The clipboard bridge recovers from stuck/half-open connections instead of quietly dying.
  • LAN discovery and handshakes now time out and self-heal instead of hanging.

💬 Messages & correctness

  • SMS threads open at the newest message and follow new messages live.
  • Draft, failed, and queued texts no longer appear on the Mac as sent messages.
  • "Check for updates" honestly reports a failure instead of falsely claiming "up to date" when offline.
  • A corrupted pairing QR / key is now rejected instead of silently breaking sync.

✨ Polish & hardening

  • Notification rows update in place; the dashboard keeps your selected tab / open conversation / page when you visit Settings and come back.
  • The logs screen no longer jumps around; rapid back-to-back clipboard copies no longer echo back to the Mac.
  • Numerous leak and crash-hardening fixes across the background service.
  • Minimum Android version is now 11 — the real requirement for the wireless-pairing pipeline.

Install: Mac — download the DMG, first launch is right-click → Open (ad-hoc signed, not notarized). Existing installs auto-update via Sparkle. Android — install the APK (sideload); the app also offers this update in-app.