R8 the Mastodon API made real: featured tags, endorsements, notes, notify and languages, suggestions, the direct stream
Featured tags per persona (/api/v1/featured_tags, suggestions, tags/:name/feature, accounts' featured tags, max 10),
listed at /tattoos as Hashtags and sent as Add/Remove{Hashtag} to followers on the featured collection, as Mastodon
sends them; remote accounts' tags received and read from featuredTags. Endorsements (pin/endorse) and private notes
(PersonaNote) kept per persona and never federated; the relationship's notifying, languages, endorsed and note, with
follow's notify (status notifications) and languages (home filter). Reading preferences set on /clientapi. Suggestions
v1/v2 with dismissals and staff picks, never the persona or a sibling. conversation events on the direct stream.
translate, annual reports and the admin API answer. New collections backed up and removed with their persona.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WpVCoDeM1qUTRp4fXQdfof
This commit is contained in:
1 parent
d08fbabaa5
commit
87529bca49
42 files changed
+1505
-77
No files matched your search
+18
-1
@@ -138,6 +138,22 @@ Written 2026-10-01 from the original 2023 code, the decePubClient UI, a federati
|
||||
410; what posts and profiles render is the emoji as they are now, and no `Update` is sent when one changes; its id is
|
||||
served unsigned under SecureMode; a restore keeps the live emoji, as it keeps the settings (one deleted since stays
|
||||
deleted).
|
||||
- R8 the Mastodon API made real (built 2026-10-18, not yet deployed; `tools/pasture/scenarios/featured.sh`): featured
|
||||
tags (`/api/v1/featured_tags`, suggestions, `tags/:name/feature`, accounts' featured tags, `max_featured_tags` 10;
|
||||
`/tattoos` a collection of `Hashtag`s, `Add`/`Remove{Hashtag}` sent to followers and received, remote accounts'
|
||||
`featuredTags` read with their counts); endorsements (`pin`/`unpin`, `endorse`/`unendorse`, `/api/v1/endorsements`);
|
||||
private notes per persona (`PersonaNote`); the relationship's `notifying`, `languages`, `endorsed` and `note`, with
|
||||
`follow`'s `notify` (a `status` notification) and `languages` (filtering the home); preferences' reading settings;
|
||||
suggestions v1 and v2 with dismissals and the administrators' staff picks; the `direct` stream's `conversation`
|
||||
events; translate, annual reports and the admin API answering. Chosen while building it, for the owner to confirm:
|
||||
**featured tags federate** (they are public on Mastodon; `Add`/`Remove{Hashtag}` target `featured`, as Mastodon
|
||||
sends them, rather than `featuredTags`, which Mastodon ignores); endorsements are never federated and
|
||||
`/accounts/:id/endorsements` answers only the persona's own, to itself; suggestions never name a sibling persona and
|
||||
count `most_followed` only from three followers here; `familiar_followers` stays empty; the reading preferences are
|
||||
set on `/clientapi/avatar/private/preferences` (Mastodon's API sets none); staff picks have their own routes, not the
|
||||
settings form; a `Move` carries the persona's endorsement and note to the new account; featured tags, notes and
|
||||
endorsements are left out of the persona archive (Mastodon's layout has none), its `following_accounts.csv` now
|
||||
carries notify and languages.
|
||||
|
||||
## Intent
|
||||
|
||||
@@ -601,7 +617,8 @@ The first refactor commit is a pure move with namespaces only. Logic changes fol
|
||||
`hashtag:local`, `list`; events `update`, `notification`, `status.update`, `delete`; `health`. Advertised as
|
||||
`urls.streaming`.
|
||||
- **Stubs:** `custom_emojis`, announcements, suggestions, preferences. *Announcements are real since R5,
|
||||
`custom_emojis` since R7 (2026-10-17).*
|
||||
`custom_emojis` since R7 (2026-10-17), suggestions, preferences, featured tags and endorsements since R8
|
||||
(2026-10-18).*
|
||||
- **Mapping:**
|
||||
- Avatar, ForeignAvatar and Group all map to Account (`group: true` for groups). `acct` uses a WebFinger-verified
|
||||
handle; `created_at` is truncated to the day; avatar and header always have a placeholder URL.
|
||||
|
||||
Reference in new issue
Block a user