chat-bubble — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited chat-bubble (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.
Floating chat bubble launcher — renders a clickable trigger and toggles a popover containing the chat UI. Built on reablocks ConnectedOverlay (Floating UI under the hood).
import { ChatBubble } from 'reachat';
import type { Placement, Modifiers } from 'reablocks';| Prop | Type | Default | Description |
|---|---|---|---|
bubbleContent | ReactNode | — | Content rendered inside the trigger element (the always-visible bubble) |
children | ReactNode | — | Content rendered inside the floating popover when open |
position | Placement | 'right-end' | Floating UI placement (e.g. 'top', 'bottom-start', 'left-end') |
modifiers | Modifiers | [offset({ mainAxis: 0, crossAxis: -40 })] | Floating UI middleware overrides |
className | string | — | Class for the trigger wrapper |
Click the trigger to open / close. The component manages its own isOpen state.
<ChatBubble
bubbleContent={
<button className="rounded-full p-3 bg-primary text-white shadow-lg">
<ChatIcon />
</button>
}
position="top-end"
>
<Chat
sessions={sessions}
activeSessionId={activeId}
viewType="companion"
onSendMessage={handleSend}
>
<SessionMessagePanel>
<SessionMessages />
<ChatInput />
</SessionMessagePanel>
</Chat>
</ChatBubble>For a floating chat bubble experience, pair ChatBubble with viewType="companion" so the chat surface fits within the popover.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.