Skip to content

Use custom emoji from your other servers, where the server allows it (GRYT-1660) - #793

Merged
sivert-io merged 1 commit into
mainfrom
claude/GRYT-1660-external-emoji-switch
Oct 5, 2026
Merged

sivert-io merged 1 commit into
mainfrom
claude/GRYT-1660-external-emoji-switch

Conversation

@sivert-io

Copy link
Copy Markdown
Member

The client half of Gryt-chat/server#280. It's safe to merge first: an older server sends nothing, which reads as off and shows no switch.

What changes:

  • Owner switch in server settings: "Let members use custom emoji from their other servers". It's shown only when the server reports the setting. The note under it says each emoji loads from its own server, which sees who reads it, and that this server can't check the picture.
  • Picker: in the chat editor, when the server allows it, each other server's emoji are listed under that server's address. Picking one puts ![:name:](https://other/api/emojis/img/name) in the message, because the name only resolves on its own server.
  • Messages: the renderer reads the server's answer from a small per-server store, filled from server:details. That way a message only re-renders when this answer changes. With the switch off, another server's emoji shows as :name:.
  • Reactions don't offer them, since a reaction is stored by name.
  • Fix: the :name: expansion now skips image markdown. Before, a server with an emoji of the same name would have rewritten the alt text inside another server's emoji image.

Tested on a harness page: another server's emoji draws with the setting on and is text with it off, and an emoji of the same name on this server doesn't break it.

What to look at:

  • Group labels are server addresses, not names, because emojiData only knows hosts.
  • The picker only knows the servers you're connected to right now.

🤖 Generated with Claude Code

…(GRYT-1660)

The owner gets a switch under server settings, "Let members use custom
emoji from their other servers", shown once the server knows the
setting (server#280). When it's on, the chat picker lists each other
server's emoji under that server's address, and picking one puts the
image itself in the message, since its name only means something on
its own server. Messages there then draw it; with the switch off they
show its name.

Reactions don't offer them: a reaction is stored by name.

The name expansion now skips image markdown, so a server with an emoji
of the same name can't rewrite the alt text inside one.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@sivert-io
sivert-io merged commit 8bb1851 into main Oct 5, 2026
19 checks passed
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