What's Changed
- Add following page and profile page patterns, fix follow page post types by @pfefferle in #3032
- Add EXIF metadata support for image attachments by @pfefferle in #2751
- [C2S] Add Client-to-Server ActivityPub API support by @pfefferle in #2851
- [C2S] Add Block, Add, and Remove outbox handlers by @pfefferle in #3033
- [C2S] Add Server-Sent Events (SSE) for real-time collection streaming by @pfefferle in #2945
- Fix stale avatar URLs causing 404s by @pfefferle in #3041
- Block non-public posts from ActivityPub content negotiation by @pfefferle in #3045
- Remove changelog entry already released in 8.0.2 by @pfefferle in #3048
- Show OAuth errors as styled WordPress login page by @pfefferle in #3043
- Fix is_post_disabled for Fediverse Preview and attachment parent status by @pfefferle in #3054
- Use FEP-b2b8 content allowlist for HTML sanitization by @pfefferle in #3049
- Fix fatal error when outbox item is missing during delivery by @pfefferle in #3058
- Remove type overloading from podcast integrations by @pfefferle in #3065
- Move localhost URL allowance to local environment only by @pfefferle in #3076
- Fix missing wp-views script dependency notice by @pfefferle in #3084
- Improve pre-publish panel with clearer messages and confirmation by @pfefferle in #3090
- Show reaction action buttons even without existing reactions by @pfefferle in #3091
- Reject signatures with missing Date header by @pfefferle in #3096
- Sanitize SSE access token query parameter by @pfefferle in #3095
- Use wp_safe_remote_request for signature double-knock retry by @pfefferle in #3098
- Validate emoji updated timestamp before storing by @pfefferle in #3101
- Fix double-encoding of comment author names on update by @pfefferle in #3100
- Use preg_replace_callback for emoji shortcode wrapping by @pfefferle in #3099
- Remove plain PKCE support, only allow S256 by @pfefferle in #3097
- Fix Move activity losing target when sent to followers by @pfefferle in #3102
- Validate stamp meta belongs to queried post by @pfefferle in #3093
- Add rate limiting to OAuth client registration endpoint by @pfefferle in #3108
- Verify signature keyId host matches activity actor by @pfefferle in #3109
- Fix Update handler using stale local actor data instead of activity payload by @akirk in #3110
- Add Posts and Replies block using query_loop_block_query_vars by @pfefferle in #3036
- Fix empty error description in WebFinger Site Health check by @pfefferle in #3123
- Add activitypub_pre_get_by_id filter to Actors::get_by_id() by @pfefferle in #3124
- Add Arrive outbox handler for check-in activities by @pfefferle in #3120
- Fix comments on remote posts being held in moderation by @pfefferle in #3129
- Add liked actor collection and include quotes in shares by @pfefferle in #3128
- Fix blog actor totalItems counting incoming federated comments by @pfefferle in #3136
- Fix blog actor Joined date showing oldest post date by @pfefferle in #3137
- Fix purge options silently disabling cleanup jobs by @pfefferle in #3138
- Fix Enable Mastodon Apps notification pagination by using date-constrained queries by @akirk in #3150
- Fix performance regression from reply-exclusion filter by @akirk in #3153
- Enable Mastodon Apps: Use ap_actor post ID for account IDs by @akirk in #3152
- Enable Mastodon Apps: Add tags.pub integration for tag timelines by @akirk in #3151
- Add stats block with shareable image generation by @pfefferle in #3126
- Fix fatal error when language property is an array by @pfefferle in #3158
- Fix double-encoded HTML entities in stats top posts titles by @jeherve in #3162
- Add seasonal starter pattern for Fediverse Stats post by @pfefferle in #3160
- Add support for Mastodon FeaturedCollection import by @pfefferle in #3168
- Fix OAuth client metadata fetch for localhost subdomains by @pfefferle in #3169
- Fix BuddyPress @mention filter corrupting Followers block by @pfefferle in #3174
- Add OAuth registration endpoint to actor discovery by @pfefferle in #3175
- Pass $url to http_headers_useragent filter by @pfefferle in #3179
- Add ActivityPub options to Jetpack sync allow list by @pfefferle in #3176
- Fix blog actor outbox activity handling by @pfefferle in #3188
- Fix array_keys(null) fatal in get_comment_type_slugs() by @mauteri in #3196
- Fix Reader view crash and infinite scroll on WP 6.9 by @pfefferle in #3194
- Strip private addressing (bto/bcc) at the serialization boundary by @pfefferle in #3200
- Require signed peer requests on /followers/sync per FEP-8fcf by @pfefferle in #3202
- Gate per-post REST routes on post visibility by @pfefferle in #3203
New Contributors
Full Changelog: 8.0.1...8.1.0