- Ajoute _present_window() (deiconify/lift/topmost/focus_force) pour que
les Toplevel enfants d'une racine withdraw() apparaissent bien au
premier plan sous Windows (logs, profil, ajout, authentification).
- Rend le sous-menu des profils dynamique via un générateur avec items
radio + checked=, et appelle icon.update_menu() après changement de
profil pour que la coche suive l'état courant.
- Rollback gestion d'équations : écriture littérale caractère par caractère
(suppression de math_format.py et de la normalisation Unicode).
- Nouveau profil par défaut 'Mathématiques (LaTeX)' : le modèle émet du
LaTeX encadré [EQ]...[/EQ], intercepté par KeyStepper qui déclenche
Alt+= en début d'équation et -> en fin.
- Config multi-profils dans %APPDATA%/ai-typewriter/config.json
(ConfigStore + profils par défaut auto-créés).
- Icône de zone de notification (pystray) : Ouvrir les logs (temps réel),
Ajouter/Modifier un profil, Gérer l'authentification, Quitter.
- Sélecteur de modèles : modèles locaux Ollama + recherche/téléchargement
depuis la bibliothèque publique ; fournisseurs tiers (OpenAI, OpenRouter,
Gemini, custom).
- Clés d'API stockées de façon sécurisée dans le Gestionnaire d'identifiants
Windows via keyring (jamais en clair dans config.json).
- Tests : 44 tests verts (stepper, profils, clients IA, credentials,
catalogue de modèles, moteur).