Mastodon-flavour (read) quotes API compat #1059

Merged
Oneric merged 6 commits from Oneric/akkoma:masto-quotes-api into develop 2026-02-07 22:39:48 +00:00
Owner

Better read (and partially write) compatibility with Mastodon’s quote API, as well as related changes. See commit messages for details.

This DOES NOT implement the "quote authorisation" mechanism in any way, but allows Masto-only clients to display existing quotes.

Resolves: #827
Resolves: #952 (prob now needs some small FE adjustments to make it usable)
Resolves: #1009

Better read (and partially write) compatibility with Mastodon’s quote API, as well as related changes. See commit messages for details. This DOES NOT implement the "quote authorisation" mechanism in any way, but allows Masto-only clients to display existing quotes. Resolves: #827 Resolves: #952 (prob now needs some small FE adjustments to make it usable) Resolves: #1009
The only kown user is akkoma-fe and it only ever
accesses the software information. For *oma instances
the full, unfiltered nodeinfo data can be quite large
adding unneeded bloat to API responses.
This would have become worse with the duplication of
account data needed for Masto quote post interop.

In case a client we’re not aware of actually uses more fields from
nodeinfo, a new but temporary config setting is provided as a workaround.

Fixes: #827
This makes embedded nodeinfo data
consistent between local and remote users
The quote creation interface still isn’t exactly drop-in compatible for
masto-only clients since we do not provide or otherwise deal with
quote-authorization objects which clients are encouraged to check before
even offering the possibility of attempting a quote. Still, having a
consistent paramter name will be easier on clients.

Also dropped unused quote_id parameter from ActivityDraft struct
However, we cannot provide Masto-style shallow quotes this way.

Inspired-by: https://issues.iceshrimp.dev/issue/ISH-871#comment-019c24ed-c841-7de2-9c69-85e2951135ca
Resolves: #1009
Provided the quote is private too.

Ideally we’d inline the quoted, private status since not all
remotes may already know the old post and some implmentations
(ourselves included) have trouble fetching private posts.
In practice, at least we cannot yet make use of such an inlined post
anyway defeating the point. Implementing the inlining and ability to
make use of the inlined copy is thus deferred to a future patch.

Resolves: #952
api/statuses: allow quoting local statuses locally
Some checks failed
ci/woodpecker/pr/test/2 Pipeline failed
ci/woodpecker/pr/test/1 Pipeline failed
a26acf2302
Oneric changed title from masto-quotes-api to Mastodon-flavour (read) quotes API compat 2026-02-07 16:37:12 +00:00
Oneric force-pushed masto-quotes-api from a26acf2302
Some checks failed
ci/woodpecker/pr/test/2 Pipeline failed
ci/woodpecker/pr/test/1 Pipeline failed
to 4b4b353d77
All checks were successful
ci/woodpecker/pr/test/2 Pipeline was successful
ci/woodpecker/pr/test/1 Pipeline was successful
2026-02-07 20:12:02 +00:00
Compare
Oneric force-pushed masto-quotes-api from 4b4b353d77
All checks were successful
ci/woodpecker/pr/test/2 Pipeline was successful
ci/woodpecker/pr/test/1 Pipeline was successful
to fd87664b9e
All checks were successful
ci/woodpecker/pr/test/2 Pipeline was successful
ci/woodpecker/pr/test/1 Pipeline was successful
2026-02-07 21:08:00 +00:00
Compare
Author
Owner

seems all good after a bit of real-world testing and very little chance of regression, so i’m gonna merge this already

I didn’t test quote display with Tusky myself, but exactly the same polyglot approach worked for Iceshrimp.(NET|js) and it makes sense. Should be fine

seems all good after a bit of real-world testing and very little chance of regression, so i’m gonna merge this already I didn’t test quote display with Tusky myself, but exactly the same polyglot approach worked for Iceshrimp.(NET|js) and it makes sense. Should be fine
Oneric merged commit 246e864ce4 into develop 2026-02-07 22:39:48 +00:00
Oneric deleted branch masto-quotes-api 2026-02-07 22:39:49 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
AkkomaGang/akkoma!1059
No description provided.