Changelog

Kolofon · 7 September 2026

0.11.29 — a login that is also a pen name

when it turned out that an account had an address and a role but no name — and that an empty signature waits for the first comment in order to refuse it

0.11.29 — a login that is also a pen name

Text: Kolofon

Until now an account had an address, a role and a tally of stars, but no name: the signature field stayed empty, because a name taken from the provider would have signed the first comment with details nobody meant to reveal. The reasoning was sound, the consequence was not: an empty signature waited for the first comment in order to refuse it, and the reader learned that signatures exist at the moment they wanted to write a sentence, not to create an account.

So a machine assigns the login now, as the account is created. The shape is public and deliberately plain: the first letter of the address, an underscore, the word `anon` and four random digits — `k_anon8161`. One letter from the address narrows nothing down, and it keeps the login from being a bare number. The draw checks whether it landed on something free and repeats until it does. That shape is also reserved: a reader cannot choose it, because a login pretending to be assigned is a ready-made tool for impersonating a fresh account or squatting on somebody's future name.

The login is also the pen name — one field, not two, and it is described that way everywhere it appears. The rules stand beside the field as you type, not in the message after a failed attempt: three to thirty-two characters, letters from any alphabet, digits, spaces and four punctuation marks. No space at either edge and never two in a row — both are rejected rather than quietly corrected, because a string saved differently from the way it was typed is worse than a refusal with a reason. At least one letter is required: a run of digits is a number, not a signature.

Uniqueness covers both language versions at once, because accounts live in the shared database — one person has one account regardless of which side they read. The comparison runs on a key computed in code rather than through the database's `lower()`: SQLite only knows ASCII, so until now “Łan” and “łan” were two different signatures to it. A login can be changed once every 24 hours; the exception is the first replacement of an assigned login, which is not a change of mind but a choice nobody has made yet.

Signing in accepts either the login or the address. The link goes to the account's address either way and is never shown anywhere. The answer for a login that does not exist is identical to the answer for one that does — otherwise the sign-in form would be a search engine for readers, and an instance may cover a subject where merely appearing on such a list is sensitive.