Skip to content

Beiträge können nach einer selbst gewählten Zeit auslaufen (v7.233.0) - #1328

Merged
wintermeyer merged 1 commit into
mainfrom
worktree-shortened_links
Aug 7, 2026
Merged

Beiträge können nach einer selbst gewählten Zeit auslaufen (v7.233.0)#1328
wintermeyer merged 1 commit into
mainfrom
worktree-shortened_links

Conversation

@wintermeyer

Copy link
Copy Markdown
Owner

TL;DR Mitglieder können ihre eigenen Beiträge nach einer selbst gewählten Zeit automatisch löschen lassen (Issue #1255). Aus für alle, bis es jemand einschaltet; vor dem ersten Lauf nennt ein Dialog die genaue Zahl.

Wo: neue Seite /settings/auto_post_deletion, Kontext Vutuv.Posts.AutoDeletion, nächtlicher Lauf Vutuv.Posts.AutoDeletionSweeper.

Was übernommen wurde und was nicht

Aus Mastodons Vorlage fehlt hier, was es bei uns nicht gibt: DMs sind ein eigenes System, Umfragen existieren nicht. Dafür kennt vutuv drei Dinge, die Mastodons Liste nicht hat: echte Gesprächsfäden, Fotobeiträge und den angehefteten Beitrag.

Immer erhalten (kein Häkchen, das man versehentlich wegklickt): der angeheftete Beitrag, ein eingefrorener Beitrag und jeder, zu dem ein Moderationsfall offen ist.

Einstellung Standard
Automatisch löschen aus
Alter Auswahlliste 1 Tag bis 2 Jahre (kein freies Zahlenfeld)
Beiträge mit Fotos oder Kritik behalten an
Beantwortete Beiträge behalten an
Selbst mit Lesezeichen versehene behalten an
Eigene Antworten mitlöschen aus
Mindestzahl Likes / Lesezeichen / Reposts 0 = aus

Likes und Reposts zählen die aus anderen Netzwerken mit, also genau die Zahlen, die am Beitrag stehen. Lesezeichen sind lokal, weil ein Lesezeichen privat ist.

Drei Entscheidungen, die im Code festgeschrieben sind

  1. Kein Vutuv.Prefs-Schalter. Prefs fallen auf einen Installationsstandard zurück, und kein Administrator darf einen Standard setzen, der fremde Beiträge löscht.
  2. Eine Query, zwei Aufrufer. Der Dialog zählt mit count_due/1, der Sweeper löscht mit derselben due_query/1. Eine zweite, getrennt geschriebene Query würde die genannte Zahl früher oder später zur Lüge machen.
  3. Die Sweeper-Uhr wird bei jedem Durchgang gestempelt, auch bei denen ohne Arbeit — die Lehre aus Die Like-Zahlen fremder Posts bleiben nicht mehr bei null stehen (v7.228.1) #1316, wo ein Überspringen ohne Stempel den Anfang der Warteschlange dauerhaft besetzt hielt. Ein Test prüft genau das.

Fediverse

Gelöscht wird über Posts.delete_post/1, also samt Delete(Tombstone). Die Seite sagt in eigenen Worten, dass das eine Bitte ist: Ein Server, der abgeschaltet ist, sich abgekoppelt hat oder die Bitte ignoriert, behält seine Kopie, und Screenshots oder Zitate sind ohnehin außer Reichweite.

Bestätigung

Zweistufig, sobald die Regel jetzt etwas löschen würde — beim Einschalten und beim späteren Verschärfen. Der bestätigte eigene Lauf ist ungedeckelt; der nächtliche verteilt einen großen Rückstand über mehrere Nächte.

Protokoll

Zwei neue Arten in der Kontoaktivität: posts_auto_deleted (eine Zeile pro Durchgang, nur die Anzahl — welche Beiträge es waren, ist ja gerade weg) und auto_post_deletion_changed.

Geprüft

mix precommit grün (7012 Tests), davon 41 neue. Dazu ein Browser-Durchlauf auf einem eigens angelegten Wegwerf-Konto: Dialog nennt 2, vor der Bestätigung ist nichts gespeichert und nichts gelöscht, nach der Bestätigung bleibt der frische Beitrag stehen, Uhr gestempelt, beide Protokollzeilen da. Das Wegwerf-Konto ist wieder gelöscht.

Closes #1255

Diesen Text hat ein KI-Agent in meinem Namen geschrieben, ungeprüft von mir. Die Arbeit dahinter ist meine, nur das Aufschreiben habe ich delegiert.

Issue #1255 wünschte sich Mastodons "alte Beiträge automatisch löschen".
Übernommen ist die Idee, nicht die Oberfläche: DMs sind hier ein eigenes
System und Umfragen gibt es nicht, dafür haben wir echte Gesprächsfäden,
Fotobeiträge und einen angehefteten Beitrag, die Mastodons Liste nicht kennt.

Aus für alle, bis es jemand selbst einschaltet, und bewusst kein
Vutuv.Prefs-Schalter: Prefs fallen auf einen Installationsstandard zurück, und
kein Administrator darf einen Standard setzen, der fremde Beiträge löscht.

Die Regel ist eine einzige Query, an der beide Aufrufer hängen: Die
Bestätigung auf der Einstellungsseite zählt damit, der nächtliche Lauf löscht
damit. Das ist keine Aufräumarbeit, sondern der Kern: Der Dialog nennt eine
genaue Zahl und löscht dann, eine zweite, getrennt geschriebene Query würde
diese Zahl früher oder später zur Lüge machen.

Immer erhalten bleiben der angeheftete Beitrag und alles, was gerade die
Moderation prüft. Dazu drei Ausnahmen, die standardmäßig mehr behalten
(Fotos und Kritiken, beantwortete Beiträge, eigene Lesezeichen als
Einzelfall-Notausgang) und drei Untergrenzen für Likes, Lesezeichen und
Reposts. Eigene Antworten in fremden Gesprächen bleiben standardmäßig
liegen: Eine Antwort gehört nicht nur einem selbst.

Gelöscht wird über Posts.delete_post/1, also samt Delete(Tombstone) an die
anderen Netzwerke. "Bitten" ist dabei das ehrliche Wort, und die Seite sagt
das auch so: Ein Server, der abgeschaltet ist oder die Bitte ignoriert,
behält seine Kopie, und Screenshots sind ohnehin außer Reichweite.

Speichern ist zweistufig, sobald die Regel jetzt etwas löschen würde, und
zwar auch beim späteren Verschärfen, denn genau dann hat man die Folge am
wenigsten überblickt. Der bestätigte eigene Lauf ist ungedeckelt, der
nächtliche nicht: Ein Zehn-Jahres-Rückstand verteilt sich über ein paar
Nächte, statt tausende Zustellungen auf einmal loszuschicken.

Der Sweeper stempelt seine Uhr bei jedem Durchgang, auch bei denen ohne
Arbeit. Das ist die Lehre aus #1316: Ein Überspringen, das nichts stempelt,
hält den Anfang der Warteschlange für immer besetzt.

Diesen Text hat ein KI-Agent in meinem Namen geschrieben, ungeprüft von mir.
Die Arbeit dahinter ist meine, nur das Aufschreiben habe ich delegiert.
@wintermeyer
wintermeyer merged commit 3959f45 into main Aug 7, 2026
1 check passed
@wintermeyer
wintermeyer deleted the worktree-shortened_links branch August 7, 2026 11:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Automatically delete my own posts after a configurable age

1 participant