Skip to content

X skill: exact unread messages, 1000-conversation inbox pages - #588

Merged
maloneya merged 4 commits into
cursor:mainfrom
santiagomed:x-skill-exact-unread-messages
Oct 13, 2026
Merged

maloneya merged 4 commits into
cursor:mainfrom
santiagomed:x-skill-exact-unread-messages

Conversation

@santiagomed

@santiagomed santiagomed commented Oct 12, 2026 •

Copy link
Copy Markdown
Collaborator

Lists the inbox with max_results 1000 and finds the exact unread messages by paging each unread conversation's events newest first down to last_read_event_id, leaving out the owner's own. Mark-read takes only id and marks the whole conversation read; marking a conversation unread does not set unread.

List unread conversations, then page each one's get_chat_conversation_events newest first and stop at the first event at or below last_read_event_id, the seen_until_sequence_id of the owner's latest read receipt; no parameter starts after an event. mark_chat_conversation_read takes only id and always marks the whole conversation read. Marking a conversation unread does not set unread.
get_chat_conversations now takes up to 1000 per page. Fall back to 100 if the API still rejects 1000.
Keep max_results 1000, events at 100 per page, paging past an empty events page with a next_token, and leaving out the owner's own messages. Drop text the live tools and API already cover: mark-read takes only id, unread is computed by the API, events come newest first with unread ones above last_read_event_id, and no parameter starts after an event.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

Bugbot Autofix is ON, but it could not run because the branch was deleted or merged before autofix could start.

Reviewed by Cursor Bugbot for commit 78bf6cc. Configure here.

| `get_users_public_key` | Self: `juicebox_config`, `public_key_version`, `public_key`, `signing_public_key`, `identity_public_key_signature` |
| `get_users_public_keys` | Signing keys for every sender, all versions (up to 100 `ids` per call) |
| `get_chat_conversations` | Inbox (paginate) |
| `get_chat_conversations` | Inbox (paginate), `max_results` 1000 |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Inbox page-size fallback removed

Medium Severity · Potential Edge Case

get_chat_conversations now always uses max_results 1000, with the "if rejected as too large, use 100" fallback removed. Published Chat OpenAPI limits this parameter to 100, so a rejected first page can fail the unread list and the full inbox with no recovery.

Additional Locations (2)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 78bf6cc. Configure here.

@santiagomed santiagomed changed the title X skill: exact unread messages, mark-read covers the whole conversation X skill: exact unread messages, 1000-conversation inbox pages Oct 13, 2026
@maloneya
maloneya merged commit fe53d9e into cursor:main Oct 13, 2026
2 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.

3 participants