Skip to content

[RFC] feat(stickers): add Sonar sticker packs#1920

Draft
vincenzopalazzo wants to merge 1 commit into
block:mainfrom
vincenzopalazzo:codex/sonar-stickers
Draft

[RFC] feat(stickers): add Sonar sticker packs#1920
vincenzopalazzo wants to merge 1 commit into
block:mainfrom
vincenzopalazzo:codex/sonar-stickers

Conversation

@vincenzopalazzo

Copy link
Copy Markdown

Summary

  • implement Sonar Sticker events (installed list, pack, curation, and relay catalog) with shared strict validation
  • add relay ingestion, exact-revision admin approval, a materialized catalog, and an approval-gated content-addressed media cache
  • add SDK builders and buzz stickers commands for listing, installing, authoring, updating, and importing Signal packs
  • add desktop install/curation/authoring/import/picker/message rendering and receive-only mobile rendering
  • pin hedwig-corp/bitchat-to-sonar sonar-stickers at eea8ada304517d6a3ea6c81d6ffa57ce00504bcd

Security properties

  • unapproved remote sticker assets are never fetched by the desktop preview path
  • relay fetches pin validated public DNS results, disable proxies and redirects, and revalidate bytes before caching
  • cached assets must match approved pack revision, MIME, SHA-256, dimensions, per-format limits, animation-frame limits, and cumulative canvas-pixel limits
  • approvals are transactional, exact-revision based, and bounded to a 500-pack catalog
  • Signal pack secrets are zeroized by the CLI and cleared from desktop state after invocation

Verification

  • just ci (pinned Hermit toolchain)
  • cargo test -p buzz-core -p buzz-media -p buzz-sdk -p buzz-cli --lib
  • cargo test -p buzz-relay --lib sticker
  • cargo test -p buzz-db --lib
  • cd desktop && pnpm test (2,916 passed)
  • cargo test --manifest-path desktop/src-tauri/Cargo.toml (1,408 passed, 12 ignored)
  • cd mobile && flutter test (492 passed, 1 skipped)
  • desktop screenshot harness on /settings?section=stickers

just test reached its infrastructure startup stage but the local Docker MinIO image metadata was corrupt (unexpected end of JSON input), so the infrastructure-backed suite could not start. Relay/DB focused tests and the full just ci gate are green.

Decision log

  • Approvals pin a specific kind-30031 event ID, not only an addressable coordinate, so publisher revisions return to pending review.
  • Pending packs show metadata plus an approval placeholder; clients do not fetch external images before relay approval.
  • The relay catalog is the only installable discovery surface and is capped at 500 entries.
  • Sticker packs accept the Sonar minimal shape; recommended t, NIP-30 emoji, alt, and representative emoji remain optional but are validated when present.
  • Desktop authors and sends stickers; mobile is receive-only for this increment.
  • Animated media is capped at 200 frames and 100 million cumulative canvas pixels in addition to byte and dimension limits.

@vincenzopalazzo

Copy link
Copy Markdown
Author

Sonar sticker settings

Users can install approved packs, author native packs, and import Signal packs from one settings surface.

Sonar sticker settings

Signed-off-by: Vincenzo Palazzo <vincenzopalazzodev@gmail.com>
@vincenzopalazzo vincenzopalazzo changed the title feat(stickers): add Sonar sticker packs [RFC] feat(stickers): add Sonar sticker packs Jul 15, 2026
vincenzopalazzo added a commit to vincenzopalazzo/buzz that referenced this pull request Jul 15, 2026
@vincenzopalazzo

Copy link
Copy Markdown
Author

Herecomesbitcoin.org — Sonar share preview

Resolved the supplied Sonar sticker URL through wss://nos.lol and loaded its signed kind 30031 event into Buzz's installed-pack state.

  • Pack: Herecomesbitcoin.org
  • Stickers: 103
  • Coordinate: 30031:7215b2db8754494fd3452b7f2d28b56e23863b95446bf68d79f980a7ad5ec7cd:signal-8fa42aa13ec8f0efebe4b038f41afbd1
  • Event: c732935acc948a73643f6ec11c769e6ec8d7b3a29757cc94e813088b64a6c519

The captures use Buzz's desktop test relay with the real signed pack event and real Blossom assets, because this task has no live Buzz workspace key configured.

Composer picker

Herecomesbitcoin.org sticker pack installed in the Buzz composer

Sent sticker

A Herecomesbitcoin.org sticker sent in a Buzz channel

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant