<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[v4.16.0 (2026-09-16)]]></title><description><![CDATA[<p dir="auto">Release Build - Released on September 16th, 2026 (Commit: 3c94b93)</p>
<p dir="auto">We have added things such as chat messages reporting, advanced admin tools, and more. Read below for a more in-depth list of the changes that were made in the update.</p>
<hr />
<h2><a class="anchor-offset" name="new-features"></a>New Features</h2>
<ul>
<li>Allow admins to hide topic event types (#14824) (f2c968e)</li>
<li>Add Messaging.isRoomMember() (#14779) (1892552)</li>
<li>Add action:messaging.markRead hook with previous read timestamp (#14777) (fcaeec1)</li>
<li>Update chat room url with message index on scroll (#14738) (040b996)</li>
<li>Mark flag notifications read when the flag detail page is viewed (#14747) (4d155cc)</li>
<li>Expose category privilege copying via v3 API (#14670) (6203ebc)</li>
<li>Add full name to ACP user search (#14671) (4700ccb)</li>
<li>Hint when follow notifications are disabled (#14666) (a7cc7f4)</li>
<li>Chat message reporting</li>
</ul>
<h3><a class="anchor-offset" name="activitypub-features"></a>ActivityPub Features</h3>
<ul>
<li>Include contentWarning in post summaries and teasers (bfabeba)</li>
<li>Include contentWarning in feed post data (c1636f4)</li>
<li>Hide content and thumbs behind CW in templates (0b3433e)</li>
<li>Support content warnings on incoming remote posts (c968c28)</li>
<li>Add category selector to hashtag follow, fix actor assertion (fea8017)</li>
<li>Add global hashtag follow feature (4e22def)</li>
<li>Enable instance actor to follow remote actors (deeeb3d)</li>
<li>Verify incoming rfc 9421 signatures (872c617)</li>
<li>Sign activities with rfc 9421, fall back to draft (3249437)</li>
<li>Render remote emoji in actor names (d0cbe18)</li>
<li>Render custom emoji in topic titles (44ca8f4)</li>
<li>Re-download stale emoji on serve (379f4bb)</li>
<li>Hostname-aware custom emoji cache and proxy (f7376ea)</li>
<li>Allow plugins to handle incoming AP activities via plugin hook (2bf93aa)</li>
<li>Announce bumped topics to followers (16d3f6d6)</li>
<li>Add staged delivery for topic replies (c300393)</li>
<li>Log send pool failures via analytics.sendError (94b1ad5)</li>
<li>Add allowList to ssrf.js for hostname whitelisting (711f227)</li>
<li>Implement send worker child process for offloaded federation (664c9bb)</li>
<li>Flags: support remote flag forwarding for chat messages (8462ac8)</li>
<li>Federation: add activities-by-type pie chart to analytics page (b23912c)</li>
<li>Tags: add case-sensitive tag support with caseSensitiveTags config (#14690) (883c217)</li>
</ul>
<hr />
<h2><a class="anchor-offset" name="bug-fixes"></a>Bug Fixes</h2>
<ul>
<li>Messaging: skip existing members in addUidsToRoom to preserve join timestamps (f34e2e8)</li>
<li>Require author for federated chat message edit/delete (e717c3e)</li>
<li>Cross-check signature against verified keyId, not raw header (fc28231)</li>
<li>Announce dereferenceable objects to relays (7abe252)</li>
<li>Improve RFC 9421 interoperability (a57eb6e)</li>
<li>Resolve string URIs and use resolveLocalId in inbox.flag (46ae1ce)</li>
<li>Skip undo.announce for pseudo-category cid -1 (3805286)</li>
<li>Return true from assert/assertGroup when all IDs already present (89d3d96)</li>
<li>Move fallback warning from worker to orchestrator (ef860a3)</li>
<li>Handle FediBuzz Accept with actor document as object (40ca8ef)</li>
<li>Add stateClass to Hashtags.list() for API consumers (1ad7056)</li>
<li>Parse createdAt as number in hashtag records (d758fbe)</li>
<li>Limit activity dedup window to 10s (8f7471c)</li>
<li>Use RFC 9421 registered algorithm identifiers in Signature-Input header (c5dc224)</li>
<li>Correct assertion check in Out.follow (57095a4)</li>
<li>Correct assertion check in Out.follow (a0fdef7)</li>
<li>Use request protocol for rfc 9421 target uri (203e9a9)</li>
<li>Accept Content-Digest (RFC 9530) for Mitra compatibility (6190b45)</li>
<li>Add required algorithm parameter to RFC 9421 Signature-Input header (bce41a3)</li>
<li>Reconstruct rfc 9421 target uri from host header (b49186b)</li>
<li>Emit rfc 9421 signatures as rfc 8941 byte sequences (bb199f4)</li>
<li>Gate user-facing S2S endpoints on fediverse view:users privilege (f0368a2)</li>
<li>Normalize webfinger cache keys and search handles (958cd2d)</li>
<li>Harden split-domain vouching and self-link fallback (934ad5e)</li>
<li>Harden webfinger query input validation (d6f95f1)</li>
<li>Prevent cross-domain webfinger cache poisoning (60c6333)</li>
<li>Re-apply federation policy on redirect destinations (6c4692b)</li>
<li>Route unhandled resource types through outgoing warning page (634fb15)</li>
<li>Validate webfinger content-type before parsing (be5f09a)</li>
<li>Accept same-domain legacy actors via self-link fallback (6cca6a4)</li>
<li>Use sensible min/max worker counts (1d85751)</li>
<li>Handle unhandled rejections in handleResult and add .unref() to force-kill timer (18bdab7)</li>
<li>Repair send pool drain loop and worker sizing (ce0765f)</li>
<li>Add User-Agent header to fetch requests (Match NodeBB/request.js format: NodeBB/x.x.x (site-url)) (634cb7d)</li>
<li>Export SendPool on ActivityPub module for test access (bbab962)</li>
<li>Fix handleWorkerExit bug and fix sendWorker tests (343b96b)</li>
<li>Refactor send pool into send.js and fix critical bugs (612e821)</li>
<li>Registration approval queue link in ACP user settings (#14825) (4688978)</li>
<li>Filter fork topic events by category find privilege (#14823) (0af568a5)</li>
<li>Fall back to en-GB for untranslated strings (#14829) (3f3f85c)</li>
<li>Translate plugin-supplied labels on the registration queue (#14830) (059bccc)</li>
<li>Upgrade progress for system-message upgrade script (8f5ecab)</li>
<li>Fire pluginHooks for /compose (2d15e00, 4b666b8)</li>
<li>Scroll chat/notification dropdowns to top when a new item arrives (#14776) (1c63633)</li>
<li>Don't show new posts alert on topic lists for the user's own posts (#14818) (2a2cf37)</li>
<li>Do not federate crossposts to private targets (3a6b81f)</li>
<li>Bump themes for #14794 (d0dd90b)</li>
<li>Broken tpl in feed/item.tpl (92e4f80)</li>
<li>Prevent caching of responses carrying a CSRF token (#14787) (47e3858)</li>
<li>Add hashtag schemas to OpenAPI manifests (fb38d0f)</li>
<li>Closes #14765 (8f5f105)</li>
<li>Load zxcvbn lazily so password forms keep working when the chunk fails to load (#14791) (1478c95)</li>
<li>Prune expired topic view timestamps from the session (#14789) (a21aaf1)</li>
<li>Ask for the current password when an admin changes their own password from ACP (#14790) (6b47ea8)</li>
<li>Hide "none found" notice on trending plugins tab when plugins exist (#14785) (edc15e5)</li>
<li>Use parent category as up link, closes #14784 (e661c60)</li>
<li>Don't splice the viewer's own chat room into another user's room list (#14781) (86827de)</li>
<li>Keep the server timestamp on live chat messages (#14778) (2f3df9c)</li>
<li>Bump emoji plugin (c092185)</li>
<li>Browser title rendered LTR for RTL users when the page title starts with Latin text (#14780) (561de8a)</li>
<li>Register template helpers before ajaxify can render a page (#14775) (c2da26f)</li>
<li>Only allow sort by flags for privileged users (9af2e8b)</li>
<li>Don't allow sorting by email in user search (dba251b)</li>
<li>Show which login field is missing instead of a generic error (#14772) (b155970)</li>
<li>On notifications page don't show counts if post notifications are not visible (0290c45)</li>
<li>Category/tag filter dropdown taller than the viewport (#14769) (3391a3d)</li>
<li>Filter out notifications that are from pids that are (3bfdf62)</li>
<li>During post creation don't use posts.uploads.sync (1e49042)</li>
<li>Unread/flags nav counts not rendered when relative_path is set (#14755) (7457d23)</li>
<li>Enforce response size during streaming and require Digest for inbox requests (cee29dc)</li>
<li>Add one more escape for title (b873693)</li>
<li>Add missing escape (92a7fd5)</li>
<li>Use new helper in topic and posts (0796f50)</li>
<li>Include fullnameEmoji in key places in core (873d027)</li>
<li>Escape attributes in renderShortcodeEmoji helper (7523dd7)</li>
<li>Bump themes for #14748 (e371cbe)</li>
<li>Closes #14743, handle uid groupnames in isMember methods (c1081a0)</li>
<li>Issue where wrong cid was passed in when remote uid was posting to remote cid (eadc8e2)</li>
<li>Remove extraneous comments (aaff6c0)</li>
<li>Lang keys (42f5f46)</li>
<li>Add missing dep (d2fee2b)</li>
<li>Lint (8ef4b72)</li>
<li>Regressed tests due to webfinger strictness checks (8b008cd)</li>
<li>Fallbacks, manually executed (c20d2e8)</li>
<li>Use thread instead of process for AP workerpool config (301f7c7)</li>
<li>Update maxWorkers strategy to use os.availableParallelism() * 2 (a0fa245)</li>
<li>Debug logs (e8b9475)</li>
<li>Match the same icon in topic.tpl for merge (419ef35)</li>
</ul>
<h3><a class="anchor-offset" name="security-fixes"></a>Security Fixes</h3>
<ul>
<li>Harden login timing, user status, and groupTitle (d271e20, 12860ab)</li>
<li>Flags: support remote actor URIs in Flags.rescindReport (d111ae8)</li>
<li>Auth: #14793, clear forceLogin before session regeneration (40fc44f)</li>
</ul>
<h3><a class="anchor-offset" name="test-amp-federation-fixes"></a>Test &amp; Federation Fixes</h3>
<ul>
<li>Assert relative localPath in getEmoji test (59139cc)</li>
<li>Adjust ActivityPub privilege tests for remote uid/cid checks (aeb0a3e)</li>
<li>Federation: resolve analytics lint errors (#14703) (ce136e0)</li>
<li>Activitypub/jobs: only run drainLoop on primary process (5c5dc76)</li>
<li>Admin/federation: add pie chart, no-data state, and legend spacing to analytics (0eda2d6)</li>
</ul>
<hr />
<h2><a class="anchor-offset" name="performance-improvements"></a>Performance Improvements</h2>
<ul>
<li>Don't map twice for keys (4d6379d)</li>
<li>Don't stringify unused value (5987213)</li>
<li>Use a single filterUids (3b76bf7)</li>
<li>Use index and get watching and everything above (e065409)</li>
</ul>
<hr />
<h2><a class="anchor-offset" name="refactors"></a>Refactors</h2>
<ul>
<li>Remove deprecated chat <a href="http://socket.io" rel="nofollow ugc">socket.io</a> methods (a2aa265)</li>
<li>Change worker count (883953d)</li>
<li>Don't log timestamp parse error (7ca81b4)</li>
<li>New topic notification (708ccdd)</li>
<li>Remove postcss-clean (d1ee69...)</li>
</ul>
]]></description><link>https://browsedns.net/topic/23278/v4.16.0-2026-09-16</link><generator>RSS for Node</generator><lastBuildDate>Tue, 22 Sep 2026 00:00:54 GMT</lastBuildDate><atom:link href="https://browsedns.net/topic/23278.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 21 Sep 2026 22:19:33 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to v4.16.0 (2026-09-16) on Mon, 21 Sep 2026 23:13:54 GMT]]></title><description><![CDATA[<p dir="auto">While this is all great and something I am thankful for, every icon now appears as just a square, and some as some symbol from a foreign language. Group tag colours aren't showing up, and it's all very laggy. (On Switch, anyways.) I'm aware that there's probably not much that can be done, however I am quite bothered.</p>
]]></description><link>https://browsedns.net/post/257706</link><guid isPermaLink="true">https://browsedns.net/post/257706</guid><dc:creator><![CDATA[tyler_x]]></dc:creator><pubDate>Mon, 21 Sep 2026 23:13:54 GMT</pubDate></item><item><title><![CDATA[Reply to v4.16.0 (2026-09-16) on Mon, 21 Sep 2026 22:59:46 GMT]]></title><description><![CDATA[<p dir="auto">I'm on a Chromebook and the lag is so bad the site is barely useable, I'll click an icon like the chat icon or try to reply to a topic, but nothing will happen. and i'll wait, click it again, nothing happens and eventually I spam click it and still nothing and it'll just randomly work occasionally and if I can get into DMs, messages will just not send at all and the site will also get stuck refreshing for a while when I try to fix it by refreshing.</p>
<p dir="auto">other, more resorce-intensive sites like discord run ok for me, it's quite literally just browse DNS that's not working.</p>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/_izzy_" aria-label="Profile: _izzy_">@<bdi>_izzy_</bdi></a>  I was trying to reply to your post in this exact thread and I just couldn't, for me, some icons won't show up but they do eventually (<em>on my end I think it's a lag issue</em>)</p>
<p dir="auto">I feel bad for switch users, bc if my non-school chromebook is able to run discord fine but browse DNS is just running poorly I can't imagine how bad the lag is for those using a switch.</p>
]]></description><link>https://browsedns.net/post/257702</link><guid isPermaLink="true">https://browsedns.net/post/257702</guid><dc:creator><![CDATA[Yanderemenhera]]></dc:creator><pubDate>Mon, 21 Sep 2026 22:59:46 GMT</pubDate></item><item><title><![CDATA[Reply to v4.16.0 (2026-09-16) on Mon, 21 Sep 2026 22:47:05 GMT]]></title><description><![CDATA[<p dir="auto">I would need help with the message display screen because I would not know what to type and plus I can't use the text box since the old messages are in the way</p>
]]></description><link>https://browsedns.net/post/257694</link><guid isPermaLink="true">https://browsedns.net/post/257694</guid><dc:creator><![CDATA[Noctis]]></dc:creator><pubDate>Mon, 21 Sep 2026 22:47:05 GMT</pubDate></item><item><title><![CDATA[Reply to v4.16.0 (2026-09-16) on Mon, 21 Sep 2026 22:45:33 GMT]]></title><description><![CDATA[<p dir="auto">period but now none of the buttons show up on nintendo, they just look like squares TvT (the upvote, messaging, notification bell, recents icon, ect.)</p>
]]></description><link>https://browsedns.net/post/257692</link><guid isPermaLink="true">https://browsedns.net/post/257692</guid><dc:creator><![CDATA[_Izzy_]]></dc:creator><pubDate>Mon, 21 Sep 2026 22:45:33 GMT</pubDate></item><item><title><![CDATA[Reply to v4.16.0 (2026-09-16) on Mon, 21 Sep 2026 22:32:12 GMT]]></title><description><![CDATA[<p dir="auto">Interesting</p>
]]></description><link>https://browsedns.net/post/257684</link><guid isPermaLink="true">https://browsedns.net/post/257684</guid><dc:creator><![CDATA[Noctis]]></dc:creator><pubDate>Mon, 21 Sep 2026 22:32:12 GMT</pubDate></item></channel></rss>