Update 2.40
9.6.2026
v2.40.0BETA
Seymour
AI Assembler: ein Stack-Korrektor (Level 1+2) — warnt, wenn ein Edit den Stack leert, und sagt, wie man ihn behebt
- Der Besitzer bat um einen "Mini-AI-Korrektor", der beim Beheben von Assembly-Fehlern hilft. Der Validator fing bereits ungültigen Opcode / hängenden Sprung / Index-OOB, aber nicht den Fehler Nr. 1 bei Hand-Edits: Stack-Ungleichgewicht. Jetzt tut er das. RE-fundiert (FFXDataParser): neue
FfxLib/Ai/AiStackModel.cs= per-Opcode-Stackeffekt (ausOPCODE_STACKPOPS) + Stelligkeit von 269 Funktionen (ScriptFuncLib-Eingabezählungen; Accessor = subject?+index+value?).AiValidatorsimuliert die Stacktiefe (beim Entrypoint/Jump-Target auf 0 zurückgesetzt) und meldet Unterlauf. Wichtige ehrliche Wendung: die Stelligkeiten des Parsers stimmen nicht immer mit der echten VM überein (bewiesen:setSelfFloating 0x7029sagt Parser 2, der Korpus pusht 1) — statt der absoluten Zählung (die bei gültigem Code falsch-positiv wäre), difft er den ORIGINAL- vs. EDITED-Stack: das Stelligkeitsrauschen existiert in beiden und hebt sich auf, übrig bleibt nur, was IHR Edit zerbrochen hat. Die Meldung (Level 2) sagt in klarer Sprache, wo er sich geleert hat + wie man es behebt ("den PUSH zurücklegen, der ein Argument war; jede Statement pusht die Args DANN ruft sie"). Taucht automatisch im Validation-Panel auf. Gate--ai2: Validator sauber 346/346 (null falsch-positive auf dem Korpus) + Stack-Bruch gefangen 1/1 (beweist, dass er einen entfernten Arg-Push fängt);--ai3PASS; RT0 byteidentisch (nur Analyse, null Bytes). Editor baut 0 Fehler. Ehrlich: er erkennt, was der Edit einführt; Feinstelligkeit einiger Funktionen = öffentliche RE (Korpus-Kalibrierung = Zukunft). [previous:v2.39.2]
v2.40.1BETA
Seymour
AI Assembler: ein "Reparaturversuch"-Button (Level 3, ehrlicher Auto-Fix)
- Schließt den Korrektor ab: ein 🪄 Reparaturversuch-Button neben Validate/Save. Die ehrliche Regel (die des Besitzers selbst): nur einen Fix anwenden, der EINE eindeutige korrekte Antwort hat; den Rest vorschlagen, nie raten. Im Assembler-Modell (das
HasOperandaus dem Opcode selbst ableitet) ist der einzige eindeutige Fix das Wiederherstellen einer Zeile, die Sie zum Entfernen markiert haben und die sich als TARGET eines Jumps/Entrypoints herausstellt — sie MUSS bleiben (das Neuausrichten des Branches würde das Verhalten ändern = ein Raten). Der Button re-validiert in einer Schleife, entfernt diese hängenden Targets aus der Entfernungsmarkierung (löst den Fall Nr. 1 "Ich habe etwas entfernt und es ist kaputt"), und für die Fehler OHNE eine einzelne Antwort (ungültiger Opcode, Jump-Index-OOB, der Level-1-Stack-Unterlauf) erklärt er im Report, was zu tun ist, fasst sie aber NICHT an — "Ich rate nicht über Ihre Absicht". Berichtet, wie viele er behoben hat + wie viele noch Ihre Entscheidung brauchen.MonsterAiEditor_DataModel.Assembler.TryAutoFixAssembler(verwendet den gate-getestetenAiValidator; editiert nie einen Operanden/Opcode und entfernt nie etwas). Editor baut 0 Fehler;--ai2/--ai3PASS (RT0 byteidentisch — er flippt nur die Removal-Flags der VM, keine Byte-Änderungen). Ehrlich: ein Auto-Fix, der Absicht rät = ein stiller Bug, daher ist der Button konservativ by design. [previous:v2.40.0]