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

decentraland / comms-gatekeeper / 25223686457
85%
main: 85%

Build:
Build:
LAST BUILD BRANCH: refactor/native-fetch-migration
DEFAULT BRANCH: main
Ran 01 May 2026 04:57PM UTC
Jobs 1
Files 147
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

01 May 2026 04:54PM UTC coverage: 85.417% (+0.1%) from 85.297%
25223686457

Pull #261

github

LautaroPetaccio
refactor: extract room metadata sync and add scene admins to metadata

room metadata exposed only banned addresses; clients also need the set
of effective admins to render admin badges and pre-validate admin
actions before hitting the gatekeeper.

a new logic component (src/logic/room-metadata-sync) owns refreshing
scene/world room metadata. it exposes refreshRoomMetadata /
updateRoomMetadataForRoom for full reconciliation, and incremental
addBan / removeBan / addAdmin / removeAdmin that wrap the livekit array
primitives. the four mutation handlers (ban add/remove, admin add/remove)
use the incremental path, which drops 1-2 db queries plus ~3 worlds /
lands http calls per mutation.

webhook-driven refreshes are throttled per room with a 60s cooldown so
participant_joined doesn't trigger a full refresh on every join. the
cooldown is set up-front so concurrent webhooks can't both pass the
gate, and self-prunes stale entries to keep the map bounded.

other fixes folded in:
- livekit.getRoomName falls back to the legacy comms-prefix format for
  worlds without a sceneid (real legacy rooms) and throws for non-world
  without a sceneid. all four mutation paths compute the room name
  before any db write so a strict-throw cannot leave db and metadata
  partially mutated.
- addSceneBan persists the ban first, then runs kick + metadata update
  in parallel as best-effort, so a failed db write no longer leaves a
  participant kicked but unbanned.
- removeSceneAdminHandler lowercases the payload address once after
  EthAddress.validate so a checksum-cased input no longer leaves stale
  entries in the lowercase-keyed metadata array.
- land-lease holders are included in the admins union, with errors
  caught locally so a flaky lease service cannot drop bans / admins
  from the metadata write.
Pull Request #261: refactor: extract room metadata sync and add scene admins to metadata

1063 of 1366 branches covered (77.82%)

Branch coverage included in aggregate %.

83 of 85 new or added lines in 9 files covered. (97.65%)

6 existing lines in 2 files now uncovered.

3002 of 3393 relevant lines covered (88.48%)

43.27 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
89.29
0.4% src/controllers/handlers/scene-admin-handlers/remove-scene-admin-handler.ts
1
90.53
src/logic/room-metadata-sync/component.ts

Coverage Regressions

Lines Coverage ∆ File
4
90.16
0.0% src/controllers/handlers/scene-admin-handlers/list-scene-admins-handler.ts
2
86.67
0.0% src/types/errors.ts
Jobs
ID Job ID Ran Files Coverage
1 25223686457.1 01 May 2026 04:57PM UTC 294
86.66
GitHub Action Run
Source Files on build 25223686457
  • Tree
  • List 147
  • Changed 97
  • Source Changed 7
  • Coverage Changed 97
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #25223686457
  • Pull Request #261
  • PR Base - main (#25191624580)
  • Delete
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