Sticker import: choose a destination; sticker rooms for more than one pack #19

Open
opened 2026-10-05 18:24:31 +00:00 by robocub · 0 comments
Owner

Design revised after operator feedback: sticker rooms are visible, choosable, and shareable, not a single hidden room.

Problem

On Settings › Account › Emoticons, the Import and New pack buttons disappeared once you had a personal pack (canCreatePack => ownedPacks.isEmpty). The composer's sticker picker never offered import at all. A tester with one personal pack had no way to import a Telegram pack.

Why an account has one personal pack

The image-pack format (MSC2545, used by Cinny, FluffyChat, Nheko and others) stores one personal pack per account, in account data im.ponies.user_emotes. Unlimited packs are possible in rooms (im.ponies.room_emotes state, one per state key). Account data im.ponies.emote_rooms enables room packs everywhere; that is the ♥ toggle.

Design (implemented on feat/personal-packs)

  • Sticker rooms. A sticker room is a private room that only holds packs. It is marked with the state event im.nether.vommet.sticker_room and tagged low priority. Packs created in one are enabled everywhere for their creator. Invite friends to a sticker room to share its packs; they ♥ the packs they want.
  • Room list. Vommet hides sticker rooms from the room list and recent activity. Other clients show them as ordinary low-priority rooms.
  • Settings › Account › Emoticons now has a Sticker rooms section. It explains sticker rooms and lists each one with its packs and an Invite button. It also has a New sticker room button.
  • Import dialog destinations:
    • New personal pack, while you have none.
    • New pack in this room or space, if you can edit it.
    • New pack in each sticker room you can edit.
    • New pack in a new sticker room, with a name field.
    • Add to any existing pack you can edit. Clashing names get a _2 suffix.
    • The dialog includes the explanation above.
  • Picker. The composer's emoji/sticker picker gets an import button.
  • Fix: a new room pack with the same name as an existing one no longer overwrites it.

Acceptance

  • With a personal pack, importing a Telegram pack offers "Add to Test Pack (personal)" and "New pack in a new sticker room".
  • The new room does not appear in the room list. It appears under Settings › Emoticons › Sticker rooms.
  • The pack shows in every room's picker.
  • An invited friend who joins can ♥ the pack.

Filed with LLM assistance. This is a fork-only issue; never refile it on Commet's tracker.

_Design revised after operator feedback: sticker rooms are visible, choosable, and shareable, not a single hidden room._ ## Problem On Settings › Account › Emoticons, the Import and New pack buttons disappeared once you had a personal pack (`canCreatePack => ownedPacks.isEmpty`). The composer's sticker picker never offered import at all. A tester with one personal pack had no way to import a Telegram pack. ## Why an account has one personal pack The image-pack format (MSC2545, used by Cinny, FluffyChat, Nheko and others) stores **one** personal pack per account, in account data `im.ponies.user_emotes`. Unlimited packs are possible in **rooms** (`im.ponies.room_emotes` state, one per state key). Account data `im.ponies.emote_rooms` enables room packs everywhere; that is the ♥ toggle. ## Design (implemented on `feat/personal-packs`) - **Sticker rooms.** A sticker room is a private room that only holds packs. It is marked with the state event `im.nether.vommet.sticker_room` and tagged low priority. Packs created in one are enabled everywhere for their creator. Invite friends to a sticker room to share its packs; they ♥ the packs they want. - **Room list.** Vommet hides sticker rooms from the room list and recent activity. Other clients show them as ordinary low-priority rooms. - **Settings › Account › Emoticons** now has a **Sticker rooms** section. It explains sticker rooms and lists each one with its packs and an Invite button. It also has a **New sticker room** button. - **Import dialog destinations:** - New personal pack, while you have none. - New pack in this room or space, if you can edit it. - New pack in each sticker room you can edit. - New pack in a new sticker room, with a name field. - Add to any existing pack you can edit. Clashing names get a `_2` suffix. - The dialog includes the explanation above. - **Picker.** The composer's emoji/sticker picker gets an import button. - **Fix:** a new room pack with the same name as an existing one no longer overwrites it. ## Acceptance - With a personal pack, importing a Telegram pack offers "Add to Test Pack (personal)" and "New pack in a new sticker room". - The new room does not appear in the room list. It appears under Settings › Emoticons › Sticker rooms. - The pack shows in every room's picker. - An invited friend who joins can ♥ the pack. --- _Filed with LLM assistance. This is a fork-only issue; never refile it on Commet's tracker._
robocub changed title from Sticker import: choose a destination pack; allow more than one personal pack to Sticker import: choose a destination; sticker rooms for more than one pack 2026-10-05 18:45:11 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
robocub/vommet#19
No description provided.