Commit graph

18,148 commits

Author SHA1 Message Date
eal
7de1affda8 Dockerfile: update base images to fix problems with SSL handshakes
My instance has been having problems with push federation since
updating to v2.10.2, using the docker image. Posts are not reaching
their destination instance until some other interaction initiates a
fetch from source.

The logs contain lots of errors such as:

```
pleroma    | 09:34:40.885 [notice] TLS :client: In state :wait_cert_cr at ssl_handshake.erl:2158 generated CLIENT ALERT: Fatal - Unsupported Certificate
pleroma    |  - {:key_usage_mismatch,
pleroma    |  {{:Extension, {2, 5, 29, 15}, true, [:keyCertSign, :cRLSign]},
pleroma    |   {:Extension, {2, 5, 29, 37}, false, [{1, 3, 6, 1, 5, 5, 7, 3, 1}]}}}
```

This erlang/OTP issue seems to be the same problem:
https://github.com/erlang/otp/issues/9208

The erlang version committed here was selected after discussion in the
merge request.

I have not noticed any federation problems with an image built from
this dockerfile.
2026-07-18 11:15:45 +03: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
Phantasm
1d758dbbf5
Elixir 1.19: Do not restart :logger in ConfigDB TransferTask 2026-07-17 22:39:43 +02:00
Lain Soykaf
b862254889
fix(deps): update Gun to 2.4.1 2026-07-17 21:09:13 +04:00
Lain Soykaf
d0d6c986f4
docs(http): document Gun pool behavior 2026-07-17 20:35:40 +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
Phantasm
7d9175350d
Elixir 1.19: Completely overwrite formatter for default handler
:logger.update_handler_config/3 can merge configs,
:logger.set_handler_config/3 instead resets the rest to defaults.
2026-06-30 00:24:48 +02:00
Phantasm
a020b8a190
Elixir 1.19: Ensure default primary logger configg level is debug
Setting the default handler and ex_syslogger handler levels does not
necessarily have to set the primary logger log level, at least in the
future. Without this, the primary log level might be lower than the
configured console/syslog levels, which would cause some desired logs to
not be logged.
2026-06-29 23:47:43 +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
nicole mikołajczyk
cb0a1d1602 Merge pull request 'Grouped Notifications: Add feature flag to instance view and nodeinfo' (#7926) from phnt/pleroma:grouped-notifs-flag into develop
Reviewed-on: https://git.pleroma.social/pleroma/pleroma/pulls/7926
2026-06-29 11:28:45 +00:00
Phantasm
964feb1e47
InstanceView: Remove unreachable guards in filter_render 2026-06-28 00:36:43 +02:00
Phantasm
dd07088377
InstanceView: lint tests 2026-06-28 00:19:38 +02:00
Phantasm
3027052b0d
InstanceView: Remove wall of changed configs in show render tests.
Switched to using config defaults instead.
2026-06-28 00:17:28 +02:00
Phantasm
d19a9f768c
InstanceView: Tighten show2.json 2026-06-27 23:39:48 +02:00
Phantasm
6e03f1d789
InstanceView: Tighten show.json render test, rename show2-only funcs 2026-06-27 23:34:01 +02:00
Phantasm
ef321846d4
InstanceView: Use attribute for pleroma_configuration filter in test 2026-06-27 22:44:59 +02:00
Phantasm
6c79cc792f
InstanceView: improve filtering in tests, simplify 2026-06-27 22:42:50 +02:00
Phantasm
9912b2d16a
InstanceView: lint tests 2026-06-26 02:05:55 +02:00
Phantasm
93fe0f5ab5
InstanceView: Filter out *configuration keys from *configuration2 2026-06-26 02:05:50 +02:00
Phantasm
6393fe0a9e
InstanceView: removing unneeded doubling of attributes in tests 2026-06-26 01:59:57 +02:00
Phantasm
0337bd0ae4
InstanceView: Add show2.json render test 2026-06-26 01:59:57 +02:00
Phantasm
c290f022de
InstanceView: Add show.json render test 2026-06-26 01:59:54 +02:00
Phantasm
e45dad2104
InstanceView: Add domain_blocks.json render test 2026-06-23 22:42:15 +02:00
Phantasm
df67f21974
InstanceView: use shorter setup syntax when applicable 2026-06-23 22:24:44 +02:00
Phantasm
86725b5a00
InstanceView: add rule(s), translation render tests 2026-06-23 22:22:49 +02:00
Phantasm
7e9b8a7663
InstanceView: Add federation/0 func test 2026-06-23 18:20:16 +02:00
Phantasm
19a84baf82
InstanceView: Add feature flag tests 2026-06-23 17:26:47 +02:00
nicole mikołajczyk
c6d1cead83 Allow attaching emojis to user lists
Signed-off-by: nicole mikołajczyk <git@mkljczk.pl>
2026-06-23 16:08:52 +02:00
Phantasm
9782bcf979
Elixir 1.19: Fix most MRFs being absent from AdminAPI suggestions.
Elixir 1.19 started lazily loading modules, so modules only get loaded
when referenced. Thus :code.all_loaded would no longer include all MRF
policies which is used on startup to generate sugestions for AdminAPI.
2026-06-16 20:22:24 +02:00
Phantasm
07c65adb0c
Grouped Notifications: Add feature flag to instance view and nodeinfo 2026-06-10 22:54:06 +02:00
lain
6f5ea55613 Merge pull request 'allow <center> (used by mfm)' (#7920) from mfm-center into develop
Reviewed-on: https://git.pleroma.social/pleroma/pleroma/pulls/7920
2026-06-05 09:24:15 +00:00
lain
98cd1bbb9a Merge pull request 'Add grouped notifications API' (#7910) from issue-7905-grouped-notifications into develop
Reviewed-on: https://git.pleroma.social/pleroma/pleroma/pulls/7910
Reviewed-by: Phantasm <phnt@noreply.git.pleroma.social>
2026-06-05 09:23:26 +00:00
Henry Jameson
86dd9663fc allow <center> (used by mfm) 2026-06-01 22:06:45 +03:00
Lain Soykaf
e676ec3507
Reject unsupported HTTP Message Signatures 2026-05-29 18:35:15 +04:00
Lain Soykaf
fc9e6793ce
Address grouped notification review cleanup 2026-05-29 12:30:33 +04:00
Lain Soykaf
cd28c2089c
Fix ParadeDB search indexing 2026-05-25 18:45:47 +04:00
Lain Soykaf
a84d16831f
Fix account favourites ordering 2026-05-25 18:09:18 +04:00
lain
ac05f65fbb Merge branch 'develop' into paradedb-search-backend 2026-05-25 12:53:39 +00:00
lain
aa16f40f09 Merge pull request 'Prepared FE E2E Docker image' (#7884) from docker-e2e-image into develop
Reviewed-on: https://git.pleroma.social/pleroma/pleroma/pulls/7884
2026-05-25 12:33:27 +00:00
lain
f99ce5b2e6 Merge pull request 'Support paged featured collections' (#7912) from issue-7887-featured-collection into develop
Reviewed-on: https://git.pleroma.social/pleroma/pleroma/pulls/7912
2026-05-25 12:07:56 +00:00
Lain Soykaf
e023ed7a5a
Seed E2E admin before API readiness 2026-05-25 16:06:21 +04:00
Lain Soykaf
54369c93d7
Use E2E approval config key 2026-05-25 16:05:21 +04:00
Lain Soykaf
8a410bf49f
Quote E2E entrypoint variables 2026-05-25 16:04:53 +04:00
lain
e46365bf2a Merge pull request 'Woodpecker CI: Build armv7 Docker images' (#7882) from ci/build-armv7-docker-images into develop
Reviewed-on: https://git.pleroma.social/pleroma/pleroma/pulls/7882
2026-05-25 11:34:27 +00:00
lain
33fdc59bc1 Merge branch 'develop' into issue-7887-featured-collection 2026-05-25 11:24:10 +00:00
lain
b1d72e16a3 Merge branch 'develop' into ci/build-armv7-docker-images 2026-05-25 11:21:23 +00:00
lain
c8c1f7d38b Merge pull request 'Fix Websockets streaming API pushing old already federated posts to TL' (#7907) from websockets-necroposts into develop
Reviewed-on: https://git.pleroma.social/pleroma/pleroma/pulls/7907
2026-05-25 10:25:36 +00:00