The sign-up form asks about the Fediverse, with the box ticked - #1193
Merged
Conversation
…7.0) Federation only ever reached the people who went looking for it. The switch lives on /settings/fediverse, a page nobody visits without already knowing the word, so a member who would have said yes was never asked. Sign-up is the one moment everybody passes through, and most people who join want the connection to Mastodon and friends, so the question belongs there and the box starts ticked. Unticking is one click, and /settings/fediverse still takes it back at any time. One box, all three switches of that page (expand_fediverse_choice/1): taking part, the reactions that come back, and the replies people write out there. That is what "take part" means to somebody reading it — but the third one stores text written by people who never signed up here, so the box carries three lines of explanation naming the reply storage and its six-month limit. A consent covers what it says out loud, which is also why the settings switch, whose wording promises none of that, still leaves replies off when it is switched on by itself. Unticking at sign-up sets only participation to false and leaves the other two at their schema defaults, so a later yes on the settings page lands on that page's own defaults rather than on an echo of a box somebody unticked months earlier. Confirming the address now mints the actor keypair. Until now "opted in" and "has a key" could not come apart, because the settings page was the only way in and it calls ensure_actor/1. Sign-up cannot: the address is still unconfirmed, nothing may federate yet, and a keypair per unconfirmed registration is work for the sweeper to throw away. Confirmation is the moment federated?/1 turns true, and it has to mint the key there, because the delivery worker deletes every activity of a member it finds no key for - the first remote Follow such a member sent would have vanished with no error anywhere. Installations that federate nothing (FEDIVERSE_ENABLED=false, intranets) drop the question entirely. The operator manual now says what the ticked box means for them: expect most new accounts to federate, and to hold third-party replies, with FEDIVERSE_ENABLED=false as the only lever. The vutuv.de privacy page was updated by hand at /admin/legal before this shipped. An AI agent wrote this text in my name, unreviewed by me. The work behind it is mine; I only delegated the writing. Claude-Session: https://claude.ai/code/session_01PTwE9gLKFFqrkEkVpnpYiN
wintermeyer
force-pushed
the
worktree-fediverse-registierung
branch
from
July 28, 2026 11:06
9a3e926 to
82fa7a1
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.
TL;DR New members are asked about the Fediverse at sign-up, with the box ticked. That one box sets all three switches of
/settings/fediverse, so its wording names the reply storage and its six-month limit. Confirming the address now mints the actor keypair.Version: 7.187.0 · Hot deploy (no migrations, no config, no deps, no supervision changes).
Why
Federation only ever reached people who went looking for it: the switch lives on
/settings/fediverse, a page nobody visits without already knowing the word. Sign-up is the one moment everybody passes through, and most people who join want the connection to Mastodon and friends.What the box does
fediverse_followers?,fediverse_reactions?andfediverse_replies?(PageController.expand_fediverse_choice/1). That is what "take part" means to somebody reading it — and because the third one stores text written by people who never signed up here, the box carries three lines of explanation naming the reply storage and the six-month ceiling. A consent covers what it says out loud./settings/fediverseswitch is unchanged: on its own it still leaves replies off, because its wording promises none of that.falseand leaves the other two at their schema defaults, so a later yes on the settings page lands on that page's defaults, not on an echo of a box unticked months earlier.FEDIVERSE_ENABLED=false(intranets) drops the question entirely.The keypair gap this closed
"Opted in" and "has a key" could not come apart before, because the settings page was the only way in and it calls
ensure_actor/1. Sign-up cannot mint it (address unconfirmed, nothing may federate yet, and a key per unconfirmed registration is work for the sweeper). SoAccounts.activate_user/1mints it on first confirmation — without that the delivery worker deletes every activity of a keyless member ("No key … undeliverable for good"), and their first remote Follow would have vanished with no error anywhere.Tests & docs
Ten tests in
test/vutuv_web/controllers/registration_fediverse_test.exs(async: false— two flip:fediverse_enabled), covering the ticked default, all three switches, the unticked path, the German render, the intranet case and the keypair-on-confirmation.checkbox_checked?/2moved toVutuvWeb.ConnCasesince two files need it.docs/architecture/fediverse.mdanddocs/ADMINS.mdupdated — the latter now says plainly what the ticked box means for a third-party installation (expect most new accounts to hold third-party replies;FEDIVERSE_ENABLED=falseis the only lever).The vutuv.de privacy page was updated by hand at
/admin/legalbefore this shipped.An AI agent wrote this text in my name, unreviewed by me. The work behind it is mine; I only delegated the writing.
https://claude.ai/code/session_01PTwE9gLKFFqrkEkVpnpYiN