Skip to content

LinkToMac 0.5.1

Choose a tag to compare

@grkndev grkndev released this 28 Jun 16:45
· 75 commits to main since this release

v0.5.1 (2026-06-28)

Features

  • Read your phone's messages on the Mac — your Android SMS now show up on the Mac's
    dashboard Messages tab as real conversation threads (one row per contact, latest
    message previewed; tap to open the thread and read the back-and-forth in chat bubbles). Grant
    "SMS access" once on the phone (Settings → Grant SMS access) and keep the "Mirror
    messages"
    toggle on. It's read-only and one-way (the Mac can't reply yet), resolves
    contact names, and can be paused phone-side without revoking the system grant. Cleared on unpair.
  • Paged Messages & Notifications lists — both dashboard tabs now page through their history
    (7 per page, with a ‹ / › control) so a long backlog no longer overflows the window; long
    threads scroll.

Internal

  • New sms wire frame (phone → Mac), E2E-encrypted (ChaCha20-Poly1305) and forwarded opaquely by
    the relay exactly like clip/cmd/stat/note, over both LAN-direct and relay transports —
    hand-mirrored across server/ (protocol.ts/relay.ts/index.ts), mac/
    (RelayProtocol.swift), and mobile/ (RelayClient.kt/LanClient.kt). smoke.ts asserts a
    one-way sms round-trip.
  • Android: an FGS-owned SmsMirror reads content://sms (newest ~200, chunked) and observes it
    for live deltas, resolving sender names via PhoneLookup; gated by the READ_SMS/READ_CONTACTS
    runtime grants + a "Mirror messages" toggle. New JS surface: hasSmsAccess, requestSmsAccess,
    get/setSmsForwarding, syncSms.
  • Mac: RelayClient upserts inbound messages by id and groups them into conversations
    (by thread, newest-activity first); FeaturePanel's Messages tab renders the thread list +
    chat-bubble view, both paged.

Known limitations

  • The Mac's message list is in-memory (like Notifications): it clears when the Mac app
    relaunches, and the phone re-sends the history when it next sees the Mac connect.

Updating

  • macOS auto-updates via Sparkle. Android needs the new APK reinstalled — this release
    changes native code, so it is not an over-the-air (EAS Update) change.