NodeBB logo

NodeBB

Node.js based forum software built for the modern web

Alternative to: discourse, vanilla forums, circle

NodeBB screenshot

About Versions (100)

v4.8.1

2026-01-28

Release build (patch) of NodeBB @ 2026-01-28T14:19:09.007Z

v4.8.1 (2026-01-28)

Bug Fixes
  • upgrade script to handle topics that were already pruned (03b7374c)
  • closes #13899 (f98de3e9)
  • #10682, fix all the other rss routes as well (385a4d03)
  • protocol (da5605e0)
  • closes #12986 (310e90c7)
  • #13919 (b2c6fbed)
  • use min (090b9f55)
  • #13918, make arrayLimit configurable increase default to 50 (d25e7726)
  • closes #13258, dont mark digest as delivered if it fails (f29c9f06)
  • wrap fields in quotes in user csv export (1b08aef2)
  • closes #13199 normalize accept header (ec4e7ef1)
  • closes #10682, strip unicode control chars (d867d8ad)
  • require (d3f653e6)
  • remove bidi chars from displayname (07d2c946)
  • closes #11499 (50c26dd5)
  • remove lowercase bidi controls as well (512b1e72)
  • #13909, show 413 error properly (39af8383)
  • closes #11606, detect musl and use sass instead (442f9f1d)
  • make translator.unescape stricter like escape (e505e369)
  • closes #13887, make translator.escape stricter (b2fa7304)
  • closes #13897, display group create errors properly (7d36c757)
  • consider crossposts when building teasers, fixes #13891 (c494d002)
  • #13892, logical flaw (98c0a3fe)
Refactors
  • get rid of map, move parallel calls into promise.all (e231c010)
  • dont include scheduled topics in unread (7bc9fe3b)
  • remove chats.initialized, all events handlers are removed before being added (fffe039f)
  • move chat page events to a new file (ab39e7f8)
  • add guards against bad data & infi loops (6b3ec636)
  • tags were moved into topic hash a while ago (2ba8907a)
  • already checked inside user.isPasswordValid (635715ef)
  • get rid of intersect and use a faster method to load recently created tids (1cbc128a)
  • shorter params (bb6ed76e)
  • use async/await for group search (fe4a4476)
  • put alltime in query string for term (639ea42d)
  • crossposts.get to support multiple tids (57a73c48)
Tests
  • add missing awaits, change error message (918bb044)
  • dont return cross posts (be5b36bc)