Skip to content

Pin messages (GRYT-1619) - #807

Merged
sivert-io merged 2 commits into
mainfrom
claude/GRYT-1619-pins
Oct 6, 2026
Merged

sivert-io merged 2 commits into
mainfrom
claude/GRYT-1619-pins

Conversation

@sivert-io

Copy link
Copy Markdown
Member

Client half of pinned messages. The server half is Gryt-chat/server#281.

What's in it

  • Pin Message and Unpin Message in the message right-click menu. They show for whoever has manage_messages in a channel, and for anyone in a DM, which is the same rule the server enforces. Not on MLS messages, since the server has no copy of those.
  • A small "pinned" mark under a pinned message.
  • A pin button in the chat header that opens the list, newest pin first. Clicking an item jumps to the message.
  • usePins listens for chat:pinned, so a pin made by somebody else shows straight away.

Tested against a local server running the server#281 branch: pinned a message, saw the mark and the list, reloaded and the pin was still there, then unpinned it. yarn lint passes.

Known gaps

  • Clicking a pin that isn't in the loaded history does nothing, because scrollToMessage only knows about loaded rows. Same as reply jumps today.
  • Don't merge this before server#281 is released. Against an older server the menu item does nothing.
  • The phone half is next, in mobile.

🤖 Generated with Claude Code

sivert-io and others added 2 commits October 6, 2026 14:45
Pin Message and Unpin Message sit in a message's right-click menu, for
whoever has manage_messages in a channel and for anyone in a DM. A pinned
message gets a small "pinned" mark, and the pin button in the header opens
the list.

Needs server#281. An older server ignores chat:pin, so the item does nothing
there.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
At 300px a DM header with call buttons ran 8px past the window edge once
the pin button joined it (dm.spec.ts).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@sivert-io
sivert-io merged commit 204d253 into main Oct 6, 2026
17 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