Description
Currently, when a user boosts (reblogs) a quoted post in Hollo, clients like SubwayTooter do not display the quote correctly. The issue seems to be that the outer "boost wrapper" status carries the quote metadata, confusing the client.
I tested a fix in my local fork which addresses this problem by ensuring the quote metadata remains inside the original boosted status. I propose incorporating these changes to improve client compatibility.
Note on AI Usage:
The code for these changes was generated with the assistance of AI. Because of this, I am not entirely sure if it is the most accurate or optimal approach for the Hollo codebase. I would greatly appreciate it if the maintainers could review the implementation.
Proposed Changes
- In the boost endpoint (
/api/v1/statuses/reblog, specifically inside src/api/v1/statuses.ts), explicitly set quoteTargetId: null when creating the new boost wrapper post.
- This change ensures that the
quote_id and quote attributes are kept out of the outer boost wrapper, allowing clients to correctly parse and display the quote from the inner reblog object.
- Added a test case in
src/api/v1/statuses.test.ts to verify that quote_id is null on the wrapper, while the inner boosted post correctly retains the quote_id.
Expected Behavior
When fetching a boosted quote post, the quote_id and quote object should only exist inside the inner reblog attribute, not on the outer wrapper. Clients like SubwayTooter should then be able to display the quote and the boost layout correctly.
Description
Currently, when a user boosts (reblogs) a quoted post in Hollo, clients like SubwayTooter do not display the quote correctly. The issue seems to be that the outer "boost wrapper" status carries the quote metadata, confusing the client.
I tested a fix in my local fork which addresses this problem by ensuring the quote metadata remains inside the original boosted status. I propose incorporating these changes to improve client compatibility.
Note on AI Usage:
The code for these changes was generated with the assistance of AI. Because of this, I am not entirely sure if it is the most accurate or optimal approach for the Hollo codebase. I would greatly appreciate it if the maintainers could review the implementation.
Proposed Changes
/api/v1/statuses/reblog, specifically insidesrc/api/v1/statuses.ts), explicitly setquoteTargetId: nullwhen creating the new boost wrapper post.quote_idandquoteattributes are kept out of the outer boost wrapper, allowing clients to correctly parse and display the quote from the innerreblogobject.src/api/v1/statuses.test.tsto verify thatquote_idis null on the wrapper, while the inner boosted post correctly retains thequote_id.Expected Behavior
When fetching a boosted quote post, the
quote_idandquoteobject should only exist inside the innerreblogattribute, not on the outer wrapper. Clients like SubwayTooter should then be able to display the quote and the boost layout correctly.