Atualização 2.18
06/06/2026
v2.18.0BETA
Seymour
MODEL VIEWER (HD) no editor: uma galeria 3D dos 816 modelos texturizados+animados
- A reviravolta ("isto vai ter que rodar dentro do editor") virou funcionalidade: um novo botão "Model Viewer (HD) 🐉" no card Extras → abre
RuntimeTools/FFXModelViewerWeb(three.js + GLTFLoader) servido via loopback HTTP (a mesma receita COMPROVADA do Magic Viewer/Aurora —python -m http.server, porta distinta 8767; HTTP é obrigatório para ofetch()do catálogo + GLTFLoader de/work/...). O viewer é uma galeria animada: um catálogo unificado de 816 modelos (modelviewer-catalog.json, gerado a partir da base da lane HD — pc/sum/npc/mon/obj/wep), filtragem por categoria + veredito + busca, miniaturas e reprodução de clipes de animação (AnimationMixer + seletor de clipes) + orbit/grid/wire/spin/fit. Ele consome exatamente os glTFs preparados na saga HD (META 1 + HD puro) — sem refazer o processamento.ModelViewerLauncher.cs(clone deMagicViewerLauncher) + um botão emMain_Window.axaml/handler. Compilação com 0 erros; serviço comprovado (catalog/index/gltf = 200). incremento do csproj (funcionalidade real de UI). Fase 2 em fila (decisão do dono): hospedar o mesmo viewer em um painel WebView do editor (sem navegador) — exige um nuget; o mecanismo three.js é independente do host. Documento:FFX_MODELVIEWER_EDITOR_2026-06-06.md
v2.17.0
v2.18.1BETA
Seymour
self-audit: 6 dos bugs MY OWN (Jarvis) corrigidos (encontrados numa review adversarial de 2 chats, cada achado verificado por um 2º agente):
- Ps3MagicBrowser: a primeira textura de cada pasta decodificava SYNCHRONOUSLY na thread UI (o freeze que I alegava ter removido) e decodificava de novo no background — agora row[0] fica para o pass de background,
DecodeRowspula linhas already-decoded (sem double-decode), edecodeGenerationagora évolatile(visibilidade worker↔UI). - Monster AI Editor: editar o hex (
AiEditRow) ou opcode/operando no Assembler AI (AiAsmRow) não atualizava o significado on-screen —AiEditRowagora levantaOnPropertyChanged(Meaning)nos setters de comando hex AND;AiAsmRowvirouObservableObjecte notifica Meaning/Label/HasOperand. - OpcodeHelp: tooltips de opcode errados (
StartsWith("PUSHFF")nunca casava;PUSHFfloat-const caía no help register-bank) — reescrito para despachar emOperandKindOf(o kind PROVEN), não prefixos frágeis de mnemônico. - MagicViewerLauncher: a CAUSA RAIZ da mensagem "Waiting for catalog" — abria o navegador e retornava "success" mesmo quando o python nunca iniciava; agora
EnsureViewerServerretorna um bool, a sondagem é ~6s (inicialização a frio), status honesto em caso de falha, invalidação de cache na URL (stub obsoleto), e encerra o python em ProcessExit (sem processo vazando). (Correções somente nos meus arquivos. Os achados do outro chat foram paradocs/ai/HANDOFF_CODE_AUDIT_HD_MODELS_2026-06-06.mdpara que ELES verifiquem e corrijam — EU não toquei na lane deles.) sem incremento do csproj.