Atualização 2.220
02/08/2026
v2.220.0.0BETAMINOR
Seymour2 de ago. de 2026
VIEWERHUB F2: viewers Magic/Model/Map migrados para o hub + python retired
- Roteamento por prefixo em
StudioWebServer(MapPrefix): multi-app numa única porta —/= noclip serve-dir,/magic/= RuntimeTools/FFXMagicViewerWeb,/model/= FFXModelViewerWeb,/map/= FFXMapViewerWeb,/work/= repoRoot/work (ativos absolutos glTF do Model Viewer). Prefixo mais longo vence; testePrefixRouting_ServesAppUnderPrefix(9/9). - Novas descs em
ViewerHubService:magic-viewer,model-viewer,model-preview(model-preview.html para a fusão MonEditor/T-pose),map-scene-editor;BuildUrl(descId, extraQuery)com cache-bust para apps web + query (e.g.magic=004C);FindRepoRoot()(assembly walk-up). ViewerShellaceitaextraQuery(MagicDllBrowser?magic=deep-link).- MonEditor migrado: preview de modelo (fusão/T-pose) agora usa o hub (
model-preview+ query id1/id2/label1/label2/tpose/fusion) e oWebView2HostCommon — adeus python launcher 8767. - Aurora migrada:
AuroraViewerWindoweAuroraFieldExplorer_Controlusam oWebView2HostCommon (namespace ModelViewerWeb deletado). - RETIRED (git rm -f):
MagicViewerWeb/(launcher + 3 embeds),ModelViewerWeb/(launcher + 3 embeds + original WebView2Host),MapSceneEditorWeb/(launcher + 3 embeds),MonsterStudioWeb/MonsterStudioLauncher.cs(orphaned browser launcher). Zero python, zero duplicated launcher. - Wiring:
Main_Window—ShowMagicViewer/ModelViewerWeb/ModelViewerEmbedded/MapSceneEditorEmbedded abrem oViewerShell(Embedded 3D Viewer); cases legados ainda funcionam. - Gate: build 0 erros; testes 9/9 PASS; smoke do editor (Extras → Magic Viewer / Model Viewer / Map Scene Editor — todos no shell, porta única 8769, prefixos).
v2.219.2.3
v2.220.0.1BETAPATCH
Seymour2 de ago. de 2026
i18n: cobertura latina final ~78-83% (dict PT→ES 520 termos + EN→ES 201 + mapa UI 42 chaves) + fix de regeneração ES
- Lane IFRT-2
- Dicionário PT→ES (
work/_i18n_pt_es_{1,2,3}.py, 520 termos: artigos/pronomes/adjetivos/UI/gameplay/verbos) — ES era o único latino sem cobertura PT (os dicts PT eram só FR/DE/IT); +EN→ES (work/_i18n_en_es_1.py, 201 termos: chance/selected/viewer/lab/writer + frases compostas "force battle"/"phase rotation"/"save editor"...). - Pipeline consolidado final (
work/_i18n_final_pipeline.py): regex pré-compilado (7 dicionários), regenera os 4 latinos do neutro na ordem glossário > domínio > frases EN > palavras EN > PT > PT-ES/EN-ES; manual ES reaplicado por cima depois (441) + 50 órfãs removidas. - Mapa Key-based UI (
work/_i18n_ui_map.py, 42 chaves Common*/Action*/Lang*/Term*): Undo→Annuler/Rückgängig, Language→Langue/Sprache/Lingua, Owner→Propriétaire/Besitzer/Proprietario... aplicado por último (força regenera do neutro e sobrescreveria). - Cobertura final: ES 83.4%, FR 82.7%, DE 78.3%, IT 82.9% (vs 50/58/56/60% antes desta rodada). Restante = lixo técnico (hex/paths/IDs/nomes próprios de boss) que fica EN por regra da casa.
- Gate: build 0 erros; suíte 396/396 PASS; 9/9 resx alinhados (2199 chaves). PT 10.2%; JA/KO/ZH em staging (font-bank).
v2.220.0.0
v2.220.1.0BETAPATCH
Seymour2 de ago. de 2026
Módulos desabilitados (5) + MonEditor/Models no Monster Studio + títulos limpos
- DISABLED 100% (removidos do catálogo — sumiram do UI; blocos explícitos em
ModuleCatalogPolicy.cscom "🚫 DISABLED — NOT FUNCTIONAL — faça NOT re-enable sem RT2"):magic-effects(Magic Effects — totalmente non-functional),ps3-magic(PS3 Magic HD — non-functional/redundante),magic-viewer-web(Magic Viewer Web — redundante com o Magic Studio do hub),model-viewer-embedded(duplicado do Model Viewer HD — ambos abrem o shell),pointer-script-table(placeholder "??? / Wave-1 sem editor"). - MonEditor → Models agora usa MONSTER STUDIO (noclip, esqueleto real PS2 animado):
monster_studio.tsaceita?monster=<modelID hex>(parse no construtor + sync do dropdown) eMonEditor_DataModelderiva o modelID de CatalogId (m021→0x1015) — o preview do monstro editado abre animado, não mais o three.js T-pose. A descmodel-preview(T-pose/fusion) fica disponível para uso futuro. Botão "Open preview em browser" escondido (regra never-browser). - Título corrigido:
map-scene-editorperdeu o "Spira Forge ·" (SPIRA FORGE está pausado por regra) + Notes/Scope atualizados para o hub (sem python, sem browser). - Gate: build 0 erros; smoke: Monster Editor → Models (monstro animado no Monster Studio) + catálogo sem os 5 cards desabilitados.
v2.220.0.1
v2.220.2.0BETAPATCH
Seymour2 de ago. de 2026
PS2 Models (RSD) desabilitado (6º módulo)
ps2-rsd-models(Extras / PS2 Models RSD) — browser de contagens estruturais read-only de bundles RSD (@RSD/@PLY/@MAT manifest + .tm2), sem render 3D/edição/writer — valor muito baixo, "sem sentido" para o usuário. Bloco de desabilitação explícito emModuleCatalogPolicy.cs. O viewer 3D real = Model Viewer / Monster Studio (ViewerHub).- Gate: build 0 erros. Total desabilitado: 6 (magic-effects, ps3-magic, magic-viewer-web, model-viewer-embedded, pointer-script-table, ps2-rsd-models).
v2.220.1.0
v2.220.3.0BETAPATCH
Seymour2 de ago. de 2026
PS2 Knowledge desabilitado (7º módulo)
ps2-knowledge(Extras / PS2 Knowledge) — hub read-only "provenance/structure" sem decoders/playback/writer — usuário: "sem como usar isso". Bloco de desabilitação explícito emModuleCatalogPolicy.cs. O conhecimento real vive nos docs (KNOWLEDGE_BASE.md / docs/reverse/).- Gate: build 0 erros. Total desabilitado: 7.
v2.220.2.0
v2.220.3.1BETAREVISION
Seymour2 de ago. de 2026
Cleanups técnicos: registro consolidado da varredura legada
- Doc
docs/ai/TECHNICAL_CLEANUP_2026-08-02.md— consolida EVERYTHING removidos/desabilitados nesta sessão por serem legados que não funcionavam, duplicados e/ou de baixo valor estrutural: - 7 módulos DISABLED (removidos do catálogo, com blocos "🚫 DISABLED — faça NOT re-enable sem RT2"):
magic-effects(Magic Effects — totalmente non-functional),ps3-magic(PS3 Magic HD — non-functional/redundante),magic-viewer-web(Magic Viewer Web — duplicado do Magic Studio do hub),model-viewer-embedded(duplicado do Model Viewer HD),pointer-script-table(placeholder "sem editor"),ps2-rsd-models(PS2 Models RSD — contadores read-only, sem render/ed/writer),ps2-knowledge(PS2 Knowledge — hub read-only sem uso). - 14 arquivos DELETED (git rm -f, F2):
MagicViewerWeb/(python launcher 8766 + 3 embeds),ModelViewerWeb/(python launcher 8767 + 3 embeds + original WebView2Host),MapSceneEditorWeb/(python launcher 8768 + 3 embeds),MonsterStudioWeb/MonsterStudioLauncher.cs(orphaned browser launcher). - Duplicação resolvida: 5 viewers + 6 ilhas → 1 hub (in-process StudioWebServer, porta única 8769, roteamento por prefixo; 1 ViewerShell; descs declarativas). Zero python, zero browser externo, zero processo vazado.
- Outros: título
map-scene-editorlimpo (sem "Spira Forge ·"); MonEditor "Open preview em browser" escondido; MonEditor → Models migrado para o Monster Studio (?monster=); Aurora migrada para o WebView2Host Common.
v2.220.3.0
v2.220.4.0BETAPATCH
Seymour2 de ago. de 2026
Model Viewer (HD) desabilitado (8º módulo) — opção A+C aprovada
model-viewer-web(Model Viewer HD) — BROKEN: todos os 816 glTFs do catálogo apontam para/work/phyre_chr_anim/(faltando no disco — 0/816 carregam; diagnóstico documentado). O Monster Studio (ViewerHub) cobre "ver monstros" com o renderer real PS2.- A+C: entrada desabilitada (bloco explícito "🚫 DISABLED" com o caminho re-enable) + código e desc
model-viewerINTACT e prontos para a lane HD para re-enable (re-export glTFs + apontar o catálogo corretamente + remover o bloco). Omodel-preview(MonEditor fusão/T-pose) continua ativo (não depende da entrada). - Gate: build 0 erros. Total desabilitado: 8.
v2.220.3.1
v2.220.5.0BETAPATCH
Seymour2 de ago. de 2026
Identidade própria no ViewerShell: URL fora, Games/About do noclip purgados
- Shell v3 (identidade FFX Mod Studio): barra de endereço/URL removida do header (regra do usuário: sem ênfase em loopback/URL); marca "FFX Mod Studio" + título do viewer + pílula de status + Reload. O layout geral (escuro, 3D à direita) mantido.
- Skin purgado: os painéis do noclip escrevem o título em
data-title(Panel.setTitle →toplevel.dataset.title) — o skin agora escondediv[data-title="About"](créditos noclip.website) ediv[data-title="Games"](menu de jogos Wii/GC) por seletor de atributo robusto + MutationObserver. Mantidos: canvas 3D + painel funcional (dropdowns) + Viewer Settings/Statistics (técnicos, mantidos). - Gate: build 0 erros. Próximo: navegação de cena FFX no shell (árvore Zanarkand/Ruins/Besaid via roteamento de hash do noclip — F3).
v2.220.4.0
v2.220.5.1BETAPATCH
Seymour2 de ago. de 2026
i18n: regra HOUSE RULE "nunca traduzir nomes de arquivo" aplicada e protegida no pipeline
- Lane IFRT-2
- Bug encontrado pelo usuário: o dicionário de domínio (
command→commande/Kommando) corrompia nomes de arquivo via match\bcommand\bdentro decommand.bin→ 9 arquivos corrompidos por idioma (command.bin→commande.bin,item.bin→objet.bin,FFX.exe→F.exe,ps3data\magic→ps3data\magie...). - Fix permanente:
PROTECT_REembutido emfull_translatede_i18n_final_pipeline.py— paths (magicFiles\FFX), arquivos com extensão (command.bin,kaizou.bin,.dds.phyre,magic_####.dll), acrônimos técnicos (ATEL, DINPUT8, RT0, RT2, EBP, EV01, FTCX, MSEQ, VBF, DDS, GLTF, PHYRE, monmagic1/2, a_ability, arms_rate...) e nomes próprios (Tidus, Rikku, Yunalesca, Sin, Seymour...) viram placeholders~PTK~antes da tradução e voltam byte-for-byte. Palavras comuns UI (modules,command,item) ficam livres. - Verificação: 0 nomes de arquivo corrompidos nos 4 latinos (ES 83.4% / FR 82.7% / DE 78.2% / IT 82.9% preservados). Scripts:
_i18n_fix_filenames.py(fix cirúrgico) +_i18n_protect_tokens.py(regenera com proteção). - Gate: build 0 erros; suíte 396/396 PASS; 9/9 alinhados.
v2.220.5.0
v2.220.6.0BETAMINOR
Seymour2 de ago. de 2026
i18n: seletor de idioma com 6 opções (PT/EN/ES/FR/DE/IT) — os 4 latinos traduzidos agora são selecionáveis no editor
- Lane IFRT-2
Strings.cs:ResolveLanguage/SetLanguage/CurrentLanguage/NormalizeLanguage/ApplyCultureestendidos de PT/EN parapt|en|es|fr|de|it(CultureInfo pt-BR/es-ES/fr-FR/de-DE/it-IT); persistência (ui_lang.config) e envFFX_UI_LANGaceitam todos os 6; default continuapt.Main_Window.axaml: seletor MenuFlyout ganhou 4 novos itens (LangSpanish/LangFrench/LangGerman/LangItalian) + handlersMenuItem_Language_Es/Fr/De/It_Clickem code-behind (mesmo fluxoApplyLanguage→ restart limpo).- Resx: chaves
LangSpanish/French/German/Italiannos 9 resx, self-localized (cada idioma vê seu próprio nome: Français/Deutsch/Español/Italiano). - Gate: build 0 erros; suíte 396/396 PASS; 9/9 alinhados. As traduções ES 83.4% / FR 82.7% / DE 78.2% / IT 82.9% agora são alcançáveis do UI.
v2.220.5.1
v2.220.7.0BETAPATCH
Lulu2 de ago. de 2026
Magic DLL Browser: abas agrupadas em Structure | Runtime | RE (seletor de pílula) — respondendo à proposta UI da lane
- Decisão: aplicar a parte útil da proposta (agrupar as 12 abas soltas) no
MagicDllBrowser(Extras) — oMagicDllEditor(árvore+slots) fica INTOCADO (estável após o fix do resolver .rdata). - Grupos: Structure (Sections, Exports, Imports, WD3 Streams, Overlay Slots, PPP Opcodes) · Runtime (Sound/SeSep, Role Candidates) · RE (Family Comparator, Logical Decompile, Strings, Warnings).
- Implementação: 3 pílulas
tabPill/tabPillActive(tema) +Button_SetTabGroupcode-behind (filtraTabItem.IsVisible+SelectedIndex; sem mudança de dados/binding). 2 novas chaves i18n (U_grupo_estrutura,U_grupo_re; Runtime reutilizaModeRuntime). - Gates: build 0 erros; suíte 396/396 PASS (incl. StringsIntegrity).
v2.220.6.0
v2.220.8.0BETAPATCH
Seymour2 de ago. de 2026
SKIN FIX: aplicação de skin garantida (fallback ExecuteScriptAsync no NavigationCompleted)
- Diagnóstico (evidência WebView2):
AddScriptToExecuteOnDocumentCreatedAsyncestava NOT aplicando o script ao documento (skin:falseconfirmado por uma probe noNavigationCompleted— o skin nunca rodava, por isso About/Games persistiam mesmo com o build certo e caches limpos). - Fix:
WebView2Hostagora guarda o skin no_pendingSkinScripte re-applies viaExecuteScriptAsyncnoNavigationCompleted(o documento já existe nesse ponto — aplicação garantida, cobre reloads).AddScriptToExecuteOnDocumentCreatedAsynccontinua sendo o primeiro caminho (para documentos futuros). - Diagnóstico leve permanente:
NavigationCompletedescreve uma probe (skin/hash/about/games) no%TEMP%\ffx-studio-diag.loga cada navegação — ferramenta para a lane UI. - Gate: build 0 erros; usuário confirmou: About e o menu de jogos (Games) sumiram do viewer.
v2.220.7.0