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

decentraland / builder / 26971767583
52%

Build:
DEFAULT BRANCH: master
Ran 04 Jun 2026 06:39PM UTC
Jobs 1
Files 326
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

04 Jun 2026 06:34PM UTC coverage: 51.903% (+0.3%) from 51.631%
26971767583

push

github

web-flow
feat: compress generated thumbnails with png quantization (#3416)

the 1024x1024 `thumbnail.png` images generated for wearables and emotes are
heavy because they're encoded as lossless png. this re-encodes them with a
quantized (indexed) palette via `upng-js`, which preserves the alpha channel
(unlike jpeg/webp) while greatly reducing the file size of 3d-rendered images.

- add `compressPngBlob(blob, colors = 256)` in `modules/media/utils`. it has a
  size floor: if the quantized result isn't smaller (e.g. smooth gradients that
  quantize poorly), or decoding/encoding fails, the original blob is returned by
  reference, so it can never produce a larger or broken file.
- compress `thumbnail.png` in both save sagas (`handleSaveItemRequest`, which the
  reset path also uses, and the bulk `handleSaveMultipleItemsRequest`). uploads are
  content-hash-addressed, so the thumbnail's content hash is recomputed when the
  blob changes.
- compress the catalyst `image.png` inside `generateImage`, covering the save, bulk
  and deploy paths. its hash stays consistent because it's computed downstream.
- palette size is configurable via the `colors` argument / `THUMBNAIL_PALETTE_COLORS`.

note: this is a size floor, not a perceptual one. `upng-js` has no pngquant-style
quality threshold or dithering, so the gradient `image.png` is the asset most prone
to banding at 256 colors.

2235 of 5494 branches covered (40.68%)

Branch coverage included in aggregate %.

26 of 29 new or added lines in 3 files covered. (89.66%)

7146 of 12580 relevant lines covered (56.8%)

33.89 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
83.29
0.21% src/modules/item/sagas.ts
1
52.39
2.57% src/modules/item/utils.ts
Jobs
ID Job ID Ran Files Coverage
1 26971767583.1 04 Jun 2026 06:39PM UTC 652
53.65
GitHub Action Run
Source Files on build 26971767583
  • Tree
  • List 326
  • Changed 200
  • Source Changed 3
  • Coverage Changed 200
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #26971767583
  • c032adce on github
  • Prev Build on 8.15.0 (#26956285732)
  • Next Build on master (#27012905132)
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