Skip to content

X skill: use X Chat's unread state - #578

Closed
santiagomed wants to merge 1 commit into
cursor:mainfrom
santiagomed:cursor/x-chat-unread-state
Closed

santiagomed wants to merge 1 commit into
cursor:mainfrom
santiagomed:cursor/x-chat-unread-state

Conversation

@santiagomed

@santiagomed santiagomed commented Oct 12, 2026 •

Copy link
Copy Markdown
Collaborator

X Chat now tracks read state, but the X MCP guide never told agents about it. A fresh agent asked what's unread said "X doesn't tell me which chats are unread" and scanned every conversation for messages newer than the read point.

The guide gets a short Unread section before Read / summarize. For "what's unread" it lists get_chat_conversations with unread_only true and the unread,last_read_event_id,newest_event_id fields, paging until meta.has_more is false since pages can be short or empty. Unread messages are the events after last_read_event_id. Message requests still come from their own list when meta.has_message_requests is true. Read / summarize points there for unread questions, and Don't gets one line against scanning. The plugin goes to 2.6.3.

The MCP doesn't expose mark-unread or archive tools yet, so they aren't documented.

This merges cleanly with #566. #563 also takes 2.6.3, so whichever lands second needs to rename its CHANGELOG heading. The skill text doesn't overlap.

Test plan

  • node scripts/validate-plugins.mjs passes.
  • Ask a fresh agent "what's unread in my X Chat?" It calls get_chat_conversations with unread_only and the unread fields, pages until has_more is false, and doesn't scan every thread.

Note

Low Risk
Documentation and version bump only; no runtime or API code changes.

Overview
Bumps the X Cursor plugin to 2.6.3 and documents how agents should answer “what’s unread” in X Chat using server read state instead of scanning the whole inbox.

The X MCP guide (SKILL.md) adds an Unread section: call get_chat_conversations with unread_only true and fields unread,last_read_event_id,newest_event_id, paginate on meta.has_more (including short/empty pages), then load events after last_read_event_id per thread; message requests still come from the separate request flow when meta.has_message_requests is true. Read / summarize now points unread questions at that flow; Don't forbids inferring unread by scanning every conversation’s events.

Reviewed by Cursor Bugbot for commit 99979f1. Bugbot is set up for automated code reviews on this repo. Configure here.

@santiagomed

Copy link
Copy Markdown
Collaborator Author

Combined into #580.

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