R1 cleanup: collAnon and dead code gone, docs current, every peer's scenario in one sweep
Build / Build (push) Successful in 1m7s

Starts the completion program (docs/ROADMAP.md, "Owner decisions on finishing everything", 2026-10-17).

- Dead code: the commented-out collAnon blocks (discussions, seeding, admin user lists, HTTP/3, the old signature
  middleware), the empty PrivaPubWorkersConfiguration, PublicAvatarUsersService and UserPolicyType, unused helpers,
  the second IPasswordHasher registration, the PasswordGenerator package, SignUpAsync/LoginAsync's unused invitation
  parameters. "Starting PrivaPub"; a signed-in login is sent to "/", not to "/discussions".
- Stored fields nothing read: RootUser.Contacts and ResetPasswordToken*, the local Avatar.AvatarServer,
  EmailRecovery.RecoveryCode/RequestIP/CreationDate, MongoSettings.LogsDatabase, and AppConfiguration's
  upload/discussion keys, RequiresFirstTimeSetup and Version (old documents still load: MongoDB.Entities ignores extra
  elements). DmPost's indexes are no longer made. 49 collAnon keys leave FieldsNameResource in every language.
- /clientapi/data/current-version answers the build's ref. UsersIds is a list that can't throw, and the admin routes
  leave the administrator out without mutating the request.
- deploy.yml checks SecureMode on a name no persona can have, and the browser redirect on the directory's first local
  persona: @thepra is the administrator's own now.
- Town: decePub's e2e remnants (expect, client.jsonl, the decePub column) and town/tests go; the dead gaps/load
  commands too. Mobilizon no longer keeps an event for a deleted test.
- tools/pasture/sweep.sh runs every peer's scenario, batch by batch, as CLAUDE.md asks before a change to what
  PrivaPub sends.
- Docs: CLAUDE.md's repo map, route table (every frozen route) and stale lines; ROADMAP's status (setup, v1.25.0,
  v1.26.0, the program C), the 2026-10-17 decisions, and dated notes where earlier text no longer holds; FEDERATION.md's
  FEP list (7888, f228, 7628, ae0c and 8967 supported) and the deploy's persona.

Verified: dotnet build PrivaPub.sln -c Release (0 errors, no new warnings); bash -n on the touched scripts; py_compile
on the town; the pasture's gts, mastodon and lemmy scenarios on this build.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WpVCoDeM1qUTRp4fXQdfof
This commit is contained in:
thepraandClaude Opus 5.5 committed 2026-10-17 02:56:57 +02:00
1 parent 6727e1817a
commit ff5e635dda
71 files changed
+238 -4767

No files matched your search

@@ -117,123 +117,30 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="(necessary in case of password recovery)" xml:space="preserve">
<value>(απαραίτητο σε περίπτωση ανάκτησης κωδικού πρόσβασης)</value>
</data>
<data name="(password manager suggested)" xml:space="preserve">
<value>(&lt;a class="is-underlined has-text-info" tabindex="-1" target="blank" href="https://keepassxc.org/"&gt;διαχειριστής κωδικών πρόσβασης&lt;/a&gt; προτείνεται)</value>
</data>
<data name="Amount" xml:space="preserve">
<value>Ποσό</value>
</data>
<data name="AnswerId" xml:space="preserve">
<value>Απάντηση id</value>
</data>
<data name="AnswerText" xml:space="preserve">
<value>Κείμενο απάντησης</value>
</data>
<data name="Character" xml:space="preserve">
<value>Προσαρμοσμένος χαρακτήρας (emoji)</value>
</data>
<data name="ColourIndex" xml:space="preserve">
<value>Χρώμα</value>
</data>
<data name="CommentId" xml:space="preserve">
<value>Σχόλιο id</value>
</data>
<data name="CommentText" xml:space="preserve">
<value>Κείμενο σχολιασμού</value>
</data>
<data name="Confrontation" xml:space="preserve">
<value>Αντιπαράθεση</value>
</data>
<data name="ConfrontationId" xml:space="preserve">
<value>id αντιπαράθεσης</value>
</data>
<data name="Context" xml:space="preserve">
<value>Πλαίσιο</value>
</data>
<data name="DateEnd" xml:space="preserve">
<value>Ημερομηνία λήξης</value>
</data>
<data name="DateStart" xml:space="preserve">
<value>Ημερομηνία έναρξης</value>
</data>
<data name="Description" xml:space="preserve">
<value>Περιγραφή</value>
</data>
<data name="Discussion" xml:space="preserve">
<value>Συζήτηση</value>
</data>
<data name="DiscussionEndDate" xml:space="preserve">
<value>Ημερομηνία λήξης</value>
</data>
<data name="DiscussionEndTime" xml:space="preserve">
<value>Ώρα λήξης</value>
</data>
<data name="DiscussionId" xml:space="preserve">
<value>Συζήτηση id</value>
</data>
<data name="DiscussionText" xml:space="preserve">
<value>Κείμενο συζήτησης</value>
</data>
<data name="DiscussionTitle" xml:space="preserve">
<value>Τίτλος συζήτησης</value>
</data>
<data name="Email" xml:space="preserve">
<value>Ηλεκτρονικό ταχυδρομείο</value>
</data>
<data name="Emoji" xml:space="preserve">
<value>Emoji</value>
</data>
<data name="ExpectedMaxConfrontationsBeforeClosingAndShowing" xml:space="preserve">
<value>Μέγιστος αριθμός αντιπαραθέσεων</value>
</data>
<data name="Fact" xml:space="preserve">
<value>Γεγονός</value>
</data>
<data name="Facts" xml:space="preserve">
<value>Γεγονότα</value>
</data>
<data name="FileId" xml:space="preserve">
<value>id αρχείου</value>
</data>
<data name="Groups" xml:space="preserve">
<value>Ομάδες</value>
</data>
<data name="IncludeFirstAnswerInInvitation" xml:space="preserve">
<value>Να συμπεριλάβετε την πρώτη απάντηση στην προεπισκόπηση της πρόσκλησης; (καθιστώντας την πιο ελκυστική για να συμμετάσχετε στη συζήτηση)</value>
</data>
<data name="InvitationCode" xml:space="preserve">
<value>Κωδικός πρόσκλησης</value>
</data>
<data name="InvitationCodeLink" xml:space="preserve">
<value>Κωδικός πρόσκλησης ή σύνδεσμος</value>
</data>
<data name="InvitationPassword" xml:space="preserve">
<value>Κωδικός πρόσκλησης</value>
</data>
<data name="IsPasswordProtectedForPreview" xml:space="preserve">
<value>Απαίτηση κωδικού πρόσβασης για προεπισκόπηση</value>
</data>
<data name="IsPasswordProtectedForPreviewText" xml:space="preserve">
<value>Απαιτείται κωδικός πρόσβασης για την εμφάνιση της προεπισκόπησης</value>
</data>
<data name="IsPasswordProtectedText" xml:space="preserve">
<value>Προσθήκη προστασίας με κωδικό πρόσβασης</value>
</data>
<data name="IsStructured" xml:space="preserve">
<value>IsStructured</value>
</data>
<data name="LanguageId" xml:space="preserve">
<value>Id γλώσσας</value>
</data>
<data name="Name" xml:space="preserve">
<value>Όνομα</value>
</data>
<data name="NativeNotificationsEnabled" xml:space="preserve">
<value>Ενεργοποίηση ειδοποιήσεων; (χρήσιμο για να λαμβάνετε ενημερώσεις εφαρμογών)</value>
</data>
<data name="NewPassword" xml:space="preserve">
<value>Νέος κωδικός πρόσβασης</value>
</data>
@@ -243,76 +150,22 @@
<data name="OldPassword" xml:space="preserve">
<value>Παλαιός κωδικός πρόσβασης</value>
</data>
<data name="OneTime" xml:space="preserve">
<value>Μόνο μία φορά</value>
</data>
<data name="Password" xml:space="preserve">
<value>Κωδικός πρόσβασης</value>
</data>
<data name="Perception" xml:space="preserve">
<value>Αντίληψη</value>
</data>
<data name="Perceptions" xml:space="preserve">
<value>Αντιλήψεις</value>
</data>
<data name="PreferSystemTheming" xml:space="preserve">
<value>Προτιμήστε το θέμα του συστήματος</value>
</data>
<data name="RecoveryCode" xml:space="preserve">
<value>Κωδικός ανάκτησης</value>
</data>
<data name="Recurring" xml:space="preserve">
<value>Επαναλαμβανόμενο</value>
</data>
<data name="Scan for:" xml:space="preserve">
<value>Σάρωση για:</value>
</data>
<data name="SearchText" xml:space="preserve">
<value>Αναζήτηση</value>
</data>
<data name="ShareCode" xml:space="preserve">
<value>Κοινή χρήση μυστικού κώδικα</value>
</data>
<data name="ShowDonatorBadge" xml:space="preserve">
<value>Εμφάνιση σήματος δωρητή</value>
</data>
<data name="ShowLogs" xml:space="preserve">
<value>Εμφάνιση της καρτέλας αρχείων καταγραφής για την υποστήριξη της αντιμετώπισης προβλημάτων.</value>
</data>
<data name="TakeType" xml:space="preserve">
<value>Πάρτε τον τύπο</value>
</data>
<data name="TakeTypeSimple" xml:space="preserve">
<value>Απλό</value>
</data>
<data name="TakeTypeStructured" xml:space="preserve">
<value>Δομημένο</value>
</data>
<data name="Theme image" xml:space="preserve">
<value>Εικόνα θέματος</value>
</data>
<data name="ThemeIsDarkMode" xml:space="preserve">
<value>Σκοτεινή λειτουργία</value>
</data>
<data name="Ticks" xml:space="preserve">
<value>Κρότωνες</value>
</data>
<data name="Title" xml:space="preserve">
<value>Τίτλος</value>
</data>
<data name="UpdateReason" xml:space="preserve">
<value>Αιτία ενημέρωσης</value>
</data>
<data name="UpsertUserTakeIsAnonymous" xml:space="preserve">
<value>Υποβάλετε ανώνυμα</value>
</data>
<data name="Username" xml:space="preserve">
<value>Όνομα χρήστη</value>
</data>
<data name="Username to search and add" xml:space="preserve">
<value>Όνομα χρήστη για αναζήτηση και προσθήκη</value>
</data>
<data name="Usernames to search and add" xml:space="preserve">
<value>Ονόματα χρηστών για αναζήτηση και προσθήκη</value>
</data>
</root>