Update 2.233
8/17/2026
v2.233.0.0BETAMINOR
LuluAug 16, 2026
BYOK AI Assistant: AiAssistant panel connecting the LLM contract (P2B) to UI + full i18n migration + nav wiring
- New module
FFXProjectEditor/Modules/AiAssistant/(5 files): BYOK panel consuming the existingCore/LLM/layer (P2B contract:LlmHttpAdapter+LlmGuard+LlmCredential+ProposalToPlanMapper).AiAssistantSession.cs(key in memory only, Dispose zeroizes, refuses remote host without human confirmation);AiAssistant_DataModel.cs(ObservableObject, Connect/Send/Clear,LlmHistoryEntryaudit without payload, ApiKeyText zeroized via TakeApiKey);AiAssistant_Control.axaml(TextBox with PasswordChar, two-way binding, IRestorableModule);AiAssistantLabels.cs(forward to Strings, RejectReason helper). Security: BYOK in-memory + opt-in + loopback endpoint free, remote requires checkbox; no file writes. - Full i18n migration: 23 labels migrated from AiAssistantLabels (raw EN) →
Strings.resx(EN) +Strings.pt.resx(PT-BR) +Strings.cs(propsAiAssistant_*). Gate:StringsIntegrityTests3/3 PASS. - Catalog/nav:
ai-assistantentry inModuleRegistry(official, Live cluster, RequiresProject: false) + module strings. TheMenuItem_AiAssistanthandler +Dispatchcase inMain_Windoware ready in the worktree but out of this commit:Main_Window.axaml.csis interleaved with ~33 uncommitted i18n changes from another lane in the same file — coordinated commit when the i18n baseline lands. - Absorbed theory doc:
docs/ai/BOT_MAECHEN_EDITOR_ABSORBED_2026-08-16.md(verified against real Core/LLM code). - Gates: build 0 errors;
StringsIntegrityTests3/3 PASS. Suite: 424/432 (8 pre-existing failures: 7 PtStrings mojibake + 1 MagicDll — none from this lane). Honesty: adapter expects PatchProposal JSON endpoint (raw chat API → MalformedPayload); end-to-end needs gateway/template from recipe expansion (next MINOR).
v2.232.1.0
v2.233.1.0BETAPATCH
SeymourAug 17, 2026
Aurora EditViewer restored: actor-overlay bug fixed (mis-nested installKeyboard broke boot → loadAnchors never ran) + markers made visible
- Root cause (via Chrome DevTools console):
installKeyboardwas nested insidetogglePickinRuntimeTools/FFXMapViewerWeb/aurora-overlay.js— never exposed at global scope, sobuildPanel()threwReferenceError: installKeyboard is not defined→ interruptedboot()→loadAnchorsnever ran → the EditViewer opened the map with no anchor markers at all (no monster/party/camera spheres or pins; inert editing UI). Fixed by movinginstallKeyboardto global scope (dated comment in code). - Actor visibility: anchor markers were effectively invisible (radius-
0.7sphere in an ~80-unit map with camera at distance ~88 ≈ 1px). Raised to4.0+ added a vertical cone pin per anchor (role color) so actors are unmistakable on the canvas; the pin follows the sphere on drag (3 points). - Dual validation (Chrome via DevTools + internal WebView2): panel now shows "8 âncora(s) · 5 monstro(s) · battle bika02_00"; Luna confirmed gold/orange (monsters) + blue/cyan (party) markers on the canvas on both targets.
- Honest limit (separate lane-HD front): the monster HD models (
/work/phyre_chr_anim/models/mNNN/mNNN_animated.gltf) do not exist on disk →loadMonsterfalls back to the orange degraded sphere with reason (404). Thephyre_chr_animpipeline remains empty (documented as broken inModuleCatalogPolicy). Markers now serve as the editable placeholder until lane HD re-exports the glTFs. - Gates:
node --checkOK; editor build ok. No RT2 test (bug was purely in the web overlay UI). ### MINOR
v2.233.0.0