Repository navigation
feat(seniority): recalcul de l'ancienneté à la demande - #399
Merged
Merged
Conversation
AntoineJT
force-pushed
the
feat/seniority-recompute
branch
2 times, most recently
from
November 10, 2026 03:27
6a67629 to
e1a44d4
Compare
This was referenced Nov 10, 2026
Merged
AntoineJT
changed the base branch from
master
to
feat/discord-search-polyfill
November 10, 2026 03:29
AntoineJT
force-pushed
the
feat/seniority-recompute
branch
from
November 10, 2026 03:32
e1a44d4 to
32c8db9
Compare
AntoineJT
force-pushed
the
feat/seniority-recompute
branch
from
November 10, 2026 03:39
32c8db9 to
0da4a35
Compare
/seniority-admin recompute fait partir l'ancienneté d'un membre de son premier message quand il précède son arrivée actuelle, que Discord remet à zéro au retour d'un membre parti. La date retenue est la plus ancienne entre l'arrivée, ce premier message et un recalcul précédent. Elle sert aux fêtes d'ancienneté et à la plus ancienne présence de la carte du serveur. Un membre à la fois, sur demande d'un administrateur : un recalcul de tout le serveur ferait des milliers de recherches et ressemblerait à une collecte de son historique. La date est gardée après un départ, pour rester juste au retour ; /privacy delete et la désinstallation la suppriment, cette dernière après confirmation dans /modules. Aucun intent de plus : la recherche dépend de l'accès Message Content de l'application. Le module passe en 1.1.0 : sans changement de version, la commande ne serait pas enregistrée sur les serveurs où il est déjà activé.
AntoineJT
force-pushed
the
feat/seniority-recompute
branch
from
November 10, 2026 03:44
0da4a35 to
d1089ec
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.
🇫🇷 Français
🎯 Résumé
Ajoute la commande admin
/seniority-admin recompute membre:. Elle fait partir l'ancienneté d'un membre de son premier message sur le serveur, quand celui-ci précède son arrivée actuelle. La date recalculée sert aux fêtes d'ancienneté et à la « plus ancienne présence » de la carte du serveur.C'est le deuxième niveau d'une pile : elle s'appuie sur #401 (la recherche de messages en bouche-trou), et #402 ajoute par-dessus la conservation d'un an après le départ. B et C sortent dans la même release.
🤔 Motivation
Discord remet la date d'arrivée à zéro quand un membre quitte puis revient : un membre présent depuis 7 ans peut être fêté pour 1 an. Son premier message encore sur le serveur donne une date plus juste. Le recalcul se fait à la demande, membre par membre. On a écarté une recherche à chaque arrivée : sur un serveur de 13 000 membres, ce serait des milliers de recherches.
📦 Contenu
✨ Recalcul. La date retenue est la plus ancienne entre l'arrivée, le premier message trouvé et un recalcul précédent. Le modèle
SeniorityOverrideet sa migration sont ajoutés. Réponses distinctes :Le membre n'est refusé comme absent que si Discord le dit. Un bot n'est jamais recalculé.
🗓️ Fêtes. Un membre recalculé est fêté, et classé dans les groupes d'années, selon la date de son premier message.
🔒 Vie privée.
/privacy delete, dont la confirmation le dit./modulesdemande alors confirmation.🔕 Aucun intent ajouté. La recherche dépend de l'accès Message Content de l'application, pas d'un intent de gateway.
🔢 Le module passe en
1.1.0. Sans ce changement de version,/seniority-adminn'aurait jamais été enregistrée sur les serveurs où le module est déjà activé.📝 Doc :
functional.md, politique de confidentialité (fr et en), guide d'installation (fr et en).✅ Validation :
🧭 À noter
🇬🇧 English
🎯 Summary
Adds the admin command
/seniority-admin recompute member:. It makes a member's seniority count from their first message on the server, when that message predates their current arrival. The recomputed date is used by the seniority celebrations and by the server card's "longest-standing member".This is the second level of a stack: it builds on #401 (message search as a polyfill), and #402 adds on top the one-year retention after leaving. B and C ship in the same release.
🤔 Motivation
Discord resets the join date of a member who leaves and comes back: a member who has been around for 7 years can be celebrated for 1. Their first message still on the server gives a more accurate date. The recompute runs on demand, one member at a time. A search on every join was ruled out: on a 13,000-member server, that would mean thousands of searches.
📦 What's included
✨ Recompute. The date kept is the earliest of the arrival, the first message found and a previous recompute. The
SeniorityOverridemodel and its migration are added. Distinct replies:A member is refused as absent only when Discord says so. A bot is never recomputed.
🗓️ Celebrations. A recomputed member is celebrated, and grouped by years, according to the date of their first message.
🔒 Privacy.
/privacy delete, whose confirmation now says so./modulesasks for confirmation first.🔕 No intent added. The search depends on the application's Message Content access, not on a gateway intent.
🔢 The module moves to
1.1.0. Without the version change,/seniority-adminwould never have been registered on servers where the module is already enabled.📝 Docs:
functional.md, privacy policy (fr and en), getting-started guide (fr and en).✅ Validation:
🧭 Notes
📋 Checklist
/seniority-admin recomputesur un membre parti puis revenu / 🇬🇧 On the test server, run/seniority-admin recomputeon a member who left and came back