Skip to content

v0.9.3 — Create-your-own sticker packs

Choose a tag to compare

@therudywolf therudywolf released this 03 Jul 01:18
· 166 commits to main since this release

OneToThree — self-hosted, end-to-end encrypted messenger (web · Android · desktop).

Second sticker pass: the create-your-own-pack feature plus the rest of the cross-platform audit backlog.

✨ Added

  • Create your own sticker packs — no Telegram required. Settings → Stickers now has a "Create your own pack" box (name → Create) and a + button on each of your packs to upload image stickers (WEBP/PNG/JPG/GIF, ≤512 KB, up to 120 per pack, 50 packs per user). Your packs appear in the composer picker just like imported ones.

✅ Fixed

  • Animated (tgs/lottie) stickers now render on desktop & Android. They were fetch()-ing a blob: URL that the Tauri/Capacitor CSP blocks; they now read the cached image bytes directly.
  • Consistent sticker access. Fetching a sticker image (/asset-url, /media) now honors the same shared-chat access that pack detail/clone already granted — no more inconsistent 403 for a legitimate recipient.
  • Self-owning clones. Cloning a pack now copies each image to the clone's own storage key, so deleting the original pack no longer breaks the clone (and per-pack cleanup is correct).
  • Share consent. Only a pack's owner can share a private pack; a non-owner who merely received a sticker can't spread it to other chats.
  • Performance & polish. Sticker image cache is memory-bounded (no more session-long leak); pack thumbnails load in parallel; in-chat search debounces the scan properly (and handles IME input); the "add pack" link validates a real ID.
  • Robustness. The first sticker upload on a fresh server creates the storage bucket automatically.

📦 Downloads

Platform File
Android OneToThree-0.9.3-android.apk (signed)
Windows OneToThree_0.9.3_x64-setup.exe

*.sha256 checksums attached. Android signing cert: SHA-256 29c9a287911e9eaad27943714b646002070e51c326f30512fdd225b20a02d5a7 (CN=OneToThree, O=therudywolf).


Full details in CHANGELOG.md. Built from commit 68e37cde.

🤖 Generated with Claude Code