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

decentraland / builder-server / 36594010763
74%

Build:
DEFAULT BRANCH: master
Ran 29 Sep 2026 03:57PM UTC
Jobs 1
Files 192
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

29 Sep 2026 03:56PM UTC coverage: 73.402% (+1.0%) from 72.428%
36594010763

push

github

web-flow
fix: harden collection forum posting and the Discourse client (#812)

* fix: harden collection forum posting and the Discourse client

Move forum-post creation for standard and third-party collections behind a
ForumService, resolve the author's profile name from peer profiles (falling
back to a shortened address), and make the Discourse client reject non-2xx
and non-JSON responses instead of persisting a malformed forum link.

* fix: return existing forum_link when the collection already has a post

Include forum_link in the 409 body of POST /collections/:id/post so the
builder front-end recovers from the existing post instead of surfacing an
error and re-sending the request. Log the case as a warning rather than an
error, since it is now an expected, handled path.

* fix: resolve only claimed profile names and address forum review feedback

Return the profile name from getProfileName only when it is a claimed name;
unclaimed names fall back to the shortened address so they cannot be used to
impersonate other users. Also guard getPost against non-JSON responses, stop
leaking the built post body in createPost errors, tighten the forum service
return types to Promise<string>, rename buildCollectionForumPost to
buildThirdPartyCollectionForumPost, and add peer/client error-path tests.

* fix: retry duplicated forum titles on the server and sanitize creator text

The builder frontend handles a "Title has already been used" failure by
re-sending with a suffixed title, but the server rebuilds the title itself,
so the request looped with no delay. Retry once on the server with the
shortened contract address appended, and report a remaining duplicate without
the Discourse message so the frontend falls back to its regular retry.

Also escape creator-controlled collection and item text in the post body so
it cannot add mentions, links or markdown, answer 409 for unpublished
collections, add request timeouts to the Discourse client, release the profile
response b... (continued)

1575 of 2351 branches covered (66.99%)

Branch coverage included in aggregate %.

101 of 103 new or added lines in 7 files covered. (98.06%)

1 existing line in 1 file now uncovered.

3442 of 4484 relevant lines covered (76.76%)

50.66 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
91.55
13.77% src/Forum/Forum.router.ts
1
88.89
-11.11% src/Forum/Forum.service.ts

Coverage Regressions

Lines Coverage ∆ File
1
91.55
13.77% src/Forum/Forum.router.ts
Jobs
ID Job ID Ran Files Coverage
1 36594010763.1 29 Sep 2026 03:57PM UTC 384
74.51
GitHub Action Run
Source Files on build 36594010763
  • Tree
  • List 192
  • Changed 108
  • Source Changed 7
  • Coverage Changed 108
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #36594010763
  • ba65d6a4 on github
  • Prev Build on 5.21.0 (#33655803817)
  • Next Build on master (#37056847465)
  • Delete
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