Skip to content

Pin messages on the phone (GRYT-1678) - #302

Merged
sivert-io merged 1 commit into
mainfrom
claude/GRYT-1678-pins
Oct 6, 2026
Merged

sivert-io merged 1 commit into
mainfrom
claude/GRYT-1678-pins

Conversation

@sivert-io

Copy link
Copy Markdown
Member

The phone half of pinned messages. The server half is server#281, out as 1.10.56-beta.2. The desktop half is client#807.

What's in it

  • Pin and Unpin in the hold menu. You get them with manage_messages in a channel, or as anyone in a DM. MLS messages and unsent ones don't get them.
  • "pinned" under a pinned message, next to "edited".
  • A pin button in the channel header. It opens a drawer listing the pins, newest first. Tapping one scrolls to it if it's loaded, and otherwise says it's further back.
  • useMessages listens for chat:pinned, so a pin made on another device shows straight away.

Not verified on a device yet. Typecheck and the test suite pass (1395). In the simulator, the dev build kept reopening an old test server, and I couldn't switch it to the local pins server with injected taps. Someone needs to hold a message on a server running 1.10.56-beta.2 before this merges.

Don't merge before the server is on latest. On a stable server the Pin item does nothing.

🤖 Generated with Claude Code

Hold a message and pick Pin or Unpin. It's offered to whoever has
manage_messages in a channel and to anyone in a DM, the same rule the
server uses. A pinned message shows "pinned" under it, and the pin button
in the header opens the list. Picking a pin scrolls to it when it's loaded.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@sivert-io

Copy link
Copy Markdown
Member Author

Checked on the iPhone 17 Pro simulator: dev client on this branch's Metro, against a local server at main (pins, 98f93e6). I was an owner in a #general seeded with 120 messages, two of them pinned (3 and 115).

  • The pin button shows in the channel header, and "pinned" shows under 115.
  • The pins drawer lists 115 then 3, newest first, with sender and time.
  • Tapping 115 while scrolled up at message 59 scrolls back to it.
  • Tapping 3, which isn't loaded, shows "That message is further back than what's loaded".
  • The hold menu on 110 offers Pin. Tapping it stored the pin on the server (checked in the DB), and "pinned" showed under 110 straight away.
  • Holding 110 again offers Unpin. Tapping it cleared it on the server, and the drawer dropped it.

Not checked: a DM, a member without manage_messages (the item should be hidden), and Android.

Server 1.10.56 with pins is on stable now, so the "don't merge before the server is on latest" note no longer applies.

@sivert-io
sivert-io merged commit 9d6c3a7 into main Oct 6, 2026
5 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