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

decentraland / lamb2 / 34224938522
74%

Build:
DEFAULT BRANCH: main
Ran 08 Sep 2026 12:14PM UTC
Jobs 1
Files 83
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

08 Sep 2026 12:14PM UTC coverage: 74.413% (+3.7%) from 70.732%
34224938522

push

github

web-flow
fix: refresh owned elements every minute, serving stale only within a bounded grace window (#482)

* fix: serve owned elements at most a minute old, refreshing stale entries in the background

The elements cache kept an address's inventory for ten minutes, and profile
validation checks worn items against it, so a wearable bought and equipped a
moment ago was stripped from the avatar until the entry expired; the registry
then persisted that stripped profile. The age was also a hardcoded constant.

Entries now default to one minute (ELEMENTS_CACHE_MAX_AGE, with
ELEMENTS_CACHE_MAX_SIZE alongside) and are served stale while a single
background refresh runs, which fetchMethod makes possible: a hot address costs
one upstream fetch per minute however often it is polled, and nobody waits on
the refresh. The legacy lands fetcher keeps its previous behaviour.

* fix: keep linked wearables cached for ten minutes

Filling a linked-wearables entry asks the NFT worker for the wallet's tokens
across every registered contract and then the content server for the matching
collections, and those tokens change rarely. Their presence on a profile is
validated per item through the ownership checker rather than through this
cache, so a longer age costs no correctness there. The fetcher keeps the
previous ten minutes through THIRD_PARTY_WEARABLES_CACHE_MAX_AGE while the
other owned-element caches move to one minute.

* fix: fail closed on ownership routes and meter the elements cache

Serving stale was on for every fetcher, including the two whose answer decides
ownership: the name owner and land permission lookups. On an outage those
would have answered with the previous owner for one refresh window instead of
failing. Stale serving is now a per-fetcher option and off for both, so an
expired entry blocks on the refresh and an upstream failure surfaces.

The cache was also invisible. Reads are counted by what they cost (hit, stale,
miss) and background refreshes by outcome; ... (continued)

653 of 1032 branches covered (63.28%)

Branch coverage included in aggregate %.

40 of 44 new or added lines in 2 files covered. (90.91%)

2008 of 2544 relevant lines covered (78.93%)

80.86 hits per line

Uncovered Changes

Lines Coverage ∆ File
4
84.82
0.14% src/components.ts
Jobs
ID Job ID Ran Files Coverage
1 34224938522.1 08 Sep 2026 12:14PM UTC 83
74.41
GitHub Action Run
Source Files on build 34224938522
  • Tree
  • List 83
  • Changed 8
  • Source Changed 3
  • Coverage Changed 8
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #34224938522
  • e00c7213 on github
  • Prev Build on main (#34162811890)
  • Next Build on main (#34227128513)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc