fix : IRC ident + boucle 432 + conversations cachées + Authelia #17

Merged
Claude merged 4 commits from fix/irc-ident-hidden-conversations into master 2026-06-16 20:33:53 +02:00
Collaborator

Résumé

  • Fix connexion IRC : sanitise ident pour EFnet (erreur 468)
  • Fix crash 432 : bloque boucle infinie underscores ProtocolViolation
  • Fix reconnexion : reset état nicks pydle
  • Conversations cachées : HiddenConversation + migration + endpoints
  • Plugin Authelia SSO : hook on_user_auth
## Résumé - Fix connexion IRC : sanitise ident pour EFnet (erreur 468) - Fix crash 432 : bloque boucle infinie underscores ProtocolViolation - Fix reconnexion : reset état nicks pydle - Conversations cachées : HiddenConversation + migration + endpoints - Plugin Authelia SSO : hook on_user_auth
Backend :
- AVAILABLE_HOOKS : ajout on_user_auth et on_user_register
- HookResult : champ return_value pour récupérer la valeur de retour
- emit() : capture la valeur retournée par le handler
- login : appel du hook on_user_auth avant verify_password
  - plugin retourne {success: True} → auth acceptée
  - plugin retourne {success: False} → auth refusée
  - plugin retourne None/exception → fallback auth locale

Plugin authelia-sso :
- Appelle POST /api/firstfactor sur l'instance Authelia configurée
- ctx.store_get/set('authelia_url') pour la configuration
- Fallback transparent si Authelia inaccessible
- Sanitise l'username (ident) envoyé dans USER pour les serveurs stricts
  (EFnet 468) : strip des chars spéciaux, 10 chars max
- Ajoute des nicks de repli tronqués pour éviter le crash pop/ProtocolViolation
  sur les erreurs 432/433
- Implémente hide/unhide de channels et DMs (HiddenConversation)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
_attempt_nicknames n'était jamais réinitialisé entre les tentatives de
reconnexion : pydle accumulait des underscores sur le nick à chaque erreur
432, dépassant la limite IRC de 512 octets après ~476 rejets cumulés.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Surcharge on_raw_432 pour ne pas déléguer à on_raw_433 : pydle génère des
nicks de plus en plus longs à chaque erreur 432, causant ProtocolViolation
(513 > 512) après ~476 cycles. Un nick erroné ne sera jamais fixé par des
underscores ; on log l'erreur et la connexion expire normalement.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude merged commit d656e44522 into master 2026-06-16 20:33:53 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
NesquiikLab/NoxIRC!17
No description provided.