v4.3.0
Release build (minor) of NodeBB @ 2025-05-01T04:13:39.910Z
v4.3.0 (2025-05-01)
Documentation Changes
- update openapi spec with new (missing) properties (b32b7fc)
New Features
- upgrade script to remote duplicate remote users and categories as per #13352 (5aee2f2)
- add new mixin clamp-fade, and handler for expanding it in category description (decc9cf)
- handle Announce(Update(Note)) as well, #13320 (0447366)
- #13255, proper handling of upvotes shared by group actors (74e32a1)
- send the whole post content in
summary
as well (5c5fd3d) - show/hide categories on world page, #13255 (804208b)
- notice on remote categories that have no local followers, #13255 (93a5b35)
- add new option to categorySearch module,
defaultCategories
, use to populate the category list when you don't want to poll backend for the main category list (a487d5f) - category quick search on world page, theme version updates, #13255 (1790951)
- show tracked/watched remote categories in world page, #13255 (34ab677)
- remote user to category migration should also migrate local user follows into category watches (ac7b7f8)
- allowing manual group assertion via category search input (23b3148)
- remote group actors migrated to categories if they were previous asserted as remote users (d19f692)
- #13255 new topics in remote category addresses remote category, tests, fixes to tests (b8c531d)
- #13255, deliver asserted topics to remote category followers (9c1d5cd)
- #13255, add category name and handle to category search zset (876d1b0)
- integrate remote category pruning into actor pruning logic (9b5855f)
- migration of group-as-user to group-as-category, remote category purging, more tests (4be0f73)
- asserted topics and posts to remote categories will notify and add to unread based on remote category watch state (f483e88)
- also include category in
to
field when mocking post for federation (f73f727) - chat allow/deny list, closes #13359 (a5afad2)
- show topic follower counts (#13326) (bf2d4c4)
- federate out as:Article with
preview
for root-level posts in a topic, instead ofas:Note
(3c4be77) - body-parser-2.x test (#13278) (389bc06)
- upgrade commander, get rid of custom color & wrapping code (485562d)
- testing eslint9 (#13266) (6813664)
Bug Fixes
- bump harmony (2bf2e55)
- #13352, also do the webfinger backreference check when calling assertGroup (2572cbf)
- regression that caused non-public content with source.content to fail parsing (e9b3306)
- closes #13360, catch error in buildAccountData middleware (537a742)
- bug where disparate ids all claiming to be the same handle were causing duplicate remote users due to collisions, #13352 (c2a3ef8)
- posts incorrectly excluded from results if result pid is in a remote category (a0a8c46)
- ap helpers.makeSet to handle undefined property values (d020e33)
- add back localCategories to categorySearch when defaultCategories is supplied (d58d586)
- remote bare hash for remote users on prune as well (f02d966)
- missing teasers for remote categories on /world (695312f)
- remove superfluous privilege filter in markAllRead (0fab425)
- reversed image and icon for remote categories, omit fa icon if remote category has icon property set, #13255 (dabcefa)
- closes #13289, id can be null (f1d1d08)
- marking remote category topics as read (4a7111d)
- markAllRead to get tids based on same logic as unread page, instead of marking all recent posts read (b023673)
- key ownership cross-check to also work with remote categories, #13255 (6dee3e5)
- #13255, assert all recipients of the main post when asserting a note, so that remote categories can be discovered (1f04678)
- remote categories should not show up in a user's follow lists (4d1d7c3)
- #13255, remote user-to-category migration should not move shares that are already in an existing cid (3213da1)
- proper handling of actors.qualify response (f2e0ba2)
- missing dep (2cb6d10)
- topics in remote categories showing up in /recent (c4274a3)
- regression that caused resolveInboxes to always return empty, added tests for resolveInboxes (0246c14)
- spread fail, @julianlam (c1b7196)
- filter out non-asserted targets when sending ap messages, diff. getter method when passed-in ID is a remote category (309deb0)
- tag whitelist check socket call for remote categories (c5901e0)
- migrate topics as system user instead of uid 0 (ee34396)
- do not send out ap (undo:)follow if local user or category is (not)already following (c6f2c87)
- allow category controller to respond also by remote category id (0b333fb)
- #13255, update category search logic to allow for remote categories (6e23de4)
- delete shares zset on account deletion (7ccd6b7)
- persona tooltip so it doesn't appear when dropdowns are open (ea9f790)
- lang keys (4277765)
- closes #13353, don't use index for finding plugin data (ed92ffa)
- regression on search query that is a url, via 3526c93 (4125219)
- closes #13313, add error:post-deleted (b49a458)
- upgrade script (52ca086)
- tag urls getting double escaped (#13306) (3526c93)
- notifications.markAllRead (bf243e0)
- posts.uploads.usage since paths changed (c41c7e8)
- req.body can be undefined (cd70e6c)
- closes #13298, catch exceptions in webfinger and nodeinfo (bbfd644)
- closes #13205, make parent post font-size small until expanded (ef98f8f)
- closes #13275, set 'announces' after adding to zset to prevent race condition (2c59007)
- use slug instead of groupname in acp for groups (d9f3320)
- do not await the batch call to sendMessage (aa4f23b)
- commenting out outward federation of Add activity, pending forumwg discussion (4b22f29)
- on user deletion during assertion (due to 410), if delete fails, just run ap post-deletion to clean up (4bbe27d)
- race condition in test (807a8c6)
Refactors
- use promise.all (7466138)
- categories.sortTidsBySet to not take cid, retrieve from tids themselves (bfc7daf)
- allow topics to be asserted directly into a remote category, or -1 otherwise (0fa9823)
- ability to browse to remote categories, group actor assertion logic, etc. -- no logic to assign topics to remote categories yet (1f40995)
- remove datepicker (be7959e)
- add sping/ping into openapi (8ffbc35)
- moved these rules to nodebb-config (e184c91)
- switch eslint configs to esm (92d6e02)
- move topic/post menu lists to core (9f93cc9)
- show topic tools if plugins add them (87aacc8)
- remove reply icons (b73fb67)
- remove debug log (021b3af)
- break long line (c93dc58)
- only write to db on runJobs processes (a6839b6)
- use bulk increment (667367a)
- remove spammy error log (9637abc)
Reverts
Tests
- article for new topic, note for replies (3e508d6)
- missing clear ap send cache (512f889)
- additional test for ensuring handle:uid is continually set even after re-assertion (39fc9ba)
- additional test for remote category topic assertion when ignoring category (c2f77ce)
- #13255, reply to topic in remote category addresses remote category (85e7c1a)
- remote user pruning tests (53dc79a)
- introduce overrides into person and group mocks (4f74815)
- have ap helper mocks for person and group auto-save to ap cache (80069a1)
- add failing tests for actor/group assertion via wrong method, remote user to category migration (afc4764)
- add tests for topics slotting into remote categories if addressed (804052f)
- group actor assertion tests (ca9a5b6)
- shorter test (e0235a1)
- eslint for tests (f864a5a)
- fix tests (321defb)
- fix test expecting Note when it is now Article (5d94f2c)