Changelog
Documentation-oriented release notes. Store “What’s New” text can stay short; this page tracks privacy- and architecture-facing changes.
App version in-repo: 1.1.3+32 (stores may lag or differ).
How to read entries
- Privacy — sealed surfaces, metadata, retention, subprocessors
- Product — user-visible features and limits
- Docs — documentation site source changes
Add new dated sections newest first.
2026-08-07 — Shared-room cost cuts (P1–P5)
- P1: Community send hot path coalesces parent/roles reads — one early community+channel snap threaded through permission, rate, tags, push
- P2/P3: Shared media refcount-safe delete, unique-byte media quotas, global hash index default (
shared_media/by_hash/…) - P5: Anonymous
ops_cost_metricscounters + daily P4 gate rollup; billing export guidance indocs/OPS_COST_TELEMETRY.md - P4: Redis open-buffer design only (
docs/REDIS_OPEN_BUFFER_DESIGN.md) — implement after ~200M msgs/mo or buffer pain - Verify deploy:
docs/SHARED_MEDIA_DEDUP_VERIFY.md
2026-08-06 — Shared media deduplication Phase 1 (source)
Product · Privacy · Docs
- Communities / Broadcast / open-history groups: new media uploads are CDN bytes on Bunny under
…/by_hash/{sha256}/…with within-room content-hash dedup (lookupOrAllocateSharedMedia/confirmSharedMediaHash) - Text / captions remain server-held DEK ciphertext
- Legacy
.encmedia still downloads with DEK decrypt - Stories / 1:1 / E2E groups unchanged
- Docs: Shared media deduplication
Deploy note: Cloud Functions must be deployed for dedup callables before clients rely on hash hits.
2026-08-06 — Why not unidentified delivery (docs)
Docs
- New page: Why delivery still learns the sender — cert-gated sealed delivery kept for block / rate limits; unidentified delivery not claimed for default chat
- Cross-links from privacy guarantees, sealed sender, threat model, FAQ, docs home
2026-08-05 — Sealed sender write cutover (Signal-class envelope writes)
Privacy
SealedSender.allowLegacyFallback = false— no plaintext-from/ peer-keyed control fallbacks on 1:1- RTDB: clients can only delete
pending_chatsandsealed_controls; creates go through Cloud Functions only - Receipts, Secure View, disappearing, once-view, kept, view-once, session_reset, key_regenerated, retry — sealed-only writes
- Inbox parse sealed-only; non-sealed junk deleted (avoids reconnect re-download cost)
- Legacy
receipt_batcheslistener not started (real RTDB savings); sealed controls only - Dual-read of legacy message bodies removed — was CPU-only anyway; ship builds are sealed-end-to-end
- Sealed 1:1 + conference call invite —
deliverSealedCallInvite; nosender_id_hint/ binary string on incoming; FCM/VoIP omitcaller_id - Conversation-scoped presence — online/typing under
presence_conv/{token}/{a|b}(opaque pair token + slots); globalpresence/{ghostId}no longer publishess/h - Legacy teardown —
receipt_batchesclient creates denied; 1:1 call map+hint dual-read gated off; optional Admin cleanup script
Docs
- Updated sealed-sender status to write-cutover complete
- Added Privacy guarantees — promises, ceilings, refusals (no phone discovery, non-custodial restore)
- Stale “dual-write period” wording removed from troubleshooting / privacy policy / architecture pages
See Sealed sender · Privacy guarantees · Encrypted calls.
2026-08-04 — Sealed sender v1 and metadata minimization (Phase 0–1)
Privacy
- Preferred sealed sender delivery for 1:1 (
deliverSealedMessage,from: "sealed", FCM wake withoutsender_id) - Sender certificates issued by Cloud Functions (~24h TTL)
- Dual-write / dual-read period: sealed preferred; legacy plaintext-
fromfallback still available until cutover - Phase 0 hardening: no plaintext
reply_to.snippeton RTDB; opaque typing tokens; Whisper creator mapping isolated; Whisper FCM wake-only; stop growing servermessaged_contactsgraph
Docs
- Public technical docs source expanded under
web-doc/for doc.buzzio.dev
See Sealed sender · Why Buzzio privacy.
2026-07 — Platform pillars (current product baseline)
Product (live pillars useful for first-time readers)
- Sealed 1-to-1 with delete-on-delivery design
- Encrypted voice / video calls; local Call tab history
- Groups: E2E or open-history; permanent or temporary (up to ~30 days)
- Communities, Broadcast, Stories (~24h)
- Whisper private chat (QR, up to ~7 days) and Whisper Questions (Free 24h / Link Pack 15d)
- Buzzio ID + 12-word phrase identity (no personal phone/email required)
- Optional encrypted backup with user-controlled recovery key
Freemium defaults documented separately: Premium and quotas.
Template (copy for next release)
YYYY-MM-DD — Title
- What changed (user-facing)
- Privacy / retention / crypto note if any
- Limits or prices changed?
- Android-only / iOS-only?
- See also: link to feature doc