日志暂以英文提供 · the log is in English for now

传输日志/2026-08-20v0.1.5

0.1.5 — one identity, many devices — and media that arrives

   ·  ✦   ·        ╭──────────────╮       ·   ✦
 ✦    ·      ·     │  0 . 1 . 5   │  ·        ·
   ·    ✦          ╰──────────────╯     ✦   ·

Two promises this release makes good on, and neither is small.

🧍 You are one person on all your devices. Join a space on your phone — it appears on your paired laptop, by itself, even if the laptop was asleep in a bag when it happened. Add someone, get added, receive a key rotation: every device you certified converges on the same relationships and the same access, whichever device did the acting. Pairing no longer copies a snapshot; it introduces a new device into an existing you. And revoking a device means exactly what it should: no new access from that point on — nothing it lawfully held is pretended away, and your other devices carry on.

📦 Media arrives. The beta’s sorest wound — the photo that never loads, the video stuck at zero — came down to routes: delivery guessed where your devices listen, wrote the guess down as knowledge, and then trusted it forever. All of that is replaced.

  • Photos, voice notes and small files now travel with the message. The moment you press send — the one moment your phone is certainly awake — the bytes ride ahead into each recipient’s mailbox. Opening the card finds them already home. Your phone can go back into the pocket; it is no longer needed.
  • Big videos stream. Playback starts from local bytes decrypted chunk by chunk — seeking is instant, and a 380 MB file no longer freezes the player that just downloaded it.
  • Devices say where they live. Every message you send quietly carries where your device can be reached, and the newest statement wins — so a device that moved to another relay, or joined before it had an address at all, becomes reachable the first time it speaks.
  • Waiting is said out loud. “Reaching the sender…” is a stage, not a frozen bar; a holder that cannot answer records why, in the transport’s own words, and the diagnostics screen now carries the verdicts — copyable on macOS too, at last.

🌊 And media got a visual language of its own. Not upload and download — release and arrival. A picture sharpens as its bytes land: half the file, half the softness. A waveform materialises bar by bar. Your own freshly sent media keeps a faintly living surface until the hand-over is confirmed, then stills. Movement means something is happening; stillness means the object has landed. No spinners anywhere.

📱 And the phone caught up. 0.1.4 promised it: the name-and-four-digits first run now lives on Android too — the key draws itself, the first screen looks like the place it opens, and the create button finally says Next. Picking photos got humane: several in one pick (they tile into a row together), and the picker stops offering every file on the phone. A picture can now answer someone — photo replies work. Presence speaks in quiet glyphs, and the radio never hears about it.

Smaller honesties that rode along:

  • The interface stopped re-downloading the whole room every two seconds over the app’s internal bridge — your battery noticed.
  • The send dialog answers the press: buttons rest while a large video is being sealed, so an impatient second tap cannot post it twice.
  • The video player stays inside its card on a phone.
  • A quick link you already opened answers from memory instead of scaring you with “nothing waiting” over a join that was going fine.
  • Escape leaves an article; the cursor stops promising zoom it cannot deliver.

Update both sides. The device that holds the bytes must be on 0.1.5 for its answers to find you — one old phone in the pair keeps the old silence. The official relays are already updated to match.

🐛 Broken, or claiming more than it can prove? → Field notes.

在 github 上的发布 ↗下载构建 →