New
v4.8.1
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)