6b55b5c35c4b99533bded083137442dd0cb9479b
GET /api/v1/statuses/:id applied the viewer's own blocks and mutes and answered 200 with null for a post of an author the viewer had blocked; decePub's thread page then showed nothing. As in Mastodon, a status asked for by id (or acted on) is shown whatever the viewer blocked or muted, and only lists leave such posts out; when nothing can be shown the answer is 404, never null, and search leaves it out. A remote post marked sensitive with an empty summary (Akkoma's sensitive media, Lemmy's NSFW) got an invented "Content warning" that hid its words. A remote post now keeps its own summary: sensitive without one hides the media only. A local post warned without words still gets the default warning. Both found by decePub's end-to-end tests on the town. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LsXgEaXee4GCU1hwYgPJXw
Everything on, phase 1: geolocation fetches itself, the deploy signs in as @thepra, the crawler is on, sign-up by invitation
PrivaPub
A self-hosted ActivityPub server in C# (.NET 10, MongoDB) where one private login owns several unlinkable public personas. It federates with Mastodon, GoToSocial, Pleroma/Akkoma, Misskey and Lemmy.
- Live: https://privapub.thepra.dev
- Client: decePubClient, https://decepub.thepra.dev
- Architecture, conventions and deploy: CLAUDE.md
- Decisions and the plan to full ActivityPub interop: docs/ROADMAP.md
dotnet build PrivaPub.sln -c Release
Languages
C#
79.6%
Shell
14.2%
Python
5.8%
HTML
0.2%
Dockerfile
0.2%