R7's emoji id is /grimaces/{shortcode}, the owner's name

The federated id of a local custom emoji (LocalEmojis.Path) was the plan's /emojis/{shortcode} awaiting the owner; it is
/grimaces/{shortcode}, in the style of the other routes, and freezes once it deploys.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WpVCoDeM1qUTRp4fXQdfof
This commit is contained in:
thepraandClaude Opus 5.5 committed 2026-10-18 10:29:53 +02:00
1 parent 9b792042e6
commit 048eb15bb7
9 files changed
+23 -25

No files matched your search

+3 -3
View File
@@ -133,7 +133,7 @@ actor document, a collection, NodeInfo or a delivery relates two avatars of the
| A persona's wall (FEP-400e) | `/peasants/{name}/graffiti` |
| Followers on the asking server (FEP-8fcf) | `/peasants/{name}/groupies/roll-call` |
| Featured (pinned) posts, featured hashtags | `/peasants/{name}/trophies`, `/peasants/{name}/tattoos` |
| A custom emoji of this server (`Emoji`) | `/emojis/{shortcode}` |
| A custom emoji of this server (`Emoji`) | `/grimaces/{shortcode}` |
| Profile and post pages | `/@{name}`, `/@{name}/{id}` |
The names are the project's own and are stable; resolve actors through WebFinger, not by guessing a path.
@@ -367,7 +367,7 @@ Mastodon sends them, on a post or poll whose words, title, warning or options na
whose name, bio or fields do, and on an `EmojiReact`:
```json
{"id": "https://privapub.thepra.dev/emojis/blobcat", "type": "Emoji", "name": ":blobcat:",
{"id": "https://privapub.thepra.dev/grimaces/blobcat", "type": "Emoji", "name": ":blobcat:",
"updated": "2026-10-17T12:00:00.000Z",
"icon": {"type": "Image", "mediaType": "image/png", "url": "https://privapub.thepra.dev/media/files/2026/10/….png"}}
```
@@ -500,7 +500,7 @@ Posts with a location (shown to nearby users of this server) never leave the ser
- **Reading our documents (SecureMode).** privapub.thepra.dev answers ActivityPub GETs only when they are signed, like
Mastodon's authorized fetch; the server's own actors (the instance actor `/peasants/privapub`, the reporter
`/peasants/privapub_reports` and the reader of feeds `/peasants/privapub_feeds`) are the exception, since their keys
are needed first, and so are its custom emoji at `/emojis/{shortcode}`.
are needed first, and so are its custom emoji at `/grimaces/{shortcode}`.
A browser asking for HTML is redirected to the public page instead.
- **Posts that are not public** (followers-only, direct, circle) are served to a signed request from someone they were
for, or from the instance actor of a server where someone they were for lives, and to nobody else (404). Once deleted