forked from lukas/nixos-config
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>
48 lines
2.6 KiB
Markdown
48 lines
2.6 KiB
Markdown
# 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.
|