Correctif du job CI mypy (3 erreurs, 2 fichiers). Ne ferme aucune issue. Merge et release en attente du go de Bruno.
Mypy
backend/coffre_crypto.py:34 [misc] : AESGCM annote explicitement type[Any] | None avant le try/except cryptography, et le type: ignore[assignment] non couvert est supprime. _require_aesgcm() retourne desormais la classe (narrowing), encrypt/decrypt l'appellent via cette fonction au lieu d'un AESGCM possiblement None.
backend/coffre_store.py:325 [assignment] + [arg-type] : cause racine = le dict coffre inferait ses valeurs en str | None (dek_chiffree: None). Corrige a la source : coffre: dict[str, Any] = { ... }, sans renommage ni ignore.
Les notes 'untyped functions are not checked' (sse, watcher, admin, auth/router, bookslm_routes) ne sont pas des erreurs et ne sont pas touchees. Aucune config mypy/ruff ni ci.yml touchee.
Version 2.80.2 (meme branche)
Bump synchronise facon scripts/bump_version.py : VERSION, package.json, desktop Tauri/Cargo, README, ROADMAP, CHANGELOG (section [2.80.2] - 2026-10-27, sections [2.80.1] et [2.79.0] inchangees), pour que la future release v2.80.2 corresponde a la version affichee (lecon de la 2.80.0).
Verifie / non verifie
Verifie en local : mypy sur les 2 fichiers = 0 erreur, ruff = OK avec la config du depot, py_compile OK, roundtrip chiffrement OK, 11/11 fichiers re-telecharges depuis la branche identiques.
Non verifie : mypy sur les 124 fichiers du job CI (la CI de cette PR reste le verificateur complet), tests frontend, pytest, job security (echec en 1 s precedemment, hors perimetre ici).
Apres merge seulement : release v2.80.2.
Correctif du job CI mypy (3 erreurs, 2 fichiers). Ne ferme aucune issue. Merge et release en attente du go de Bruno.
## Mypy
- backend/coffre_crypto.py:34 [misc] : AESGCM annote explicitement `type[Any] | None` avant le try/except cryptography, et le `type: ignore[assignment]` non couvert est supprime. _require_aesgcm() retourne desormais la classe (narrowing), encrypt/decrypt l'appellent via cette fonction au lieu d'un AESGCM possiblement None.
- backend/coffre_store.py:325 [assignment] + [arg-type] : cause racine = le dict coffre inferait ses valeurs en str | None (dek_chiffree: None). Corrige a la source : `coffre: dict[str, Any] = { ... }`, sans renommage ni ignore.
- Les notes 'untyped functions are not checked' (sse, watcher, admin, auth/router, bookslm_routes) ne sont pas des erreurs et ne sont pas touchees. Aucune config mypy/ruff ni ci.yml touchee.
## Version 2.80.2 (meme branche)
Bump synchronise facon scripts/bump_version.py : VERSION, package.json, desktop Tauri/Cargo, README, ROADMAP, CHANGELOG (section [2.80.2] - 2026-10-27, sections [2.80.1] et [2.79.0] inchangees), pour que la future release v2.80.2 corresponde a la version affichee (lecon de la 2.80.0).
## Verifie / non verifie
- Verifie en local : mypy sur les 2 fichiers = 0 erreur, ruff = OK avec la config du depot, py_compile OK, roundtrip chiffrement OK, 11/11 fichiers re-telecharges depuis la branche identiques.
- Non verifie : mypy sur les 124 fichiers du job CI (la CI de cette PR reste le verificateur complet), tests frontend, pytest, job security (echec en 1 s precedemment, hors perimetre ici).
- Apres merge seulement : release v2.80.2.
Elargissement du périmètre (sans merge, en attente du go) :
Bouton « Nouveau secret » inopérant, reproduit via la console de Bruno : NotFoundError sur wrap.insertBefore(input, eyeBtn) dans valeurField (coffres.js:287). Cause : le bouton œil n'était jamais rattaché à wrap, donc insertBefore levait à la première ouverture et la modale ne s'ouvrait jamais (même bug pour la modale de rotation, qui utilise le même champ). Correctif : wrap.appendChild(eyeBtn) avant le premier build.
CI security (pip-audit, bloquant) : plancher msgpack>=1.2.3 ajouté à backend/requirements.txt (msgpack transitif 1.2.1 signalé pour CVE-2026-114613, correctif 1.2.3), dans le style des autres planchers du fichier.
CHANGELOG 2.80.2 mis à jour en conséquence. La version reste 2.80.2 : la future release v2.80.2 correspondra toujours à la version affichée.
Elargissement du périmètre (sans merge, en attente du go) :
- Bouton « Nouveau secret » inopérant, reproduit via la console de Bruno : `NotFoundError` sur `wrap.insertBefore(input, eyeBtn)` dans `valeurField` (coffres.js:287). Cause : le bouton œil n'était jamais rattaché à `wrap`, donc `insertBefore` levait à la première ouverture et la modale ne s'ouvrait jamais (même bug pour la modale de rotation, qui utilise le même champ). Correctif : `wrap.appendChild(eyeBtn)` avant le premier `build`.
- CI security (pip-audit, bloquant) : plancher `msgpack>=1.2.3` ajouté à `backend/requirements.txt` (msgpack transitif 1.2.1 signalé pour CVE-2026-114613, correctif 1.2.3), dans le style des autres planchers du fichier.
CHANGELOG 2.80.2 mis à jour en conséquence. La version reste 2.80.2 : la future release v2.80.2 correspondra toujours à la version affichée.
bruno
merged commit c01c7e862d into main2026-10-27 23:24:45 -04:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Correctif du job CI mypy (3 erreurs, 2 fichiers). Ne ferme aucune issue. Merge et release en attente du go de Bruno.
Mypy
type[Any] | Noneavant le try/except cryptography, et letype: ignore[assignment]non couvert est supprime. _require_aesgcm() retourne desormais la classe (narrowing), encrypt/decrypt l'appellent via cette fonction au lieu d'un AESGCM possiblement None.coffre: dict[str, Any] = { ... }, sans renommage ni ignore.Version 2.80.2 (meme branche)
Bump synchronise facon scripts/bump_version.py : VERSION, package.json, desktop Tauri/Cargo, README, ROADMAP, CHANGELOG (section [2.80.2] - 2026-10-27, sections [2.80.1] et [2.79.0] inchangees), pour que la future release v2.80.2 corresponde a la version affichee (lecon de la 2.80.0).
Verifie / non verifie
Elargissement du périmètre (sans merge, en attente du go) :
NotFoundErrorsurwrap.insertBefore(input, eyeBtn)dansvaleurField(coffres.js:287). Cause : le bouton œil n'était jamais rattaché àwrap, doncinsertBeforelevait à la première ouverture et la modale ne s'ouvrait jamais (même bug pour la modale de rotation, qui utilise le même champ). Correctif :wrap.appendChild(eyeBtn)avant le premierbuild.msgpack>=1.2.3ajouté àbackend/requirements.txt(msgpack transitif 1.2.1 signalé pour CVE-2026-114613, correctif 1.2.3), dans le style des autres planchers du fichier.CHANGELOG 2.80.2 mis à jour en conséquence. La version reste 2.80.2 : la future release v2.80.2 correspondra toujours à la version affichée.