Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add cometchat/cometchat-skills --skill cometchat-angular-v5-troubleshootinggit clone --depth 1 https://github.com/cometchat/cometchat-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/cometchat/cometchat-skills/cometchat-angular-v5-troubleshooting)<a href="https://agentmods.dev/skills/cometchat/cometchat-skills/cometchat-angular-v5-troubleshooting"><img src="https://agentmods.dev/badge/skills/cometchat/cometchat-skills/cometchat-angular-v5-troubleshooting/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/cometchat/cometchat-skills/cometchat-angular-v5-troubleshooting"><img src="https://agentmods.dev/badge/skills/cometchat/cometchat-skills/cometchat-angular-v5-troubleshooting.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00093 | $0.02258 |
| Opus 5 | $0.00046 | $0.01129 |
| Sonnet 5 | $0.00019 | $0.00452 |
| Haiku 4.5 | $0.00009 | $0.00226 |
Grade A, and why
cometchat-angular-v5-troubleshooting scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured today.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 97 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Ground truth:
@cometchat/chat-uikit-angular@5(5.1.0–5.2.0 verified). Symptoms map to causes verified against the installed kit and the live{DOCS_BASE}/ui-kit/angular/troubleshooting.mdpage (base + paths incometchat-angular-v5-core/references/docs-map.md). EveryCometChat*symbol named here exists in theangular-v5catalog; a fix that requires a symbol not in the catalog is a bug in this file, not a missing export.
Companion skills (read first)
cometchat-angular-v5-core—references/anti-patterns.mdandreferences/troubleshooting.mdcarry the same table in more depth.
Use this skill when
Something is wrong and the error message is unhelpful or absent.
Start here — Angular fails SILENTLY
Four of the five most common CometChat-Angular faults produce no error at all. Do not wait for a stack trace.
Run these four checks in order before anything else:
1. Is the component in imports: []?
Missing → Angular treats <cometchat-conversations> as unknown HTML and renders nothing. No error, no warning, blank space. This is the single most common cause.
2. Does the container have height?
html, body { height: 100%; margin: 0; }
Plus a 100dvh shell and min-height: 0 on every flex column. An unsized ancestor collapses the list to 0px — markup correct, nothing visible.
3. Did login() resolve before render?
Lists render empty with no error when there is no session. Check CometChatUIKit.getLoggedInUser() is non-null at the moment the component mounts.
4. Is the binding name real?
(ccConversationClicked) never fires — the real output is (itemClick). Angular does not warn about unknown outputs. Verified names are in cometchat-angular-v5-components.
Symptom → cause → fix
| Symptom | Cause | Fix |
|---|---|---|
| Icons missing/blank across the kit | assets not registered in angular.json |
add the src/lib/assets glob → output: assets; the most commonly missed step |
| Scrolling the list scrolls the WHOLE page | shell/columns missing overflow: hidden |
min-height: 0 lets it shrink; overflow: hidden keeps the scroll inside the pane — both are required |
| List doesn't scroll at all — bottom items unreachable | <cometchat-conversations>/-users/-groups/-call-logs/-search/-message-list has no flex: 1; min-height: 0 of its OWN |
add the .cc-fill class to the tag itself, not just its ancestors — the list resolves an internal height: 100% and does not size itself |
| Whole surface runs past the viewport / clipped, on a routed page only | <cometchat-error-boundary> is the template root and ships no :host sizing, so a height: 100% shell under it resolves against nothing |
add cometchat-error-boundary { display: flex; flex-direction: column; flex: 1; min-height: 0; overflow: hidden; } — it is styled by ELEMENT, not by a class. Symptom hides when the shell uses 100dvh (viewport-relative), appears the moment it becomes 100% under a routed outlet |
<cometchat-call-logs> shows "OOPS! Looks like something went wrong" |
KIT BUG (5.1.0), not your code: CallLogsService builds new CometChatUIKitCalls.CallLogRequestBuilder() without awaiting the lazy calls-SDK load, so the accessor is still null. Zero network requests are made — it fails before fetching, and Retry does not recover |
No host-side fix. Do not hand-roll around it; report it. Note (error) will NOT surface it — call-logs has no error output (it takes an onError INPUT) |
| Blank space where chat should be | component not in imports: [] |
add the class to that component's imports |
| Blank pane, markup correct | ancestor has no height | html, body { height: 100% } + 100dvh + min-height: 0 |
| Lists render but always empty | rendered before login() resolved |
init → login before bootstrap, or gate the route |
| Click handler never fires | wrong output name | use the verified name; there is no cc prefix |
| Selected row never highlights | activeConversation not bound |
bind it to the same state as the message pane |
| Messages arrive, UI does not update | async SDK callback doesn't repaint (Angular 21 is zoneless by default, so NgZone.run() won't help) |
write to a signal or call ChangeDetectorRef.markForCheck() after the update (core lifecycle.md) |
| Memory grows per route change | no teardown | takeUntil(destroy$) + removeMessageListener(id) in ngOnDestroy |
| Duplicate messages after navigating | listener registered twice, never removed | register with a stable id; remove on destroy |
| "Please wait until the previous login request ends." | concurrent login() |
cache the in-flight promise |
npm install fails ERESOLVE |
project on Angular 22 | peer range is <22.0.0; use @angular/cli@21 |
| Build error: path not exported by package | @import of the kit stylesheet |
register the full node_modules/... path in angular.json |
| Config empty at runtime | credentials in .env |
Angular reads environment.ts, not .env |
| Import will not compile | bare class name used | use the exported …Component form |
| Header shows one chat, messages another | [user]/[group] mismatch |
pass the same subject to header, list and composer |
| Reply button does nothing | no thread surface rendered | wire a thread panel or hide the affordance |
| Feature missing, no error | dashboard extension off | enable it for the app the credentials point at |
| Call buttons render as empty zero-size elements | uiKit.callsSDK missing from initFromSettings |
add uiKit: { callsSDK: {} }; installing the package does not enable calling. Check CometChatUIKit.isCallingEnabled() |
| Lists show "OOPS!" on first load and Retry does nothing | first fetch raced login; ConversationsService caches the failure | bootstrap AFTER login resolves; give the user a retry that remounts the component |
| Calls never ring | listener not at app root, or calls SDK absent | mount <cometchat-incoming-call> at root; install the calls SDK |
| Calls fail on a LAN IP | getUserMedia needs a secure context |
use HTTPS or localhost |
window is not defined |
SSR running browser code | guard with isPlatformBrowser |
| Dropdown clipped | ancestor overflow: hidden or transform |
remove it from the chain |
| Layout jumps when data loads | box sizes to content | pin the height so loading and loaded share one box |
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- today First seen · 97 lines · 93 tokens per session scan A 7e455a6c71cb
cometchat-angular-v5-troubleshooting is a skill published in the GitHub repository cometchat/cometchat-skills (104 stars, last pushed yesterday), licensed MIT. It adds 93 tokens to every session and 2,258 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-12.
Other skills, from other repositories
reproduce-frontend-bug
Build a bounded, replayable browser or UI bug reproduction from GitHub Issues, Jira, Aone, user-provided exports, screenshots, videos, comments, or attachments. Use for browser, WebView, IDE or desktop UI, interaction, responsive, rendering, accessibility, or visual defects that need evidence-preserving reproduction…
flutter-skill
Automate and test Flutter applications — launch apps, inspect widgets, tap elements, enter text, scroll, swipe, take screenshots, validate state, and debug via Dart VM Service Protocol. Use when the user wants to run Flutter app tests, automate Flutter UI interactions, inspect widget trees, debug a running Flutter…
Dark Mode Bug Finder
Detect dark mode rendering issues including contrast failures, missing theme tokens, image inversions, and transition glitches across components.
lov-fix-broken-links
A link-checking and repair assistant for project pages, navigation, documentation, and route definitions. A route is the address or rule that connects a web URL to a page or handler.
audit-performance
Audit runtime performance (CWV, load priority). Use when "slow page", "LCP/INP/CLS", "fetchpriority", "early hints", "speculation rules", "bfcache", or "long tasks". JS payload → audit-bundle-size. Instant nav implement → enhance-web-instant-nav. Breaking point → test-load.
audit-ui-states
Read-only audit of unhappy-path UI states vibe-coding skips — empty, loading, error, offline, zero-results, permission, overflow — then plan fixes. Use when "check empty/error states", "audit loading states", or "what happens when this fails". Dead buttons → plan-stub-checker; backend timeouts → audit-resilience.