Skip to content

Fix UI Kit quickstarts so they install the latest kits and build as written (Docs MCP bundles are built from them) - #568

Open
raj-dubey1 wants to merge 13 commits into
mainfrom
fix/mcp-bundles-in-docs
Open

raj-dubey1 wants to merge 13 commits into
mainfrom
fix/mcp-bundles-in-docs

Conversation

@raj-dubey1

@raj-dubey1 raj-dubey1 commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

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:
    • Install with Swift Package Manager, Up to Next Major from 5.2.3. The kit's Package.swift pulls in CometChatSDK 4.1.10+, so nobody pins it by hand any more; an exact 4.1.9 pin fails to resolve.
    • The Calls SDK is 5.0.4 and optional.
    • Minimum iOS is 15.1.
    • CocoaPods is marked deprecated. The pages said pod 'CometChatUIKitSwift', '5.1.22', but CocoaPods trunk stops at 5.1.18.
  • message-list: the type is MessageListAlignment (.standard / .leftAligned), and hideAvatar is Bool?. threaded-messages-header no longer shows .right.
  • Feature pages (pinned and saved messages, thread subscription) say they need CometChatSDK 4.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)

  • One version everywhere, replacing 6.0.6 / 6.0.3 / 5.0.1 / 6.+. Covers getting-started*, llms-android-v6, calling-integration, call-features, upgrading-from-v5 and message-template.
  • Build fixes on the latest toolchain (AGP 9.4, Gradle 9.8, Kotlin 2.4). Each one fails the build without it:
    • CallbackListener<String> replaces <String?>.
    • Compose BOM and material3 are added.
    • compilerOptions replaces kotlinOptions, which is an error on Kotlin 2.4.
    • An AGP 9 note: built-in Kotlin, so don't apply kotlin.android. AGP 8 is still covered.
  • The Compose 1.7 warning is reworded: a normal build gets Compose 1.8 through cards-android, and only a forced 1.7 pin crashes.

React (UI Kit 7.2.4)

  • integration-react and 41 other pages: App.tsx imported CometChat only for types, which fails npm run build on Vite's default strict template (TS6133). They now use import type { User, Group, Conversation }.
  • main.tsx keeps ./index.css and StrictMode.
  • CRA is marked deprecated.
  • The peer list includes the optional calls SDK, and the <21 ranges are escaped so the pages parse.
  • Code blocks that used CometChat.X with no import now import it, as a type or as a value where instanceof or SDK calls need it.
  • Removed APIs that don't exist in v7: CometChatMessages and CometChatMessageComposer.AIButton. callSettingsBuilder is a SessionSettings object.

React Native (UI Kit 5.5.2, calls-sdk-react-native 5.0.6)

  • Node 22.13+, which React Native 0.88 requires.
  • The base install pins @react-native-async-storage/async-storage@^2.1.2 and react-native-svg@^15.12.0, the ranges the Calls SDK declares, so adding calling later doesn't downgrade anything. @react-native-community/datetimepicker is dropped; the 5.5.2 kit doesn't use it.
  • The calling dependencies match the Calls SDK's declared peers, including on call-features. The old list was from v4 and failed with ERESOLVE.
  • iOS deployment target is 15.1 everywhere. Podfile samples no longer exclude arm64 for the simulator, which broke Apple Silicon Macs, or set bitcode.
  • The stale async-storage local_repo Gradle step is gone, also from sdk/react-native/setup-sdk and llms-react-native-v4. The Chat SDK needs async-storage at runtime but doesn't declare it.
  • The AI page lists the 5.5.2 peers instead of saying "verified against 5.4.0".

Angular (UI Kit 5.2.2)

  • integration, quickstart, components/cometchat-message-list:
    • Angular 17–21. quickstart said 22 is supported, but the kit's peer range is <22.
    • The install includes @cometchat/cards-angular and dompurify.
    • Angular 20+ file names.
    • init()?.then.
    • A working CSS import path.
    • A production budget step.
    • Numeric alignment enums.
  • Every sample that sets state in a promise, an await or a subscription uses signals. A fresh Angular 21 app is zoneless, and plain fields left it stuck on "Loading...".
  • main.ts samples use init()?.then and App/app.ts (Angular 20+), with a note for 17–19.
  • The CSS import path is fixed in the migration guide and troubleshooting.

mcp-server.mdx: the bundle table says which pages each bundle is built from, and adds angular-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:

  • Android: Compose and Views apps on AGP 9.4.1, plus Compose on AGP 8.13. assembleDebug passes.
  • iOS: a chat app and a calls app built with Xcode. xcodebuild succeeds for the Simulator.
  • React: a Vite react-ts app. npm run build passes; it failed with TS6133 before. Login, conversation list and sending a message work.
  • React Native: an RN 0.88 project. Every install command passes with no ERESOLVE; it failed before.
  • Angular: an Angular 21 app built only from the Docs MCP, plus an Angular 19 app. npm install without --legacy-peer-deps passes, ng build passes 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

  • CODEOWNERS on 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.
  • The moderation Add Rule schema says isKeywordReferencePresent, but its examples use isKeywordsReferencePresent. Not changed here.
  • On PR previews, Mintlify redirects /ui-kit/react/integration-* to the site root. Production is unaffected.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Efu4EKfePzK3Z6QQVp2hm4

@mintlify

mintlify Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated
cometchat 🟢 Ready View Preview Oct 19, 2026, 12:45 PM

💡 Tip: Enable Automations to automatically generate PRs for you.

raj-dubey1 and others added 3 commits October 19, 2026 14:36
…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
@raj-dubey1
raj-dubey1 force-pushed the fix/mcp-bundles-in-docs branch from e8c671c to a81256c Compare October 19, 2026 09:36
@raj-dubey1 raj-dubey1 changed the title Fix stale iOS, Android and Angular UI Kit pages (Docs MCP bundles are built from them) Fix UI Kit quickstarts so they install the latest kits and build as written (Docs MCP bundles are built from them) Oct 19, 2026
raj-dubey1 and others added 2 commits October 19, 2026 15:32
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
…gnalWrites warning

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Efu4EKfePzK3Z6QQVp2hm4
raj-dubey1 and others added 2 commits October 19, 2026 16:31
…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
raj-dubey1 and others added 2 commits October 19, 2026 17:17
…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
…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 ketanyekale left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

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-quickstart yet. list_cometchat_bundles returns 10 bundles with no Angular one, and none was verified after 2026-04-29. As you noted, deploy the MCP server first. Otherwise mcp-server.mdx lists a bundle that agents can't fetch.

Checked against the registries (all match)

  • iOS: cometchat-uikit-ios 5.2.3 is the latest release. Its Package.swift declares chat-sdk-ios from: "4.1.10" and cards-sdk-ios from: "1.2.0", so moving from an exact pin to Up to Next Major is right. calls-sdk-ios 5.0.4 is real. The old 5.1.22 shows up only in "Available since" lines, which is fine.
  • Android: chatuikit-kotlin-android and chatuikit-compose-android are both 6.1.1 on Cloudsmith. The 6.1.1 POM pulls in chat-sdk-android 5.0.7 and chatuikit-core-android 6.1.1, which matches llms-android-v6. calls-sdk-android 5.0.4 is the latest. No 6.0.x, CallbackListener<String?> or kotlinOptions snippets are left.
  • React: @cometchat/chat-uikit-react 7.2.4 is the latest. The import type { User, Group, Conversation } change in App.tsx is correct.
  • React Native: UI Kit 5.5.2 and calls-sdk-react-native 5.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). Dropping datetimepicker matches the 5.5.2 peer list. Removing local_repo holds 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 and chat-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: the get_cometchat_implementation_bundle card describes what will be true only once the new MCP is deployed. That's one more reason to merge after the deploy.

@jitvarpatil jitvarpatil left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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.

This branch was successfully deployed

1 active deployment
staging — 7532dbb4 Deployed Oct 19, 2026 by mintlify[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

4 participants