32248 Commits

Author SHA1 Message Date
Julian Lam
5a04916879 fix: off-by-one error in helpers.generateCollection, fixed incorrect totalItems count between pages in Actors.topic 2026-04-02 14:48:00 -04:00
Julian Lam
531d20af3e fix: wrap batch processing behind setImmediate() so that it runs on the next iteration of the event loop 2026-04-02 12:16:50 -04:00
Julian Lam
6371528f2a fix: pre-calculate payload digest earlier in chain so that it is not unnecessarily done once per recipient
re: #14138
2026-04-02 11:59:28 -04:00
Julian Lam
448a76e1c4 refactor: replace old createSign/createVerify methods with more modern sign/verify, called asynchronously, add lru cache to public key fetches so that a received activity does not kick off a network request unnecessarily 2026-04-02 11:39:58 -04:00
Julian Lam
be44247339 fix: dynamically calculate batch size and interval when sending AP messages, based on CPU count, #14138 2026-04-02 11:39:58 -04:00
Misty Release Bot
c397398084 chore(i18n): fallback strings for new resources: nodebb.admin-settings-activitypub 2026-04-01 19:09:19 +00:00
Julian Lam
f008a65ea2 feat: record AP parsing failures, save activity in db for 24h 2026-04-01 15:08:53 -04:00
Julian Lam
fa0b72e2a2 fix: wrong set name 2026-04-01 14:41:39 -04:00
Misty Release Bot
cd66230121 chore(i18n): fallback strings for new resources: nodebb.admin-settings-activitypub 2026-04-01 18:33:17 +00:00
Julian Lam
54893c81b4 feat: hourly and daily terms for ap analytics 2026-04-01 14:32:50 -04:00
Julian Lam
ab3c39eb62 fix: bad args sent to activitypub.record.send 2026-04-01 14:09:59 -04:00
Misty Release Bot
30b494a14d chore(i18n): fallback strings for new resources: nodebb.admin-settings-activitypub 2026-04-01 18:03:28 +00:00
Julian Lam
a58771ed8a fix: rename 'activities' to 'received' in federation analytics 2026-04-01 14:03:00 -04:00
Julian Lam
0b80cf1c92 feat: track and show sent activities as well 2026-04-01 14:03:00 -04:00
Misty Release Bot
cb8b0bb3a3 chore(i18n): fallback strings for new resources: nodebb.admin-menu, nodebb.admin-settings-activitypub 2026-04-01 17:43:19 +00:00
Julian Lam
9e5312a185 feat: basic federation analytics with filtering by host 2026-04-01 13:42:19 -04:00
Misty Release Bot
0d295f51ec Latest translations and fallbacks 2026-04-01 09:07:40 +00:00
Julian Lam
4c1f6b1f56 fix: encode nid in client-side when marking notifications read/unread 2026-03-31 14:42:13 -04:00
Misty Release Bot
1ac17f5c64 Latest translations and fallbacks 2026-03-31 09:07:38 +00:00
Barış Soner Uşaklı
6dba5ce9dd Merge branch 'master' into develop 2026-03-30 19:43:06 -04:00
Barış Soner Uşaklı
fb48ab3455 fix: user image og:image 2026-03-30 19:42:58 -04:00
Barış Soner Uşaklı
e15b7ff7f8 fix: method name 2026-03-30 18:32:40 -04:00
Barış Uşaklı
2612340bc9 refactor socket notifications (#14135)
* refactor socket notifications

* dunno why these two gut fubared

* add missing yaml files

* more fixes

* fix: schema

* lint: fix lint issues
2026-03-30 12:02:34 -04:00
Julian Lam
ce4549c524 fix: do not plumb req.uid into notes.assert (breaks getParentChain) 2026-03-30 11:55:08 -04:00
Misty Release Bot
b98c064146 chore(i18n): fallback strings for new resources: nodebb.error 2026-03-30 14:29:52 +00:00
Julian Lam
be347e674b fix: loosen actor-matching check in Undo activity 2026-03-30 10:29:23 -04:00
Julian Lam
c37a9103c8 fix: ActivityPub.fetchPublicKey to better handle key IDs that return CryptographicKey objects, #14130 2026-03-30 10:20:38 -04:00
Barış Soner Uşaklı
d0d5441340 Merge branch 'master' into develop 2026-03-30 09:47:45 -04:00
Barış Soner Uşaklı
af0e3d9689 fix: closes #14133, don't modify displayName for system groups
added a helper to just modify it for front end
2026-03-30 09:45:07 -04:00
Misty Release Bot
b629b8cfb5 Latest translations and fallbacks 2026-03-30 09:07:38 +00:00
Julian Lam
f3eeec93df fix: #14130, set addressee on follow, undo(follow), and accept(follow) 2026-03-29 21:19:38 -04:00
Misty Release Bot
9b7d62be5e Latest translations and fallbacks 2026-03-29 09:15:59 +00:00
Barış Soner Uşaklı
203f4cc7ff fix: try a save point in retry 2026-03-28 15:16:15 -04:00
Barış Soner Uşaklı
2185f22a55 fix: try a save point in retry 2026-03-28 15:09:03 -04:00
Barış Soner Uşaklı
991e977813 fix: try upsert type if it fails 2026-03-28 14:54:34 -04:00
Barış Soner Uşaklı
988f513655 fix: try upsert type if it fails 2026-03-28 14:32:04 -04:00
Barış Soner Uşaklı
bc5457ef18 lint: remove unused 2026-03-28 13:37:24 -04:00
Barış Soner Uşaklı
b04976ed35 test: dont create users parallel 2026-03-28 13:36:24 -04:00
Barış Soner Uşaklı
09183ac062 test: dont create users parallel 2026-03-28 13:35:47 -04:00
Barış Soner Uşaklı
10814b64a5 Merge branch 'master' into develop 2026-03-28 13:25:26 -04:00
Michele Di Maria
b8fd88fba9 Fix the saving of the statistics on PosgreSQL #14124 (#14129)
* fix: deduplicate postgres sorted set bulk ops to prevent pkey violation

sortedSetIncrByBulk and sortedSetAddBulk did not deduplicate (key, value)
pairs before INSERT, causing "duplicate key value violates unique constraint
legacy_zset_pkey" errors since PostgreSQL ON CONFLICT only resolves against
existing table rows, not within-statement duplicates.

Also adds missing pageviews:ap metrics to analyticsKeys sorted set.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: use upsert with RETURNING to prevent postgres analytics write failures

Replace the INSERT ON CONFLICT DO NOTHING + separate SELECT verification
pattern with INSERT ON CONFLICT DO UPDATE RETURNING. The old pattern had
an unreliable gap between INSERT and SELECT causing random "failed to
insert keys for objects" errors that blocked all analytics writes.

The no-op upsert (DO UPDATE SET type = existing type) guarantees every
row is returned via RETURNING, eliminating the need for a separate SELECT
and the "missing keys" check entirely. Also deduplicates the keys array
to prevent "cannot affect row a second time" errors with DO UPDATE.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 13:24:34 -04:00
Misty Release Bot
f5d8ff90b8 Latest translations and fallbacks 2026-03-28 09:08:38 +00:00
Barış Soner Uşaklı
6c4e928482 fix: on exit, dont write analytics data on all nodes
if you are running 4 nodebbs each one was calling writeData which could trigger duplicate key errors
2026-03-27 16:45:20 -04:00
Barış Soner Uşaklı
4b503db497 refactor: break long line 2026-03-27 16:44:10 -04:00
Julian Lam
3c41171151 fix: make 'show more' button not overlap existing text 2026-03-27 13:50:49 -04:00
Julian Lam
2327cae764 fix: #14045, automatically open category selector dropdown on move topic modal 2026-03-27 13:20:58 -04:00
Barış Soner Uşaklı
deca5e6715 fix: redis/psql 2026-03-27 12:22:06 -04:00
Barış Soner Uşaklı
0dfdd77c12 Merge branch 'develop' of https://github.com/NodeBB/NodeBB into develop 2026-03-27 11:48:50 -04:00
Barış Soner Uşaklı
28fafcdc56 retrt e11000 in incrObjectField 2026-03-27 11:48:45 -04:00
Julian Lam
833899d091 fix: failing test 2026-03-27 11:40:24 -04:00