v0.9.2 — Stickers, GIFs & search polish
OneToThree — self-hosted, end-to-end encrypted messenger (web · Android · desktop).
A polish pass on the stickers, GIFs, and search subsystems, from a cross-platform audit.
✅ Fixed
- Desktop emoji picker was blank. Emoji were loaded as Google-style PNGs from
cdn.jsdelivr.net, which the Tauri desktop CSP blocks — so the grid showed broken tiles. Now uses native system-font emoji: renders on web/Android/desktop, works offline, and makes zero third-party requests (a better fit for a private, self-hosted app). - GIF search flashed a spinner on every keystroke. The loading state now appears only when a request actually fires (after the debounce); your previous results stay on screen while you type.
- A down GIF provider was invisible. When Tenor/Giphy can't be reached, the picker now shows a small “provider unavailable — showing suggestions” notice instead of silently presenting fallback GIFs as real results.
- Recent GIFs now fall back to the direct source if the server thumbnail proxy is unavailable (matching the search/favorites grids).
- Recent/favorite stickers now show an error toast if a send fails (previously swallowed — it looked like it worked) and re-load their image correctly after an app reload.
- Message search no longer silently ignores a search for the literal words “undefined” or “null”.
✨ Added
- Per-pack sticker filter — large sticker packs get a filter box instead of one long scroll.
🧹 Backend / hygiene
- Sticker images are now garbage-collected when a pack is deleted or refreshed (previously every delete/refresh left orphaned files in object storage forever). Clone-safe — shared images used by cloned packs are never removed.
- GIF favorites are capped per user (oldest evicted beyond 200) so the list can't grow without bound.
📦 Downloads
| Platform | File |
|---|---|
| Android | OneToThree-0.9.2-android.apk (signed) |
| Windows | OneToThree_0.9.2_x64-setup.exe |
*.sha256 checksums attached. Android signing cert: SHA-256 29c9a287911e9eaad27943714b646002070e51c326f30512fdd225b20a02d5a7 (CN=OneToThree, O=therudywolf).
Full details in CHANGELOG.md. Built from commit f4e528f.
🤖 Generated with Claude Code