Remplace l'architecture 'une fenêtre = un processus' par une fenêtre
unique (racine Tk sur le thread principal) avec trois onglets:
- Profils : liste + éditeur intégré (ex-ProfileDialog)
- Authentification : gestion des clés API (ex-AuthDialog)
- Logs : journaux temps réel (ex-LogsWindow, désormais dans le
même processus que le moteur, donc réellement alimenté)
Fermer la fenêtre (WM_DELETE_WINDOW -> withdraw) la masque en zone de
notification sans quitter. L'icône pystray (thread dédié) réaffiche la
fenêtre dans le bon onglet via master.after(0, ...); la commutation de
profil reste directe depuis le sous-menu radio (sans afficher la fenêtre).
Supprime _tk_spawn/_tk_window_process et les trois anciens dialogues.
- 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).