Public + "Local only" is required for a post to actually appear on the shared Local Timeline (GoToSocial only timelines public-visibility statuses; followers-only stays private regardless of local_only). Also notes the GoToSocial timeline cache going stale after a service restart, fixed by restarting again. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| 0ff-space.patch | ||
| local-only.patch | ||
| package.nix | ||
| README.md | ||
Phanpy
Gepatchter Phanpy-Client (siehe package.nix, 0ff-space.patch,
local-only.patch) für phanpy.0ff.space, statisch ausgeliefert über
static-web-server (siehe ../phanpy.nix). Backend ist GoToSocial auf
social.0ff.space (../gotosocial.nix).
Community-interne Posts (nicht föderiert)
local-only.patch fügt im Compose-Fenster eine „Local only"-Checkbox
hinzu, die GoToSocials local_only-Parameter setzt. Damit ein Post
innerhalb der Community sichtbar wird (also in der Local Timeline
aller Instanz-Mitglieder auftaucht), aber nicht in den Fediverse
föderiert wird, braucht es beide Einstellungen zusammen:
- Sichtbarkeit: Public (nicht Followers-only/Private!)
- „Local only"-Checkbox: an
Grund: GoToSocial nimmt Posts nur dann überhaupt in die
Public-/Local-Timeline-Caches auf, wenn visibility == public ist
(internal/surfacing/surfacetimeline.go, timelineStatusForPublic —
bei jeder anderen Sichtbarkeit wird sofort zurückgekehrt, unabhängig
vom local_only-Flag). Ein Post mit „Followers-only" + „Local only"
verhält sich also einfach wie ein normaler Followers-only-Post
(sichtbar nur für die eigenen Follower) und taucht nicht in der
gemeinsamen Local Timeline auf — das erfüllt nicht das Ziel „für die
ganze Community sichtbar, aber nicht federated".
Verifiziert über GoToSocials flags-Bitmaske in der statuses-Tabelle
(internal/gtsmodel/statusflags.go): Bit 8 = Local (Autor ist lokaler
Account), Bit 16 = Federated (wird über die Instanz hinaus verteilt).
Ein normaler öffentlicher Post hat flags = 24 (Local + Federated), ein
korrekt verfasster „Local only"-Post hat flags = 8 (nur Local, nicht
Federated) — das per SQL auf pinix nachvollziehbar:
sudo -u postgres psql -d gotosocial -c "SELECT id, flags, visibility FROM statuses ORDER BY id DESC LIMIT 20;".
Bekannter Fallstrick: Local-Timeline-Ansicht nach GoToSocial-Neustart
Phanpys eingebaute Local-Timeline-Ansicht (/p/l, Menü oben rechts →
„Switch to Local") kann nach einem gotosocial-Neustart leer bzw. auf
einen einzelnen, sehr alten Post eingefroren wirken — auch wenn die
Datenbank aktuelle, passende Posts enthält. Ursache vermutlich
GoToSocials serverseitiger In-Memory-Cache für die Local-/Public-Timeline
(internal/cache/timeline), der nach einem Neustart nicht sofort korrekt
mit dem vollen Verlauf preloaded. Am 29.07.2026 beobachtet und durch
erneuten sudo systemctl restart gotosocial auf pinix behoben. Falls das
wieder auftritt: erst prüfen, ob die Datenbank tatsächlich aktuelle,
lokale Public-Posts enthält (SQL oben), dann gotosocial neu starten.