v0.9.0 — Architecture : modular, typed, cached, i18n
🏗️ Refactoring structurel
Suite de l'audit v0.8.0 — 6 pistes d'amélioration architecturales, zéro nouvelle feature.
Ce qui a changé
| Piste | Résultat |
|---|---|
| 3. Easter eggs → module | 30 eggs + menu + drawing extraits dans `easter_eggs.py` (1535 lignes). `app.py` passe de 6800 à 5360 lignes. |
| 1. Type hints | `CatInstance` + `CatAIApp` init et méthodes publiques annotées. `from future import annotations`. |
| 7. Config validation | `config_schema.py` — schema pour les 18 clés de config avec defaults/clamp/validation. |
| 6. gettext i18n | 23 clés FR/EN/ES migrées vers des catalogues gettext .po/.mo. L10n backward-compat préservé. |
| 5. Sprite cache | `@lru_cache` sur load_sprite + surface cache. Sprites partagés chargés 1× au lieu de N×. |
| 2. Tests | 48 nouvelles assertions. 401 passed / 0 failed (up from 353). |
Piste 4 (async I/O) reportée — risque/effort disproportionné avec le MainLoop GTK4.
L'auto-update va attraper cette version au prochain lancement.
🤖 Generated with Claude Code