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

decentraland / lamb2 / 34227128513
74%

Build:
DEFAULT BRANCH: main
Ran 08 Sep 2026 12:38PM 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:37PM UTC coverage: 74.413%. Remained the same
34227128513

push

github

web-flow
chore: enforce coverage floors on the caching and profile adapters (#483)

* 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; a failed refresh is the ... (continued)

653 of 1032 branches covered (63.28%)

Branch coverage included in aggregate %.

2008 of 2544 relevant lines covered (78.93%)

80.86 hits per line

Jobs
ID Job ID Ran Files Coverage
1 34227128513.1 08 Sep 2026 12:38PM UTC 83
74.41
GitHub Action Run
Source Files on build 34227128513
  • Tree
  • List 83
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #34227128513
  • 7514e8f3 on github
  • Prev Build on main (#34224938522)
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