Release build (minor) of NodeBB @ 2025-11-26T16:59:42.911Z
v4.7.0 (2025-11-26)
New Features
- federate out undo(announce) when moving topics (832477f)
- native image appending for remote private notes (822f4ed)
- add isNumber to client-side helpers (172aabc)
- handle Move(Context) activity (8ca52c7)
- update Remove(Context) to use target instead of origin, federate out Move(Context) on topic move between local cids (d02e188)
- context removal logic (aka moving topics to uncategorized, and federating this to other NodeBBs) (34e95e6)
- add new setting to control posts uploads being shown as thumbs (97e59fb)
- handle Delete(Context) as a move to cid -1 if the remote context still exists (f98a721)
- handle incoming Announce(Delete), closes #13712 (4d5005b)
- execute 1b12 rebroadcast logic on all tids even if not posted to a local cid (9583f0d)
- auto-enable link-preview plugin on new installations (b153941)
- bundle link-preview plugin (e7bdf6b)
- federate topic deletion on topic deletion as well as purge (4d24309)
- federate Delete on post delete as well as purge, topic deletion federates Announce(Delete(Object)) (93b6cb5)
Bug Fixes
- null check on attachments property in assertPrivate (9d83a3d)
- update announce and undo(announce) so that their IDs don't use timestamps (24e1768)
- incorrect topic event added when topic moved out of cid -1 (used to be a share by the user; since removed.) (2b733e4)
- #13654, improper OrderedCollectionPage ID (aa7e078)
- IS logic when body.height < window.height (bdb4524)
- update markdown and web-push to latest versions (c51b7b6)
- bump mentions to 4.8.2 (2ce691c)
- rename activitypub.out.announce.category, federate out Delete on topic move to cid -1 (9bb8a95)
- bump harmony and persona for #13756 (c616e65)
- renderOverride to not clobber url if already set in template data (2066727)
- bump themes for cross-post support, #13396 (9d3e817)
- add replies in parallel during note assertion (4858abe)
- logic error in context generation (748cc5e)
- relax toPid assertion checks so that it only checks that it is a number or uri (30b1212)
- update logic so that purging a post does not remove toPid fields from children, updated addParentPosts so that post existence is checked (f6219d0)
- update category mock to save full handle (524df6e)
- logic error in out.remove.context (ab9154a)
- cross-check remove(context) target prop against cid (194cedb)
- update logic re: federating out topic moves (4f2f872)
- bad var (22868d3)
- call api.topics method on topic move during note assertion, have category announce new topic on note assertion (3df4970)
- do not include image or icon props if they are falsy values (603068a)
- rebroadcasting logic should only execute for local tids if the remote cid is not addressed already (1d52947)
- move Announce(Delete) out of topics.move and into topics API method (fadac61)
- do not include actor from reflected activity when rebroadcasting remote cid (3fa74d4)
- broken category urls in to, cc (d4695f1)
- update getPrivateKey to send application actor key when cid 0 (a45f6f9)
- update targets in 1b12 rebroadcast when cid is remote (58a9e1c)
- update 1b12 rebroadcast logic to send as application actor if post is in remote cid (79d0885)
- regression caused by d3b3720 (af5efbd)
- crash in tests (6c21006)
- add attachments to retrieved post data onNewPost (07bed55)
Other Changes
- //github.com//issues/13713 (2425f3b)
Refactors
- deleteOrRestore internal method to federate out a Delete on delete, not just purge; better adheres to FEP 4f05 (e6911be)
- get rid of post.exists check, if post doesnt exist content is falsy (1794403)
- move all methods in src/api/activitypub.js to src/activitypub.out.js (3ede64d)
- user announces no longer occur on topic move. Instead, the new category announces. Only occurs when topic moved to local categories. (e09bb8b)
- inbox announce(delete) handling to also handle context deletion, #13712 (2b2028e)
- move post attachment handling directly into posts.create (d3b3720)
Reverts
Tests
- update test for toPid logic to reflect that toPid stays even if parent is purged (98a1101)