feat(sessions): mark obvious bot sessions with robot avatars#3853
Open
Lokimorty wants to merge 1 commit intoumami-software:masterfrom
Open
feat(sessions): mark obvious bot sessions with robot avatars#3853Lokimorty wants to merge 1 commit intoumami-software:masterfrom
Lokimorty wants to merge 1 commit intoumami-software:masterfrom
Conversation
Detect automated sessions from known data center cities (Council Bluffs, Santa Clara, Ashburn, etc.) with zero session duration, and display them with robot avatars instead of human faces. This provides an instant visual indicator in the Sessions UI without needing to inspect city/duration for each session. Uses both conditions (city match AND zero duration) to minimize false positives while reliably catching obvious bots.
|
@Lokimorty is attempting to deploy a commit to the umami-software Team on Vercel. A member of the Team first needs to authorize it. |
Contributor
Greptile OverviewGreptile SummaryImplemented visual bot detection by displaying robot avatars for sessions from known data center cities with zero duration.
Confidence Score: 4/5
Important Files ChangedFile Analysis
Sequence DiagramsequenceDiagram
participant UI as SessionsTable/SessionProfile
participant Avatar as Avatar Component
participant BotDetect as isLikelyBot()
participant DiceBear as DiceBear API
UI->>BotDetect: isLikelyBot(session)
BotDetect->>BotDetect: Check city in BOT_CITIES
BotDetect->>BotDetect: Check firstAt === lastAt (zero duration)
BotDetect-->>UI: return boolean (cityMatch && zeroDuration)
UI->>Avatar: render(seed, size, isBot)
Avatar->>Avatar: select style (bottts if bot, lorelei otherwise)
Avatar->>DiceBear: createAvatar(style, seed, size, backgroundColor)
DiceBear-->>Avatar: return avatar data URI
Avatar-->>UI: render img element with avatar
|
Contributor
There was a problem hiding this comment.
Additional Comments (1)
-
src/components/common/Avatar.tsx, line 18-24 (link)style:
styleandbackgroundColorare computed outsideuseMemobut used inside - ESLint exhaustive-deps rule may flag this
4 files reviewed, 1 comment
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Automated bot sessions from known data center locations are visually indistinguishable from real user sessions in the Sessions UI, making analytics harder to interpret at a glance.
Solution
Detect sessions from known bot-hosting cities (Council Bluffs, Santa Clara, Ashburn, etc.) with zero session duration, and display them with robot avatars instead of human faces. Uses both conditions (city AND zero duration) to minimize false positives while reliably catching obvious bots.
Changes
isLikelyBot()detection utility insrc/lib/botDetection.tsisBotprop with DiceBear'sbotttsstyle