Skip to content

v9.5

Latest

Choose a tag to compare

@Klaynight-dev Klaynight-dev released this 24 Oct 16:47
· 130 commits to main since this release

Notes de version : Kotbo v9.5

Version : v9.5
Statut : Feature Release
Périmètre : Bot, Dashboard, API, MCP, Schéma Prisma & Infrastructure

📑 Résumé

Kotbo v9.5 sort Kotbo de Discord. Chaque serveur peut désormais publier son site communautaire : wiki, blog, forum relié à Discord, votes, espace membre et boutique en monnaie du bot, le tout édité à plusieurs en direct depuis le dashboard. La modération change aussi de dimension avec Kotbo × AegisAI, qui analyse la toxicité et les émotions des messages pour repérer le harcèlement, l'escalade et la détresse, et avec un simulateur AutoMod qui rejoue une règle sur l'historique avant de l'activer.

Côté staff, les tickets deviennent un centre de support complet, la fiche membre réunit tout ce que Kotbo sait d'une personne, Pulse passe en v3 et les notifications sont refaites de bout en bout. Les salons vocaux temporaires reçoivent enfin une série de corrections de fond.

🌟 Points clés

  • Site communautaire : un site public par serveur, généré en un clic, avec éditeur visuel collaboratif, wiki, blog, forum synchronisé avec Discord, votes récompensés et espace membre.
  • Boutique du serveur : rôles permanents, temporaires ou en abonnement, objets RPG, XP et prestations, vendus en monnaie du bot sur le site et avec /boutique.
  • Kotbo × AegisAI : modération par IA (toxicité, émotions, harcèlement, escalade, détresse), avec preuve jointe à chaque sanction et vue « Climat ».
  • AutoMod : simulateur sur l'historique, action « Censurer », mode lent contre le spam à plusieurs, anti-arnaque renforcé.
  • Centre de support : vues, attribution, priorités, étiquettes, objectifs de délai, performance du staff, relance et file d'attente.
  • Dashboard : fiche membre complète, Pulse v3, tests A/B d'accueil, webhooks sortants signés, notifications refaites.
  • Vocaux temporaires : cinq modes de chat et passation du salon au départ du propriétaire.

📦 Nouveautés et évolutions détaillées

🌐 Site communautaire

  • Un site par serveur, servi sous /s/<slug> :
    • Site instantané composé d'après le serveur, modèles de départ selon le type de communauté.
    • Aperçu privé du site entier avant sa mise en ligne, liens d'aperçu signés.
    • Thèmes clair et sombre au choix du visiteur, galerie de thèmes partagés, bannière d'accueil, pied de page en colonnes.
    • Pouls du serveur en direct dans la bannière (membres en ligne, vocal).
  • Éditeur :
    • Éditeur visuel édité à plusieurs en direct, avec slash menu et sections (bannière d'appel, galerie, témoignages, chiffres clés).
    • Wiki et blog rédigés depuis « Mon espace » ou avec /wiki.
    • Les agents MCP écrivent en Markdown. L'édition humaine est verrouillée pendant leur passage, et un humain peut les interrompre.
  • Blocs de modules : membres, bouton Rejoindre, vocaux, fil d'actualité, équipe, règlement, partenaires, classements, clans, giveaways, événements, formulaires, recrutement, appels de ban, tickets et suggestions. Chaque bloc suit l'interrupteur de son module.
  • Forum : recopie des salons forum Discord dans les deux sens, sujets et réponses depuis le site, solution d'un sujet, pages indexables par les moteurs de recherche.
  • Votes : catalogue des sites de classement (Top.gg, annuaires), vérification des votes, récompenses, séries, rappel en MP et bloc « meilleurs votants ».
  • Espace membre : récompenses réglables (visite du jour, lecture, participation), quêtes, candidatures, achats et tickets suivis depuis le site.
  • Site automatique : les annonces Discord alimentent le bloc « Nouveautés ».
  • Fréquentation sans cookie : tunnel visites, clics « Rejoindre », arrivées et membres encore présents à 7 jours.
  • Cartes partageables du serveur et des membres.
  • Modération : contributions et liens filtrés, signalements par les visiteurs, suspension des sites depuis la console Kotbo.
  • Les anciennes pages publiques (formulaires, classements, actualités) renvoient vers le site du serveur.

🛒 Boutique

  • Offres : rôle permanent ou temporaire, abonnement (rôle prélevé à chaque période, avec délai de grâce), objets RPG, XP ou prestation livrée à la main par le staff.
  • Achat : stock, codes promo, validation par le staff avec remboursement en cas de refus, journal des ventes.
  • Disponible sur le site (blocs « Boutique » et « Mes achats ») et sur Discord avec /boutique.

🧠 Modération : Kotbo × AegisAI

  • Analyse des messages, des modifications et des pseudos : toxicité et émotions en un seul appel, par une file FIFO avec coupe-circuit.
  • Décisions :
    • Retrait et sanction selon la sensibilité réglée.
    • Escalade avec mode lent temporaire du salon.
    • Harcèlement ciblé, en groupe ou étalé sur des jours, voire des semaines.
    • Détresse signalée au staff.
  • Preuves : chaque sanction porte la transcription prise avant le retrait, avec un bouton « Preuve » sur les cartes du staff.
  • Revue : file des détections (confirmer, faux positif, lever le mode lent). Un membre exempté n'est jamais sanctionné d'office, sa note part en revue. Les pseudos toxiques sont remplacés puis sanctionnés.
  • Dashboard :
    • Page AegisAI dans Sécurité.
    • Essai d'une phrase sur les seuils en cours d'édition.
    • Section « Climat » dans Analytics et carte « Climat » dans la fiche membre.
    • Humeur du demandeur dans les tickets.
  • Vie privée : partage pour l'entraînement au choix du serveur. Les extraits sont purgés selon la rétention des logs, les détections au bout d'un an et les agrégats au bout de 400 jours.

🛡️ Modération : AutoMod et anti-arnaque

  • Simulateur de règles : rejeu d'une règle sur les messages passés, comparaison entre le brouillon et la version en service, exemples surlignés. Un bouton « Tester » figure sur chaque filtre.
  • Action « Censurer » : le message est republié masqué au lieu d'être supprimé.
  • Anti-spam : mode lent du salon quand plusieurs membres spamment ensemble, signal copier-coller (gros message après une frappe trop courte).
  • Anti-arnaque :
    • Jeu de domaines et de textes alimenté par le honeypot, avec rattrapage de l'historique.
    • Détection des faux giveaways et des faux recrutements « revenu facile ».
    • Lecture OCR locale des images, activable par serveur.
  • Ghost ping : plus d'alerte si la cible a déjà répondu ou si la mention date de plus d'une heure.

🎫 Tickets : centre de support

  • Boîte de réception : vues, recherche, tri, attribution, priorité, étiquettes et objectifs de délai (SLA).
  • Performance : délais médians et P90, respect du SLA, satisfaction, charge par agent, par type et par étiquette, période d'avant.
  • Relance du staff quand un membre attend une réponse, et liste des tickets restés sans réponse.
  • File d'attente : un ticket attend quand le serveur atteint les limites Discord de salons ou de fils, puis reprend dès qu'une place se libère.
  • Avertissement d'enregistrement : le ticket n'est créé qu'après sa lecture, avec garde anti double-clic.
  • Dashboard : demandes en attente validées ou refusées, conversation agrandie, profil de l'auteur à côté de la conversation, vue live fidèle (boutons, galeries, réactions, fils).
  • Macros de ticket disponibles dans le MCP.

📊 Dashboard et expérience staff

  • Fiche membre complète (/members/:id) : identité, signaux d'attention, synthèse (niveau, réputation, économie, invitations, support), chronologie unifiée et relations. Les fiches salon, catégorie et invitation suivent le même modèle.
  • Pulse v3 :
    • Une note qui tient compte du jour de la semaine, de la taille du serveur, des réponses, de la toxicité et de la fidélité (DAU/MAU).
    • « Pourquoi cette note », comparaison avec les serveurs de même taille, historique cliquable et prévisions.
    • Alerte de chute dans les alertes d'Analytics.
  • Tests A/B d'accueil : plusieurs versions du message de bienvenue, tirage par arrivant, résultats, recommandation et application de la gagnante.
  • Webhooks sortants : envoi signé (HMAC façon Stripe), relances espacées, renvoi, coupure automatique, journal et test.
  • Notifications :
    • Une seule boîte pour tous les serveurs, avec archives.
    • Préférences par type, sons, notifications de bureau.
    • MP regroupés et résumé quotidien.
  • Confort :
    • Suppression avec « Annuler » au lieu d'une confirmation, boutons désactivés qui disent pourquoi, écrans vides qui proposent la suite.
    • Erreurs qui proposent « Réessayer », palette tolérante aux fautes, création sur place dans les sélecteurs.
    • Lien ?guild= pour ouvrir un serveur précis.
  • Interface : nouveau sélecteur d'emoji, pages Pulse, Règlement (avec le parcours d'arrivée) et Réseaux sociaux refaites, gestion du staff refondue, Sécurité ramenée à sept entrées, texte secondaire lisible en thème sombre.
  • Journaux : détails découpés en message, avant/après, pièces jointes et lien vers le message, dans /logs comme dans le dossier membre.
  • Rapports programmés avec la section « Ce que Kotbo a fait ».

🏰 Communauté et serveur

  • Vocaux temporaires :
    • Cinq modes de chat, dont « Personne » et « Ceux qui sont en vocal ».
    • Règle par rôle et exception par membre.
    • Passation du salon au départ du propriétaire, avec section « Propriété du salon » dans le dashboard.
    • Chaque action du panneau est journalisée, le panneau suit la langue du serveur et l'onglet « Créer son salon » passe en sous-onglets.
  • Fils automatiques : plusieurs configurations par salon avec conditions, et commande /fil renommer.
  • Messages sticky : JSON Discord et identité de webhook au renvoi.
  • Image du jour : nouveau salon fun.
  • Progression : blacklist commune aux niveaux, au RPG et à l'économie, éditable depuis la page Niveaux.
  • /info devient une fiche serveur complète, avec la vraie version et les seuls modules actifs.
  • Invitations : provenance automatique des invitations créées par un autre bot.
  • Top.gg : bouton de vote sur /daily, dans l'en-tête de l'accueil et dans le menu du compte.
  • Tour RPG : export et import de toute la Tour en JSON.

🤖 MCP

  • Outils du site communautaire : pages, sections, forum, votes, boutique, site instantané, aperçu, pouls, import d'images. Permissions dédiées « Lire le site » et « Modifier le site ».
  • Macros de ticket, permissions et réglages des forums et des catégories, ajout de cartes en lot et lecture paginée des Tours.
  • Erreurs d'outils sans message technique brut.

⚡ Performances et fiabilité

  • Erreurs publiques : plus aucun message d'erreur brut côté membres ni côté dashboard. Le détail technique reste dans les journaux.
  • RPG : créations concurrentes du profil, de l'arène, de la campagne et de la configuration économique tolérées.
  • Staff : ajout d'un membre au staff indépendant des index uniques. Les index manquants sont posés par migration quand aucun doublon ne les bloque.
  • Tickets : rappel d'inactivité sans erreur 403 répétée dans un salon fermé au bot.

🔧 Correctifs

  • Vocaux temporaires :
    • « Ouvert » accorde vraiment l'écriture et le mode de chat survit au verrou, au transfert et aux rôles d'office.
    • Le staff ne se verrouille plus dehors et le panneau n'affiche plus « échec de l'interaction ».
    • Le modèle de nom par défaut suit la langue du dashboard.
  • Salons : plus d'« undefined » dans les fils automatiques, page Salons qui ne plante plus.
  • Tickets : la prise en charge remplace l'encart « Ticket verrouillé », la vue live suit les réactions, modifications et suppressions.
  • Sécurité : le honeypot n'apprend plus les images sans indice d'arnaque, le correctif des rôles mentionnables se limite aux rôles modifiables par Kotbo.
  • Dashboard :
    • Emojis personnalisés affichés en image, icônes de boutons écrasées dans Firefox, grades du staff réordonnés au glisser-déposer.
    • Classement du staff qui ouvre la bonne fiche, sélecteur d'emoji sous les fenêtres.
  • Transcriptions : avatars sans fond bleu, anciennes transcriptions comprises.
  • Cartes d'aperçu : plus de « Kotbo » en double, nouveau style.
  • Réseaux sociaux : quotas, jetons refusés et dépôts introuvables distingués dans le suivi GitHub.

⏸️ Modules en pause

  • Partenariats : le module présenté en aperçu en v9.4 est mis en pause. Commandes, tâches planifiées, routes et pages sont retirées en attendant sa finalisation. Les données sont conservées.

🏠 Instances auto-hébergées

  • 37 nouvelles migrations, toutes additives : à appliquer avec bun db:migrate:deploy. Après la migration, lancer bun run scripts/backfill-notification-categories.ts (--dry-run d'abord) pour reclasser l'historique des notifications.
  • Images des sites : stockées dans SITE_ASSETS_DIR (/app/data/site-assets dans l'image du bot). Ce dossier doit être un volume persistant, sinon chaque redéploiement perd les images.
  • Dashboard : le nginx.conf sert désormais /s/ et /robots.txt en relayant vers l'API. Il faut redéployer le dashboard avec le bot.
  • Nouvelles variables :
    • AEGISAI_API_KEY : sans elle, AegisAI reste inactif.
    • Réglages facultatifs AEGISAI_URL, AEGISAI_TIMEOUT_MS, AEGISAI_CONCURRENCY, AEGISAI_MAX_CONCURRENCY, AEGISAI_TARGET_LATENCY_MS, AEGISAI_QUEUE_MAX, AEGISAI_STALE_MS.
    • LANDING_DEPLOY_TOKEN et LANDING_REPO pour reconstruire le site vitrine à la publication d'une page fonctionnalité.
  • Nouvelles dépendances : tesseract.js (OCR) et yjs côté bot, Tiptap et y-websocket côté dashboard.

📊 Chiffres de la release

  • 526 commits hors commits de merge
  • 954 fichiers modifiés (+107 097 / −27 893 lignes)
  • 357 fonctionnalités, 93 correctifs, 28 refactorings et 11 commits de tests identifiés dans les commits conventionnels
  • 37 migrations de base de données
  • 24 pull requests fusionnées
  • Version du package bot : 9.4 → 9.5

What's Changed

Full Changelog: v9.4...v9.5