Eisblau auf kaltem Weiß (hell) bzw. Winternacht (dunkel), verschneite
Berg- und Waldgrafik hinter Kopfleiste und Menü. Schneefall im Canvas
(SnowWeather) sammelt sich am unteren Rand, alle 4 Minuten räumt ein
Pflug in ICON-Gold. Canvas liegt mit z-[45] unter den Dialogen (z-50).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Einstellungen -> KI: statt freiem Modellnamen ein Dropdown mit den
Chat-Modellen, die der hinterlegte OpenAI-Schluessel nutzen darf.
- Backend: listAiModels() fragt OpenAI GET /v1/models, filtert auf
Chat-Modelle (gpt-*, o*, chatgpt-*; ohne Embedding/Audio/Bild/Instruct
usw.), neueste zuerst, 10 min im Speicher (Schluesselwechsel laedt neu)
- Neuer Endpunkt GET /api/ai/models (admin)
- Frontend: aktives Modell bleibt waehlbar, auch wenn nicht mehr gelistet;
Rueckfall auf Textfeld, wenn die Liste nicht abrufbar ist
- Doku: 05-ki (Modellauswahl mit Ablaufdiagramm), 10-api, 08-anleitung
Zieht ausserdem den bereits live laufenden, bisher nicht eingecheckten
Stand nach (perinco-Kontaktabgleich/MergeDialog, Projektmargen,
Whisper-Anpassungen u. a.). Repo entspricht damit icrm.icon-experts.de.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>