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

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

Build:
Build:
LAST BUILD BRANCH: feat/partial-deployments
DEFAULT BRANCH: main
Ran 07 Jul 2026 07:20PM UTC
Jobs 1
Files 112
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 Jul 2026 07:17PM UTC coverage: 88.592% (-0.5%) from 89.074%
28892218433

Pull #504

github

LautaroPetaccio
feat: support partial (multi-request) scene uploads

allow a world scene's content to be uploaded across several POST /entities
requests via an optional `partial=true` form field. content is staged in a
standalone pending_scenes table until every referenced file is present, at
which point the completing request runs the full validation + deploy and the
world goes live (auto-finalize); earlier requests return 202 with the
still-missing hashes.

- new pending_scenes table (migration 0025) + pending-scenes-manager. it is
  standalone (no fk to worlds) so a half-uploaded world never leaks into
  listings or validity checks before it is live
- new partial-deployments logic component
- validateFiles split into validateUploadedFiles (both phases) and
  validateNoMissingFiles (finalize only); new validator.validateStaging runs
  everything except content-completeness and the storage-backed size check;
  size is checked cumulatively as content accumulates
- at most one pending scene per world + overlapping parcels; a newer partial
  deploy replaces it
- deployment-ttl check anchored on the pending row's created_at so an upload
  can span longer than the ttl; a successful deploy removes the pending row
- garbage collection keeps non-expired pending hashes; the eviction job also
  removes expired pending rows (PENDING_DEPLOYMENT_TTL, default 24h)
- requests without the flag behave exactly as before
Pull Request #504: feat: support partial (multi-request) scene uploads

1447 of 1741 branches covered (83.11%)

Branch coverage included in aggregate %.

113 of 136 new or added lines in 9 files covered. (83.09%)

4 existing lines in 3 files now uncovered.

3088 of 3378 relevant lines covered (91.42%)

70.57 hits per line

Uncovered Changes

Lines Coverage ∆ File
12
66.18
src/logic/partial-deployments/component.ts
6
66.67
src/adapters/pending-scenes-manager.ts
5
78.13
-9.38% src/controllers/handlers/garbage-collection.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 28892218433.1 07 Jul 2026 07:20PM UTC 223
89.66
GitHub Action Run
Source Files on build 28892218433
  • Tree
  • List 112
  • Changed 75
  • Source Changed 12
  • Coverage Changed 74
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #28892218433
  • 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