@cometchat/skills 4.4.2 → 5.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +55 -0
- package/.claude-plugin/plugin.json +14 -0
- package/CHANGELOG.md +44 -0
- package/LICENSE +21 -0
- package/MIGRATING.md +187 -0
- package/README.md +52 -156
- package/RULES.md +125 -0
- package/bin/cometchat-skills.mjs +1280 -0
- package/bin/legacy-skills.json +95 -0
- package/catalogs/android-v6.json +1646 -0
- package/catalogs/flutter-v6.json +651 -0
- package/catalogs/ios-v5.json +1383 -0
- package/catalogs/rn-calls-v5.json +134 -0
- package/catalogs/rn-calls-v5.symbols.txt +58 -0
- package/catalogs/rn-sdk-v4.json +672 -0
- package/catalogs/rn-v5.json +449 -0
- package/catalogs/rn-v5.symbols.txt +216 -0
- package/catalogs/sdk-android-v5.json +514 -0
- package/contracts.android-calls-v5.json +122 -0
- package/contracts.android-v6.json +135 -0
- package/contracts.angular-v5.json +694 -0
- package/contracts.flutter-calls-v5.json +77 -0
- package/contracts.flutter-v6.json +126 -0
- package/contracts.ios-calls-v5.json +67 -0
- package/contracts.ios-v5.json +436 -0
- package/contracts.json +82 -0
- package/contracts.rn-calls-v5.json +77 -0
- package/contracts.rn-v5.json +727 -0
- package/contracts.sdk-android-v5.json +15 -0
- package/contracts.web-calls-v5.json +45 -0
- package/features.android-calls-v5.json +246 -0
- package/features.android-v6.json +65 -0
- package/features.angular-v5.json +521 -0
- package/features.flutter-calls-v5.json +286 -0
- package/features.flutter-v6.json +484 -0
- package/features.ios-calls-v5.json +236 -0
- package/features.ios-v5.json +573 -0
- package/features.json +61 -0
- package/features.rn-calls-v5.json +187 -0
- package/features.rn-v5.json +614 -0
- package/features.sdk-android-v5.json +40 -0
- package/features.sdk-jsv4.json +24 -0
- package/features.web-calls-v5.json +108 -0
- package/package.json +156 -74
- package/peers.yaml +355 -0
- package/registry/README.md +31 -0
- package/registry/android-calls-v5.json +94 -0
- package/registry/android-v6.json +177 -0
- package/registry/angular-v5.json +154 -0
- package/registry/flutter-calls-v5.json +94 -0
- package/registry/flutter-v6.json +159 -0
- package/registry/ios-calls-v5.json +99 -0
- package/registry/ios-v5.json +152 -0
- package/registry/rn-calls-v5.json +99 -0
- package/registry/rn-v5.json +169 -0
- package/registry/sdk-android-v5.json +93 -0
- package/registry/sdk-jsv4.json +93 -0
- package/registry/web-calls-v5.json +94 -0
- package/registry/web-v7.json +154 -0
- package/skills/cometchat/SKILL.md +47 -2096
- package/skills/cometchat-a11y/SKILL.md +44 -472
- package/skills/cometchat-analytics/SKILL.md +61 -0
- package/skills/cometchat-android-v5-calls-sdk/SKILL.md +206 -0
- package/skills/cometchat-android-v5-calls-sdk/references/build-truth.md +63 -0
- package/skills/cometchat-android-v5-calls-sdk/references/docs-map.md +119 -0
- package/skills/cometchat-android-v5-calls-sdk/references/method-map.md +53 -0
- package/skills/cometchat-android-v5-calls-sdk/references/pitfalls.md +72 -0
- package/skills/cometchat-android-v5-calls-sdk/references/ringing.md +92 -0
- package/skills/cometchat-android-v5-calls-sdk/references/user-switch.md +90 -0
- package/skills/cometchat-android-v5-sdk/SKILL.md +127 -0
- package/skills/cometchat-android-v5-sdk/references/app-surface.md +88 -0
- package/skills/cometchat-android-v5-sdk/references/docs-map.md +91 -0
- package/skills/cometchat-android-v6-builder-settings/SKILL.md +51 -137
- package/skills/cometchat-android-v6-calls/SKILL.md +128 -413
- package/skills/cometchat-android-v6-compose-components/SKILL.md +84 -194
- package/skills/cometchat-android-v6-compose-customization/SKILL.md +66 -411
- package/skills/cometchat-android-v6-compose-placement/SKILL.md +154 -237
- package/skills/cometchat-android-v6-core/SKILL.md +236 -672
- package/skills/cometchat-android-v6-core/references/anti-patterns.md +31 -0
- package/skills/cometchat-android-v6-core/references/component-props.md +168 -0
- package/skills/cometchat-android-v6-core/references/docs-map.md +153 -0
- package/skills/cometchat-android-v6-core/references/layout.md +112 -0
- package/skills/cometchat-android-v6-core/references/lifecycle.md +75 -0
- package/skills/cometchat-android-v6-core/references/setup-credentials.md +105 -0
- package/skills/cometchat-android-v6-core/references/troubleshooting.md +36 -0
- package/skills/cometchat-android-v6-events/SKILL.md +46 -184
- package/skills/cometchat-android-v6-extensions/SKILL.md +39 -179
- package/skills/cometchat-android-v6-features/SKILL.md +74 -143
- package/skills/cometchat-android-v6-kotlin-components/SKILL.md +75 -193
- package/skills/cometchat-android-v6-kotlin-customization/SKILL.md +67 -419
- package/skills/cometchat-android-v6-kotlin-placement/SKILL.md +77 -223
- package/skills/cometchat-android-v6-migration/SKILL.md +67 -378
- package/skills/cometchat-android-v6-production/SKILL.md +41 -179
- package/skills/cometchat-android-v6-push/SKILL.md +39 -289
- package/skills/cometchat-android-v6-testing/SKILL.md +50 -265
- package/skills/cometchat-android-v6-troubleshooting/SKILL.md +70 -254
- package/skills/cometchat-angular-v5-calls/SKILL.md +193 -0
- package/skills/cometchat-angular-v5-components/SKILL.md +131 -0
- package/skills/cometchat-angular-v5-components/references/catalog.md +111 -0
- package/skills/cometchat-angular-v5-components/references/host-composed.md +46 -0
- package/skills/cometchat-angular-v5-core/SKILL.md +300 -0
- package/skills/cometchat-angular-v5-core/references/anti-patterns.md +49 -0
- package/skills/cometchat-angular-v5-core/references/component-props.md +55 -0
- package/skills/cometchat-angular-v5-core/references/dependencies.md +66 -0
- package/skills/cometchat-angular-v5-core/references/docs-map.md +132 -0
- package/skills/cometchat-angular-v5-core/references/layout.md +64 -0
- package/skills/cometchat-angular-v5-core/references/lifecycle.md +202 -0
- package/skills/cometchat-angular-v5-core/references/setup-credentials.md +137 -0
- package/skills/cometchat-angular-v5-core/references/theming.md +70 -0
- package/skills/cometchat-angular-v5-core/references/troubleshooting.md +27 -0
- package/skills/cometchat-angular-v5-customization/SKILL.md +94 -0
- package/skills/cometchat-angular-v5-features/SKILL.md +107 -0
- package/skills/cometchat-angular-v5-features/references/custom-messages.md +133 -0
- package/skills/cometchat-angular-v5-features/references/formatters.md +28 -0
- package/skills/cometchat-angular-v5-features/references/host-composed-extensions.md +85 -0
- package/skills/cometchat-angular-v5-migration/SKILL.md +40 -0
- package/skills/cometchat-angular-v5-migration/references/migration-guide.md +165 -0
- package/skills/cometchat-angular-v5-patterns/SKILL.md +107 -0
- package/skills/cometchat-angular-v5-placement/SKILL.md +133 -0
- package/skills/cometchat-angular-v5-placement/references/combined-app.md +174 -0
- package/skills/cometchat-angular-v5-placement/references/core-surface.md +199 -0
- package/skills/cometchat-angular-v5-production/SKILL.md +102 -0
- package/skills/cometchat-angular-v5-push/SKILL.md +61 -0
- package/skills/cometchat-angular-v5-testing/SKILL.md +112 -0
- package/skills/cometchat-angular-v5-troubleshooting/SKILL.md +96 -0
- package/skills/cometchat-audit/SKILL.md +61 -0
- package/skills/cometchat-compliance/SKILL.md +63 -0
- package/skills/cometchat-flutter-v5-sdk/SKILL.md +188 -0
- package/skills/cometchat-flutter-v5-sdk/references/doc-corrections.md +55 -0
- package/skills/cometchat-flutter-v5-sdk/references/docs-map.md +211 -0
- package/skills/cometchat-flutter-v5-sdk/references/platform-notes.md +48 -0
- package/skills/cometchat-flutter-v5-sdk/references/transcription.md +87 -0
- package/skills/cometchat-flutter-v6-calls/SKILL.md +75 -389
- package/skills/cometchat-flutter-v6-components/SKILL.md +88 -361
- package/skills/cometchat-flutter-v6-core/SKILL.md +154 -593
- package/skills/cometchat-flutter-v6-core/references/anti-patterns.md +55 -0
- package/skills/cometchat-flutter-v6-core/references/docs-map.md +143 -0
- package/skills/cometchat-flutter-v6-core/references/layout.md +45 -0
- package/skills/cometchat-flutter-v6-core/references/lifecycle.md +87 -0
- package/skills/cometchat-flutter-v6-core/references/setup-credentials.md +84 -0
- package/skills/cometchat-flutter-v6-core/references/troubleshooting.md +26 -0
- package/skills/cometchat-flutter-v6-customization/SKILL.md +70 -712
- package/skills/cometchat-flutter-v6-events/SKILL.md +79 -174
- package/skills/cometchat-flutter-v6-features/SKILL.md +55 -394
- package/skills/cometchat-flutter-v6-migration/SKILL.md +68 -367
- package/skills/cometchat-flutter-v6-migration/references/migration-guide.md +132 -0
- package/skills/cometchat-flutter-v6-patterns/SKILL.md +61 -0
- package/skills/cometchat-flutter-v6-placement/SKILL.md +94 -381
- package/skills/cometchat-flutter-v6-production/SKILL.md +59 -615
- package/skills/cometchat-flutter-v6-push/SKILL.md +46 -455
- package/skills/cometchat-flutter-v6-testing/SKILL.md +68 -299
- package/skills/cometchat-flutter-v6-troubleshooting/SKILL.md +54 -878
- package/skills/cometchat-i18n/SKILL.md +35 -404
- package/skills/cometchat-ios-calls/SKILL.md +112 -563
- package/skills/cometchat-ios-components/SKILL.md +44 -834
- package/skills/cometchat-ios-core/SKILL.md +182 -1068
- package/skills/cometchat-ios-core/references/anti-patterns.md +113 -0
- package/skills/cometchat-ios-core/references/docs-map.md +124 -0
- package/skills/cometchat-ios-core/references/install.md +23 -0
- package/skills/cometchat-ios-core/references/layout.md +219 -0
- package/skills/cometchat-ios-core/references/setup-credentials.md +197 -0
- package/skills/cometchat-ios-core/references/swiftui.md +91 -0
- package/skills/cometchat-ios-core/references/troubleshooting.md +100 -0
- package/skills/cometchat-ios-customization/SKILL.md +33 -968
- package/skills/cometchat-ios-features/SKILL.md +29 -738
- package/skills/cometchat-ios-migration/SKILL.md +39 -0
- package/skills/cometchat-ios-placement/SKILL.md +51 -729
- package/skills/cometchat-ios-production/SKILL.md +67 -723
- package/skills/cometchat-ios-push/SKILL.md +24 -602
- package/skills/cometchat-ios-testing/SKILL.md +36 -355
- package/skills/cometchat-ios-troubleshooting/SKILL.md +31 -989
- package/skills/cometchat-ios-v5-sdk/SKILL.md +161 -0
- package/skills/cometchat-ios-v5-sdk/references/docs-map.md +326 -0
- package/skills/cometchat-js-v5-sdk/SKILL.md +95 -0
- package/skills/cometchat-js-v5-sdk/references/docs-map.md +114 -0
- package/skills/cometchat-migrate-from-getstream/SKILL.md +65 -0
- package/skills/cometchat-migrate-from-getstream/references/concept-map.md +98 -0
- package/skills/cometchat-migrate-from-getstream/references/data-migration.md +74 -0
- package/skills/cometchat-migrate-from-getstream/references/feature-map.md +108 -0
- package/skills/cometchat-migrate-from-getstream/references/inventory.md +82 -0
- package/skills/cometchat-migrate-from-getstream/references/native-build.md +9 -0
- package/skills/cometchat-migrate-from-getstream/references/report-template.md +59 -0
- package/skills/cometchat-migrate-from-sendbird/SKILL.md +64 -0
- package/skills/cometchat-migrate-from-sendbird/references/concept-map.md +99 -0
- package/skills/cometchat-migrate-from-sendbird/references/data-migration.md +74 -0
- package/skills/cometchat-migrate-from-sendbird/references/feature-map.md +104 -0
- package/skills/cometchat-migrate-from-sendbird/references/inventory.md +86 -0
- package/skills/cometchat-migrate-from-sendbird/references/native-build.md +10 -0
- package/skills/cometchat-migrate-from-sendbird/references/report-template.md +59 -0
- package/skills/cometchat-migrate-from-twilio/SKILL.md +52 -0
- package/skills/cometchat-migrate-from-twilio/references/concept-map.md +49 -0
- package/skills/cometchat-migrate-from-twilio/references/data-migration.md +50 -0
- package/skills/cometchat-migrate-from-twilio/references/feature-map.md +27 -0
- package/skills/cometchat-migrate-from-twilio/references/inventory.md +53 -0
- package/skills/cometchat-migrate-from-twilio/references/report-template.md +52 -0
- package/skills/cometchat-moderation/SKILL.md +58 -0
- package/skills/cometchat-onboarding/SKILL.md +92 -0
- package/skills/cometchat-onboarding/references/archetypes.md +51 -0
- package/skills/cometchat-onboarding/references/calling-first.md +77 -0
- package/skills/cometchat-onboarding/references/not-in-this-pack.md +8 -0
- package/skills/cometchat-onboarding/references/plan-artifact.md +133 -0
- package/skills/cometchat-onboarding/references/platforms.md +105 -0
- package/skills/cometchat-react-native-bare-patterns/SKILL.md +120 -0
- package/skills/cometchat-react-native-calls/SKILL.md +200 -0
- package/skills/cometchat-react-native-components/SKILL.md +142 -0
- package/skills/cometchat-react-native-core/SKILL.md +335 -0
- package/skills/cometchat-react-native-core/references/anti-patterns.md +79 -0
- package/skills/cometchat-react-native-core/references/component-props.md +105 -0
- package/skills/cometchat-react-native-core/references/dependencies.md +62 -0
- package/skills/cometchat-react-native-core/references/docs-map.md +127 -0
- package/skills/cometchat-react-native-core/references/layout.md +61 -0
- package/skills/cometchat-react-native-core/references/lifecycle.md +64 -0
- package/skills/cometchat-react-native-core/references/setup-credentials.md +39 -0
- package/skills/cometchat-react-native-customization/SKILL.md +198 -0
- package/skills/cometchat-react-native-expo-patterns/SKILL.md +116 -0
- package/skills/cometchat-react-native-features/SKILL.md +122 -0
- package/skills/cometchat-react-native-migration/SKILL.md +103 -0
- package/skills/cometchat-react-native-placement/SKILL.md +158 -0
- package/skills/cometchat-react-native-production/SKILL.md +79 -0
- package/skills/cometchat-react-native-push/SKILL.md +88 -0
- package/skills/cometchat-react-native-sdk/SKILL.md +133 -0
- package/skills/cometchat-react-native-sdk/references/method-map.md +239 -0
- package/skills/cometchat-react-native-sdk/references/page-map.md +96 -0
- package/skills/cometchat-react-native-testing/SKILL.md +94 -0
- package/skills/cometchat-react-native-troubleshooting/SKILL.md +174 -0
- package/skills/cometchat-react-native-v5-sdk/SKILL.md +150 -0
- package/skills/cometchat-react-native-v5-sdk/references/docs-map.md +127 -0
- package/skills/cometchat-react-native-v5-sdk/references/ringing-voip.md +369 -0
- package/skills/cometchat-react-v7-calls/SKILL.md +75 -0
- package/skills/cometchat-react-v7-components/SKILL.md +72 -0
- package/skills/cometchat-react-v7-core/SKILL.md +101 -0
- package/skills/cometchat-react-v7-core/references/anti-patterns.md +19 -0
- package/skills/cometchat-react-v7-core/references/component-props.md +82 -0
- package/skills/cometchat-react-v7-core/references/dependencies.md +23 -0
- package/skills/cometchat-react-v7-core/references/docs-map.md +117 -0
- package/skills/cometchat-react-v7-core/references/layout.md +150 -0
- package/skills/cometchat-react-v7-core/references/lifecycle.md +74 -0
- package/skills/cometchat-react-v7-core/references/setup-credentials.md +58 -0
- package/skills/cometchat-react-v7-core/references/ssr.md +11 -0
- package/skills/cometchat-react-v7-core/references/theming.md +52 -0
- package/skills/cometchat-react-v7-customization/SKILL.md +84 -0
- package/skills/cometchat-react-v7-features/SKILL.md +92 -0
- package/skills/cometchat-react-v7-migration/SKILL.md +39 -0
- package/skills/cometchat-react-v7-migration/references/migration-guide.md +119 -0
- package/skills/cometchat-react-v7-patterns/SKILL.md +43 -0
- package/skills/cometchat-react-v7-placement/SKILL.md +106 -0
- package/skills/cometchat-react-v7-placement/references/recipes.md +354 -0
- package/skills/cometchat-react-v7-production/SKILL.md +84 -0
- package/skills/cometchat-react-v7-push/SKILL.md +53 -0
- package/skills/cometchat-react-v7-testing/SKILL.md +60 -0
- package/skills/cometchat-react-v7-troubleshooting/SKILL.md +47 -0
- package/skills/cometchat-security/SKILL.md +80 -0
- package/skills/cometchat-self-host/SKILL.md +56 -0
- package/test-suite/README.md +70 -0
- package/test-suite/catalogs/android-calls-v5.json +830 -0
- package/test-suite/catalogs/android-calls-v5.symbols.txt +499 -0
- package/test-suite/catalogs/android-v6.json +1646 -0
- package/test-suite/catalogs/android-v6.symbols.txt +298 -0
- package/test-suite/catalogs/angular-v5.json +7587 -0
- package/test-suite/catalogs/flutter-calls-v5.json +196 -0
- package/test-suite/catalogs/flutter-calls-v5.symbols.txt +59 -0
- package/test-suite/catalogs/flutter-v6.json +651 -0
- package/test-suite/catalogs/ios-calls-v5.json +158 -0
- package/test-suite/catalogs/ios-calls-v5.symbols.txt +70 -0
- package/test-suite/catalogs/ios-v5.json +1383 -0
- package/test-suite/catalogs/ios-v5.symbols.txt +699 -0
- package/test-suite/catalogs/rn-calls-v5.json +134 -0
- package/test-suite/catalogs/rn-sdk-v4.json +672 -0
- package/test-suite/catalogs/rn-v5.json +449 -0
- package/test-suite/catalogs/sdk-android-v5.json +514 -0
- package/test-suite/catalogs/sdk-android-v5.symbols.txt +254 -0
- package/test-suite/catalogs/sdk-jsv4.json +800 -0
- package/test-suite/catalogs/web-calls-v5.json +195 -0
- package/test-suite/catalogs/web-v7.json +1243 -0
- package/test-suite/scripts/build-registry.mjs +113 -0
- package/test-suite/scripts/catalog-refresh-dart.mjs +151 -0
- package/test-suite/scripts/catalog-refresh.mjs +100 -0
- package/test-suite/scripts/lint-skills.mjs +932 -0
- package/test-suite/scripts/measure-tokens.mjs +169 -0
- package/test-suite/scripts/typecheck-fences-dart.mjs +437 -0
- package/test-suite/scripts/typecheck-fences-kotlin.mjs +269 -0
- package/test-suite/scripts/typecheck-fences.mjs +206 -0
- package/test-suite/scripts/verify-catalog.mjs +242 -0
- package/test-suite/scripts/verify-contract-fences.mjs +94 -0
- package/test-suite/scripts/verify-detection.mjs +178 -0
- package/test-suite/scripts/verify-docs-base.mjs +91 -0
- package/test-suite/scripts/verify-family-agnostic.mjs +134 -0
- package/test-suite/scripts/verify-golden-path.mjs +138 -0
- package/test-suite/scripts/verify-oracle-components.mjs +133 -0
- package/test-suite/scripts/verify-template-bindings.mjs +148 -0
- package/test-suite/typecheck/angular-v5/package.json +21 -0
- package/test-suite/typecheck/angular-v5/tsconfig.json +21 -0
- package/test-suite/typecheck/flutter-v6/analysis_options.yaml +25 -0
- package/test-suite/typecheck/flutter-v6/pubspec.yaml +21 -0
- package/test-suite/typecheck/web-v7/package.json +18 -0
- package/test-suite/typecheck/web-v7/tsconfig.json +19 -0
- package/bin/install.js +0 -1003
- package/skills/.claude-plugin/marketplace.json +0 -86
- package/skills/cometchat/references/asking-questions.md +0 -48
- package/skills/cometchat-android-v5/SKILL.md +0 -121
- package/skills/cometchat-android-v5-calls/SKILL.md +0 -429
- package/skills/cometchat-android-v5-calls/references/README.md +0 -53
- package/skills/cometchat-android-v5-calls/references/add-calls-to-existing-chat.md +0 -197
- package/skills/cometchat-android-v5-calls/references/audio-controls.md +0 -91
- package/skills/cometchat-android-v5-calls/references/background-handling.md +0 -168
- package/skills/cometchat-android-v5-calls/references/call-layouts.md +0 -131
- package/skills/cometchat-android-v5-calls/references/call-logs.md +0 -113
- package/skills/cometchat-android-v5-calls/references/call-session.md +0 -274
- package/skills/cometchat-android-v5-calls/references/custom-ui.md +0 -150
- package/skills/cometchat-android-v5-calls/references/event-listeners.md +0 -123
- package/skills/cometchat-android-v5-calls/references/group-calls.md +0 -205
- package/skills/cometchat-android-v5-calls/references/idle-timeout.md +0 -117
- package/skills/cometchat-android-v5-calls/references/in-call-chat.md +0 -134
- package/skills/cometchat-android-v5-calls/references/join-session.md +0 -120
- package/skills/cometchat-android-v5-calls/references/migration-v4-to-v5.md +0 -222
- package/skills/cometchat-android-v5-calls/references/participant-management.md +0 -110
- package/skills/cometchat-android-v5-calls/references/picture-in-picture.md +0 -106
- package/skills/cometchat-android-v5-calls/references/raise-hand.md +0 -248
- package/skills/cometchat-android-v5-calls/references/recording.md +0 -101
- package/skills/cometchat-android-v5-calls/references/ringing-integration.md +0 -152
- package/skills/cometchat-android-v5-calls/references/screen-sharing.md +0 -78
- package/skills/cometchat-android-v5-calls/references/server-fcm-voip.md +0 -215
- package/skills/cometchat-android-v5-calls/references/session-settings.md +0 -121
- package/skills/cometchat-android-v5-calls/references/setup.md +0 -137
- package/skills/cometchat-android-v5-calls/references/share-invite.md +0 -156
- package/skills/cometchat-android-v5-calls/references/video-controls.md +0 -87
- package/skills/cometchat-android-v5-calls/references/voip-calling.md +0 -526
- package/skills/cometchat-android-v5-components/SKILL.md +0 -431
- package/skills/cometchat-android-v5-core/SKILL.md +0 -486
- package/skills/cometchat-android-v5-customization/SKILL.md +0 -469
- package/skills/cometchat-android-v5-extensions/SKILL.md +0 -127
- package/skills/cometchat-android-v5-features/SKILL.md +0 -131
- package/skills/cometchat-android-v5-placement/SKILL.md +0 -277
- package/skills/cometchat-android-v5-production/SKILL.md +0 -95
- package/skills/cometchat-android-v5-push/SKILL.md +0 -619
- package/skills/cometchat-android-v5-testing/SKILL.md +0 -188
- package/skills/cometchat-android-v5-theming/SKILL.md +0 -167
- package/skills/cometchat-android-v5-troubleshooting/SKILL.md +0 -74
- package/skills/cometchat-android-v6/SKILL.md +0 -108
- package/skills/cometchat-android-v6-calls/references/add-calls-to-existing-chat.md +0 -97
- package/skills/cometchat-android-v6-calls/references/advanced-features.md +0 -87
- package/skills/cometchat-android-v6-calls/references/call-layouts.md +0 -100
- package/skills/cometchat-android-v6-calls/references/call-session.md +0 -163
- package/skills/cometchat-android-v6-calls/references/device-management.md +0 -172
- package/skills/cometchat-android-v6-calls/references/group-calls.md +0 -191
- package/skills/cometchat-android-v6-calls/references/idle-timeout.md +0 -110
- package/skills/cometchat-android-v6-calls/references/in-call-chat.md +0 -141
- package/skills/cometchat-android-v6-calls/references/raise-hand.md +0 -188
- package/skills/cometchat-android-v6-calls/references/ringing-integration.md +0 -176
- package/skills/cometchat-android-v6-calls/references/server-fcm-voip.md +0 -127
- package/skills/cometchat-android-v6-calls/references/share-invite.md +0 -105
- package/skills/cometchat-android-v6-compose-theming/SKILL.md +0 -250
- package/skills/cometchat-android-v6-kotlin-theming/SKILL.md +0 -233
- package/skills/cometchat-angular-calls/SKILL.md +0 -380
- package/skills/cometchat-angular-calls/references/add-calls-to-existing-chat.md +0 -96
- package/skills/cometchat-angular-calls/references/call-layouts.md +0 -123
- package/skills/cometchat-angular-calls/references/call-session.md +0 -167
- package/skills/cometchat-angular-calls/references/custom-ui.md +0 -239
- package/skills/cometchat-angular-calls/references/device-management.md +0 -154
- package/skills/cometchat-angular-calls/references/group-calls.md +0 -433
- package/skills/cometchat-angular-calls/references/idle-timeout.md +0 -161
- package/skills/cometchat-angular-calls/references/in-call-chat.md +0 -148
- package/skills/cometchat-angular-calls/references/lazy-loading-pitfalls.md +0 -205
- package/skills/cometchat-angular-calls/references/migration-v4-to-v5.md +0 -53
- package/skills/cometchat-angular-calls/references/ngzone-and-async-callbacks.md +0 -184
- package/skills/cometchat-angular-calls/references/picture-in-picture.md +0 -285
- package/skills/cometchat-angular-calls/references/raise-hand.md +0 -172
- package/skills/cometchat-angular-calls/references/recording-screen-share.md +0 -260
- package/skills/cometchat-angular-calls/references/ringing-integration.md +0 -133
- package/skills/cometchat-angular-calls/references/server-web-push-vapid.md +0 -100
- package/skills/cometchat-angular-calls/references/share-invite.md +0 -122
- package/skills/cometchat-angular-calls/references/virtual-background.md +0 -29
- package/skills/cometchat-angular-components/SKILL.md +0 -235
- package/skills/cometchat-angular-core/SKILL.md +0 -386
- package/skills/cometchat-angular-customization/SKILL.md +0 -616
- package/skills/cometchat-angular-features/SKILL.md +0 -329
- package/skills/cometchat-angular-patterns/SKILL.md +0 -256
- package/skills/cometchat-angular-placement/SKILL.md +0 -314
- package/skills/cometchat-angular-production/SKILL.md +0 -564
- package/skills/cometchat-angular-push/SKILL.md +0 -389
- package/skills/cometchat-angular-testing/SKILL.md +0 -605
- package/skills/cometchat-angular-theming/SKILL.md +0 -290
- package/skills/cometchat-angular-troubleshooting/SKILL.md +0 -364
- package/skills/cometchat-astro-patterns/SKILL.md +0 -708
- package/skills/cometchat-calls/SKILL.md +0 -364
- package/skills/cometchat-calls/references/use-case-broadcast.md +0 -199
- package/skills/cometchat-calls/references/use-case-marketplace.md +0 -157
- package/skills/cometchat-calls/references/use-case-support.md +0 -189
- package/skills/cometchat-calls/references/use-case-team.md +0 -180
- package/skills/cometchat-calls/references/use-case-telehealth.md +0 -153
- package/skills/cometchat-components/SKILL.md +0 -1142
- package/skills/cometchat-core/SKILL.md +0 -1048
- package/skills/cometchat-customization/SKILL.md +0 -580
- package/skills/cometchat-customization/references/component-catalog.md +0 -236
- package/skills/cometchat-features/SKILL.md +0 -861
- package/skills/cometchat-flutter-v5/SKILL.md +0 -173
- package/skills/cometchat-flutter-v5-calls/SKILL.md +0 -455
- package/skills/cometchat-flutter-v5-calls/references/add-calls-to-existing-chat.md +0 -193
- package/skills/cometchat-flutter-v5-calls/references/call-layouts.md +0 -103
- package/skills/cometchat-flutter-v5-calls/references/call-session.md +0 -285
- package/skills/cometchat-flutter-v5-calls/references/device-management.md +0 -124
- package/skills/cometchat-flutter-v5-calls/references/group-calls.md +0 -181
- package/skills/cometchat-flutter-v5-calls/references/idle-timeout.md +0 -99
- package/skills/cometchat-flutter-v5-calls/references/in-call-chat.md +0 -135
- package/skills/cometchat-flutter-v5-calls/references/migration-v4-to-v5.md +0 -210
- package/skills/cometchat-flutter-v5-calls/references/raise-hand.md +0 -255
- package/skills/cometchat-flutter-v5-calls/references/ringing-integration.md +0 -196
- package/skills/cometchat-flutter-v5-calls/references/server-push-bridge.md +0 -101
- package/skills/cometchat-flutter-v5-calls/references/share-invite.md +0 -148
- package/skills/cometchat-flutter-v5-conversations/SKILL.md +0 -118
- package/skills/cometchat-flutter-v5-core/SKILL.md +0 -239
- package/skills/cometchat-flutter-v5-customization/SKILL.md +0 -358
- package/skills/cometchat-flutter-v5-events/SKILL.md +0 -156
- package/skills/cometchat-flutter-v5-messages/SKILL.md +0 -259
- package/skills/cometchat-flutter-v5-production/SKILL.md +0 -216
- package/skills/cometchat-flutter-v5-push/SKILL.md +0 -285
- package/skills/cometchat-flutter-v5-testing/SKILL.md +0 -401
- package/skills/cometchat-flutter-v5-theming/SKILL.md +0 -161
- package/skills/cometchat-flutter-v5-troubleshooting/SKILL.md +0 -130
- package/skills/cometchat-flutter-v5-users-groups/SKILL.md +0 -152
- package/skills/cometchat-flutter-v6/SKILL.md +0 -446
- package/skills/cometchat-flutter-v6-calls/references/add-calls-to-existing-chat.md +0 -136
- package/skills/cometchat-flutter-v6-calls/references/advanced-features.md +0 -89
- package/skills/cometchat-flutter-v6-calls/references/call-layouts.md +0 -105
- package/skills/cometchat-flutter-v6-calls/references/call-session.md +0 -229
- package/skills/cometchat-flutter-v6-calls/references/device-management.md +0 -105
- package/skills/cometchat-flutter-v6-calls/references/group-calls.md +0 -190
- package/skills/cometchat-flutter-v6-calls/references/idle-timeout.md +0 -88
- package/skills/cometchat-flutter-v6-calls/references/in-call-chat.md +0 -125
- package/skills/cometchat-flutter-v6-calls/references/raise-hand.md +0 -275
- package/skills/cometchat-flutter-v6-calls/references/ringing-integration.md +0 -171
- package/skills/cometchat-flutter-v6-calls/references/server-push-bridge.md +0 -93
- package/skills/cometchat-flutter-v6-calls/references/share-invite.md +0 -102
- package/skills/cometchat-flutter-v6-conversations/SKILL.md +0 -238
- package/skills/cometchat-flutter-v6-messages/SKILL.md +0 -384
- package/skills/cometchat-flutter-v6-theming/SKILL.md +0 -293
- package/skills/cometchat-flutter-v6-users-groups/SKILL.md +0 -224
- package/skills/cometchat-ios/SKILL.md +0 -325
- package/skills/cometchat-ios-calls/references/add-calls-to-existing-chat.md +0 -181
- package/skills/cometchat-ios-calls/references/audio-modes-and-controls.md +0 -45
- package/skills/cometchat-ios-calls/references/avaudiosession-routing.md +0 -188
- package/skills/cometchat-ios-calls/references/call-layouts.md +0 -76
- package/skills/cometchat-ios-calls/references/call-session.md +0 -218
- package/skills/cometchat-ios-calls/references/callkit-and-pushkit.md +0 -357
- package/skills/cometchat-ios-calls/references/custom-ui.md +0 -322
- package/skills/cometchat-ios-calls/references/device-management.md +0 -171
- package/skills/cometchat-ios-calls/references/group-calls.md +0 -359
- package/skills/cometchat-ios-calls/references/idle-timeout.md +0 -184
- package/skills/cometchat-ios-calls/references/in-call-chat.md +0 -179
- package/skills/cometchat-ios-calls/references/migration-v4-to-v5.md +0 -196
- package/skills/cometchat-ios-calls/references/picture-in-picture.md +0 -246
- package/skills/cometchat-ios-calls/references/raise-hand.md +0 -26
- package/skills/cometchat-ios-calls/references/recording-screen-share.md +0 -252
- package/skills/cometchat-ios-calls/references/ringing-integration.md +0 -143
- package/skills/cometchat-ios-calls/references/server-apns-pushkit.md +0 -267
- package/skills/cometchat-ios-calls/references/share-invite.md +0 -148
- package/skills/cometchat-ios-calls/references/swiftui-uikit-hosting.md +0 -246
- package/skills/cometchat-ios-calls/references/voip-cert-setup.md +0 -166
- package/skills/cometchat-ios-theming/SKILL.md +0 -667
- package/skills/cometchat-native-bare-patterns/SKILL.md +0 -550
- package/skills/cometchat-native-calls/SKILL.md +0 -671
- package/skills/cometchat-native-calls/references/add-calls-to-existing-chat.md +0 -203
- package/skills/cometchat-native-calls/references/call-layouts.md +0 -125
- package/skills/cometchat-native-calls/references/call-session.md +0 -182
- package/skills/cometchat-native-calls/references/custom-ui.md +0 -254
- package/skills/cometchat-native-calls/references/device-management.md +0 -158
- package/skills/cometchat-native-calls/references/expo-vs-bare.md +0 -179
- package/skills/cometchat-native-calls/references/group-calls.md +0 -296
- package/skills/cometchat-native-calls/references/idle-timeout.md +0 -128
- package/skills/cometchat-native-calls/references/in-call-chat.md +0 -145
- package/skills/cometchat-native-calls/references/migration-v4-to-v5.md +0 -72
- package/skills/cometchat-native-calls/references/picture-in-picture.md +0 -276
- package/skills/cometchat-native-calls/references/raise-hand.md +0 -205
- package/skills/cometchat-native-calls/references/recording-screen-share.md +0 -169
- package/skills/cometchat-native-calls/references/ringing-integration.md +0 -118
- package/skills/cometchat-native-calls/references/server-push-bridge.md +0 -135
- package/skills/cometchat-native-calls/references/server-push-payloads.md +0 -193
- package/skills/cometchat-native-calls/references/share-invite.md +0 -146
- package/skills/cometchat-native-calls/references/voip-push-end-to-end.md +0 -319
- package/skills/cometchat-native-components/SKILL.md +0 -628
- package/skills/cometchat-native-core/SKILL.md +0 -679
- package/skills/cometchat-native-customization/SKILL.md +0 -716
- package/skills/cometchat-native-expo-patterns/SKILL.md +0 -552
- package/skills/cometchat-native-features/SKILL.md +0 -638
- package/skills/cometchat-native-placement/SKILL.md +0 -509
- package/skills/cometchat-native-production/SKILL.md +0 -700
- package/skills/cometchat-native-push/SKILL.md +0 -594
- package/skills/cometchat-native-testing/SKILL.md +0 -582
- package/skills/cometchat-native-theming/SKILL.md +0 -681
- package/skills/cometchat-native-troubleshooting/SKILL.md +0 -501
- package/skills/cometchat-nextjs-patterns/SKILL.md +0 -899
- package/skills/cometchat-placement/SKILL.md +0 -1360
- package/skills/cometchat-production/SKILL.md +0 -1027
- package/skills/cometchat-react-calls/SKILL.md +0 -752
- package/skills/cometchat-react-calls/references/add-calls-to-existing-chat.md +0 -146
- package/skills/cometchat-react-calls/references/call-layouts.md +0 -160
- package/skills/cometchat-react-calls/references/call-session.md +0 -235
- package/skills/cometchat-react-calls/references/custom-ui.md +0 -247
- package/skills/cometchat-react-calls/references/device-management.md +0 -210
- package/skills/cometchat-react-calls/references/group-calls.md +0 -257
- package/skills/cometchat-react-calls/references/idle-timeout.md +0 -188
- package/skills/cometchat-react-calls/references/in-call-chat.md +0 -212
- package/skills/cometchat-react-calls/references/migration-v4-to-v5.md +0 -170
- package/skills/cometchat-react-calls/references/picture-in-picture.md +0 -245
- package/skills/cometchat-react-calls/references/raise-hand.md +0 -238
- package/skills/cometchat-react-calls/references/recording-screen-share.md +0 -144
- package/skills/cometchat-react-calls/references/ringing-integration.md +0 -255
- package/skills/cometchat-react-calls/references/server-web-push-vapid.md +0 -241
- package/skills/cometchat-react-calls/references/share-invite.md +0 -175
- package/skills/cometchat-react-calls/references/testing-calls-on-web.md +0 -216
- package/skills/cometchat-react-calls/references/virtual-background.md +0 -32
- package/skills/cometchat-react-calls/references/voip-and-web-push.md +0 -165
- package/skills/cometchat-react-patterns/SKILL.md +0 -628
- package/skills/cometchat-react-push/SKILL.md +0 -634
- package/skills/cometchat-react-router-patterns/SKILL.md +0 -758
- package/skills/cometchat-react-testing/SKILL.md +0 -413
- package/skills/cometchat-theming/SKILL.md +0 -498
- package/skills/cometchat-troubleshooting/SKILL.md +0 -294
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# anti-patterns — the real bugs, Flutter v6
|
|
2
|
+
|
|
3
|
+
## Startup
|
|
4
|
+
1. **Rendering a `CometChat*` widget before `login` succeeds** → blank screen or a listener exception. Gate
|
|
5
|
+
the first frame (`lifecycle.md`).
|
|
6
|
+
2. **Missing `WidgetsFlutterBinding.ensureInitialized()`** → `initFromSettings` cannot read the settings
|
|
7
|
+
asset through `rootBundle`; first-run crash.
|
|
8
|
+
3. **`init` inside a screen's `initState`** that can be re-entered → repeated init, raced Calls-SDK routing.
|
|
9
|
+
4. **Using `init()` + `UIKitSettingsBuilder` instead of `initFromSettings()`** → loses
|
|
10
|
+
`integrationSource="ai-agent"` telemetry attribution (`RULES.md` §5). The docs still show the old path.
|
|
11
|
+
5. **A REAL Auth Key committed in `cometchat-settings.json`** → the key is in your repo history. Do NOT fix this by gitignoring the file — it is a registered Flutter asset, so a fresh clone / CI `flutter build bundle` then fails with *"No file or variants found for asset."* Commit a **placeholder** `cometchat-settings.json` (empty/placeholder `authKey`) that dev and CI overwrite locally; guard the real key with a pre-commit/CI check.
|
|
12
|
+
6. **Auth Key in a production build** → it authenticates *any* user. Prod is `loginWithAuthToken` with a
|
|
13
|
+
server-minted token.
|
|
14
|
+
7. **Inventing a UID.** `login` requires a user that already exists. Ask, or read Dashboard → Users.
|
|
15
|
+
|
|
16
|
+
## Layout
|
|
17
|
+
8. **A kit list without `Expanded`/`Flexible` in a `Column`** → unbounded-height exception or a zero-height
|
|
18
|
+
list. The single most common Flutter integration failure (`layout.md`).
|
|
19
|
+
9. **The surface inside a `SingleChildScrollView`** → infinite height constraints; same failure.
|
|
20
|
+
10. **`resizeToAvoidBottomInset: false`** → the composer disappears under the keyboard.
|
|
21
|
+
11. **No `Scaffold`/`SafeArea`** → missing `Material` ancestor, or UI under the notch/home indicator.
|
|
22
|
+
|
|
23
|
+
## v5 carry-overs (all REMOVED in v6 — see `cometchat-flutter-v6-migration`)
|
|
24
|
+
12. **Registering extensions** — `UIKitSettings.extensions`, `CometChatUIKitChatExtensions`,
|
|
25
|
+
`DataSource`, `ChatConfigurator`, `*ExtensionDecorator`, `CometChatUIKit.getDataSource()`. v6 deleted
|
|
26
|
+
the entire pattern; a dashboard-enabled extension surfaces **automatically** with zero client code.
|
|
27
|
+
Emitting registration is a defect, not a harmless no-op.
|
|
28
|
+
13. **Combined shell widgets** — `CometChatConversationsWithMessages`, `CometChatUsersWithMessages`,
|
|
29
|
+
`CometChatGroupsWithMessages`, `CometChatMessages`, `CometChatUI`, `CometChatMessenger`,
|
|
30
|
+
`CometChatUserList`, `CometChatContactList`. v6 has **no** shell widget; the host composes screens.
|
|
31
|
+
14. **GetX controllers** — `CometChatMessagesController`, `CometChatOngoingCallController`. v6 is BLoC.
|
|
32
|
+
15. **`CometChatCompactMessageComposer`** → one `CometChatMessageComposer`.
|
|
33
|
+
|
|
34
|
+
## Cross-family contamination
|
|
35
|
+
16. **Carrying a React name into Flutter.** `CometChatThreadHeader` does not exist here — it is
|
|
36
|
+
`CometChatThreadedHeader`. Nor do `showSearchOption`/`onSearchOptionClicked` on the message header, or
|
|
37
|
+
`onItemClick` on the conversation list (it is **`onItemTap`**). Equally: `CometChatMediaRecorder` DOES
|
|
38
|
+
exist in Flutter though it is a React phantom. **Never reuse another family's symbol or phantom list —
|
|
39
|
+
check `catalogs/flutter-v6.json`.**
|
|
40
|
+
17. **Importing calls widgets from the chat barrel.** `CometChatIncomingCall`, `CometChatOutgoingCall`,
|
|
41
|
+
`CometChatCallButtons`, `CometChatCallLogs`, `CometChatCallBubble` and `CometChatCalls` resolve ONLY
|
|
42
|
+
from `package:cometchat_chat_uikit/cometchat_calls_uikit.dart`. A calls screen imports **both** barrels.
|
|
43
|
+
18. **Adding `cometchat_sdk` as a direct dependency to get `User`/`Group`/`TextMessage`.** The kit barrel
|
|
44
|
+
already re-exports the whole Chat SDK.
|
|
45
|
+
|
|
46
|
+
## Composition
|
|
47
|
+
19. **Passing `parentMessageId` without `user:`/`group:`** on a thread list/composer → replies silently
|
|
48
|
+
never send. Both are required.
|
|
49
|
+
20. **A dead-ending affordance.** A search field that opens nothing, or a thread indicator with no
|
|
50
|
+
`onThreadRepliesClick` — wire it to a destination or hide it (`hideSearch`).
|
|
51
|
+
21. **Hand-rolling what the widget already exposes.** Custom UI belongs in a slot
|
|
52
|
+
(`auxiliaryButtonView` / `trailingView` / `appBarOptions`), never stacked on top of the widget.
|
|
53
|
+
22. **Client-side filtering the conversation list.** Scope `conversationsRequestBuilder` instead.
|
|
54
|
+
23. **Hand-rolling moderation or report UI.** Both are automatic in `CometChatMessageList`; the work is in
|
|
55
|
+
the Dashboard.
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
# docs-map — CometChat Flutter v6: intent → the exact docs page to fetch
|
|
2
|
+
|
|
3
|
+
Fetch a page instead of guessing a prop. This file is the map; `SKILL.md` bakes only the hot path.
|
|
4
|
+
|
|
5
|
+
## Reaching docs — PREFER the CometChat docs MCP; fetch is the fallback
|
|
6
|
+
The canonical doc channel is the **first-party CometChat docs MCP** — tools `search_cometchat_docs`,
|
|
7
|
+
`fetch_cometchat_doc_page`, and `get_cometchat_implementation_bundle`. **If those tools are connected,
|
|
8
|
+
use them instead of a raw web fetch:**
|
|
9
|
+
- **Find the page** → `search_cometchat_docs(query, version?)` — replaces browsing the scoped `llms-*` index.
|
|
10
|
+
- **Read the page** → `fetch_cometchat_doc_page(path)` — pass the SAME `<path>` the tables below list
|
|
11
|
+
(the conversations page path for your platform); the MCP resolves the `.md` twin and returns raw Markdown.
|
|
12
|
+
A full `https://…/docs/<path>` URL also works.
|
|
13
|
+
- **A whole feature/recipe** → `get_cometchat_implementation_bundle(...)` is **NON-AUTHORITATIVE** — curated STATIC recipes that can lag the live docs (verified stale vs v7: e.g. `CometChatConversationsWithMessages`, `css-variables.css`). Treat any bundle as a hint only: RECONCILE it against the `fetch_cometchat_doc_page` result + the pack's hardening; never emit bundle code verbatim.
|
|
14
|
+
|
|
15
|
+
The MCP reads whatever docs environment it is pointed at (production by default; a preview when repointed),
|
|
16
|
+
so it also carries the environment-swap concern below — no hardcoded host on the skill side.
|
|
17
|
+
|
|
18
|
+
**If the MCP tools are NOT connected:** add it (`claude mcp add --transport http cometchat-docs https://mcp.cometchat.com/mcp`, or reinstall/enable the plugin) and retry; only if it still will not connect, fall back to a plain fetch via `DOCS_BASE` (defined next).
|
|
19
|
+
Either way the `<path>` catalog in this file is the source of truth for WHICH page — MCP-vs-fetch is only HOW.
|
|
20
|
+
|
|
21
|
+
## DOCS_BASE — the fetch FALLBACK entry point (⚠️ SWAP HERE to change environments)
|
|
22
|
+
```
|
|
23
|
+
DOCS_BASE = https://www.cometchat.com/docs
|
|
24
|
+
```
|
|
25
|
+
> The ONLY line to change for a preview/staging deploy. Every path below is identical across environments.
|
|
26
|
+
>
|
|
27
|
+
> **Fetch rule:** build a URL as `DOCS_BASE` + the path shown, then append `.md`. Never hardcode a host
|
|
28
|
+
> anywhere else; never read installed Dart source in place of a missing doc (see the DOCS GAP protocol).
|
|
29
|
+
|
|
30
|
+
## The convention
|
|
31
|
+
`DOCS_BASE` + `<path>` + `.md` → raw Markdown (verbatim code + prop tables).
|
|
32
|
+
```
|
|
33
|
+
Fetch: {DOCS_BASE}/ui-kit/flutter/conversations.md
|
|
34
|
+
```
|
|
35
|
+
Fallback order: `.md` twin → the same URL **without** `.md` (HTML) → **DOCS GAP** (below).
|
|
36
|
+
|
|
37
|
+
## ⚠️ Scoped index — DOES NOT EXIST YET for Flutter (tracked DOCS GAP, go-live dependency)
|
|
38
|
+
```
|
|
39
|
+
{DOCS_BASE}/ui-kit/flutter/llms.txt → 404 as of 2026-08-21
|
|
40
|
+
{DOCS_BASE}/sdk/flutter/llms.txt → 404 as of 2026-08-21
|
|
41
|
+
```
|
|
42
|
+
Neither scoped index has been generated. **Until they exist, use the page table below as the index**
|
|
43
|
+
(it was derived from the global index and is complete for this family), and fall back to the global
|
|
44
|
+
all-products index — `{DOCS_BASE}/llms.txt` (large; last resort) — for anything not listed.
|
|
45
|
+
> **Go-live ask (owner: docs):** generate the **scoped UI-Kit `llms.txt` for Flutter v6, including its
|
|
46
|
+
> "Task guides (recipes)" section**, and the **SDK `llms.txt` for the Flutter Chat SDK**. Without them the
|
|
47
|
+
> docs-maximal, guide-first completeness check degrades to component-wiring only. Tracked in `DOCS-BACKLOG.md`.
|
|
48
|
+
|
|
49
|
+
## `[verified]` signatures — confirmed against the kit AND the live docs
|
|
50
|
+
These signatures were wrong on the live pages when the skill was written (`DOCS-BACKLOG` F1/F2/F3/F5); all four
|
|
51
|
+
were **corrected upstream** and re-verified against `cometchat/docs`@`2ebb1db` (2026-09-09), so the pages now
|
|
52
|
+
AGREE with `SKILL.md`. Kept here as the authoritative signature reference. Re-verify with
|
|
53
|
+
`npm run verify:fences:flutter-v6` if a page ever drifts again.
|
|
54
|
+
|
|
55
|
+
| Symbol | Confirmed signature |
|
|
56
|
+
|---|---|
|
|
57
|
+
| `CometChatThreadedHeader` | `parentMessage:` + required `loggedInUser:` (not `message:`) |
|
|
58
|
+
| `onThreadRepliesClick` | `void Function(BaseMessage, BuildContext, {CometChatMessageTemplate? template})` |
|
|
59
|
+
| `CometChatThreadedHeader` back/error | none — no `onBack:` / `onError:`; back comes from the screen's own `AppBar` |
|
|
60
|
+
| `CometChatSearch` results | `onConversationClicked` / `onMessageClicked` |
|
|
61
|
+
| `getting-started` init | `initFromSettings()` + `cometchat-settings.json` — **deliberately undocumented (F4 WONTFIX)**; this skill is its reference |
|
|
62
|
+
|
|
63
|
+
## Component docs (intent → path)
|
|
64
|
+
| Intent | Path |
|
|
65
|
+
|---|---|
|
|
66
|
+
| Install · init · login · first screen | `/ui-kit/flutter/getting-started` |
|
|
67
|
+
| What v6 is · architecture | `/ui-kit/flutter/overview` · `/ui-kit/flutter/components-overview` |
|
|
68
|
+
| Conversation list props | `/ui-kit/flutter/conversations` |
|
|
69
|
+
| Message list props | `/ui-kit/flutter/message-list` |
|
|
70
|
+
| Composer props | `/ui-kit/flutter/message-composer` |
|
|
71
|
+
| Message header props | `/ui-kit/flutter/message-header` |
|
|
72
|
+
| Thread screen | `/ui-kit/flutter/threaded-messages-header` (⚠️ see the wrong-pages table) |
|
|
73
|
+
| Search | `/ui-kit/flutter/search` (⚠️ see the wrong-pages table) |
|
|
74
|
+
| Users / Groups / Members | `/ui-kit/flutter/users` · `/groups` · `/group-members` |
|
|
75
|
+
| Calls (incoming/outgoing/logs/buttons) | `/ui-kit/flutter/call-features` · `/incoming-call` · `/outgoing-call` · `/call-logs` · `/call-buttons` |
|
|
76
|
+
| Notification feed | `/ui-kit/flutter/notification-feed` |
|
|
77
|
+
| Push notifications (FCM/APNs setup — `-push`) | `/notifications/push-overview` · `/notifications/flutter-push-notifications-android` · `/notifications/flutter-push-notifications-ios` (NOT the legacy singular `/notifications/flutter-push-notifications`) |
|
|
78
|
+
| Theming — tokens & palette | `/ui-kit/flutter/theme-introduction` · `/color-resources` · `/component-styling` · `/message-bubble-styling` |
|
|
79
|
+
| Customization — slots & behavior | `/ui-kit/flutter/customization-overview` · `-view-slots` · `-state-views` · `-menu-options` · `-bloc-data` · `-datasource` · `-text-formatters` |
|
|
80
|
+
| Custom message types | `/ui-kit/flutter/message-template` |
|
|
81
|
+
| Formatters (mentions / custom / shortcut) | `/ui-kit/flutter/mentions-formatter-guide` · `/custom-text-formatter-guide` · `/shortcut-formatter-guide` |
|
|
82
|
+
| Events (SDK listeners vs UI events) | `/ui-kit/flutter/events` |
|
|
83
|
+
| Extensions (all dashboard-enabled) | `/ui-kit/flutter/extensions` |
|
|
84
|
+
| Localization | `/ui-kit/flutter/localize` |
|
|
85
|
+
| Sounds | `/ui-kit/flutter/sound-manager` |
|
|
86
|
+
| Methods / helpers | `/ui-kit/flutter/methods` |
|
|
87
|
+
| Troubleshooting | `/ui-kit/flutter/troubleshooting` |
|
|
88
|
+
| v5 → v6 upgrade | `/ui-kit/flutter/upgrading-from-v5` |
|
|
89
|
+
|
|
90
|
+
## Task guides (recipes) — BUILD FROM THESE, then COMPARE (docs-maximal, `RULES.md` §20)
|
|
91
|
+
For a whole task, **build from the guide and compare your implementation against it for completeness**,
|
|
92
|
+
then apply the hardening deltas in `SKILL.md`. **No matching guide? Build the normal way** (wire the
|
|
93
|
+
widgets + fetch props) — the guide is an enhancement, not a prerequisite.
|
|
94
|
+
|
|
95
|
+
| Task | Guide |
|
|
96
|
+
|---|---|
|
|
97
|
+
| Guide index | `/ui-kit/flutter/guide-overview` |
|
|
98
|
+
| One-to-one chat | `/ui-kit/flutter/flutter-one-to-one-chat` |
|
|
99
|
+
| Conversation + messages | `/ui-kit/flutter/flutter-conversation` |
|
|
100
|
+
| Tab-based app (the grow target) | `/ui-kit/flutter/flutter-tab-based-chat` · `/multi-tab-chat-ui-guide` |
|
|
101
|
+
| Group chat | `/ui-kit/flutter/guide-group-chat` |
|
|
102
|
+
| Threaded messages | `/ui-kit/flutter/guide-threaded-messages` (⚠️ signatures wrong — see above) |
|
|
103
|
+
| Start a new chat | `/ui-kit/flutter/guide-new-chat` |
|
|
104
|
+
| Message privately | `/ui-kit/flutter/guide-message-privately` |
|
|
105
|
+
| Block / unblock | `/ui-kit/flutter/guide-block-unblock-user` |
|
|
106
|
+
| Call log details | `/ui-kit/flutter/guide-call-log-details` |
|
|
107
|
+
| AI agentic flow | `/ui-kit/flutter/guide-message-agentic-flow` |
|
|
108
|
+
|
|
109
|
+
## SDK docs — the FALLBACK reference (so the SDK ALSO works, `RULES.md` §13)
|
|
110
|
+
**UI-Kit first, SDK fallback.** For every feature, first check whether the UI Kit has a widget/prop
|
|
111
|
+
(the table above + the catalog). If it does — use it. If it does NOT (AI agents, campaigns,
|
|
112
|
+
advanced/AI moderation, transient messages, bots, webhooks, banned-members listing, low-level presence)
|
|
113
|
+
— drop to the Flutter Chat SDK and call its method directly. The SDK is **already installed and
|
|
114
|
+
re-exported by the kit barrel**, so `User`, `Group`, `Conversation`, `BaseMessage`, `TextMessage` and the
|
|
115
|
+
`*RequestBuilder` types need no extra import.
|
|
116
|
+
```
|
|
117
|
+
SDK_DOCS_BASE = https://www.cometchat.com/docs/sdk/flutter
|
|
118
|
+
```
|
|
119
|
+
| Intent | Path |
|
|
120
|
+
|---|---|
|
|
121
|
+
| Overview · setup · auth | `/overview` · `/setup` · `/authentication-overview` |
|
|
122
|
+
| Send / receive / edit / delete messages | `/messaging-overview` · `/send-message` · `/receive-messages` |
|
|
123
|
+
| Real-time listeners | `/real-time-listeners` · `/connection-status` |
|
|
124
|
+
| Users · presence · block | `/users-overview` · `/user-presence` · `/block-users` |
|
|
125
|
+
| Groups · members · kick/ban | `/groups-overview` · `/group-kick-ban-members` |
|
|
126
|
+
| Conversations & unread | `/conversations-overview` |
|
|
127
|
+
| Threads | `/threaded-messages` |
|
|
128
|
+
| AI agents / chatbots | `/ai-agents` · `/ai-moderation` |
|
|
129
|
+
| Campaigns | `/campaigns` |
|
|
130
|
+
| Push token registration | no `sdk/flutter` page (`/sdk/flutter/push-notifications` 404s) — use the three `/notifications/*` push pages in the component table above |
|
|
131
|
+
| Webhooks | `/webhooks-overview` |
|
|
132
|
+
> Each SDK page carries an **AI Integration Quick Reference** block with method signatures — read that
|
|
133
|
+
> first. The SDK's scoped `llms.txt` does not exist yet (see the index gap above); use this table.
|
|
134
|
+
|
|
135
|
+
## DOCS GAP protocol (`RULES.md` §20 — never silently source-fill)
|
|
136
|
+
If a prop/method/behavior you need is **absent or wrong** in the docs:
|
|
137
|
+
1. **Do not** substitute reading installed Dart source as though it were documentation, and do not bake a
|
|
138
|
+
permanent workaround into a skill for what is really a docs bug (AUDIT-072 / CHECKLIST row 24).
|
|
139
|
+
2. **Verify** the actual behavior by compiling against the pinned kit
|
|
140
|
+
(`npm run verify:fences:flutter-v6` / `test-suite/typecheck/flutter-v6`) — the compiler is the oracle.
|
|
141
|
+
3. **TELL THE DEVELOPER**: page · section · what's there now · what it should say · why it matters.
|
|
142
|
+
4. **Record it** in `DOCS-BACKLOG.md` (owner **docs**) + an `AUDIT.md` row, and bake only a clearly-labelled
|
|
143
|
+
temporary stopgap in the skill, citing the backlog entry — exactly as F1–F5 are handled in `SKILL.md`.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# layout — the mobile sizing standard (bounded height, safe area, keyboard)
|
|
2
|
+
|
|
3
|
+
The Flutter instance of the pack's reflow-free-surface standard. The web recipe (`100dvh`, `min-height:0`
|
|
4
|
+
columns, prepared ancestor chain) does NOT apply here; the principle does: **the kit's list widgets expand
|
|
5
|
+
to fill their parent, so the parent must supply a bounded height — never let content drive it.**
|
|
6
|
+
|
|
7
|
+
## The four invariants
|
|
8
|
+
|
|
9
|
+
**1. Bounded height for every list.** `CometChatConversations`, `CometChatMessageList`, `CometChatUsers`,
|
|
10
|
+
`CometChatGroups`, `CometChatGroupMembers` and `CometChatSearch` all want to fill their parent. Inside a
|
|
11
|
+
`Column`, wrap them in `Expanded` (or `Flexible`); otherwise Flutter throws
|
|
12
|
+
*"RenderFlex children have non-zero flex but incoming height constraints are unbounded"* — or the list
|
|
13
|
+
collapses to zero height.
|
|
14
|
+
```dart
|
|
15
|
+
Widget messagePane(User user) => Column(children: [
|
|
16
|
+
CometChatMessageHeader(user: user),
|
|
17
|
+
Expanded(child: CometChatMessageList(user: user)), // REQUIRED — bounds the list
|
|
18
|
+
CometChatMessageComposer(user: user),
|
|
19
|
+
]);
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
**2. Never nest the surface in an unbounded scroll parent.** A `SingleChildScrollView`, a `ListView`, or a
|
|
23
|
+
`Column` inside one gives its children *infinite* height, so a kit list inside it throws or renders
|
|
24
|
+
nothing. If chat must sit inside a scrolling page, give it a **fixed** height (`SizedBox(height: 480)`) or
|
|
25
|
+
a sized cell — a content-driven box is the defect, not the kit.
|
|
26
|
+
|
|
27
|
+
**3. `Scaffold` + `SafeArea`.** The surface belongs in a `Scaffold` (it supplies the `Material` ancestor the
|
|
28
|
+
kit's widgets need) with `SafeArea` so the composer clears the home indicator and the header clears the
|
|
29
|
+
notch. A bare `Container` at the root is the usual cause of "the composer is under the home bar".
|
|
30
|
+
|
|
31
|
+
**4. Keyboard avoidance — leave `resizeToAvoidBottomInset` alone.** It defaults to `true`, which is what
|
|
32
|
+
keeps `CometChatMessageComposer` above the keyboard. Setting it to `false`, or placing the surface inside a
|
|
33
|
+
widget that swallows the inset, hides the input the moment the user types. If the composer is covered:
|
|
34
|
+
check for `resizeToAvoidBottomInset: false`, a nested `Scaffold`, or a manual `MediaQuery.viewInsets` hack.
|
|
35
|
+
|
|
36
|
+
## No load-transition reflow
|
|
37
|
+
The kit ships its own loading and empty states, so give it the full box immediately and let it render its
|
|
38
|
+
loader **inside** that box. Do not gate the whole screen behind your own placeholder→chat swap sized
|
|
39
|
+
differently from the final surface — that is what makes the UI jump when messages arrive. (The init/login
|
|
40
|
+
gate in `lifecycle.md` is different and correct: it runs *before* the chat screen exists at all.)
|
|
41
|
+
|
|
42
|
+
## Embedded / modal placements
|
|
43
|
+
A bottom sheet, dialog, or embedded panel must still supply a bounded height — `showModalBottomSheet` with
|
|
44
|
+
a `SizedBox(height: MediaQuery.of(context).size.height * 0.9)`, or a `Container` with a fixed height.
|
|
45
|
+
Recipes: `cometchat-flutter-v6-placement`.
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# lifecycle — init once, login, gate the first frame, log out
|
|
2
|
+
|
|
3
|
+
Loaded when the task touches startup, session, or "why is it blank / why did it re-init".
|
|
4
|
+
|
|
5
|
+
## The invariant
|
|
6
|
+
`initFromSettings()` → `login(uid)` → **only then** render any `CometChat*` widget. Both are async and
|
|
7
|
+
callback-reporting; a widget rendered before login succeeds shows blank or throws.
|
|
8
|
+
|
|
9
|
+
## Init once — not once per widget, and hot-restart-safe
|
|
10
|
+
Do it at app startup (before `runApp`, or in the root widget's `initState`), never inside a screen that
|
|
11
|
+
can be re-entered. `initFromSettings` reads `cometchat-settings.json` and persists
|
|
12
|
+
`integrationSource="ai-agent"`; calling it twice is wasteful and races the Calls SDK routing.
|
|
13
|
+
|
|
14
|
+
```dart
|
|
15
|
+
Future<void> main() async {
|
|
16
|
+
WidgetsFlutterBinding.ensureInitialized(); // REQUIRED before any plugin/asset access
|
|
17
|
+
runApp(const MyApp()); // init happens inside the gate widget below
|
|
18
|
+
}
|
|
19
|
+
```
|
|
20
|
+
> `WidgetsFlutterBinding.ensureInitialized()` is mandatory — `initFromSettings` loads an asset through
|
|
21
|
+
> `rootBundle`, which needs the binding. Omitting it is a common first-run crash.
|
|
22
|
+
|
|
23
|
+
## Gate the first frame (the pattern that prevents the blank screen)
|
|
24
|
+
Hold the app on a loader until init AND login have both reported success; only then build the chat.
|
|
25
|
+
Keep the gate at the ROOT so a hot restart re-runs it cleanly.
|
|
26
|
+
|
|
27
|
+
```dart
|
|
28
|
+
import 'package:cometchat_chat_uikit/cometchat_chat_uikit.dart';
|
|
29
|
+
import 'package:flutter/material.dart';
|
|
30
|
+
|
|
31
|
+
class ChatGate extends StatefulWidget {
|
|
32
|
+
const ChatGate({super.key});
|
|
33
|
+
@override
|
|
34
|
+
State<ChatGate> createState() => _ChatGateState();
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
class _ChatGateState extends State<ChatGate> {
|
|
38
|
+
bool _ready = false;
|
|
39
|
+
String? _error;
|
|
40
|
+
|
|
41
|
+
@override
|
|
42
|
+
void initState() {
|
|
43
|
+
super.initState();
|
|
44
|
+
_start();
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
Future<void> _start() async {
|
|
48
|
+
await CometChatUIKit.initFromSettings(
|
|
49
|
+
onError: (e) => setState(() => _error = e.message),
|
|
50
|
+
);
|
|
51
|
+
if (_error != null) return;
|
|
52
|
+
// Already signed in after a restart? login() no-ops for the same UID.
|
|
53
|
+
await CometChatUIKit.login(
|
|
54
|
+
'cometchat-uid-1', // ASK for a real UID — never invent one
|
|
55
|
+
onSuccess: (_) => setState(() => _ready = true),
|
|
56
|
+
onError: (e) => setState(() => _error = e.message),
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
@override
|
|
61
|
+
Widget build(BuildContext context) {
|
|
62
|
+
if (_error != null) return Scaffold(body: Center(child: Text('CometChat: $_error')));
|
|
63
|
+
if (!_ready) return const Scaffold(body: Center(child: CircularProgressIndicator()));
|
|
64
|
+
// Only past this point may a CometChat* widget be built.
|
|
65
|
+
return const Scaffold(body: SafeArea(child: CometChatConversations()));
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
> `setState` after an await needs the usual `if (!mounted) return;` guard in real code.
|
|
70
|
+
|
|
71
|
+
## Who is logged in
|
|
72
|
+
`CometChatUIKit.loggedInUser` is the cached `User?` — the sync getter the thread screen needs
|
|
73
|
+
(`loggedInUser:` is a REQUIRED param on `CometChatThreadedHeader`). It is populated by `login`, so it is
|
|
74
|
+
non-null anywhere behind the gate above. `CometChatUIKit.login` itself calls `getLoggedInUser()` first and
|
|
75
|
+
returns early when that UID is already signed in — **no host-side concurrent-login guard is needed.**
|
|
76
|
+
|
|
77
|
+
## Production auth — the Auth Key is dev-only
|
|
78
|
+
`login(uid)` uses the Auth Key from the settings file, which means the key ships inside the app bundle.
|
|
79
|
+
That is acceptable for development only. For production:
|
|
80
|
+
1. Omit `credentials.authKey` from `cometchat-settings.json`.
|
|
81
|
+
2. Mint a per-user **auth token** on your server (CometChat REST API, using the App's REST key).
|
|
82
|
+
3. Sign in with `CometChatUIKit.loginWithAuthToken(authToken, onSuccess: …, onError: …)`.
|
|
83
|
+
Say this out loud to the user when you wire the dev path — flag dev-only AS dev-only.
|
|
84
|
+
|
|
85
|
+
## Logout
|
|
86
|
+
`CometChatUIKit.logout()` clears the session; send the user back to the gate afterwards so a subsequent
|
|
87
|
+
login re-runs cleanly. Do not re-`init` on logout.
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# setup-credentials — detect, reconcile, fetch, write, authorize
|
|
2
|
+
|
|
3
|
+
The full version of `SKILL.md` §"Setup & credentials". Load when doing first-time setup or debugging auth.
|
|
4
|
+
|
|
5
|
+
## 1. Detect the project (`npx @cometchat/skills detect --json`, topped up by reading the repo — `RULES.md`)
|
|
6
|
+
Parse, recording `null` rather than guessing when a signal is absent:
|
|
7
|
+
|
|
8
|
+
| Signal | Where |
|
|
9
|
+
|---|---|
|
|
10
|
+
| Flutter/Dart constraints | `pubspec.yaml` → `environment:` |
|
|
11
|
+
| Existing CometChat + **major** | `pubspec.yaml` deps + `pubspec.lock` (`cometchat_chat_uikit`) |
|
|
12
|
+
| State management | deps: `flutter_bloc` · `riverpod` · `provider` · `get` · `mobx` |
|
|
13
|
+
| Navigation | deps/source: `go_router` · `auto_route` · plain `Navigator` |
|
|
14
|
+
| Config strategy | `--dart-define` in run configs · `envied` · `flutter_dotenv` · a constants file |
|
|
15
|
+
| Existing credentials | `cometchat-settings.json` · `.cometchat/config.json` · `--dart-define` keys |
|
|
16
|
+
| App entry | `lib/main.dart` — where `runApp` is, and what wraps it |
|
|
17
|
+
| Platform floors | `android/app/build.gradle.kts` (`minSdk`) · `ios/Podfile` (`platform :ios`) |
|
|
18
|
+
|
|
19
|
+
## 2. version_conflict — STOP
|
|
20
|
+
A non-v6 `cometchat_chat_uikit` present on an **add** request is a STOP, not a warning: reconcile first,
|
|
21
|
+
never mix majors (`RULES.md`). v5 → v6 is `cometchat-flutter-v6-migration`. If v6 is already wired and
|
|
22
|
+
working, this is a **re-entry** — summarize what exists and ask what to ADD, don't re-run setup.
|
|
23
|
+
|
|
24
|
+
## 3. Credentials — OFFER the fetch FIRST (never degrade to "paste it yourself")
|
|
25
|
+
**(a) Fetch from the dashboard — the default.** Load the CLI on demand:
|
|
26
|
+
```bash
|
|
27
|
+
npx @cometchat/skills-cli@3 auth login
|
|
28
|
+
npx @cometchat/skills-cli@3 provision list --json
|
|
29
|
+
npx @cometchat/skills-cli@3 provision use --app-id <id> --json
|
|
30
|
+
```
|
|
31
|
+
- **Never auto-create an app.** List, show the top few plus a "show all", and ASK which.
|
|
32
|
+
- `provision use` returns App ID / Region / Auth Key **and** writes a neutral `.cometchat/config.json`.
|
|
33
|
+
It does **not** know Flutter — writing the settings asset is the skill's job.
|
|
34
|
+
|
|
35
|
+
**(b) Manual paste** — Dashboard → Your App → Credentials. Use only if the user declines (a) or the CLI
|
|
36
|
+
can't run. Ask and WAIT; never guess a value.
|
|
37
|
+
|
|
38
|
+
## 4. Write the settings asset
|
|
39
|
+
`cometchat-settings.json` at the **project root** (beside `pubspec.yaml`):
|
|
40
|
+
```json
|
|
41
|
+
{
|
|
42
|
+
"appId": "APP_ID",
|
|
43
|
+
"region": "REGION",
|
|
44
|
+
"credentials": { "authKey": "AUTH_KEY" },
|
|
45
|
+
"uiKit": { "subscribePresenceForAllUsers": true, "enableCalling": false },
|
|
46
|
+
"chatSDK": { "autoEstablishSocketConnection": true }
|
|
47
|
+
}
|
|
48
|
+
```
|
|
49
|
+
Register it (exact indentation matters in YAML):
|
|
50
|
+
```yaml
|
|
51
|
+
flutter:
|
|
52
|
+
uses-material-design: true
|
|
53
|
+
assets:
|
|
54
|
+
- cometchat-settings.json
|
|
55
|
+
```
|
|
56
|
+
Then: `flutter pub get`. **Do NOT gitignore a registered asset** — a fresh clone / CI `flutter build bundle`
|
|
57
|
+
fails with *"No file or variants found for asset: cometchat-settings.json"* if the file is missing. Instead
|
|
58
|
+
**commit a placeholder `cometchat-settings.json`** (same shape, placeholder/empty `authKey` — never a real
|
|
59
|
+
dev key) so the asset path always resolves, and have each dev and CI overwrite it with real credentials
|
|
60
|
+
locally / at build time. Guard against committing a real key with a pre-commit hook or CI check, not
|
|
61
|
+
`.gitignore`. Never echo the Auth Key back to the user or into logs.
|
|
62
|
+
> Optional keys: `chatSDK.adminHost` / `chatSDK.clientHost` (dedicated/on-prem clusters only).
|
|
63
|
+
> `uiKit.enableCalling` stays `false` until the user asks for calls (→ `cometchat-flutter-v6-calls`).
|
|
64
|
+
|
|
65
|
+
### If the team already uses `--dart-define` / envied
|
|
66
|
+
The settings **file** is what `initFromSettings` reads — it cannot read `--dart-define`. Two honest options,
|
|
67
|
+
state the trade-off and let the user choose:
|
|
68
|
+
- Keep `initFromSettings` and generate `cometchat-settings.json` at build time from your existing secret
|
|
69
|
+
source (CI writes the file). Keeps telemetry attribution.
|
|
70
|
+
- Or use the classic `UIKitSettingsBuilder` + `CometChatUIKit.init(...)` with `--dart-define` values —
|
|
71
|
+
works, but loses `integrationSource="ai-agent"`. Only if the user prefers it after hearing the trade-off.
|
|
72
|
+
|
|
73
|
+
## 5. Authorize — confirm it actually worked
|
|
74
|
+
`initFromSettings` reaches `onSuccess`, then `login` reaches `onSuccess` with a `User`. Failure modes:
|
|
75
|
+
- **Wrong Region** — the single most common cause of an immediate auth error. `us` / `eu` / `in`, matching
|
|
76
|
+
the Dashboard exactly.
|
|
77
|
+
- **UID doesn't exist** — `login` needs an existing user (Dashboard → Users; fresh apps seed
|
|
78
|
+
`cometchat-uid-1…`). Never invent one.
|
|
79
|
+
- **Asset not found** — see `troubleshooting.md`.
|
|
80
|
+
|
|
81
|
+
## 6. Production
|
|
82
|
+
Omit `credentials.authKey`, mint a per-user auth token server-side, and call
|
|
83
|
+
`CometChatUIKit.loginWithAuthToken(...)` (`lifecycle.md`). Tell the user plainly that the Auth Key path you
|
|
84
|
+
wired is dev-only — flag dev-only AS dev-only.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# troubleshooting — symptom → cause → fix
|
|
2
|
+
|
|
3
|
+
The first stop when a Flutter integration renders wrong. Live page: `/ui-kit/flutter/troubleshooting`.
|
|
4
|
+
|
|
5
|
+
| Symptom | Likely cause | Fix |
|
|
6
|
+
|---|---|---|
|
|
7
|
+
| Blank/white screen where chat should be | A widget rendered before `login` succeeded | Gate the first frame on init **and** login (`lifecycle.md`) |
|
|
8
|
+
| `Unable to load asset: cometchat-settings.json` | File missing, not at project root, or not registered | Add it and list it under `flutter: assets:` in `pubspec.yaml`; re-run `flutter pub get` |
|
|
9
|
+
| Crash on `initFromSettings` before any UI | `WidgetsFlutterBinding.ensureInitialized()` missing | Call it first in `main()` |
|
|
10
|
+
| `RenderFlex children have non-zero flex but incoming height constraints are unbounded` | A kit list inside an unbounded parent | Wrap in `Expanded`, or give a fixed height (`layout.md`) |
|
|
11
|
+
| The list renders as a zero-height sliver | Same — content-driven parent | Same |
|
|
12
|
+
| Composer hidden by the keyboard | `resizeToAvoidBottomInset: false`, or a nested/absent `Scaffold` | Leave the default `true`; one `Scaffold` per screen |
|
|
13
|
+
| Header under the notch / composer under the home bar | No `SafeArea` | Wrap the body in `SafeArea` |
|
|
14
|
+
| `AUTH_ERR_AUTH_TOKEN_NOT_FOUND` / login fails immediately | Wrong **Region**, or the UID does not exist | Check `region` against the Dashboard; use a real UID from Dashboard → Users |
|
|
15
|
+
| Login fails only in release builds | Auth Key stripped/obfuscated, or no network permission | Verify the settings asset ships; check Android `INTERNET` permission |
|
|
16
|
+
| `Undefined name 'CometChatIncomingCall'` (or any call widget) | Imported only the chat barrel | Also import `package:cometchat_chat_uikit/cometchat_calls_uikit.dart` |
|
|
17
|
+
| Call buttons missing from the message header | Calls not enabled | `uiKit.enableCalling: true` in the settings file **and** `cometchat_calls_sdk` added (→ `-calls`) |
|
|
18
|
+
| Thread replies never appear / never send | `parentMessageId` passed without `user:`/`group:` | Pass BOTH on the thread list *and* composer |
|
|
19
|
+
| `The named parameter 'onBack' isn't defined` on the thread header | Following the docs page | It has no `onBack` — use the screen's `AppBar` (`DOCS-BACKLOG` F5) |
|
|
20
|
+
| `The named parameter 'onConversationItemClick' isn't defined` | Following the search docs page | `onConversationClicked` / `onMessageClicked` (`DOCS-BACKLOG` F3) |
|
|
21
|
+
| An enabled extension (polls/stickers) doesn't appear | Expecting v5-style registration | v6 auto-surfaces it; confirm the Dashboard toggle, add NO client code |
|
|
22
|
+
| Presence/online status never updates | `subscribePresenceForAllUsers` false in settings | Set it `true` (default) |
|
|
23
|
+
| Messages arrive only after reopening the screen | Socket not auto-connecting | `chatSDK.autoEstablishSocketConnection: true` |
|
|
24
|
+
| Android build fails on minSdk | App below the real floor (the docs' 24 is too low) | `minSdk = 26` in `android/app/build.gradle.kts` — forced by `cometchat_calls_sdk`, a hard dependency of the kit |
|
|
25
|
+
| iOS pod install fails | Deployment target too low (the docs' 13.0 is too low on 5.0.7) | `platform :ios, '15.1'` in `ios/Podfile`, then `pod install` |
|
|
26
|
+
| Everything breaks after upgrading from v5 | Mixed majors / removed v5 APIs | → `cometchat-flutter-v6-migration`; never mix majors |
|