Skip to content

feat(emotes): add emote bar domain and persistence - #110

Merged
diangogav merged 3 commits into
mainfrom
feat/emote-bar-domain
Oct 15, 2026
Merged

diangogav merged 3 commits into
mainfrom
feat/emote-bar-domain

Conversation

@diangogav

@diangogav diangogav commented Oct 14, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • Adds a new emote-bar module.
    • EmoteRef is either a default emote id (wave, thumbsup, fire, thinking, cool, mindblown, sweat, cry) or <pack-slug>/<emote-key>.
    • EmoteBar holds exactly 8 refs, with no repeats.
  • Adds the user_emote_bars table in the cosmetics DataSource. It has one row per user: emote_refs varchar(48)[] with a length-8 CHECK, and an FK to users with ON DELETE CASCADE.
    • The bar is always read and replaced as a whole, so one row with an array is simpler than one row per slot.

Chain context

This is part of the emote packs feature: emote packs become cosmetics, and each player builds an 8-slot emote bar from the default emotes and the emotes of packs they own. The duel server already relays any emote id up to 48 bytes (diangogav/EDOpro-server-ts#418).

This is a stacked chain into main. Merge the PRs in order. After each merge, retarget the next PR to main.

main
└── #109 EMOTE_PACK cosmetic type and pack validation
  └── #110 emote bar domain and persistence 📍
    └── #111 GET and PUT /me/emote-bar
      └── #112 emote bar fixes

Size

258 changed lines: 157 production, 101 tests.

Verification

  • bun test, bun run lint and bun run build --noEmit all pass on the top of the chain.

Base automatically changed from feat/emote-packs to main October 14, 2026 23:59
@diangogav diangogav self-assigned this Oct 15, 2026
@diangogav
diangogav merged commit 382a07a into main Oct 15, 2026
@diangogav
diangogav deleted the feat/emote-bar-domain branch October 15, 2026 00:04
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