Commit Graph
147 Commits
Author SHA1 Message Date
OpenCode e5c14a9304 Merge pull request 'refactor(config): migrer RSS et Pronote vers l'endpoint commun et durcir le contrat' (#64) from refactor/issue-16-endpoints-rss-pronote into main 2026-09-13 16:40:14 +02:00
OpenCode 5a3e251ad6 fix(config): valider l'alias CalDAV legacy et retirer file:// de fetch_ical
Supprime le contournement model_construct : l'alias CALDAV_URL est désormais validé comme le champ canonique (userinfo, host et port rejetés). Retire le support file:// de fetch_ical et corrige l'exemple résiduel du guide. Ajoute les tests négatifs de l'alias legacy et adapte le test de sécurité CalDAV au contrat durci.

Refs #63
2026-09-13 15:46:07 +02:00
OpenCode c89113ba36 docs: aligner la documentation sur le contrat ExternalEndpoint
Documente le schéma *_ENDPOINT__URL unique, le statut déprécié des anciens noms et le refus de file:// et des credentials embarqués dans README.LLM.md, .env.example, GUIDE_DEV_PYTHON.md et docs/pronote-auth.md.

Refs #63
2026-09-13 15:33:29 +02:00
OpenCode 177286b528 fix(config): refuser file:// et userinfo dans le contrat d'endpoint
Retire le schéma file du contrat ExternalEndpoint (CalDAV, Pronote iCal, Blog RSS) : seuls https et le loopback http CalDAV explicite restent acceptés. Rejette les URLs contenant userinfo. Ajoute hide_input_in_errors aux Settings. Réécrit les fixtures file:// en https mocké et ajoute une matrice de tests paramétrée du contrat.

Refs #63
2026-09-13 15:30:00 +02:00
Codex d1371cabbb refactor(config): migrer les endpoints Pronote
Co-authored-by: Codex <codex@antoineve.me>
2026-09-13 12:44:03 +02:00
Codex c02f46245f refactor(config): migrer le flux RSS vers l'endpoint commun
Co-authored-by: Codex <codex@antoineve.me>
2026-09-13 12:44:03 +02:00
Codex 97a14d9543 fix(security): détecter les PIN dans les URL 2026-09-13 12:13:14 +02:00
Codex 5dc0907ad4 fix(security): détecter les PIN dans les URL 2026-09-13 12:12:50 +02:00
Codex c8c282bf75 refactor(config): migrer CalDAV vers l'endpoint commun 2026-09-13 12:10:41 +02:00
Codex 93f66d6aca refactor(config): introduire l'endpoint CalDAV commun
Co-authored-by: Codex <codex@antoineve.me>
2026-09-13 11:50:20 +02:00
OpenCode 6609d5c4ca Merge pull request #54 from fix/issue-50-exception-context 2026-09-13 09:55:04 +02:00
OpenCode 839fdd202a Merge pull request #53 from fix/issue-48-pin-secret-scan 2026-09-13 09:54:58 +02:00
Codex eef81ea323 fix(docs): corriger le répertoire de clonage
Closes #56

Co-authored-by: Codex <codex@antoineve.me>
2026-09-13 00:25:28 +02:00
Codex a21acaa409 docs(packaging): aligner les métadonnées du projet
Closes #18

Co-authored-by: Codex <codex@antoineve.me>
2026-09-13 00:24:10 +02:00
Codex dee5fe8eff fix(security): neutraliser le contexte des erreurs expurgées 2026-09-13 00:21:41 +02:00
Codex 7387f9a78d fix(security): limiter PIN aux affectations 2026-09-13 00:17:07 +02:00
Codex 894f5d137a fix(security): détecter les PIN Pronote littéraux 2026-09-13 00:16:25 +02:00
Codex f261fed1af fix(blog): confirmer l'état mémoire après sauvegarde
Closes #49

Co-authored-by: Codex <codex@antoineve.me>
2026-09-13 00:15:07 +02:00
Codex e6f0659cbf fix(caldav): ignorer les événements gérés sans UID
Closes #47

Co-authored-by: Codex <codex@antoineve.me>
2026-09-13 00:13:29 +02:00
OpenCode 50c3696b06 Merge pull request 'fix(security) : ignorer les placeholders URL documentaires' (#36) from fix/issue-34-secret-placeholder into main 2026-09-12 23:58:01 +02:00
OpenCode c0a1c5ca62 Merge pull request 'feat(auth) : prendre en charge le PIN de compte Pronote' (#37) from feat/issue-8-account-pin into main 2026-09-12 23:57:48 +02:00
OpenCode 52c791695c Merge remote-tracking branch 'origin/main' into feat/issue-8-account-pin
# Conflicts:
#	docs/exploitation.md
2026-09-12 23:57:06 +02:00
OpenCode 9433a69d70 Merge pull request 'fix(blog) : acquitter les GUID après livraison XMPP' (#39) from fix/issue-12-blog-delivery into main 2026-09-12 23:54:12 +02:00
OpenCode 4f95ca9256 Merge pull request 'fix(cli) : rendre les exécutions dégradées observables' (#40) from fix/issue-13-observable-status into main 2026-09-12 23:53:58 +02:00
OpenCode 81ff7238dd Merge pull request 'fix(caldav) : rendre les devoirs transparents' (#41) from fix/issue-11-caldav-homework into main 2026-09-12 23:53:44 +02:00
Codex c47325ef14 fix(security): durcir les placeholders URL documentaires 2026-09-12 22:25:29 +02:00
Codex fba5a060df fix(auth): corriger les retours de revue du PIN Pronote 2026-09-12 22:20:09 +02:00
OpenCode 1f03b114a9 Merge pull request 'docs(auth): rendre la référence Pronote vérifiable' (#45) from docs/issue-10-pronote-auth-reference into main 2026-09-12 21:18:05 +02:00
OpenCode 4c6b8dbee8 Merge remote-tracking branch 'origin/main' into docs/issue-10-pronote-auth-reference 2026-09-12 21:17:35 +02:00
OpenCode 423a32f220 docs(pronote-auth): reconstruire le source LaTeX et régénérer le PDF
Les fichiers de chapitres référencés par docs/pronote-auth.tex (preamble, frontmatter, ch-*, annex-*) n'avaient jamais été committés, rendant le PDF non reproductible. Reconstitution fidèle depuis docs/pronote-auth.md, correction des instructions de compilation (TEXINPUTS + -output-directory), ajout de l'Annexe C, du Glossaire et de l'Historique des révisions, PDF régénéré (27 pages).
2026-09-12 21:17:23 +02:00
OpenCode 79ef5434ee Merge pull request 'refactor(ia): unifier le contrat AI_BASE_URL entre les providers' (#43) from refactor/issue-17-ai-base-url into main 2026-09-12 20:00:41 +02:00
OpenCode d5e4964887 Merge remote-tracking branch 'origin/main' into refactor/issue-17-ai-base-url
# Conflicts:
#	.secrets.baseline
2026-09-12 19:58:13 +02:00
OpenCode 35e93cc993 Merge pull request 'fix(pronote): ignorer les informations en mode qr_token' (#44) from fix/issue-21-qr-token-informations into main 2026-09-12 19:21:25 +02:00
OpenCode 9cd3918291 Merge pull request 'fix(config): refuser les fenêtres de synchronisation négatives' (#42) from fix/issue-14-negative-sync-window into main 2026-09-12 19:21:08 +02:00
OpenCode f421a386f5 refactor(ia): unifier le contrat AI_BASE_URL entre les providers
Applique une validation structurelle partagée (https, absence de credentials et de paramètres sensibles, aucun ajout /v1) aux providers openai, litellm et openai-compatible ; homogénéise les warnings expurgés et durcit le parsing pour que la factory ne lève jamais.

Refs #17
2026-09-12 19:20:03 +02:00
OpenCode 79858a0849 fix(pronote): ignorer les informations en mode qr_token
En mode qr_token, get_informations() retourne [] sans connexion ni verrou, ce qui évite l'échec systématique de PageActualites (erreur pronotepy 20) et le refresh redondant du token sur les instances HubEduConnect.

Refs #21
Refs #20
2026-09-12 19:20:03 +02:00
OpenCode 8efac8645b docs(auth): rendre la référence Pronote vérifiable
Qualifie sources et hypothèses (pronotepy 2.15.7, 2026-09-12), corrige le nombre d'ENT, exclut CAS/SAML/EduConnect générique, aligne la procédure QR sur .env.example et supprime les exemples copiables.

Refs #10
2026-09-12 19:18:28 +02:00
OpenCode 8c6a0e3f29 fix(config): refuser les fenêtres de synchronisation négatives
Contraint SYNC_PAST_DAYS et SYNC_FUTURE_DAYS à ge=0 et documente l'effet réel de 0 jour (le jour courant reste inclus).

Refs #14
2026-09-12 19:18:27 +02:00
Codex 4ad62ad50f Merge branch 'main' into feat/issue-8-account-pin
# Conflicts:
#	docs/exploitation.md
2026-09-12 18:11:57 +02:00
Codex 6575a5f60b fix(caldav): rendre les devoirs transparents 2026-09-12 15:43:12 +02:00
Codex 5bd97402bf fix(cli): exposer les executions degradees 2026-09-12 15:37:11 +02:00
Codex 75dd78ee1e fix(blog): acquitter les GUID apres livraison XMPP 2026-09-12 15:33:59 +02:00
Codex 6bb8ad1ed1 docs(deploiement) : imposer les permissions de la configuration
Aligne la documentation d'exploitation et le wiki sur les permissions protegees des secrets et de l'etat d'authentification.

Co-authored-by: Codex <codex@antoineve.me>
2026-09-12 15:26:57 +02:00
Codex 2d55ac8d2b feat(auth): prendre en charge le PIN de compte Pronote 2026-09-12 15:18:00 +02:00
Codex 0ff6e687b6 fix(security): ignorer les placeholders URL documentaires 2026-09-12 15:17:54 +02:00
Codex 573705a3d0 chore(integration): intégrer les PR Pronote critiques dans main
Revue Codex validée. Intégration dans main de la chaîne des PR #31, #32 et #33.

Co-authored-by: Codex <codex@antoineve.me>
Co-committed-by: Codex <codex@antoineve.me>
2026-09-12 15:00:32 +02:00
Codex d45d38d365 fix(ical): fiabiliser le parsing Pronote 2026
Revue Codex validée. Corrections de parsing iCal, conservation du contexte des devoirs et fixtures anonymisées.

Co-authored-by: Codex <codex@antoineve.me>
Co-committed-by: Codex <codex@antoineve.me>
2026-09-12 14:54:55 +02:00
AntoineVe f194ed985d fix(xmpp): corriger le timeout XMPP — TLS mode + timeouts de connexion/cleanup (#25) (#26) 2026-09-11 17:25:21 +02:00
AntoineVe d124f78b55 fix(dry-run) : garantir une simulation sans persistance (#24) 2026-09-11 12:00:40 +02:00
Codex 0dd4ee68c1 docs: define strict dry-run contract
# Conflicts:
#	.secrets.baseline
2026-09-11 11:57:21 +02:00