cometchat-android-v6-features — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited cometchat-android-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:features.android-v6.json(the feature-existence + enablement oracle) + catalogandroid-v6.json+ the live feature pages (core-features,extensions,ai-features,call-features, theguide-*recipes). A feature not in the oracle does NOT exist for this kit — say so; never invent one. Fetch component params from docs (core→references/docs-map.md).
cometchat-android-v6-core — install, credentials, initFromSettings → login → render, hot-path callbacks, the fetch map. Assumed here, never repeated.cometchat-android-v6-extensions (the 8 Dashboard extensions in detail) · cometchat-android-v6-calls (voice/video) · cometchat-android-v6-push (FCM) · cometchat-android-v6-{kotlin,compose}-customization (styling a feature's UI)."add <feature> to my Android chat", "enable <feature>", "does the Android UI Kit support <X>?", "why isn't <feature> showing up?". The job: resolve the ask against the oracle, take the right enablement branch, wire only what needs wiring, and tell the user honestly what it needs (Dashboard? package? code?).
Same kit + initFromSettings → login gate as core. Some features add a Gradle artifact (calls, push) or need a Dashboard toggle — the branch below says which.
features.android-v6.json (table below). No match ⇒ the kit has no built-in for it: check whether the Chat SDK covers it (core/references/docs-map.md → SDK section) and say plainly that there's no UI-Kit component.cometchat-android-v6-{kotlin,compose}-customization). Applies to reactions, mentions, receipts, typing, presence, quoted replies, rich text, media, mark-as-unread, report.init+login, no client code. Your job: tell the user exactly where it will appear (composer action sheet, message list, bubble) and how to verify. Ask which are already enabled — you cannot read per-app Dashboard state.com.cometchat:calls-sdk-android + uiKit.enableCalling in assets/cometchat-settings.json; push: com.cometchat:push-notifications-android + Firebase). Route to the dedicated skill.guide-* recipe for this feature (see core/references/docs-map.md → "Task guides"), BUILD FROM the guide, then DIFF your implementation against it, then apply the hardening deltas (credentials via the settings file, init→login gate, thread targets, IME/insets sizing, listener teardown)..md twin.features.android-v6.json — ⚙ = needs stitching)| Feature id | Enablement | Components |
|---|---|---|
text-messaging | auto | CometChatMessageList, CometChatMessageComposer |
media-file-attachments | auto | CometChatMessageComposer, CometChatMessageList |
delivery-read-receipts | auto | CometChatMessageList, CometChatReceipts, CometChatConversations |
mark-as-unread | auto | CometChatConversations |
typing-indicators | auto | CometChatMessageList, CometChatConversations |
user-presence | auto | CometChatConversations, CometChatMessageHeader, CometChatStatusIndicator |
reactions | auto | CometChatMessageList |
mentions | auto | CometChatMessageComposer, CometChatMessageList, CometChatMentionsFormatter |
rich-text-formatting | auto | CometChatMessageComposer, CometChatRichTextFormatter |
quoted-replies | auto | CometChatMessageList, CometChatMessageComposer |
users-groups | auto | CometChatUsers, CometChatGroups, CometChatGroupMembers |
report-message | auto | CometChatMessageList |
threaded-replies | code-prop ⚙ | CometChatMessageList, CometChatThreadHeader, CometChatMessageComposer |
message-search | code-prop ⚙ | CometChatSearch |
custom-message-types | code-prop | CometChatMessageList |
text-formatters | code-prop | CometChatTextFormatter, CometChatMentionsFormatter, CometChatRichTextFormatter |
notification-feed | code-prop | CometChatNotificationFeed |
stickers | dashboard-extension | CometChatMessageComposer, CometChatStickerBubble, CometChatStickerKeyboard |
polls | dashboard-extension | CometChatMessageComposer, CometChatCreatePoll, CometChatPollBubble |
collaborative-whiteboard | dashboard-extension | CometChatMessageComposer, CometChatMessageList |
collaborative-document | dashboard-extension | CometChatMessageComposer, CometChatMessageList |
message-translation | dashboard-extension | CometChatMessageList |
link-preview | dashboard-extension | CometChatMessageList |
thumbnail-generation | dashboard-extension | CometChatMessageList |
message-shortcuts | dashboard-extension ⚙ | CometChatTextFormatter |
profanity-filter | dashboard-extension LEGACY | CometChatMessageList |
smart-reply | dashboard-toggle | CometChatMessageComposer |
conversation-starter | dashboard-toggle | CometChatMessageList |
conversation-summary | dashboard-toggle | CometChatMessageComposer |
ai-assistant | dashboard-toggle ⚙ | CometChatAIAssistantChatHistory, CometChatAIAssistantBubble, CometChatMessageList, CometChatMessageComposer |
moderation | dashboard-only | — (dashboard rules; no client code) |
campaigns | dashboard-only | — (authored in Dashboard) |
voice-video-calls | gradle-package ⚙ | CometChatCallButtons, CometChatIncomingCall, CometChatOutgoingCall, CometChatCallLogs, CometChatCallActivity |
push-notifications | gradle-package ⚙ | — (SDK token registration + FCM) |
core/references/troubleshooting.md).Suggesting an auto feature as new work · hand-rolling a feature the kit auto-renders (translation, previews, stickers) · wiring a code-prop feature's entry point but no way back (dead-end) · a thread screen missing the user/group target (replies silently don't send) · assuming Dashboard state instead of asking · adding the calls/push artifact without the Dashboard side · guessing component params instead of fetching.
Every symbol you emitted is in the catalog (Tier-1) and the app compiles (./gradlew :app:assembleDebug # in YOUR app (npm run verify:fences:android-v6 is a pack-repo gate)). On device: the feature's UI appears where the docs say (composer action sheet / message list / bubble / its own screen); a stitched feature round-trips (open AND back); an auto feature was left alone; anything requiring the Dashboard was called out explicitly to the user with where-to-click. If it doesn't show, check init/login, then the Dashboard toggle, then re-login — in that order.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.