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

decentraland / worlds-content-server / 29444119097
89%
main: 91%

Build:
Build:
LAST BUILD BRANCH: fix/undeployment-event-base-parcel
DEFAULT BRANCH: main
Ran 15 Jul 2026 07:23PM UTC
Jobs 1
Files 113
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

15 Jul 2026 06:56PM UTC coverage: 88.675% (-0.4%) from 89.074%
29444119097

Pull #504

github

LautaroPetaccio
fix: harden partial-deployment finalize, GC, and staging hot path

correctness / security:
- deployScene: exclude the entity's own row from the overlap soft-delete, so
  a concurrent finalize (or client retry) of an already-deployed entity
  collides on the world_scenes primary key (the idempotency signal) instead
  of soft-deleting then re-deploying — which double-published the SNS event
  and double-counted the deployment
- verify the auth-chain signature over the entity id BEFORE reading the
  entity back from storage on a resume request, so an unauthenticated caller
  can't make the server retrieve and buffer up to 10mb per request (the
  resume read is not covered by the multipart in-flight budget)
- garbage collection: also subtract the keys of scenes deployed since the
  sweep began, so a partial upload that finalizes mid-sweep (pending row
  gone, world_scenes snapshot stale) can't have its reused content reclaimed
- apply the 10mb entity-file cap only on the partial path; the vanilla
  single-request path is bounded by the multipart budget, so capping it there
  wrongly rejected large-but-legitimate manifests that deployed before

performance / cleanup:
- stop shipping the multi-mb entity jsonb between postgres and node on every
  staging batch: drop it from the getByEntityId select and the upsert
  returning (no caller reads it), and only insert it on the first batch — a
  resume just bumps updated_at
- run the independent pending-row and content-metadata lookups concurrently
- drop the redundant storage head on the resume path (the capped read
  enforces the size limit on its own)
- fix a stale finalization-lease comment and a vacuous self-exclusion in the
  per-deployer cap count
Pull Request #504: feat: support partial (multi-request) scene uploads

1489 of 1795 branches covered (82.95%)

Branch coverage included in aggregate %.

198 of 223 new or added lines in 12 files covered. (88.79%)

4 existing lines in 3 files now uncovered.

3170 of 3459 relevant lines covered (91.64%)

95.3 hits per line

Uncovered Changes

Lines Coverage ∆ File
10
72.46
src/adapters/pending-scenes-manager/component.ts
6
84.76
-10.36% src/controllers/handlers/deploy-entity-handler.ts
3
87.5
0.0% src/controllers/handlers/garbage-collection.ts
3
90.43
src/logic/partial-deployments/component.ts
2
88.87
-1.05% src/adapters/worlds-manager.ts
1
92.52
-2.04% src/logic/validations/common.ts

Coverage Regressions

Lines Coverage ∆ File
2
87.5
-10.17% src/adapters/name-deny-list-checker.ts
1
38.46
2.75% src/adapters/fetch.ts
1
28.57
1.3% src/adapters/notifications-service.ts
Jobs
ID Job ID Ran Files Coverage
1 29444119097.1 15 Jul 2026 07:23PM UTC 225
89.82
GitHub Action Run
Source Files on build 29444119097
  • Tree
  • List 113
  • Changed 75
  • Source Changed 14
  • Coverage Changed 74
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #29444119097
  • Pull Request #504
  • PR Base - main (#28820665786)
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