A member decides once in settings whether machines may read their posts - #2153
Open
wintermeyer wants to merge 2 commits into
Open
A member decides once in settings whether machines may read their posts#2153wintermeyer wants to merge 2 commits into
wintermeyer wants to merge 2 commits into
Conversation
wintermeyer
force-pushed
the
claude/publish-switches-2107
branch
2 times, most recently
from
September 11, 2026 06:24
619c1cd to
6d1fabb
Compare
Die Frage pro Beitrag im Composer wäre eine zu viel gewesen, denn sie ändert sich zwischen zwei Beiträgen fast nie; sie liegt jetzt als `Vutuv.Prefs`-Schlüssel auf /settings/privacy und wird beim Veröffentlichen auf die Zeile gestempelt, damit ein späteres Umschalten ältere Beiträge genau so lässt, wie sie hinausgegangen sind. Ein Prefs-Schlüssel statt einer Spalte, weil NULL "nie gefragt" heißen muss: `noai?` steht bei 5.867 von 6.026 Mitgliedern auf dem Spaltendefault, und niemand kann das von einer echten Antwort unterscheiden. Zurückgehalten wird ein Beitrag auch dort, wo er in einem fremden Dokument steckt (Unterhaltung, Antwort, Repost, Profil), und der Fediverse-Ausgang bleibt auf allen Wegen zu, weil ein Server anderswo seine Kopie behält und kein Header ihn erreicht. Die HTML-Unterhaltung zeigt ihn weiter: Seite und Dokument unterscheiden sich absichtlich, weil das Versprechen Maschinen gilt und nicht Lesern. Der Composer fragt weiterhin nach den Metadaten der angehängten Dateien, über qpdf, versteckt ohne die Flags aus 11.10.0. Diesen Text hat ein KI-Agent in meinem Namen geschrieben. Ich weiß, dass das problematisch ist. Claude-Session: https://claude.ai/code/session_013VnEsuePUe2CB2QvDcshcp
…reicht Drei Prüfrunden haben je eine vollständige Messung geliefert und je eine Fläche übersehen, weil es keine Liste gibt, sondern nur eine Eigenschaft: der Rumpf verlässt die Datenbank Richtung einer maschinenlesbaren Fläche jetzt nur noch über `Posts.scope_machines_for/2`, und `post_body_chokepoint_test.exs` liest den Quelltext und bricht den Build, wenn eine neue Abfrage daran vorbei einen `body` selektiert. Das letzte Paar zeigt, warum das Tor in die Abfrage gehört: `recent_posts_by_authors/3` selektiert in nackte Maps, an die kein Helfer herankommt, und `pinned_post/2` holt per Id statt über eine Liste, sodass gar kein Listengatter griff. Zwei Überreichweiten fallen im selben Zug: `public_ancestors/2` nimmt jetzt den Betrachter, damit ein Autor über seiner eigenen Antwort den zitierten Elternbeitrag behält, und ein Dokument für ein angemeldetes Mitglied schwärzt nicht mehr, was dieses Mitglied einen Klick weiter vollständig lesen darf. Eine Schwärzung, die Lesende trifft, ist genauso falsch wie eine fehlende. Diesen Text hat ein KI-Agent in meinem Namen geschrieben. Ich weiß, dass das problematisch ist. Claude-Session: https://claude.ai/code/session_013VnEsuePUe2CB2QvDcshcp
wintermeyer
force-pushed
the
claude/publish-switches-2107
branch
from
September 11, 2026 07:30
6d1fabb to
52d4954
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Nothing kept search engines and AI away from a member's posts, and a post that said no leaked its whole body wherever it sat inside somebody else's — most sharply on
/:slug, which is public, anonymous, in the sitemap and carries noX-Robots-Tag./settings/privacynow holds one switch, Search engines and AI may read my posts (Vutuv.Prefs'posts_machines_allowed?, default on).Vutuv.Postsstamps the answer ontoposts.noindex_noai?as a post is published, so flipping it later leaves older posts exactly as they went out.Three review rounds each measured completely and each missed the next surface, so this is enforced as a property rather than a list: a post's body leaves the database toward a machine-readable surface only through
Posts.scope_machines_for/2, andtest/vutuv/post_body_chokepoint_test.exsfails the build when a new query selects abodypast it. Exceptions carry their reason. A withheld post also leaves the Fediverse, the sitemap and every listing document entirely; the HTML conversation still shows it to people.To decide: page and doc differ on purpose, and
/ModDatesurvives the strip.Closes #2107
https://claude.ai/code/session_013VnEsuePUe2CB2QvDcshcp