docs(ui-kit/ios,sdk/ios): pin & save messages and thread subscription - #465
Conversation
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Workflows to automatically generate PRs for you. |
Documents the two iOS features from the 5.1.19 release that had no documentation: Pin & Save Messages (ENG-37851..37853) and Thread Subscription (ENG-37571..37575). New pages: - sdk/ios/pin-save-message - pin/unpin, save/unsave, list fetch via MessagesRequest, and the real-time delegate callbacks - ui-kit/ios/pinned-messages - the per-conversation pinned panel - ui-kit/ios/saved-messages - the private cross-conversation panel - ui-kit/ios/guide-pin-save-message - end-to-end guide - sdk/ios/thread-subscription - subscribeToThread/unsubscribeFromThread, the tri-state threadSubscriptionState, ThreadsRequest and the MessageThread model, and the CometChatThreadDelegate callbacks - ui-kit/ios/guide-thread-subscription - the gate, the action-sheet option, the message-header bell, and cross-surface sync Updated where the features landed: message-list, message-header, message-template, events, core-features, conversations, components-overview, guide-overview, guide-threaded-messages, sdk/ios/threaded-messages and docs.json navigation. Thread-subscription notes: - copy is "Subscribe to thread"/"Unsubscribe from thread", carried by the THREAD_SUBSCRIBE/THREAD_UNSUBSCRIBE keys - the bell ships in CometChatMessageHeader, gated by parentMessage plus enableThreadSubscription, with hideThreadSubscriptionButton as the escape hatch for a host that draws its own - the action-sheet option is offered on parent messages only, never on a reply, but is not gated on reply count - unlike React, iOS has no receiver-type check, so the option appears in one-on-one conversations as well as groups; the pages say so rather than describing the feature as group-only Two SDK pages used "pinned" as a tags example, which now reads as the pin feature; changed to "important" with a pointer to the real API. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
4df4545 to
a1b76a5
Compare
The pages were written against the state of the two feature branches on 10 Aug. Both moved since, and the SDK removed an API the docs still taught. Removed APIs, replaced with what shipped: - CometChat.threadSubscriptionState(forParentMessageId:) and its SUBSCRIBED/NOT_SUBSCRIBED/UNKNOWN tri-state are gone. The SDK stopped caching subscription state it could not fully observe; the server flag now rides on each message as BaseMessage.threadSubscribed. Documents the fetched-vs-not-reported distinction and the local-only setter. - CometChatThreadDelegate, ThreadSubscriptionEvent, ThreadReplyEvent and their two callbacks no longer exist. Replaced the real-time section with how to actually stay in sync, and a warning against rebuilding the local cache the SDK deliberately dropped. - MessageThread.subscriptionState -> isSubscribed. - core-features.mdx used the removed synchronous read; it now shows the kit's ccThreadSubscriptionChanged listener instead. Newly documented: - CometChatException.errorParams, with a worked example on the pin limit and a note that it is not ObjC-representable. - The compound (updatedAt, id) thread-list cursor. - QuotedRepliesOptions as an enum distinct from RepliesOptions, since value 4 means something different on each. - enableThreadSubscription on CometChatPinnedMessages. UI Kit surface changes: - the bell moved to CometChatThreadedMessageHeader as a second surface; enable it on exactly one of the two headers - enableThreadSubscription/hideThreadSubscriptionButton take their set() builder form on the headers - subscription is offered in 1-1 conversations again, after the group-only detour - the bell needs a parent message that has been sent - gallery captions inherit the text bubble's colour Also drops a duplicated sentence in message-list.mdx. Verified every symbol against feat/pin-save-threads-4.1.9 (SDK) and feat/pin-save-thread (UI Kit) rather than the changelogs. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Both feature PRs ship these versions: uikit-ios#971 (v5.1.22) and chat-sdk-ios#485 (v4.1.9). Updates the six pins in getting-started — the quick-reference table, the Podfile snippet, the SPM exact-version entries and the binary-compatibility warning. CometChatCallsSDK is left at 4.2.3 for now, by request. Note that the repo's own Podfile.lock resolves CometChatCallsSDK 5.0.4, and CometChatPushNotifications requires >= 5.0.0, so that pin is separately stale and worth revisiting. These versions are not on CocoaPods trunk yet — latest published are UI Kit 5.1.18 and Chat SDK 4.1.7 — so hold this page until both releases publish, or `pod install` will fail to resolve. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Three tag examples used "pinned" as a free-form tag. With pin/save messages and pinned conversations now real features, those read as the feature rather than as an arbitrary label. Swapped for neutral tags and added a pointer to the actual API in each place: pin-save-message for messages, pinConversation and set(pinnedBy:) for conversations. Completes the sweep started in a1b76a5, which caught additional-message-filtering and send-message but missed these. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Docs review — ✅ Approve (one should-fix)The iOS entry in this feature family (24 files, +2,387/−15) — two new SDK pages, four new UI Kit pages/guides, plus updates across the component docs. Structurally the cleanest of the five platform PRs. ✅ What passed
🟡 Should-fix — no minimum version stated, and iOS has an extra wrinkleNothing on these pages says which version introduced the feature. That matters more on iOS than elsewhere, because of a distribution gap: CocoaPods trunk's newest <Note>
**Available since v5.1.22** — pin, save, and thread subscriptions require
`CometChatUIKitSwift` v5.1.22 or later.
CocoaPods currently publishes up to 5.1.18; use Swift Package Manager to get
5.1.22 until the pod catches up.
</Note>Worth confirming the Chat SDK minimum the same way (trunk shows 🔁 5 of 5 — worth fixing at the template level
Every page in this rollout ships without an availability callout, and in each case the feature exists only in the newest release. The transcription rollout (#487) already does this correctly across all five platforms — same pattern, ready to copy into the template. Content is accurate and well-structured. Approving on the assumption the version note lands here or in a quick follow-up. 🚀 🤖 Automated docs review (Mintlify link/redirect/nav checks + API verification against iOS SDK / UI Kit sources and CocoaPods trunk). |
jitvarpatil
left a comment
There was a problem hiding this comment.
Docs review — ✅ Approve (one should-fix)
The iOS entry in this feature family (24 files, +2,387/−15) — two new SDK pages, four new UI Kit pages/guides, plus updates across the component docs. Structurally the cleanest of the five platform PRs.
✅ What passed
- Structure: all 7 new pages wired into nav; 0 nav breaks, 0 orphans, 0 broken links (176 files scanned), redirects +0; no placeholders/TODOs across 2,387 lines.
- SDK APIs verified on mainline:
pinMessage·unpinMessage·saveMessage·unsaveMessage·subscribeToThread·unsubscribeFromThread·isPinMessageEnabled·isSaveMessageEnabled. - UI Kit components verified:
CometChatPinnedMessages/CometChatSavedMessagesland onmaster-v5in the commit "v5.1.22 — pin & save messages, pinned conversations, thread subscriptions (#971)" — i.e. they ship in 5.1.22, the current release.
🟡 Should-fix — no minimum version stated, and iOS has an extra wrinkle
Nothing on these pages says which version introduced the feature. That matters more on iOS than elsewhere, because of a distribution gap:
CocoaPods trunk's newest CometChatUIKitSwift is 5.1.18 — four releases behind 5.1.22 (the trunk list ends … 5.1.15, 5.1.16, 5.1.18). So a reader following the CocoaPods install path literally cannot obtain the components documented here; only SPM consumers can, until the pod catches up.
<Note>
**Available since v5.1.22** — pin, save, and thread subscriptions require
`CometChatUIKitSwift` v5.1.22 or later.
CocoaPods currently publishes up to 5.1.18; use Swift Package Manager to get
5.1.22 until the pod catches up.
</Note>Worth confirming the Chat SDK minimum the same way (trunk shows CometChatSDK 4.1.9) — the APIs are on SDK mainline, but I couldn't pin their first released version from the tags available to me.
🔁 5 of 5 — worth fixing at the template level
| PR | Platform | Requires |
|---|---|---|
| #461 | Flutter | cometchat_sdk 5.0.7 / uikit 6.1.1 |
| #493 | React Native | chat-sdk-react-native 4.1.0 |
| #464 | React | chat-uikit-react 7.2.0 |
| #469 | JavaScript | chat-sdk-javascript 4.2.0 |
| #465 | iOS | CometChatUIKitSwift 5.1.22 |
Every page in this rollout ships without an availability callout, and in each case the feature exists only in the newest release. The transcription rollout (#487) already does this correctly across all five platforms — same pattern, ready to copy into the template.
Content is accurate and well-structured. Approving on the assumption the version note lands here or in a quick follow-up. 🚀
🤖 Automated docs review (Mintlify link/redirect/nav checks + API verification against iOS SDK / UI Kit sources and CocoaPods trunk).
…d threads Review feedback on #465: none of the new pages said which release introduced the feature, and iOS has a distribution gap that makes it matter more than on the other platforms. New pages get a callout at the top; sections added to existing pages get an inline "Available since" marker rather than a page-level note, so the version claim is scoped to the new API and not the whole page. Versions verified against CocoaPods trunk and the public git tags: - UI Kit components/features ship in 5.1.22, which pairs with Chat SDK 4.1.9. Trunk's newest CometChatUIKitSwift is 5.1.18, so the UI Kit callouts point CocoaPods users at SPM — the 5.1.22 tag does exist on cometchat-uikit-ios, so pinning the exact version resolves. - The SDK APIs need 4.1.9, which IS published on trunk, so those pages carry the version line without the CocoaPods caveat. Also corrects two prerequisites that were wrong or unhelpfully vague: guide-thread-subscription asked for "Chat SDK v5 or later", a version that does not exist on iOS, and guide-pin-save-message asked for "UIKit v5+", which would let a reader install 5.1.18 and not find the feature. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
210a049
…d threads Review feedback on #465: none of the new pages said which release introduced the feature. New pages get a callout at the top; sections added to existing pages get an inline "Available since" marker rather than a page-level note, so the version claim is scoped to the new API and not the whole page. UI Kit components and features ship in 5.1.22, which pairs with Chat SDK 4.1.9; the SDK APIs need 4.1.9. Also corrects two prerequisites that were wrong or unhelpfully vague: guide-thread-subscription asked for "Chat SDK v5 or later", a version that does not exist on iOS, and guide-pin-save-message asked for "UIKit v5+", which would let a reader install an older 5.1.x and not find the feature. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
210a049 to
929a7ec
Compare
Re-review — ✅ ApproveMy earlier approval was auto-dismissed by the new commits. Re-reviewed on head ✅ The should-fix is addressed — thoroughlyVersion notes now appear on all six feature pages, and they're better than what I suggested: they state both the UI Kit and its Chat SDK floor, and the guides repeat it in their prerequisites.
Nice touch stating the transitive SDK floor — that's the bit integrators usually trip on. Structure re-verified on the new head: 0 nav breaks, 0 orphans, 0 broken links (176 files), redirects +0. 🟡 One optional addition — the CocoaPods gap is still openRe-checked just now: CocoaPods trunk's newest Optional one-liner alongside the existing note:
Entirely optional; it's a distribution issue rather than a docs defect, and it resolves itself the moment the pod is pushed. Not worth holding the PR for. Content is accurate, structurally clean, and now correctly version-gated. Ready to merge. 🚀 🤖 Automated docs review — re-check after fixes. |
jitvarpatil
left a comment
There was a problem hiding this comment.
Re-review — ✅ Approve
My earlier approval was auto-dismissed by the new commits. Re-reviewed on head 929a7ec.
✅ The should-fix is addressed — thoroughly
Version notes now appear on all six feature pages, and they're better than what I suggested: they state both the UI Kit and its Chat SDK floor, and the guides repeat it in their prerequisites.
sdk/ios/pin-save-message.mdx— "Available from Chat SDK v4.1.9"sdk/ios/thread-subscription.mdx— "Available from Chat SDK v4.1.9"ui-kit/ios/pinned-messages.mdx/saved-messages.mdx— "Available from UI Kit v5.1.22 … which depends onCometChatSDKv4.1.9"ui-kit/ios/guide-pin-save-message.mdx/guide-thread-subscription.mdx— same, plus a prerequisites line
Nice touch stating the transitive SDK floor — that's the bit integrators usually trip on.
Structure re-verified on the new head: 0 nav breaks, 0 orphans, 0 broken links (176 files), redirects +0.
🟡 One optional addition — the CocoaPods gap is still open
Re-checked just now: CocoaPods trunk's newest CometChatUIKitSwift is still 5.1.18 (has 5.1.22: false). So a reader who follows the Pods install path can't yet get 5.1.22, and the note as written ("requires v5.1.22 or later") will read as simply unavailable to them.
Optional one-liner alongside the existing note:
CocoaPods currently publishes up to 5.1.18 — use Swift Package Manager until the pod catches up.
Entirely optional; it's a distribution issue rather than a docs defect, and it resolves itself the moment the pod is pushed. Not worth holding the PR for.
Content is accurate, structurally clean, and now correctly version-gated. Ready to merge. 🚀
🤖 Automated docs review — re-check after fixes.
Type of Change
Checklist
🤖 Generated with Claude Code