v4.5.0
Release build (minor) of NodeBB @ 2025-09-03T17:42:15.868Z
v4.5.0 (2025-09-03)
Documentation Changes
- add missing routes to openapi schema (0f44034)
- openapi typo (560cc2e)
- update openapi schema for relays and rules (a9a12a9)
- openapi schema fixes for auto-categorization commits (c0248ca)
New Features
- use sbd to more intelligently put together a sub-500 character summary based on existing sentences in post content (35641f3)
- add sbd dependency to improve title generation (and for summary generation, later) (8268632)
- send local posts out to established relays (aa26dfb)
- relay handshake logic, handle Follow/Accept, send back Accept. (f4d1df7)
- adding and removing relays from AP settings page in ACP (1e0fb20)
- apply auto-categorization logic (165af50)
- ability to add/remove auto-categorization rules for incoming federated content (bdcf28a)
- re-jigger 'add category' button to allow addition of remote category to main index (75639c8)
- add Urdu localisation, thank you! (8c6992f)
- add wordpress (82037de)
- add wordpress (c10656e)
- only mark notifications read that match current filter (9d39ed5)
- closes #13578, increase uniquevisitors (e142363)
- add new brite skin from bootswatch (e851a52)
- add filter:post.getDiffs (97d4994)
- add filter:post.getDiffs (90a6512)
- add expose-gc flag to loader (bba18e3)
- add ap pageviews analytics (559a2d2)
- add heap snapshot (f88329d)
- add option to toggle chat join/leave message (92a3859)
- add protection mechanism to request lib so that network requests to reserved IP ranges throw an error (9d3b8c3)
Bug Fixes
- display proper id if lock fails (19aa8a7)
- closes #13624, update post fields before schedule code (9d4a9b8)
- #13622, WordPress blog URLs not asserting properly (4ef605b)
- closes #13625, fix utils.params so it works with relative_paths (a0e78ff)
- remove webfinger error log (a0be4a2)
- urlencoded param in openapi spec example (5f7085f)
- re-ordering dependencies because raisins (cbdc90a)
- missed a tab character (788301a)
- random hotkeys adding dependencies to my project smh (771b8dc)
- parseAndTranslate bug (40973ca)
- internationalize relay states (6576468)
- minor fixes for yukimochi/Activity-Relay compatibility (28b6389)
- inbox.announce to not reject activities from relays (b1dbb19)
- handle webfinger responses with subject missing scheme (4967492)
- closes #13501 (bf279d7)
- closes #13620 (027d6f3)
- rare crash if queued item is no longer in db but id is in post:queue (e79dfeb)
- jquery selector on post edit (f5ad786)
- relative paths in openapi schema (a771b17)
- add missing routes to write.yaml (e840147)
- only process unique slugs (312df52)
- remove special-case logic that added a requested object to a topic if its defined context didn't actually contain it (70d7e32)
- return null if field is falsy (09898b9)
- mark-all read notifications button (c16f9d6)
- catch exceptions in assertPayload, closes #13611 (9bdf24f)
- add missing files (057e3b7)
- add missing file to ur language folder (ecab347)
- regression caused by cc6fd49 (06c3824)
- protocol-relative URLs being accidentally munged, #13592 (cc6fd49)
- cache lookup error when doing loopback calls (6738963)
- image handling when image url received is not a path with an extension (b4ff790)
- readd retry items (c6889f0)
- set noindex tag on remote profiles as well (fe16016)
- duplicate canonical link header (c8ad086)
- add rel canonical to remote user profiles (8ce5498)
- ap queue id to use payload.type payload.id (a8bf4ea)
- clearTimeout if item is evicted from cache (0997fbf)
- sometimes summary is null/undefined (65364bf)
- don't translate text on admin logs page (f6ed7ec)
- change the client side reloginTimer to match setting (c43c353)
- redis connect host/port (eac3d0a)
- closes #13558, override/extend json opts from config.json (25c2429)
- add missing cache name (3f520c3)
- add missing ap pageview middleware (01f2eff)
- set to empty string if undefined (0ef98ec)
- make clickable element anchor (dbed2db)
- for attribute, remove upload trigger when click inputs (329f98d)
- check topic and thumbs (72fec56)
- closes #13526, dont send multiple emails when user is invited (5a5ca8a)
- pubsub on node-redis (f7f7046)
- typo (2280ea8)
- ensure check returns false if no addresses are looked up, fix bug where cached value got changed accidentally (6478532)
- wrap cached returns for dns lookups in nextTick (010113a)
- #13459, unread indicators for remote categories (6411c19)
- further guard against DNS rebinding attack (a8e613e)
- undefined check, allow plugins to append to allow list (70c04f0)
- simplify dns to use .lookup instead of .resolve4 and .resolve6, automatically allow requests to own hostname (df36021)
- return 200 for non-implemented activities instead of 501 (fcb3bfb)
- remove null categories (28c021a)
- patch ap .probe() so that it does not execute on requests for its own resources (a80edfa)
- bring back auto-categorization if group and object are same-origin, handle Peertube putting channel names in
attributedTo(8f93345)
Other Changes
Refactors
- revert, don't need to pass relative_path (f67265d)
- leaner utils.params for relative path (648c454)
- remove invalid queued items (b73ee30)
- braces (f83d253)
- add missing awaits (5ee1fd0)
- category listing logic to allow remote categories to be added, disabled, and re-arranged in main forum index (cb0b609)
- show code/stack when dep check fails (f8733e0)
- dont del if cache disabled (bc40d79)
- remove old arg (8305a74)
- if user.delete fails in actor prune (d5f6d15)
- use promise.all (472df3a)
- use promise.all (6eab44a)
- move ap retry queue from lru cache to db (#13568) (b3a4a12)
- log uid that failed (de71cc6)
- change default teaser to last-post (8ba230a)
- copy session/headers when building req (e4a0160)
- show both days and hours (1d7c32a)
- add missing cache name (272008b)
- another missing cache name (0fdde13)
- add names to caches, add max to request cache (a08551a)
- closes #13547, process user uploads via batch (1ad97ac)
- move post uploads to post hash (#13533) (24e7cf4)
- parallel socket.io adapter (0b9bfc1)
- use strings for cids (57a5de2)
Reverts
- remove heapdump (e74996f)
Tests
- delete commented-out test (70bbed9)
- add timeout to ap.helpers.query (8f7411c)
- more logs (8e160fe)
- add more logs (f703a94)
- add more logs (681ce8b)
- debug timeout (029da6c)
- more logs for failing test (79c6e72)
- catch error in failing test (69a6c15)
- sharp invalid png (1ea10ef)
- latest sharp (3cdf28b)
- add logs for test that's timing out (1515580)
- use protocol of test runner (0481549)
- fix notification tests (f8a0a7e)
- one more fix (95f6688)
- fix spec (7393bdd)
- fix openapi (1071ac0)
- fix meta test (1776bd1)
- test fixes for default teaser change (8eedb38)
- add openapi spec (020e0ad)
- try timeout again (27aab92)
- disable timeout (930ff21)
- psql fix (85e2d7d)
- one more test fix (22d1972)
- fix test, add joinLeaveMessages to newRoom (7acd63c)
- increase timeout (fa31ba0)
- on more (1a85faf)
- testing timeout on failing test (82c8034c)
- remove ci env (39d243b)
- add a null field test (1fc91d5)