Compare commits
base: AntoineVe:main
AntoineVe:main
AntoineVe:fix/xmpp-tls-timeout-25
AntoineVe:fix/dry-run-source-state
AntoineVe:fix/qr-token-lock
AntoineVe:feat/qr-token-auth
AntoineVe:docs/fix-env-example-and-guide-pronote
AntoineVe:fix/pronote-url-env-mapping
AntoineVe:docs/agents-versioning-rules
AntoineVe:fix/pronotepy-ent-optional
AntoineVe:docs/guide-vacances-scolaires
AntoineVe:feature/m15-documentation
AntoineVe:fixme-m14
AntoineVe:feature/m14-deployment
AntoineVe:feature/m13-tests-coverage
AntoineVe:fixme-m12
AntoineVe:feature/m12-cli-entrypoint
AntoineVe:fixme/m11
AntoineVe:feature/xmpp-channel
AntoineVe:fix/m10-fixme
AntoineVe:feat/m9-custom-endpoint
AntoineVe:fix/m9-fixme
AntoineVe:feature/m9-synthesis-ia
AntoineVe:fix/m8-fixme
AntoineVe:feature/m8-agenda-diff
AntoineVe:feature/m7-caldav-sync
AntoineVe:fix/m6-theoretical-corrections
AntoineVe:feature/m6-theoretical-agenda
AntoineVe:feature/m5-blog-rss
AntoineVe:fix/m5-blog-rss-corrections
AntoineVe:fix/m4-strict-explicit-source-modes
AntoineVe:fix/m4-fixme
AntoineVe:feature/m4-sources-pronote
AntoineVe:fix/m1-scaffolding-fixme
AntoineVe:prep/scaffold
..
compare: AntoineVe:fix/xmpp-tls-timeout-25
AntoineVe:main
AntoineVe:fix/xmpp-tls-timeout-25
AntoineVe:fix/dry-run-source-state
AntoineVe:fix/qr-token-lock
AntoineVe:feat/qr-token-auth
AntoineVe:docs/fix-env-example-and-guide-pronote
AntoineVe:fix/pronote-url-env-mapping
AntoineVe:docs/agents-versioning-rules
AntoineVe:fix/pronotepy-ent-optional
AntoineVe:docs/guide-vacances-scolaires
AntoineVe:feature/m15-documentation
AntoineVe:fixme-m14
AntoineVe:feature/m14-deployment
AntoineVe:feature/m13-tests-coverage
AntoineVe:fixme-m12
AntoineVe:feature/m12-cli-entrypoint
AntoineVe:fixme/m11
AntoineVe:feature/xmpp-channel
AntoineVe:fix/m10-fixme
AntoineVe:feat/m9-custom-endpoint
AntoineVe:fix/m9-fixme
AntoineVe:feature/m9-synthesis-ia
AntoineVe:fix/m8-fixme
AntoineVe:feature/m8-agenda-diff
AntoineVe:feature/m7-caldav-sync
AntoineVe:fix/m6-theoretical-corrections
AntoineVe:feature/m6-theoretical-agenda
AntoineVe:feature/m5-blog-rss
AntoineVe:fix/m5-blog-rss-corrections
AntoineVe:fix/m4-strict-explicit-source-modes
AntoineVe:fix/m4-fixme
AntoineVe:feature/m4-sources-pronote
AntoineVe:fix/m1-scaffolding-fixme
AntoineVe:prep/scaffold
1 Commits
main
...
fix/xmpp-t
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
| 2928cca8b9 |
fix(xmpp): remplacer use_tls par tls_mode et borner les phases de connexion
Cause racine (#25) : use_tls=True (défaut) activait le direct TLS sur le port 5222 (conventionnellement STARTTLS). Le client envoyait un ClientHello TLS sur un port attendant un stream XMPP en clair, le serveur ne voyait jamais l'identité configurée, et la session expirait après 30 s. Corrections : - Remplacer use_tls (bool) par tls_mode: Literal[direct|starttls|disabled] (défaut starttls, compatible port 5222). use_tls conservé comme alias déprécié avec DeprecationWarning. - Ajouter connect_timeout (15 s) et cleanup_timeout (10 s) distincts du timeout de session (30 s). - Gérer l'événement connection_failed de Slixmpp pour échouer rapidement au lieu d'attendre le timeout de session. - Borner await connect_future et await disconnect_future par leurs timeouts respectifs (anti-blocage). - Attendre connect_future et session_future conjointement (asyncio.wait, FIRST_COMPLETED) pour détecter connection_failed avant l'expiration du connect_timeout. - Annuler les tâches pending sur tous les chemins de retour, y compris CancelledError et Exception. - Redact tous les redact_exception avec extra_secrets=_secret_values(). - Construire ClientXMPP dans le try (contrat « never raises »). - Enrichir FakeClientXMPP avec modes connect/disconnect configurables. - 25 nouveaux tests (timeout connexion, connection_failed, cleanup bloqué, CancelledError, TLS mismatch, fuite secrets). Couverture 96 %. - Mettre à jour .env.example, GUIDE_DEV_PYTHON.md, README.LLM.md. Co-authored-by: OpenCode <opencode@antoineve.me> |