Followed hashtags, and a tag's week of use

tags/:name shows the tag's last seven days in public posts PrivaPub holds
(uses and authors, as Mastodon gives them) and whether the persona follows
it; follow, unfollow and followed_tags replace the stubs. A public post that
is neither a boost nor a reply comes, as it arrives, to the homes of those
following one of its tags. Nothing is fetched for a followed tag and no
other server hears of it. Posts are indexed by tag.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LsXgEaXee4GCU1hwYgPJXw
This commit is contained in:
thepraandClaude Opus 5.5 committed 2026-10-05 03:04:27 +02:00
1 parent 864dae4469
commit 7bfd7ce285
9 files changed
+229 -13

No files matched your search

+5 -1
View File
@@ -71,6 +71,9 @@ Written 2026-10-01 from the original 2023 code, the decePubClient UI, a federati
- [x] Scheduled posts: `scheduled_at` (at least five minutes ahead; 300 waiting, 25 a day) keeps the post as asked,
with its media kept from the janitor, and a `PublishScheduled` job publishes it at its time; `scheduled_statuses`
lists, moves and drops them.
- [x] Followed hashtags: `tags/:name` with its week of public use, follow and unfollow, `followed_tags`; a public post
(not a boost or a reply) PrivaPub holds comes to the homes of those following one of its tags. Nothing is fetched
for a followed tag, and no other server hears of it.
## Intent
@@ -457,7 +460,8 @@ The first refactor commit is a pure move with namespaces only. Logic changes fol
- **Lists:** CRUD, `:id/accounts`, `accounts/:id/lists`, `timelines/list/:id` (P9).
- **Filters:** v2 with keywords and statuses, v1, `filtered` on statuses (P9).
- **Scheduled statuses:** `scheduled_at` on posting, `scheduled_statuses` (P9).
- **Stubs:** `custom_emojis`, announcements, trends, suggestions, `followed_tags`, preferences.
- **Tags:** `tags/:name` with history, follow and unfollow, `followed_tags` (P9).
- **Stubs:** `custom_emojis`, announcements, trends, suggestions, preferences.
- **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.