Commit graph

10,632 commits

Author SHA1 Message Date
Phantasm
a9aa19585b
Elixir 1.19: Emit debug logger reconfiguration logs in test env as well 2026-07-18 23:02:38 +02:00
Phantasm
e2f744bd68
Merge branch 'develop' into gitlab-mr-iid-4381 2026-07-18 20:47:03 +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
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
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
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
Phantasm
c290f022de
InstanceView: Add show.json render test 2026-06-26 01:59:54 +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
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
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
33fdc59bc1 Merge branch 'develop' into issue-7887-featured-collection 2026-05-25 11:24:10 +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
Lain Soykaf
4c9fc6287e
Remove unreachable WebSocket protocol match 2026-05-25 09:26:07 +04:00
Phantasm
0c0d687330
credo, lint 2026-05-24 23:41:59 +02:00
Phantasm
5f55c9653c
RichMedia: Disable websockets backfill streaming in StatusView 2026-05-24 23:41:59 +02:00
Phantasm
678fe8a064
RichMedia: Add support for disabling wss streaming out on backfill 2026-05-24 23:41:58 +02:00
Lain Soykaf
a2a23b327b
Keep cursor cleanup scoped to grouped notifications 2026-05-23 14:27:11 +04:00
Lain Soykaf
add3844c6d
Persist notification group keys 2026-05-23 11:38:33 +04:00
Lain Soykaf
b054c2aa42
Fix paged featured collection fetches 2026-05-22 22:11:37 +04:00
Lain Soykaf
1e65c7a69e
Add grouped notifications API 2026-05-22 20:36:52 +04:00
Lain Soykaf
9dd02ecd50
Fix WebSocket protocol token handshakes 2026-05-22 16:30:14 +04:00
lain
57ab0a9302 Merge branch 'develop' into gitlab-mr-iid-4428 2026-05-14 09:39:16 +00:00
lain
4fe802b25a Merge branch 'develop' into gitlab-mr-iid-4381 2026-05-14 09:27:13 +00:00
lain
be2a5056a3 Merge branch 'develop' into paradedb-search-backend 2026-05-14 09:24:51 +00:00
lain
c7c453ca21 Merge branch 'develop' into gitlab-mr-iid-4426 2026-05-14 06:56:57 +00:00
lain
b90ac6b9c7 Merge branch 'develop' into host-verification 2026-05-14 06:01:31 +00:00
Phantasm
7651490c50
Merge branch 'develop' into gitlab-mr-iid-4381 2026-05-14 00:14:27 +02:00
Lain Soykaf
c92d233233
Use upstream remote_ip package 2026-05-13 20:04:12 +04:00
lain
7e97216b52 Merge branch 'develop' into paradedb-search-backend 2026-05-13 10:02:20 +00:00
lain
47ca427497 Merge pull request 'Better user search' (#7793) from gitlab-mr-iid-4416 into develop
Reviewed-on: https://git.pleroma.social/pleroma/pleroma/pulls/7793
2026-05-13 09:53:52 +00:00
lain
ffff2098f0 Merge pull request 'Signatures: Only true is true.' (#7892) from bump/http-signatures-0.1.3 into develop
Reviewed-on: https://git.pleroma.social/pleroma/pleroma/pulls/7892
2026-05-13 06:09:06 +00:00
Lain Soykaf
68e4bb53a2
Merge branch 'develop' into fix/reject-third-party-reports 2026-05-13 08:49:20 +04:00
nicole mikołajczyk
4d3aea1fce Handle reports with just actor ap id as the object
Signed-off-by: nicole mikołajczyk <git@mkljczk.pl>
2026-05-13 00:56:56 +02:00
Phantasm
2b3ac2d7fe
lint 2026-05-13 00:44:33 +02:00
Phantasm
95b15190de
ActivityPubController: require validated host header 2026-05-13 00:32:57 +02:00
Phantasm
6c2d8209c9
SignatureRetryWorker: require validated host header 2026-05-13 00:32:54 +02:00