v0.9.3 — Create-your-own sticker packs
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 ablob: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