Atualização 2.40
09/06/2026
v2.40.0BETA
Seymour
AI Assembler: um corretor de stack (Nível 1+2) — avisa quando uma edição esvazia a stack + diz como corrigir
- O dono pediu um "mini-AI corretor" que ajuda a corrigir erros de assembly. O validador já pegava opcode inválido / jump pendurado / índice OOB, mas não o erro #1 hand-edit: desbalanceamento de stack. Agora pega. RE-grounded (FFXDataParser): novo
FfxLib/Ai/AiStackModel.cs= efeito de stack per-opcode (deOPCODE_STACKPOPS) + aridade de 269 funções (contagens de inputScriptFuncLib; accessor = subject?+index+value?).AiValidatorsimula a profundidade da stack (reset para 0 no entrypoint/jump-target) e reporta underflow. Twist honesto-chave: as aridades do parser nem sempre batem com o VM real (provado:setSelfFloating 0x7029o parser diz 2, o corpus empurra 1) — então em vez da contagem absoluta (que false-positive em código válido), ele difa a stack ORIGINAL vs EDITED: o ruído de aridade existe nos dois e se cancela, deixando só o que a YOUR edição quebrou. A mensagem (Nível 2) diz em linguagem simples onde esvaziou + como corrigir ("coloque de volta o PUSH que era argumento; todo statement empurra os args THEN calls"). Auto-surfaces no painel de Validation. Gate--ai2: validator limpo 346/346 (zero falsos positivos no corpus) + stack-break pegou 1/1 (prova que pega um arg-push removido);--ai3PASS; RT0 byte-identical (só análise, zero bytes). O editor compila 0 erros. Honesto: detecta o que a edição introduz; aridade fina de algumas funções = RE público (calibração de corpus = futuro)
v2.39.2
v2.40.1BETA
Seymour
AI Assembler: botão "Try para fix" (Nível 3, auto-fix honesto)
- Fecha o corretor: um botão 🪄 Try para fix ao lado de Validate/Save. A regra honesta (a do dono): só aplicar um fix que tem resposta correta SINGLE; sugerir o resto, nunca adivinhar. No modelo do assembler (que deriva
HasOperanddo próprio opcode), o único fix inequívoco é restaurar uma linha que você marcou para remoção e que na verdade é o TARGET de um jump/entrypoint — ela MUST ficar (re-pointing o branch mudaria comportamento = um palpite). O botão re-validates em loop, un-removes esses targets pendurados (resolvendo o caso #1 "I removi algo e quebrou"), e para os erros WITHOUT uma única resposta (opcode inválido, jump-index OOB, o underflow de stack Level-1) ele explica no relatório o que fazer mas NOT toca — "I não adivinhe sua intenção". Reporta quantos corrigiu + quantos ainda precisam da sua decisão.MonsterAiEditor_DataModel.Assembler.TryAutoFixAssembler(usa o gate-testedAiValidator; nunca edita operando/opcode nem remove nada). O editor compila 0 erros;--ai2/--ai3PASS (RT0 byte-identical — só inverte as flags de remoção do VM, sem mudança de byte). Honesto: um auto-fix que adivinha intenção = um bug silencioso, então o botão é conservador por design
v2.40.0