cometchat-flutter-v6-features — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited cometchat-flutter-v6-features (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Ground truth: the feature-existence oracle isfeatures.flutter-v6.json(pack root). A feature the user asks for MUST be anidthere — if it is not listed, it does not exist; do not invent it. Exact dashboard steps come from the feature'sdocs_topic(dashboard paths rot — FETCH them). Widget names come fromcatalogs/flutter-v6.json.
cometchat-flutter-v6-core — install, credentials, init→login→render. This skill ASSUMES it.cometchat-flutter-v6-components — the widget catalog features render through.The user wants to turn ON a capability: "add polls", "enable stickers", "turn on translation", "add smart replies", "add moderation", "enable an extension".
Core done. Most features add NO package; voice-video-calls adds one (→ -calls), push adds Firebase (→ -push).
v6 deleted the entire v5 extension architecture. There is no UIKitSettings.extensions, no CometChatUIKitChatExtensions, no DataSource, no ChatConfigurator, no *ExtensionDecorator, no CometChatUIKit.getDataSource(). A dashboard-enabled extension surfaces automatically through MessageTemplateUtils — composer action sheet, message bubbles — with zero client registration code.
So for most extensions the correct answer is: flip the Dashboard toggle and write NO code. Emitting v5-style registration into a v6 app is a defect, not a harmless no-op. If the user already has such code, that is a migration problem (→ -migration).id. Not listed → say so; don't invent one.needs_stitching: if true, the kit renders an affordance that is inert until the host navigates somewhere (thread indicator, search field) — wire it or hide it, never dead-end. Otherwise there is nothing to do; point at the ui_components if they want to restyle it (→ -customization).auto_rendered_ui: true — their widgets exist for styling, not for you to mount.CometChatAISmartRepliesView / CometChatAIConversationStarterView / CometChatAIConversationSummaryView. Plan-gating is often unknown — verify, don't assert.-calls) or push (→ -push). Do not re-derive those here.CometChatMessageList already renders blocked/moderated content and already ships a built-in "Report message" action. Hand-rolling either duplicates the built-in.../cometchat-flutter-v6-core/references/docs-map.md → SDK docs. UI-Kit-first, SDK-fallback.Announce anything you send via the SDK. The v6 Flutter events page now enumerates the ccMessage* events (DOCS-BACKLOG F6 corrected upstream — verified against cometchat/docs@2ebb1db, 2026-09-09); the guidance below matches both the page and the installed kit 6.1.0.
A message sent with CometChat.send*Message instead of CometChatMessageComposer does not reach kit widgets on its own — CometChat does not echo your own sends back through the realtime listener, so an on-screen CometChatMessageList only learns about it on its next fetch (which looks like "it works" if the list is opened fresh each time, and "nothing happens" if it is always mounted). Emit the event yourself in onSuccess:
import 'package:cometchat_chat_uikit/cometchat_chat_uikit.dart';
// The barrel exports TWO enums named MessageStatus; ccMessageSent wants the core
// one, so import it under a prefix exactly as the kit's own composer does.
import 'package:cometchat_chat_uikit/shared_ui/src/clean_architecture/core/constants/enums.dart'
as core_enums;
Future<void> post(CustomMessage msg) => CometChat.sendCustomMessage(
msg,
onSuccess: (sent) =>
CometChatMessageEvents.ccMessageSent(sent, core_enums.MessageStatus.sent),
onError: (e) {},
);.md twin.reactions · mentions (incl. `@all`) · quoted reply · threaded replies · read receipts · typing indicators · presence · mark-as-unread · report message · media sharing · voice notes. They are core messaging, not extensions. If asked, say they're already on and offer to customize them. (Their legacy extension pages exist but are marked deprecated — the oracle flags them.)
email-replies, e2e-encryption: absent from the Flutter v6 extensions page and legacy docs-wide. Flagged deprecated: true in the oracle.
The feature actually works in the running app (a poll sends, a sticker appears, translation shows in the action sheet), and any Dashboard toggle it needs is ON. Renders empty ⇒ the toggle is off, not a code problem.
Close (after it builds): end with the shared 3-option selectable menu and WAIT — ① add another feature · ② customize theming · ③ test it manually (RULES.md §19).
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.