Skip to content

v4.8.0

Choose a tag to compare

@nodebb-misty nodebb-misty released this 14 Jan 17:54
· 58 commits to master since this release

Release build (minor) of NodeBB @ 2026-01-14T17:54:33.964Z

v4.8.0 (2026-01-14)

Documentation Changes
  • update openapi schema for missing routes related to crossposting (d81b644)
New Features
  • user crossposts federate as:Announce (273bc68)
  • add missing files, minor changes to crossposts list modal (38fd179)
  • introduce new front-end UI button for cross-posting, hide move on topics in remote cids (0041cfe)
  • disallow moving topics to and from remote categories, + basic tests for topic moving (ea1e4c7)
  • API v3 calls to crosspost and uncrosspost a topic to and from a category (74172ec)
  • refactor out.announce.topic to allow user announces, refactor tests to accommodate (874ffd7)
  • stop extraneous vote and tids_read data from being saved for remote users (097d080)
  • support remote Dislike activity, federate out a Dislike on downvote, bwahahah (528cd25)
  • expand postingRestrictedToMods mask testing, handle actor update for that prop (6a56105)
  • setAddBulk (#13805) (7d5402f)
  • save privilege masking set when asserting group (f0a7a44)
  • patch low-level privilege query calls to accept privilege masks at the cid level (4020e1b)
  • federate out topic removal activities when topic is deleted and purged from a local category (3ab6161)
Bug Fixes
  • i18n fallbacks (a73ab8e)
  • #13889, custom emoji from Piefed (0c75934)
  • #13888, decode html entities for AP category name and description (6eea4df)
  • derp (bcc204f)
  • bump themes (a4c470f)
  • guard against negative uids crossposting (2f96eed)
  • bump themes (943b53b)
  • calling sortedSetRemove to remove multiple values, instead of baking it into sortedSetRemoveBulk (82507c0)
  • unused values (b9b33f9)
  • typo, client-side handling of crossposts as pertains to uncategorized topics (7465762)
  • client-side handling of category selector when cross-posting so only local cids are sent to backend (ea417b0)
  • update category sync logic to utilise crossposts instead (e5ee52e)
  • remove old remote user to remote category migration logic + tests (28249ef)
  • update auto-categorization rules to also handle already-categorized topics via crosspost (148663c)
  • topic crosspost delete and purge handling (f6cc556)
  • bug where privileges users could not uncrosspost others' crossposts. Tests (0a0a7da)
  • allow non-mods to crosspost, move crosspost button out of topic tools, in-modal state updates (6daaad8)
  • removed ajaxify refresh on crosspost commit, dynamically update post stats in template, logic fix (b981082)
  • nodeinfo route to publish federation.enabled in metadata section (14aa2be)
  • bump link-preview again (74e4782)
  • bump link-preview (486e77c)
  • remove commented out require (ffc3d27)
  • bump link-preview (cc1649e)
  • auto-enable post queue as default, adjust tests to compensate (9390ccb)
  • remove bidiControls from notification.bodyShort (b0679ca)
  • author of boosted content was not targeted in the activity (b05199d)
  • closes #13872, use translator.compile for notification text (5a031d0)
  • #13715, dont reduce hardcap if usersPerPage is < 50 (cb31e70)
  • dont use sass-embedded on freebsd, #13867 (b7de0cc)
  • wrong increment value (20918b5)
  • increment progress on upgrade script (8abe0df)
  • add join-lemmy context for outgoing category group actors context prop (f1d50c3)
  • use setsAdd (d8e55d5)
  • missing await (4a6dcf1)
  • admin privilege overrides only apply to local categories (7b194c6)
  • have notes.assert call out.announce.topic only if uid is set (so, if note assertion is called via search; manual pull) (3b7bcba)
  • deep clone activity prop before execution; feps.announce (977a67f)
  • minor comment fix (411baa2)
  • publish postingRestrictedToMods property in group actor (c365c1d)
Other Changes
Refactors
  • check if tid is truthy (0e1ccfc)
  • crossposts.get to return limited category data (name, icon, etc.), fixed up crosspost modal to hide uncategorized and all categories options (349b087)
  • move crosspost methods into their own file in src/topics (1be88ca)
  • silence if-function deprecation on prod (403230c)
  • clear quick reply as soon as submitting (a331f8d)
Tests
  • intify uid/cid if they are numbers (when getting crossposts) (47e37ed)
  • stop using partialDeepStrictEqual for now (0677689)
  • ensure auto-cat and cat sync logic properly integrates with crossposts (add163a)
  • crossposting behaviour and logic tests (947676e)
  • new test file for crossposts (3560b6a)
  • additional logic to allow multi-typing in schema type (4f1fa2d)
  • lowercase tags (81cac01)
  • fix test to check for Secure in cookie string if test runner domain is https (5954015)
  • more out.announce tests (cfdbbb0)
  • basic tests for activitypub.out (67912dc)
  • update activitypub._sent to save targets as well, updated tests to accommodate format change (41368ef)
  • test runs should not actually federate activities out (483ab08)
  • check if tests pass without await (5414cf4)
  • add back logs for failing test (301b538)
  • add a test for set db.exists (#13809) (6956270)
  • fix failing test by adjusting the tests (c529244)
  • privilege masking tests (934e6be)
  • log label (22d3c52)
  • log activities (e39c914)
  • on test fail show activities (841bd82)
  • new mongodb deps (#13793) (287b256)