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

Freegle / Iznik / 24149
72%

Build:
DEFAULT BRANCH: master
Ran 01 Jul 2026 06:10AM UTC
Jobs 4
Files 1354
Run time 3min
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

01 Jul 2026 05:42AM UTC coverage: 71.606% (+0.02%) from 71.591%
24149

push

circleci

invalid-email-address
fix(ripple): never join/insert a poster into a group they are banned from

Rippling could silently undo a moderator ban. Both join sites in
ExpandService ignored users_banned:
- rippleIntoNewGroups (site A) rippled the post INTO a banned group.
- addPosterMembershipToRippledGroups (site B) re-joined the banned poster
  (rippled=1 membership).

The leave-guard never caught it: a normally-banned user's most-recent
Group/Joined is 'Manual'/'Auto' (not 'Rippled'), so the guard's Rippled
condition never fired and users_banned was never consulted.

Fix:
- Site A: NOT EXISTS users_banned AND NOT EXISTS memberships collection='Banned'.
- Site B: NOT EXISTS users_banned (Banned-collection already blocked by the
  existing-membership check).
- Backfill: ExpandService::pullBannedRippleMemberships() + ripple:remove-banned
  command (dry-run default, --commit/--user/--limit). Removes rippled=1
  memberships into banned groups and soft-deletes their rippled-in post copies,
  one row per statement (Galera-safe); never touches organic memberships.
- Tests: post-not-rippled-when-banned (users_banned and collection='Banned'),
  backfill removes + dry-run writes nothing, organic membership untouched.

Prod dry run: 40 banned ripple-join pairs, 158 rippled-in copies.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AgH6Y917X3Nge6KbB4nw6M

11904 of 15811 branches covered (75.29%)

Branch coverage included in aggregate %.

49 of 69 new or added lines in 2 files covered. (71.01%)

27 existing lines in 5 files now uncovered.

128296 of 179982 relevant lines covered (71.28%)

36.92 hits per line

Uncovered Changes

Lines Coverage ∆ File
18
0.0
iznik-batch/app/Console/Commands/Ripple/RemoveBannedCommand.php
2
84.69
0.93% iznik-batch/app/Services/Ripple/ExpandService.php

Coverage Regressions

Lines Coverage ∆ File
13
88.46
-4.74% iznik-nuxt3/components/JobsDaSlot.vue
10
86.36
-0.09% iznik-nuxt3/components/JobOne.vue
2
87.58
-0.2% iznik-server-go/emailtracking/emailtracking.go
1
94.77
0.0% iznik-batch/app/Services/AutoRepostService.php
1
88.89
-1.85% iznik-batch/app/Services/ChatChaseupExpectedService.php
Jobs
ID Job ID Ran Files Coverage
24149 go - 24149 01 Jul 2026 06:10AM UTC 143
83.81
CircleCI Job 24149
24149 playwright - 24149 01 Jul 2026 06:10AM UTC 74
22.74
CircleCI Job 24149
24149 laravel - 24149 01 Jul 2026 06:10AM UTC 472
68.29
CircleCI Job 24149
24149 vitest - 24149 01 Jul 2026 06:10AM UTC 738
69.46
CircleCI Job 24149
Source Files on build 24149
  • Tree
  • List 1354
  • Changed 7
  • Source Changed 0
  • Coverage Changed 7
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • CircleCI Build #24149
  • 403b5f8d on github
  • Prev Build on master (#24124)
  • Next Build on master (#24174)
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