Uh oh!
There was an error while loading. Please reload this page.
feat(pin-save-thread-subscription-js-sdk): add documentation for pin/save messages, pin conversations and thread subscription - #469
Conversation
…save messages, pin conversations and thread subscription
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Workflows to automatically generate PRs for you. |
raj-dubey1
commented
Aug 17, 2026
Docs review — |
| Page | Symbols that do not exist in 4.1.13 |
|---|---|
pin-message.mdx | CometChat.pinMessage / unpinMessage, MessagesRequestBuilder.setPinned, BaseMessage.isPinned/getPinnedAt/getPinnedBy/isSystemPinned, getPinnedMessagesLimit, getSystemPinnedMessagesLimit, isPinMessageEnabled, MessageListener.onMessagePinned/onMessageUnpinned |
save-message.mdx | CometChat.saveMessage / unsaveMessage, MessagesRequestBuilder.setSaved, BaseMessage.isSaved/getSavedAt, getSavedMessagesLimit, isSaveMessageEnabled, onMessageSaved/onMessageUnsaved |
pin-conversation.mdx | CometChat.pinConversation / unpinConversation, ConversationsRequestBuilder.setPinnedBy, CometChat.PINNED_BY, Conversation.isPinned/getPinnedAt/getPinnedBy, getPinnedConversationsLimit, isPinConversationEnabled, and the whole ConversationListener / addConversationListener API |
thread-subscription.mdx | CometChat.subscribeToThread / unsubscribeFromThread, BaseMessage.isThreadSubscribed/setThreadSubscribed, the ThreadsRequest / ThreadsRequestBuilder classes, and the MessageThread model (getReplyCount() is real but lives on BaseMessage, not MessageThread) |
Two otherwise-correct pages also have non-existent symbols grafted in:
message-filtering.mdx— the "Pinned messages" / "Saved messages" sections usesetPinned(true)/setSaved(true)(don't exist on the builder).all-real-time-listeners.mdx— adds a Conversation Listener section (ConversationListenerclass doesn't exist) and injectsonMessagePinned/onMessageUnpinned/onMessageSaved/onMessageUnsavedinto the realMessageListenertable (these callbacks never fire — worse than a hard error since it looks like it works).
Error constants ERR_ACTION_NOT_ALLOWED and INVALID_PARENT_MESSAGE_ID also don't appear anywhere in the SDK.
Ask
If these document an upcoming SDK release: please hold/gate this PR until that version is published, pin the install/examples to it, and re-verify the exact method names + signatures against the shipped build before publishing (an unreleased build may differ from the draft). If the release is already staged, linking the SDK version/PR here would let us confirm quickly. If any of these are simply the wrong name for an existing API, happy to help map them.
Note (pre-existing, not caused by this PR)
The link scan flagged direct-call, default-call, standalone-calling, and interactive-messages as broken targets — but they also appear in files this PR doesn't touch (message-structure-and-hierarchy.mdx, send-message.mdx), so they're pre-existing and out of scope here.
🤖 Automated docs-PR review (structural script + API verification against the published package). Flagging for a human to confirm the release timing.
…no longer honours Both pages described behaviour that changed when the SDK stopped self-echoing pin/save writes and gained a composite thread cursor. save-message: the Real-time Save Events note said the acting device also receives its own event, de-duplicated by the SDK, and that a consumer could insert into the saved list from the callback alone. The SDK no longer local-emits — the acting device gets nothing and must update from the saveMessage() promise, while the callbacks fire for that user's other devices. Following the old note would have left the saved list un-updated on the device that performed the save. thread-subscription: the paging section said only "call fetchNext() repeatedly", which leads to looping until an empty page. hasMore() is the end-of-list signal — a page can be shorter than the limit because the server's inclusive cursor repeats the boundary row and the SDK filters it out. Adds a while (hasMore()) example in both tabs and states the rule explicitly.
…pages The three links in the Ongoing Call Listener section pointed at /sdk/javascript/direct-call, /standalone-calling and /default-call, none of which exist — in v4 those pages live under the Calls SDK. Now /calls/v4/javascript/ call-session, /standalone-calling and /ringing, matching the link text already in place. v4 rather than the v5 beta, since OngoingCallListener is the v4 API. Pre-existing 404s, unrelated to the pin/save and thread work in the surrounding commits.
Description
Add documentation for pin/save messages, pin conversations and thread subscription
Related Issue(s)
Type of Change
Checklist
Additional Information
Screenshots (if applicable)