Repository navigation
v9.2
RELEASE NOTES : KOTBO v9.2
Version : v9.2
Statut : Production Release
Périmètre : Bot, Dashboard, API, Progression & Sécurité
📑 Résumé
Kotbo v9.2 introduit une refonte complète de la gestion du cycle de vie des modules, un nouveau système de classement compétitif sous le nom Prestige (remplaçant Ascend), le module communautaire Starlight (Starboard), ainsi qu'un durcissement significatif de la confidentialité (RGPD) et des tunnels d'accès et d'anti-raid.
Cette version garantit désormais une désactivation effective de bout en bout des fonctionnalités (portée des commandes Discord, écouteurs d'événements, crons et routes API) tout en optimisant le provisionnement des infrastructures et les performances de l'annuaire staff.
🌟 Points clés
- Isolation et cycle de vie des modules : La désactivation d'un module coupe désormais réellement ses commandes slash (portée de déploiement par guilde), ses écouteurs d'événements internes/Discord, ses tâches de fond et ses accès API.
- Module Prestige & Paliers (Ranked) : Transition d'Ascend vers Prestige (
/prestige,/prestige-admin), personnalisation avancée des courbes de ladder, provisionnement automatique et ordonnancement des rôles de paliers, et intégration dans la clôture des saisons. - Module Starlight (Starboard) : Mise en avant automatique des messages populaires via système de score basé sur les réactions et embeds enrichis avec galeries d'images.
- Transparence et RGPD (
/privacy) : Nouvelle commande éphémère d'information sur les données conservées, les durées de rétention et la procédure d'exercice des droits. - Sécurité & Onboarding renforcés : Ajout du salon piège (Honeypot) dans le template guidé, réconciliation automatique des rôles d'accès serveur post-onboarding/captcha, et pack vocal du captcha fiabilisé avec prises humaines (36 symboles).
- Optimisations et performances : Accélération majeure du chargement de l'annuaire staff via batching des requêtes passerelle et throttling des synchronisations de hiérarchie.
📦 Désactivation effective & Architecture des Modules
- Déploiement scopé par guilde : Les commandes applicatives sont désormais synchronisées par serveur selon les modules activés, masquant les commandes inutilisées plutôt que de simplement lever une erreur à l'exécution.
- Proxy de filtrage (
scopeClientToModule&subscribeForModule) : Les écouteurs d'événements (bus interne et événements Discord directs) ignorent automatiquement les flux provenant de serveurs où le module concerné est inactif. - Garde globale d'interactions (
enforceModuleGate) : Interception centralisée pour bloquer commandes, boutons et modales liés à un module désactivé. - Gestion des dépendances en cascade : L'activation/désactivation propage automatiquement les états requis et dépendants dans le registre
@kotbo/contracts. - Garde d'API Dashboard : Verrouillage strict des routes HTTP sous-jacentes lorsqu'un module est éteint.
🏆 Module Prestige (Compétitif / Ranked)
- Refonte et renommage : Commandes unifiées sous
/prestigeet/prestige-admin. - Générateur de courbe de ladder : Configuration flexible du nombre de paliers, RP de base, exposant et divisions avec simulation d'impact (
/ranked/ladder/impact). - Gestion automatique des rôles de paliers :
- Provisionnement automatique et ordonnancement du sommet vers la base dans la hiérarchie Discord.
- Suppression groupée sécurisée et nettoyage des associations orphelines.
- Synchronisation en arrière-plan non bloquante (
startTierRoleSync) avec suivi d'avancement dans le Dashboard.
- Messages d'annonces personnalisables : Support des variables dynamiques (
{user},{tier},{from},{rp}) pour les promotions et rétrogradations. - Intégration aux Saisons : Archivage du classement RP et restitution dans la vue d'ensemble des saisons.
⭐ Starlight (Starboard)
- Système de highlight automatique : Publication dans un salon dédié dès le franchissement d'un seuil paramétrable (upvotes - downvotes).
- Prise en charge multi-médias : Détection et affichage groupé jusqu'à 4 images en galerie Discord et liste des pièces jointes annexes.
- Amorçage de salons (Auto-react) : Pose automatique d'emojis de vote sur les nouveaux messages des salons configurés.
- Double surface de vote : Comptabilisation synchronisée des réactions sur le message d'origine et sur l'embed Starlight.
🛡️ Sécurité, Modération & Captcha
- Honeypot intégré au Server Template : Provisionnement en tête de liste d'un salon piège ouvert en écriture à
@everyonepour intercepter et bannir immédiatement les bots de spam. - Réconciliation d'accès (
reconcileMemberAccess) : Routine périodique et post-template pour attribuer le rôle d'accès aux membres oubliés ou arrivés hors ligne. - Fiabilisation du Captcha Vocal :
- Intégration de prises vocales humaines complètes (variante
-3) couvrant les 26 lettres et 10 chiffres en français et en anglais. - Workflow automatisé de découpage par silence via
pydubetffmpeg. - Ajustement des estimations de temps d'attente en file.
- Intégration de prises vocales humaines complètes (variante
- Résilience des configurations : Création à la volée de la configuration anti-raid par défaut lors de la première consultation d'un serveur neuf.
🔒 Confidentialité & RGPD
- Nouvelle commande
/privacy: Réponse éphémère détaillée explicitant la finalité des données collectées (profil, activité, tickets) et les modalités d'effacement. - Protection des journaux de modération : Clarification des règles de conservation des casiers et sanctions à des fins de sécurité des serveurs.
⚡ Performances & Optimisations Backend
- Annuaire Staff accéléré : Remplacement des résolutions individuelles par des requêtes groupées Gateway (lots de 100 membres) et cache de synchronisation hiérarchique limité à 1 minute.
- Recherche optimisée dans les classements : Factorisation de la résolution des identifiants (
resolveSearchedUserIds) exploitant l'extension PostgreSQLunaccent. - Standardisation typographique : Harmonisation des séparateurs et tirets sur l'ensemble des modules.
📊 Chiffres de la release
- 33 commits appliqués depuis la branche de recette
- 17 fichiers majeurs modifiés (bot, contrats, traductions et workflows)
- Version du package bot : 9.1 → 9.2
What's Changed
- Feat/docs link by @Intercalaire in #112
- Feat/leveling web by @Intercalaire in #113
- fix(dashboard): corrige la redirection vers le catalogue de modules by @Intercalaire in #115
- fix(dashboard): remplace l'icone du bouton sauvegarder des reseaux sociaux by @Intercalaire in #116
- fix(dashboard): corrige la configuration des boutons des reaction roles by @Intercalaire in #120
- I18n/inbox by @Intercalaire in #121
- I18n/inbox by @Intercalaire in #122
- I18n/inbox by @Intercalaire in #123
- i18n(appeals): traduit les appels de bannissement et la page publique by @Intercalaire in #124
- i18n(security,invites): traduit les doubles comptes et les invitations by @Intercalaire in #125
- i18n: complete translations for invitations, discord logs, role permissions and double accounts tabs by @Intercalaire in #126
- I18n/inbox by @Intercalaire in #127
- i18n: translate events, custom forms and daily algo pages by @Intercalaire in #128
- i18n: translate event editor and event control configuration pages by @Intercalaire in #129
- I18n() by @Intercalaire in #130
- I18n by @Intercalaire in #131
- i18n: complete translation of Giveaways page, cards, stats, empty states, and creation modal by @Intercalaire in #132
- feat(dashboard): ajout du support i18n pour la page Annonces & Auto-Rôle by @Intercalaire in #133
- feat(i18n): translate announcements, reaction roles, triggers and suggestions pages by @Intercalaire in #134
- feat(i18n): translate announcements, reaction roles, suggestions and triggers pages by @Intercalaire in #135
- fix(i18n): translate advanced action placeholders and inputs in triggers modal by @Intercalaire in #136
- I18n/inbox by @Intercalaire in #137
- fix(i18n): fix regulation missing keys and translate beta banner in main layout by @Intercalaire in #139
- Fix/bug by @Intercalaire in #142
- I18n/inbox by @Intercalaire in #143
- fix(i18n): add missing common_admin, common_mod and common_clear keys by @Intercalaire in #151
- fix(i18n): add missing message keys crashing dashboard pages by @Intercalaire in #152
- feat(i18n): translate general settings and backups pages by @Intercalaire in #153
- Fix/bug by @Intercalaire in #154
- feat(i18n): translate staff section pages by @Intercalaire in #155
- i18n(dashboard): translate Org Chart and Ticket config embeds to English by @Intercalaire in #156
- Fix/bug by @Intercalaire in #159
- fix(dashboard): corriger la syntaxe de l alias Cross dans icons by @Intercalaire in #160
- fix(dashboard): restaurer le rendu Papicons pour les icônes du dashboard by @Intercalaire in #161
- Fix/bug by @Intercalaire in #162
- fix(dashboard): lier les icones Papicons statiquement by @Intercalaire in #164
- Fix/bug by @Intercalaire in #167
- fix(i18n): republier les panneaux quand le dashboard change la langue by @Intercalaire in #168
- feat(i18n): traduire les panneaux persistants selon la langue du serveur by @Intercalaire in #169
- Merge recette into main by @sailingteam4 in #170
Full Changelog: v9.1...v9.2