Mise à jour 2.233
17/08/2026
v2.233.0.0BETAMINOR
Lulu16 août 2026
Assistant AI BYOK : panneau AiAssistant connectant le contrat LLM (P2B) à l'UI + migration i18n complète + câblage de nav
- Nouveau module
FFXProjectEditor/Modules/AiAssistant/(5 fichiers) : panneau BYOK consommant la coucheCore/LLM/existante (contrat P2B :LlmHttpAdapter+LlmGuard+LlmCredential+ProposalToPlanMapper).AiAssistantSession.cs(clé en mémoire seulement, Dispose zéroise, refuse un hôte distant sans confirmation humaine) ;AiAssistant_DataModel.cs(ObservableObject, Connect/Send/Clear, auditLlmHistoryEntrysans payload, ApiKeyText zéroisé via TakeApiKey) ;AiAssistant_Control.axaml(TextBox avec PasswordChar, liaison two-way, IRestorableModule) ;AiAssistantLabels.cs(renvoi vers Strings, helper RejectReason). Sécurité : BYOK en mémoire + opt-in + endpoint loopback libre, distant exige une case à cocher ; aucune écriture de fichier. - Migration i18n complète : 23 labels migrés de AiAssistantLabels (EN brut) →
Strings.resx(EN) +Strings.pt.resx(PT-BR) +Strings.cs(propsAiAssistant_*). Porte :StringsIntegrityTests3/3 PASS. - Catalogue/nav : entrée
ai-assistantdansModuleRegistry(officielle, cluster Live, RequiresProject : false) + chaînes de module. Le handlerMenuItem_AiAssistant+ le casDispatchdansMain_Windowsont prêts dans le worktree mais hors de ce commit :Main_Window.axaml.csest entrelacé avec ~33 changements i18n non commités d'une autre voie dans le même fichier — commit coordonné quand la baseline i18n atterrit. - Doc de théorie absorbée :
docs/ai/BOT_MAECHEN_EDITOR_ABSORBED_2026-08-16.md(vérifié contre le vrai code Core/LLM). - Portes : build 0 erreurs ;
StringsIntegrityTests3/3 PASS. Suite : 424/432 (8 échecs préexistants : 7 PtStrings mojibake + 1 MagicDll — aucun de cette voie). Honnêteté : l'adaptateur attend un endpoint JSON PatchProposal (API de chat brut → MalformedPayload) ; le bout en bout exige une passerelle/modèle de l'expansion de recettes (prochain MINOR).
v2.232.1.0
v2.233.1.0BETAPATCH
Seymour17 août 2026
EditViewer Aurora restauré : bug d'overlay d'acteurs corrigé (installKeyboard mal imbriqué cassait le boot → loadAnchors ne tournait jamais) + marqueurs rendus visibles
- Cause racine (via console Chrome DevTools) :
installKeyboardétait imbriqué danstogglePickdansRuntimeTools/FFXMapViewerWeb/aurora-overlay.js— jamais exposé au scope global, doncbuildPanel()lançaitReferenceError: installKeyboard is not defined→ interrompaitboot()→loadAnchorsne tournait jamais → l'EditViewer ouvrait la carte sans AUCUN marqueur d'ancre (pas de sphères/pins monstre/party/caméra ; UI d'édition inerte). Corrigé en déplaçantinstallKeyboardau scope global (commentaire daté dans le code). - Visibilité des acteurs : les marqueurs d'ancre étaient effectivement invisibles (sphère de rayon-
0.7dans une carte de ~80 unités avec une caméra à ~88 ≈ 1px). Élevé à4.0+ ajouté un pin conique vertical par ancre (couleur de rôle) pour que les acteurs soient indubitables sur le canvas ; le pin suit la sphère au drag (3 points). - Double validation (Chrome via DevTools + WebView2 interne) : le panneau montre désormais « 8 ancre(s) · 5 monstre(s) · battle bika02_00 » ; Luna a confirmé les marqueurs or/orange (monstres) + bleu/cyan (party) sur le canvas sur les deux cibles.
- Limite honnête (front séparé voie-HD) : les modèles HD de monstres (
/work/phyre_chr_anim/models/mNNN/mNNN_animated.gltf) n'existent pas sur disque →loadMonsterretombe sur la sphère orange dégradée avec raison (404). Le pipelinephyre_chr_animreste vide (documenté comme cassé dansModuleCatalogPolicy). Les marqueurs servent de placeholder éditable jusqu'à ce que la voie HD ré-exporte les glTF. - Portes :
node --checkOK ; build éditeur ok. Pas de test RT2 (le bug était purement dans l'UI de l'overlay web). ### MINOR
v2.233.0.0