Two headline themes: import your community from Discord, and a top-to-bottom security & quality hardening pass (three review-and-fix rounds, ~75 findings, all CI gates green). Upgrading needs no data migration; the only opt-in change is signed file URLs (off by default).
✨ Added
- Import from Discord — a guided wizard imports a server from an exported archive (drag-and-drop with an automatic preview and explicit safety labels), or a managed "clone" flow that installs a bot and lets you pick the server.
- Multiple homes — switch between Ohiyo servers (your self-host, an Instant Server, a friend's box) at runtime, each with its own session.
- Signed file URLs behind
OHIYO_REQUIRE_SIGNED_FILES— HMAC capability URLs for/files/…(default off; see DEPLOY.md before enabling on an existing deployment). - "Log out everywhere" — instantly revoke every session for your account.
- Listen-only voice — join a call to listen without a microphone.
- A tabbed DM messenger strip.
🔒 Security
- E2E group messaging: random per-message IV (closes an AES-GCM nonce-reuse window on concurrent / cross-tab sends); existing messages still decrypt.
- Encrypted message edits plus a role-assignment privilege-escalation fix.
- Closed cross-server / cross-channel access bugs (event RSVPs, poll votes); access-checked the typing indicator, voice join/meta, and watch-party controls.
- Per-request token-version revocation; Argon2id password hashing.
- Session token, decrypted-message cache, and the unsent-message outbox are sealed in the encrypted desktop vault; recovery backups no longer include the session token.
- SSRF (IP-pinned link previews), path-traversal confinement, and XSS guards across profile / social / in-chat links; hardened plugin sandbox.
- Dropped the unused MySQL backend from sqlx, removing the
rsacrate (RUSTSEC-2023-0071); non-root server container;Permissions-Policyheader; WebSocket frame-size cap.
🍎 Mac beta downloads
Mac DMGs are now attached for Apple Silicon and Intel. They are ad-hoc signed but not Apple-notarized yet, so macOS may show an “Apple could not verify” warning on first launch. If you trust this beta build, open Finder, right-click Ohiyo, choose Open, then confirm. Apple Developer ID notarization is still the next step for a fully smooth public Mac install.
- Apple Silicon:
Ohiyo_0.2.0_aarch64.dmg— SHA-256c2a9a15d42d3df95f4ec6beb69c42bc7a3e71e072e1d6d7c4533d18b613294f8 - Intel:
Ohiyo_0.2.0_x64.dmg— SHA-256608df08bc72e8f8726f5d92abd4f918cf724d9cb1c16c750048e44901b5c9e90
🔧 Changed & Fixed
- Screen-share is now the primary in-call stage, with a polished layout; settings, appearance-editor, and voice-sidebar polish.
- Internal Fly machine/volume IDs no longer exposed in instance API responses; DB indexes on
dm_participants(user_id)andfiles(uploader_id). - Mac beta DMGs are attached; notarization is still pending, so Gatekeeper may require right-click → Open.
- Fixes: voice mic playback + speaking indicators, the listen-only badge, screen-share teardown re-entrancy, duplicate-message de-duplication, single-flight outbox retries, WebSocket dead-connection reconnect, settings-dialog accessibility + focus trap, reduced-motion, and error boundaries around the call / plugin / watch-party surfaces.
📄 Full changelog: CHANGELOG.md · Compare: v0.1.1...v0.2.0