Commit graph

6,898 commits

Author SHA1 Message Date
Lain Soykaf
99befcaf1b
fix(activitypub): deduplicate account favourites 2026-07-25 10:51:09 +04:00
Lain Soykaf
9a6c2f909d
Merge remote-tracking branch 'origin/develop' into issue-3379-favourites-order 2026-07-25 10:31:57 +04:00
lain
cc1b95c88e Merge pull request 'Rework Gun connection pooling' (#7934) from issue-2263-gun-validation into develop
Reviewed-on: https://git.pleroma.social/pleroma/pleroma/pulls/7934
2026-07-25 05:44:39 +00:00
Lain Soykaf
d5f48101b8
fix(media-proxy): safely detect extensionless images 2026-07-25 00:06:03 +04:00
Lain Soykaf
465a81ecf2
Merge remote-tracking branch 'origin/develop' into review-pr-7933 2026-07-24 23:24:11 +04:00
lain
c2b8c67808 Merge pull request 'Improve RSS compliance' (#7932) from fix-rss into develop
Reviewed-on: https://git.pleroma.social/pleroma/pleroma/pulls/7932
2026-07-24 17:33:40 +00:00
Lain Soykaf
5d8b5a73d2
style(feed): format Atom fallback assertion 2026-07-24 21:05:16 +04:00
Lain Soykaf
c5230d98c5
fix(feed): complete Atom XML metadata 2026-07-24 21:04:35 +04:00
Lain Soykaf
5f71532442
fix(feed): tighten enclosure metadata 2026-07-24 20:59:13 +04:00
Lain Soykaf
2d667e1d2a
style(feed): format enclosure fixtures 2026-07-24 20:44:58 +04:00
Lain Soykaf
c518319349
fix(feed): correct RSS permalink metadata 2026-07-24 20:43:40 +04:00
Lain Soykaf
ecd8a14435
fix(feed): correct Atom entry links 2026-07-24 20:38:25 +04:00
Lain Soykaf
d1a7e915ce
fix(feed): preserve standard media enclosures 2026-07-24 20:34:33 +04:00
Lain Soykaf
96f471a291
fix(feed): format RSS build dates 2026-07-24 20:21:54 +04:00
Lain Soykaf
d0c8ca92a5
fix(feed): escape self link URLs 2026-07-24 20:11:19 +04:00
Lain Soykaf
85a802282e
fix(feed): hide sensitive media previews 2026-07-24 20:08:04 +04:00
Lain Soykaf
a9bf7212d4
fix(feed): escape fallback content 2026-07-24 19:59:18 +04:00
lain
a790e08a6c Merge pull request 'hashtag-timeline-fix' (#7938) from mkljczk/pleroma:hashtag-timeline-fix into develop
Reviewed-on: https://git.pleroma.social/pleroma/pleroma/pulls/7938
2026-07-24 15:29:25 +00:00
Lain Soykaf
77b5f3f485
test: cover multi-hashtag pagination 2026-07-24 18:49:44 +04:00
lain
c20c0ee867 Merge branch 'develop' into architecture-quick-wins 2026-07-24 14:09:44 +00:00
Lain Soykaf
0070b13130
test(workers): replace publisher mocks with Mox 2026-07-24 17:43:02 +04:00
Lain Soykaf
0862c8b88d
fix: advertise Chats feature flags correctly 2026-07-24 16:53:36 +04:00
Lain Soykaf
1a48466b85
style(tests): sort publisher worker aliases 2026-07-24 16:42:45 +04:00
Lain Soykaf
868723e371
fix(streaming): preserve followed domain exception 2026-07-24 16:01:46 +04:00
Lain Soykaf
3abe4ebfbd
perf(oauth): avoid duplicate user preload 2026-07-24 16:01:34 +04:00
Lain Soykaf
08c8571c59
fix(workers): avoid dynamic publisher atoms 2026-07-24 16:01:24 +04:00
Lain Soykaf
c3fe61c2f5
fix(user): correct cache key invalidation 2026-07-24 16:01:13 +04:00
nicole mikołajczyk
97b94a2f43 Update tests
Signed-off-by: nicole mikołajczyk <git@mkljczk.pl>
2026-07-24 01:05:12 +02:00
Lain Soykaf
d090aeb2bb
fix(http): forward plain HTTP proxy requests 2026-07-22 20:35:51 +04:00
nicole mikołajczyk
59269cf07a Fix hashtag timeline query
Signed-off-by: nicole mikołajczyk <git@mkljczk.pl>
2026-07-21 01:26:06 +02:00
nicole mikołajczyk
c772f9b40a Add a failing test
Signed-off-by: nicole mikołajczyk <git@mkljczk.pl>
2026-07-21 01:26:06 +02:00
Phantasm
1d6664b1f4 InstanceStaticPlug: Add more override and fallback tests 2026-07-20 15:18:49 +00:00
Phantasm
00ca971390 FrontendStaticPlug: Add test for static files outside of index 2026-07-20 15:18:49 +00:00
Phantasm
9129c65795 StaticNotFoundPlug: Move tests out from InstanceStatic 2026-07-20 15:18:49 +00:00
Phantasm
00c9059252
Remove unused require Logger 2026-07-19 22:23:20 +02:00
Phantasm
bbae94ddf3
Revert "Only warn about bad clear_config usage if warned usage is met"
What was I even thinking when writing that?

This reverts commit 3790e6786c.
2026-07-19 22:15:37 +02:00
Phantasm
0448ba5cd2
ApplicationTest: skip test spamming warnings from ExSyslogger
:warn log level is deprecated, but ExSyslogger hasn't been updated yet.
2026-07-19 22:15:20 +02:00
Phantasm
3ab8cc1eb9
ApplicationTest: make clear_config delete the whole env tree
clear_config([:logger, :backends], [value]) leaves the :logger env key
behind which breaks a ConfigDB test where the :logger key shouldn't be
stored and set.
2026-07-19 22:15:19 +02:00
Phantasm
e2f744bd68
Merge branch 'develop' into gitlab-mr-iid-4381 2026-07-18 20:47:03 +02:00
Phantasm
a89fe828d3
ConfigDB: Don't use a different config whitelist globally in tests 2026-07-18 20:45:51 +02:00
Phantasm
41ab347571
Lint 2026-07-18 16:13:39 +02:00
Phantasm
c688d09478
ConfigDB: Implement config update blacklist in AdminAPI 2026-07-18 16:06:11 +02:00
Phantasm
2d307c1487
ConfigDB: Support blacklisting whole config groups 2026-07-18 16:05:14 +02:00
Phantasm
ebd5596ba7
Elixir 1.19: Create ConfigDB blacklist and task for :pleroma, :logger
This option was never configurable with ConfigDB when it lived under
:logger, :backends; no need to be configurable now.
2026-07-17 23:32:43 +02:00
Lain Soykaf
b862254889
fix(deps): update Gun to 2.4.1 2026-07-17 21:09:13 +04:00
Lain Soykaf
f11ffca7f5
feat(http): rework Gun connection pooling 2026-07-17 20:35:17 +04:00
moon.eth
b11e8888d1 MediaProxy: improve inline rendering of remote image attachments
Two related changes that ensure remote images render inline in timelines
instead of as clickable links.

reverse_proxy: always force inline for whitelisted content types
  When `inline_content_types` is configured as a whitelist, the upstream's
  `content-disposition` header used to be passed through unchanged. Some
  origins send `content-disposition: attachment` for media we want
  embedded, so the proxy now always emits `content-disposition: inline`
  for whitelisted types (overriding the upstream header), deriving a
  filename from `MIME.extensions/1` (e.g. `inline.gif`) so browsers have
  something to use for "Save As". When the type has no known extension,
  the bare token `inline` is emitted. The `inline_content_types: true`
  (pass-through) and `:false` (always attachment) behaviours are
  unchanged.

ActivityPub: sniff MIME type for extensionless/generic attachments
  Some remotes (e.g. extensionless Cloudflare Images URLs) ship
  attachments with no usable `mediaType` (missing, empty, or
  `application/octet-stream`), which would render as links instead of
  inline images. `AttachmentValidator.fix_media_type/1` now fetches the
  first 8 KB of the URL and runs it through libmagic when the declared
  type carries no real information. Only `image/*` results replace the
  declared type; any other result, non-2xx response, transport error, or
  exception yields `nil` and the original type is kept, so ingestion
  never blocks and non-image media is never reclassified. Present real
  types are left untouched (no fetch is attempted).

The new logic lives in `Pleroma.Web.ActivityPub.ObjectValidators.AttachmentTypeSniffer`.

Tests: comprehensive coverage of both changes, including a dedicated
suite for the sniffer covering happy paths, non-image bodies, HTTP
failures, raised exceptions, guard clauses, and verification that the
Range header is sent; AttachmentValidator tests for mimeType fallback,
empty-string mediaType, multi-URL sniffing, and HTTP-failure fallback;
ReverseProxy tests for inline_content_types `true`/`false`/custom
whitelists, bare-inline for types without a MIME extension, and
attachment_name handling.
2026-07-14 15:04:06 +09:00
Mark Felder
f4b415c54e Improve RSS compliance
The core feed reader issue was that RSS 2.0 <link> is a simple text
element and can only appear once per <item>.
By having multiple <link> tags with rel attributes, parsers were
getting confused and resolving entries to the wrong URL.
Now each item has exactly one <link>: the post URL. Everything else
uses valid <atom:link> or dedicated extension elements where
appropriate.
2026-07-10 16:57:13 +00:00
Phantasm
70c79ad512
Merge branch 'develop' into gitlab-mr-iid-4381 2026-06-30 00:31:51 +02:00
nicole mikołajczyk
b0ae451942 Merge pull request 'Allow attaching emojis to user lists' (#7929) from mkljczk/pleroma:list-emoji into develop
Reviewed-on: https://git.pleroma.social/pleroma/pleroma/pulls/7929
2026-06-29 12:51:43 +00:00