Repository navigation
Fix UI Kit quickstarts so they install the latest kits and build as written (Docs MCP bundles are built from them) - #568
raj-dubey1 wants to merge 13 commits into
Conversation
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Automations to automatically generate PRs for you. |
8136fcb to
e8c671c
Compare
…ve bundles Rebased onto main as a single commit (was e8c671c). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Efu4EKfePzK3Z6QQVp2hm4
iOS: SPM only (UI Kit 5.2.3, SDK transitive, Calls 5.0.4 optional, iOS 15.1); CocoaPods marked deprecated (last pod 5.1.18), incl. llms-ios-v5 and calling pages. Android: 6.1.1 / calls 5.0.4 everywhere; Compose BOM + material3, compilerOptions instead of kotlinOptions, AGP 9 built-in Kotlin, CallbackListener<String>; accurate Compose 1.7 warning. React: type-only imports of User/Group/Conversation (TS6133 under Vite's strict template), keep index.css + StrictMode in main.tsx, CRA marked deprecated. React Native: Node 22.13+, calling peers match calls-sdk-react-native 5.0.6, drop the stale async-storage local_repo step. Angular: Angular 17-21, install cards-angular + dompurify, compile fixes, production budget step. Each fix verified by building a fresh app from the page snippets. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Efu4EKfePzK3Z6QQVp2hm4
… leave CODEOWNERS to main Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Efu4EKfePzK3Z6QQVp2hm4
e8c671c to
a81256c
Compare
State set in a login promise, await or subscription is now a signal, so the view updates without zone.js (a fresh Angular 21 app stayed on Loading...). Angular 20+ file names on the experience pages, measured production budget, CSS that follows the layout warning, append to assets, and compile fixes found while building every changed sample under strict templates. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Efu4EKfePzK3Z6QQVp2hm4
…gnal Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Efu4EKfePzK3Z6QQVp2hm4
…gnalWrites warning Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Efu4EKfePzK3Z6QQVp2hm4
…n.ts and App names, React imports and v7 APIs - React Native: iOS 15.1 everywhere; drop the arm64 simulator exclusion and bitcode lines; install async-storage ^2.1.2 up front (Calls SDK range) and drop the stale local_repo step and the unused datetimepicker; call-features installs the Calls SDK peers. - Angular: init()?.then and App/app.ts in main.ts samples; css import path in the migration guide and troubleshooting; calls init sample corrected. - React: missing SDK imports, CometChatMessages and .AIButton (not in v7), ButtonIcon children, callSettingsBuilder is a SessionSettings object; escape the <21 peer ranges so the pages parse. - iOS: 'needs CometChatSDK 4.1.9 or later' instead of an exact dependency. - Android: explicit AGP 8 comment on the Kotlin plugin line. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Efu4EKfePzK3Z6QQVp2hm4
…rding nits Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Efu4EKfePzK3Z6QQVp2hm4
…import what they use; nits Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Efu4EKfePzK3Z6QQVp2hm4
…sions React (type-checked under strict + noUnusedLocals against UI Kit 7.2.4): - card-bubble: CometChatCardAction comes from @cometchat/cards-react. - guide-group-chat-setup / guide-new-chat-creation: SDK imports in each step; joinGroup takes the GroupType enum; Step 1's imports resolve. - custom-text-formatter / custom-plugin: concrete type imports. - incoming-call: callSettingsBuilder documented as 7.2.4 behaves (the value isn't applied); session settings go on CometChatProvider config. - thread-header unused useState; message-privately example unused handler. Versions and contradictions: - Angular overview: 17-21; RN SDK pages: Node 18+, RN 0.65+, iOS per RN version, Podfile min_ios_version_supported, template SDK levels kept; RN troubleshooting Calls install; RN overview peers; Calls setup ranges. - iOS: rich text from 5.1.12; 5.1.22 features need Swift Package Manager; CocoaPods-to-SPM steps (pod deintegrate, iOS 15.1); hideAvatar Bool?; set(messageAlignment:); guides and campaigns use SPM. - Android: upgrade table's v5 module; Compose BOM and material3 in getting-started; Jetifier optional; call-logs 5.0.4; overview deps. - Angular: standalone: true, signals in zoneless-sensitive samples, numeric alignment enum, full install commands, "17-20". - mcp-server: bundle wording and repo link text. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Efu4EKfePzK3Z6QQVp2hm4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Efu4EKfePzK3Z6QQVp2hm4
…he template; review nits - calls/react-native setup and overview: @5 with the Calls SDK's declared peer ranges; Node and iOS minimums from React Native 0.88. - RN calling pages: deployment-target lines go inside the template's post_install (a second hook fails); keep the template's compileSdk and targetSdk, set minSdk 24. - Android getting-started: AGP 8.x/9.x on JDK 17+, compileSdk 36; troubleshooting Jetifier and enableCalling rows; one kotlinOptions wording. - React: CometChat imports in the group-chat blocks, Vite-only card, ^7.2.4, callSettingsBuilder is a SessionSettings object. - Angular date-time samples set user and compile; iOS and RN wording nits. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Efu4EKfePzK3Z6QQVp2hm4
…erkat+, Compose BOM in the upgrade guide, React card action type, async-storage notes, Angular imports Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Efu4EKfePzK3Z6QQVp2hm4
ketanyekale
left a comment
There was a problem hiding this comment.
Approving, with one merge-order condition. Every page here is a modify; nothing is added, removed or renamed, so there's no redirect or 404 risk. The Mintlify build and link-rot checks pass.
Merge order (must do)
- The live Docs MCP doesn't serve
angular-uikit-quickstartyet.list_cometchat_bundlesreturns 10 bundles with no Angular one, and none was verified after 2026-04-29. As you noted, deploy the MCP server first. Otherwisemcp-server.mdxlists a bundle that agents can't fetch.
Checked against the registries (all match)
- iOS:
cometchat-uikit-ios5.2.3 is the latest release. ItsPackage.swiftdeclareschat-sdk-iosfrom: "4.1.10"andcards-sdk-iosfrom: "1.2.0", so moving from an exact pin to Up to Next Major is right.calls-sdk-ios5.0.4 is real. The old 5.1.22 shows up only in "Available since" lines, which is fine. - Android:
chatuikit-kotlin-androidandchatuikit-compose-androidare both 6.1.1 on Cloudsmith. The 6.1.1 POM pulls inchat-sdk-android5.0.7 andchatuikit-core-android6.1.1, which matchesllms-android-v6.calls-sdk-android5.0.4 is the latest. No6.0.x,CallbackListener<String?>orkotlinOptionssnippets are left. - React:
@cometchat/chat-uikit-react7.2.4 is the latest. Theimport type { User, Group, Conversation }change inApp.tsxis correct. - React Native: UI Kit 5.5.2 and
calls-sdk-react-native5.0.6 are both the latest. The Calls SDK's declared peers match the pinned ranges exactly (react-native-svg^15.12.0,async-storage^2.1.2,react-native-webrtc^124.0.7,react-native-performance^5.1.2,react-native-url-polyfill^2.0.0,react-native-background-timer^2.4.1). Droppingdatetimepickermatches the 5.5.2 peer list. Removinglocal_repoholds up because async-storage is now pinned to 2.x, and nothing links to the removed troubleshooting anchor. - Angular: UI Kit 5.2.2's peers are
@angular/core>=17.0.0 <22.0.0,@cometchat/cards-angular^1.0.0,dompurify^3.0.0 andchat-sdk-javascript^4.2.0. The 17–21 range and the install commands match.
Docs structure
- No unresolved nav refs, so the build is safe. No broken internal links in the changed files or anywhere in scope. No pages dropped from nav. The 7 "orphans" are the hidden
llms-*AI reference pages and one legacy Angular 2.0 page, all already like that on main. - Anchors referenced from the new text exist (
campaigns#step-3-add-cometchatsdk-to-the-extension,troubleshooting#cocoapods-issues).
Nits (optional)
mcp-server.mdx: theget_cometchat_implementation_bundlecard describes what will be true only once the new MCP is deployed. That's one more reason to merge after the deploy.
jitvarpatil
left a comment
There was a problem hiding this comment.
Approving — with two merge-ordering conditions
Valuable PR: these pages are the only input the Docs MCP server gives AI coding agents, so a stale version here turns straight into generated code that doesn't build. It is 118 files, so the below is a targeted check of the riskiest claims rather than a line-by-line pass — but everything I checked is right.
✅ Every pinned version is published
| Kit | Pinned here | Published latest |
|---|---|---|
| iOS UI Kit | 5.2.3 | 5.2.3 (public release Oct 8) |
| Android chatuikit | 6.1.1 | 6.1.1 (kotlin + compose on Cloudsmith) |
| React UI Kit | 7.2.4 | 7.2.4 |
| React Native UI Kit | 5.5.2 | 5.5.2 |
Several recent docs PRs pinned versions that weren't published yet; this one avoids that across the board.
✅ iOS — verified against the published 5.2.3 xcframework and Package.swift
.iOS("15.1").CometChatSDK from: "4.1.10"— so "nobody pins it by hand; an exact 4.1.9 pin fails to resolve" is exactly right.enum MessageListAlignment { case standard, leftAligned }.CometChatMessageList.hideAvatar: Bool?.
✅ Peer dependencies
- Angular: kit 5.2.2 peers
@angular/core >=17.0.0 <22.0.0, so the Angular 21 samples are in range. - RN
react-native-svg: the UI Kit declares"*"while the Calls SDK requires^15.12.0— pinning to the Calls range is the right call, since the kit's own constraint gives a reader nothing to work with. - RN async-storage: not a declared peer, consistent with treating it as a runtime requirement rather than a dependency.
🟠 Condition 1 — #556 must merge with or before this
This PR makes 6.1.1 the install version on every Android page. In 6.1.1, CometChatNotificationFeed's callbacks changed from public var to private var + setOnX(...) setters (CometChatNotificationFeed.kt:84-87, 521-536). #556 migrates the feed.onX = { … } snippets on notification-feed.mdx and campaigns.mdx.
The two PRs share no files, so nothing will flag the gap: if this lands alone, the quickstart installs 6.1.1 while those pages show code that doesn't compile against it. #556 was waiting on 6.1.1 to publish — it now has, and I've approved it.
🟠 Condition 2 — #535 overlaps 8 iOS files and disagrees on a fact
Both edit getting-started, calling-integration, call-features, core-features, llms-ios-v5, threaded-messages-header, troubleshooting and upgrading-from-v4. Beyond the conflicts, they contradict each other on the SPM dependency, and this PR has it right: #535 still says UI Kit versions before 5.2.2 don't declare CometChatSDK and to pin 4.1.9 for 5.1.22–5.2.1, but the public 5.2.1 Package.swift already declares from: "4.1.10", so that pin fails to resolve on 5.2.1.
Suggested order: merge this first, then rebase #535 and drop its conflicting SPM paragraph — that resolves #535's remaining issue for free instead of reconciling two versions of the same section.
Why
The Docs MCP server builds its implementation bundles from these pages: each bundle is a platform's integration guide plus its AI reference (llms) page. So these pages are the only source for what AI coding agents get. I followed each quickstart on the latest kit and toolchain. These fixes are what it took for an app built only from the pages to install and compile.
Page fixes, against the latest releases
iOS (UI Kit 5.2.3, chat-sdk-ios 4.1.10, calls-sdk-ios 5.0.4)
getting-started,llms-ios-v5,calling-integration,call-features,ai-assistant-chat-history,overview,components-overview,troubleshooting:Package.swiftpulls inCometChatSDK4.1.10+, so nobody pins it by hand any more; an exact 4.1.9 pin fails to resolve.pod 'CometChatUIKitSwift', '5.1.22', but CocoaPods trunk stops at 5.1.18.message-list: the type isMessageListAlignment(.standard/.leftAligned), andhideAvatarisBool?.threaded-messages-headerno longer shows.right.CometChatSDK4.1.9 or later and that the package manager resolves it. They no longer read as an exact-pin step.Android (chatuikit 6.1.1, calls-sdk-android 5.0.4)
6.+. Coversgetting-started*,llms-android-v6,calling-integration,call-features,upgrading-from-v5andmessage-template.CallbackListener<String>replaces<String?>.material3are added.compilerOptionsreplaceskotlinOptions, which is an error on Kotlin 2.4.kotlin.android. AGP 8 is still covered.React (UI Kit 7.2.4)
integration-reactand 41 other pages:App.tsximportedCometChatonly for types, which failsnpm run buildon Vite's default strict template (TS6133). They now useimport type { User, Group, Conversation }.main.tsxkeeps./index.cssandStrictMode.<21ranges are escaped so the pages parse.CometChat.Xwith no import now import it, as a type or as a value whereinstanceofor SDK calls need it.CometChatMessagesandCometChatMessageComposer.AIButton.callSettingsBuilderis aSessionSettingsobject.React Native (UI Kit 5.5.2, calls-sdk-react-native 5.0.6)
@react-native-async-storage/async-storage@^2.1.2andreact-native-svg@^15.12.0, the ranges the Calls SDK declares, so adding calling later doesn't downgrade anything.@react-native-community/datetimepickeris dropped; the 5.5.2 kit doesn't use it.call-features. The old list was from v4 and failed withERESOLVE.local_repoGradle step is gone, also fromsdk/react-native/setup-sdkandllms-react-native-v4. The Chat SDK needs async-storage at runtime but doesn't declare it.Angular (UI Kit 5.2.2)
integration,quickstart,components/cometchat-message-list:quickstartsaid 22 is supported, but the kit's peer range is<22.@cometchat/cards-angularanddompurify.init()?.then.awaitor a subscription uses signals. A fresh Angular 21 app is zoneless, and plain fields left it stuck on "Loading...".main.tssamples useinit()?.thenandApp/app.ts(Angular 20+), with a note for 17–19.mcp-server.mdx: the bundle table says which pages each bundle is built from, and addsangular-uikit-quickstart. Deploy the Docs MCP server before merging this, since the live server doesn't serve the Angular bundle yet.Verification
I built fresh apps from the page snippets only:
assembleDebugpasses.xcodebuildsucceeds for the Simulator.npm run buildpasses; it failed with TS6133 before. Login, conversation list and sending a message work.ERESOLVE; it failed before.npm installwithout--legacy-peer-depspasses,ng buildpasses with no warnings, and login, the conversation list and sending a message work. All 32 converted samples compile under strict templates.The Docs MCP's new package-version check passes for every pin on this preview.
Notes
CODEOWNERSon main reads- @jitvarpatil. GitHub reads-as a path, so no default reviewer is requested. This PR no longer changes that file; fix it separately if that's intended.isKeywordReferencePresent, but its examples useisKeywordsReferencePresent. Not changed here./ui-kit/react/integration-*to the site root. Production is unaffected.🤖 Generated with Claude Code
https://claude.ai/code/session_01Efu4EKfePzK3Z6QQVp2hm4