You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
messages list --before-cursor/--after-cursor and messages context pass a message ID where the API expects a sort key #39
messages list --before-cursor and --after-cursor are documented as taking a message ID, and messages context takes --id. All three pass that ID straight through as the API's cursor:
The Desktop API's message cursor is a sort key. oldestCursor and newestCursor equal the sortKey of the messages at each end of a page.
Result
Tested on WhatsApp, Signal, Instagram, X, LinkedIn, and a Beeper (Matrix) chat, using a message about 25 back from the newest:
beeper messages list --chat <chatID> --before-cursor <messageID> returns messages that are not older than the given one, or nothing.
beeper messages context --chat <chatID> --id <messageID> returns a before list that is empty, or holds messages newer than the target.
The API called directly with cursor=<that message's sortKey>&direction=before returns the right older messages.
Suggested fix
Retrieve the message first with GET /v1/chats/{chatID}/messages/{messageID} and pass its sortKey as the cursor.
Two server-side problems will remain after that. direction=after returns the newest page instead of the next one (beeper/desktop-api-openapi#4), so the after half of context stays wrong. iMessage cursors fail in both directions (beeper/desktop-api-openapi#3).
Activity
linear-code commentedon Sep 29, 2026
LABS-117