• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

VolvoxLLC / volvox-bot / 22806153766
90%

Build:
DEFAULT BRANCH: main
Ran 07 Mar 2026 07:59PM UTC
Jobs 1
Files 179
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

07 Mar 2026 07:58PM UTC coverage: 87.549% (+0.07%) from 87.484%
22806153766

push

github

web-flow
chore: tech debt — skeletons, error boundaries, toasts, validation, rate limit cleanup (#257)

* feat(web): add loading skeleton placeholders to dashboard pages

Replace raw loading text with animated Skeleton components on:
- Audit log, tickets, conversations, temp-roles pages (skeleton table rows)
- Role selector and channel selector popovers (skeleton list items)

Partially addresses #144

* feat(web): add reusable ErrorBoundary component with retry button

- Create ErrorBoundary class component in web/src/components/ui/
- Shows friendly error card with AlertTriangle icon and 'Try Again' button
- Supports custom fallback render prop for flexible error UIs
- Wrap AnalyticsDashboard (main dashboard page) and ModerationStats
- Dev mode surfaces the raw error message for easier debugging

Partially addresses #144

* feat(web): add toast notifications for XP adjustment and CSV export

Use sonner toasts to surface success/error feedback for:
- XP adjustment (toast.success / toast.error alongside inline state)
- Member CSV export (toast.success on download, toast.error on failure)

Config editor already had comprehensive toasts. Partially addresses #144

* fix(web): add payload validation to XP proxy route

Validate the incoming JSON body before forwarding to the bot API:
- Reject non-object payloads with 400
- Require 'amount' field as a finite number
- Reject non-string 'reason' values
- Strip unknown keys (only forward amount + reason)

Defense-in-depth: catches bad clients before they hit the backend.
Partially addresses #144

* fix(rateLimit): export startRateLimitCleanup and add stale-sweep test

- Export startRateLimitCleanup() for testing and graceful re-init
- Add 'stale entry cleanup (interval sweep)' test that verifies the
  5-minute setInterval sweep actually removes entries whose last activity
  is older than their retention window (uses fake timers)

The cleanup itself was already implemented; this adds test coverage and
makes the function a... (continued)

5937 of 7190 branches covered (82.57%)

Branch coverage included in aggregate %.

120 of 159 new or added lines in 7 files covered. (75.47%)

2 existing lines in 1 file now uncovered.

10222 of 11267 relevant lines covered (90.73%)

229.94 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
1
94.34
src/modules/handlers/showcaseHandler.js
7
81.94
src/modules/handlers/ticketHandler.js
14
3.45
src/modules/handlers/reminderHandler.js
17
3.33
src/modules/handlers/welcomeOnboardingHandler.js

Uncovered Existing Lines

Lines Coverage ∆ File
2
88.19
0.0% src/modules/welcome.js
Subprojects
ID Flag name Job ID Ran Files Coverage
1 /jobs/178487729 22806153766.1 07 Mar 2026 07:59PM UTC 179
87.55
GitHub Action Run
Source Files on build 22806153766
  • Tree
  • List 179
  • Changed 7
  • Source Changed 6
  • Coverage Changed 7
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #22806153766
  • f53f0bef on github
  • Prev Build on main (#22803426895)
  • Next Build on main (#22808496811)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc