Repository navigation
Resolve Mastodon boosts to the original post before building responses - #743
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Reeder for Mac failed to refresh or crashed when Friends returned a local boost wrapping another boost. Friends now resolves the boost target to the original post before constructing the Mastodon status, preserving the local boost's ID, account and timestamp and the original author's content and attachments. Cyclic or invalid targets are skipped. Friends remains authoritative for boost construction; EMA no longer needs to flatten nested boosts during JSON serialization.
This is the source fix identified through incremental Reeder debugging; the accompanying EMA image metadata correction is tracked in akirk/enable-mastodon-apps#355. A regression test exercises a multi-level boost before serialization.
Validation:
wp --url=alex.kirk.at evalinvokingFriends\Enable_Mastodon_Apps::mastodon_api_account_statuses: all 18 prepared boosts have zero nested boosts before serialization.GET /api/v1/accounts/2/statuses?exclude_replies=1&limit=40: 35 statuses, zero nested boosts with EMA's status serializer restored.composer check-csran; it reported duplicate-class warnings from an existing.claude/worktrees/show-likes-receivedcheckout. Targetedvendor/bin/phpcs --standard=../friends/phpcs.xml ../friends/integrations/class-enable-mastodon-apps.php ../friends/tests/test-only-ema.php --report=summarypassed from the EMA workspace.Changelog
Type
Message
Resolve boosts of boosts to the original post in Mastodon account responses to prevent client refresh failures and crashes.
Test this PR in WordPress Playground
You can test this pull request directly in WordPress Playground:
Launch WordPress Playground
This will install and activate the plugin with the changes from this PR.