NodeBB
Node.js based forum software built for the modern web
Alternative to: discourse, vanilla forums, circle
About
Versions (100)
v4.6.0
2025-10-01Release build (minor) of NodeBB @ 2025-10-01T18:12:05.727Z
v4.6.0 (2025-10-01)
Documentation Changes
- update openapi schema to refer to try.nodebb.org instead of example.org (56a93366)
New Features
- ability to nickname remote categories, closes #13677 (bd80b77a)
- allow activities to be addressed to as:Public or Public to be treated as public content (5f4790a4)
- allow user auto-categorization rule (1d6a9fe7)
- add minor pre-processing step to better handle header elements in incoming html (15f9fbaa)
Bug Fixes
- login handler to handle if non-confirmed email is entered (5ed19ef8)
- allow quote-inline class in mocks sanitizer so quote-post fallback elements can be detected and removed during title generation, fixes #13688 (675178ac)
- force outgoing page on direct access to
/aphandler (9cee7999) - update outgoing page to match 404 design (954e7bc8)
- don’t begin processing local login if the passed-in username isn’t even valid (c3df68f2)
- #13667, record to instances:lastSeen instead of domains:lastSeen (7184507b)
- #13676, bug where nested remote categories could not be removed (175dc209)
- regression 218f5ea from via, stricter check on whether the calling user is a remote uid (8c553b18)
- #13668, privilege checking on topic create for remote users; was not properly checking against fediverse pseudo-user (218f5eab)
- update logic as to whether a post is served as an article or not (d122bf4a)
- update activitypubFilterList logic so that it is also checked on resolveInbox and ActivityPub.get methods, updated instances.isAllowed to no longer return a promise (be9212b5)
- add missing unlock in nested try/catch (9184a7a4)
- wrap majority of note assertion logic in try..catch to handle exceptions so that the lock is always released (95fb084c)
- use newline_boundaries param for tokenizer during title and summary generation, attempt to serve HTML in summary generation (2ea624fc)
- deprecated call to api.topics.move (0f9015f0)
- deps:
- update dependency webpack to v5.102.0 (#13683) (17dba0b0)
- update dependency mongodb to v6.20.0 (#13665) (9b00ff1e)
- update dependency lru-cache to v11.2.2 (#13669) (00d80616)
- update dependency sass to v1.93.2 (#13674) (1b5804e1)
- update fontsource monorepo (#13663) (6e84e35f)
- update dependency esbuild to v0.25.10 (#13664) (9b48bbd5)
- update dependency sharp to v0.34.4 (#13662) (c8680f30)
- update dependency satori to v0.18.3 (#13660) (b2d91dc3)
- update dependency nodebb-theme-harmony to v2.1.20 (#13659) (b845aa48)
- update dependency fs-extra to v11.3.2 (#13658) (8324be2d)
- update dependency @fontsource/inter to v5.2.7 (#13655) (db892509)
- update dependency commander to v14.0.1 (#13652) (19f39198)
- update dependency bootswatch to v5.3.8 (#13651) (1e82af66)
- update dependency sass to v1.92.1 (#13645) (10344c98)
- update dependency workerpool to v9.3.4 (#13650) (6a1e9e8a)
- update dependency lru-cache to v11.2.1 (#13644) (6adfbb24)
Other Changes
- disallow checkHeader from returning a URL from a different origin than the passed-in URL (4776d012)
- ‘nickname’ and ‘descriptionParsed’ use in categories controller (051043b6)
Performance Improvements
- update old upgrade scripts to use bulkSet/Add (2b987d09)
Refactors
- notes.assert to add finally block, update assertPayload to update instances:lastSeen via method instead of direct db call (559155da)
Reverts
- post queue changes to fix tests (10350ea6)
Tests
- fix message (d6e7e168)
- show tids on test fail (8614d825)
- more fixes for note vs. article (3bba9029)
- short OPs create Notes again (15878087)
- ap timeouts (8d6a0f02)
- disable post queue when testing posting logic (9bfce68b)