Actualización 2.11
5/6/2026
v2.11.0BETA
Seymour
🧠 AI ENSAMBLADOR PRODUCTIZADO (un editor monstruo-AI utilizable):
- el códec "edita el AI 100% libremente" se convirtió en una FUNCIÓN. Nuevo en el carril
FfxLib/Ai+Modules/MonsterAiEditor: - Biblioteca de comportamiento (
AiSnippetLibrary): plantillas parametrizadas cuyos bytes ESPEJO prueban el corpus modismos: lineal (force-cmd/perform-cmd/grant-field/set-stat/raw-call) y condicional (RNG Rotación 1 en K, comando de fuerza en caso de contador/fase). - Validador previo al vuelo (
AiValidator): código de operación∈48, HasOperand vs 0x80, rama colgante/punto de entrada (nombra cuál, en lugar del lanzamiento opaco), rangos de operandos, autocomprobación RT0, ejecución en seco de reconstrucción, crecer/reducir;SaveAssemblerahora está a la defensiva (se niega a escribir en errores). - Selector de comando amigable (
AiCommandId): operando performCommand ↔ nombre vía(cat<<12)|idsobreCommandCharacter/CommandMonster1_Dictionary; Menú desplegable UI (no más hexadecimal sin formato). - Nuevas primitivas de códec (
AiScript_File):GrowWorkerJumpTable(agrega ranuras a la tabla de salto de un trabajador — habilita una NUEVA rama) +AppendGuardedAction(antepone una acción protegida a un punto de entrada, preservando el controlador original) +OperandKindOf. - UI en
MonsterAiEditor: tarjeta de biblioteca de comportamiento + botón/informe Validar + menú desplegable de comandos. - Puerta
AiScriptLab --ai2PASS (corpus REAL, 361): salto-crecimiento 898/898 trabajadores, acción protegida 692/692 (primer+último punto de entrada) + centinela sintético 1/1, validador limpio 346/346, AiCommandId 620/620, captura positiva 8/8/8 (jumpOOB a través de la ruta del editor). Puerta original--RT0 361/361 intacta. - A Se encontró una revisión adversaria de 4 agentes + se corrigieron 2 errores (uno-past-fin centinela sí mismo-bucle;
OperandKindeliminado en la ruta de guardado del editor), ahora bloqueado por la puerta. Documentos:docs/reverse/FFX_AI_JUMPTABLE_GROW_PROVEN_2026-06-05.md+docs/ai/FFX_AI_ASSEMBLER_PRODUCTIZED_2026-06-05.md. - ⚠️ Estructura probada SIN CONEXIÓN; comportamiento en el juego (RT2) pendiente Halyson está bien (sonda). Plantillas "curar aliado < 25% HP" y "enfurecer en el turno N" NO se envían (campo HP/ancla de contador de turnos no confirmado por bytes).
SUCESSOR_FFX_HD_MODELOS_MASTER_2026-06-05.mdcerrado por suma/npc. - Texturas (basadas en manifiesto):
extract-texture-batchenRuntimeTools/PhyreModelExportLabganado--from-manifest, que lee el<id>.ahwin32g_fileNames[](manifiesto de activos autorizado) y extrae la textura EXACTA que carga el juego. 305 PNG (pc/npc/suma), mapa de procedenciatexture-provenance-map.json, 0 discrepancia silenciosa. RE:ahwin32es un encabezado C legible: resuelve referencias cruzadas (c906←c106,c908←c108,c806←c805) Y multitextura (c101+c101_01,n238+n238_hair,n356←n238_hair) sin IDA. Búsqueda adicional: clave de herencia de equipo NPC =0x6NNNen el.chr(mapa nXXX→kNNN, 222/222 válido). Documentodocs/reverse/FFX_AHWIN32_ASSET_MANIFEST_2026-06-05.md. - Hornear (malla+textura+animación): controlador
work/_scratch_mgrp/bake_cast.pyvíaphyre_chr_gate. Estático 253/253 (molde entero texturizado, limpio). Animado: suma de movimiento propio, npc heredaskl/<base>. - Visual QA (flujo de trabajo, 21 agentes de visión): 248 animados clasificados a través de F3D — 157 limpios / 58 de torsión / 33 explotaron. El selector de enlaces (rest/A1) en el 33 no se solucionó.
- 🔧 CORRECCIÓN Hélice (2026-06-06): F3D estaba MENTIDO en la animación revestida. Diagnóstico Hélice (malla
EXPLODE_RATIO≈1.0, sin crecimiento) + el renderizado veraz de Eevee demostró que los "explotados" tienen un cuerpo intacto, sólo una extremidad/accesorio estirado. Re-QA (8 agentes sobre renderizados de Hélice) corrige a 175 limpio (71%) / 59 torsión (24%) / 14 explotaron (6%) — 20 modelos rescatados, el horneado fuera de línea siempre fue ~94% utilizable. Los 14 genuinos = 11 Eones + 3 npc (equipo no humanoide; necesita mocap/mapa principal RE). Regla actualizada: el La pantalla de BLENDER decide, F3D miente. Tuberíawork/_scratch_mgrp/blender_{diagnose,render_anim,batch_render}.py. - 🎯 RETARGET RESUELTO a través de
--retarget-delta(2026-06-06): 175 → 215 limpio (87%). Nuevas clasesphyre_chr_gatebandera que aplica el movimiento heredado como delta de frame0 al REST npc (M=restLocal·inv(m0)·mf), preservando npc proporciones en lugar de imponer las de la base. IDA RE demostró que la reasignación.chr@0x30ya se aplicó: el La causa fue el retarget de pose de descanso, no la reasignación (docFFX_INHERITED_MOTION_REMAP_RUNTIME_2026-06-06.md). Piloto+lote de 73 fallos + Hélice re-QA + por-modelo mantener-best: +40 limpio, 44 rescatado, CERO regresión (Me quedé porque retrocedería). NPC animado = 200/222 limpio (90%), 0 explotado; 8 Aeons todavía explotaron (malla inmune → mocap). Resuelve el MASTER §2.4 "A1-universal" sin riesgo de A1. - 🐉 TODO EL REPARTO cerrado sin conexión (2026-06-06): 498/643 limpio (77%), 90% utilizable. Veraz extendido-Hélice-QA+ retarget-delta + mantener-best para el resto: obj/wep/pc (46 limpio/55, grupo limpio) Y los 340 MONSTRUOS. el viejo monstruo QA (bbox) afirmó "0 explosiones" = una mentira; veraz Hélice QA (29 agentes) encontrado 127 fallos reales; retarget-delta en los 66 heredados → 36 ascendidos, monstruos 206→237 limpios. Total animado (643): 498 limpio/ 86 de torsión / 51 explotados / 8 en blanco. Residual (9%) = malla divergente / unión degenerada → mocap/malla-RE, no reorientación.
- obj/wep/pc (2026-06-06): mismo canal extendido - estático obj 110/110 + wep 79/79 + pc 34/49 (15 pc falla = ranuras
c8xxficticias sin PS2.chr). Todo el elenco HD estático = 476 modelos. obj/wep en su mayoría rígido (animación escasa 25/7); verificación puntual de la pantalla: f001/w001/c004=Auron limpio. - Galería
work/cast_hd_gallery.html(visor de modelo, alternancia estática/anim, filtro suma/npc/obj/wep/pc). Todo dentrowork/(ignorado por Git): solo los COMANDOS son código. sin aumento de csproj (lab/RE en RuntimeTools).FFX_TOOLBOX_DISCOVERY_PLAYBOOK_2026-06-05.md): un barrido en línea + investigación de licencias de herramientas externas FFX HD/PS2 (VBF, Phyre, kernel.bin, ATEL, FMOD, TM2, FMV) y editor NuGets. La clave examinada encuentra: Cargador de archivos externo (ffgriever, BSD-2) archivo suelto sin reempaquetar, Kaitai Struct (tiempo de ejecución de C# MIT) para generar lectores C#+JS, fahrenheit (MIT, C#) gancho+marco mod DLL y confirmación de que FFXDataParser NO tiene LICENCIA (solo estudio). La columnatested?sigue siendo❌: prueba de Oráculo contra el corpus local es pendiente, plan incluido en el propio documento. Solo documento: sin csproj Aumento (regla de solo documentos lab/RE). 58expedientes empaquetados;- un manifiesto por expediente;
- una copia reflejada con Git-seguro bajo
docs/history/DOSSIÊ FFX 01-06-2026/; - un informe de exclusión para el binario externo gigante único bloqueado por los límites de tamaño de GitHub.
- bases de conocimientos separadas para talleres;
- un atlas maestro agregado;
- raíz
KNOWLEDGE_BASE.mdcomo punto de entrada único; - un plan de fusión oficial;
- un anexo de talleres dependientes
Pt6/Pt9; - Líneas familiares técnicas formales del proyecto.
merge in docsExtras nowExtras laterfrozen researchhistorical cleanupps3dataffx_ps2- cierre ejecutivo
- compendio de talleres infantiles
- tiempo de ejecución/AI atlas
- arranque sucesor
- tablero de vencimiento corto
Extras nowveredictoExtras laterveredicto- límites de investigación congelados
- derivado
Pt67producto rol ps3datavsffx_ps2dividido- libro de reglas de procedencia
- facetas de cita obligatoria ### Agregado
important.bina_ability.binReadNo-Edit Byte IdentityReread- contratos de token de texto aditivo en
FFXProjectEditor/FfxLib/Text/* - una utilidad pura de validación/decisión de ida y vuelta
TextLabTools/TextContractHarnesscomo el primer consumidor de humo del lado de produccióndocs/history/BATTLE_AI_FRONTIER_2026-05-31.mddocs/history/MODELVIEWER_BINDING_FRONTIER_2026-05-31.mddocs/history/PT23_TO_PT34_KNOWLEDGE_BASE.mddocs/history/PT23_TO_PT34_CHANGELOGS.mddocs/history/PT23_TO_PT34_BRANCH_MAP.mddocs/history/PT23_TO_PT45_CODE_KNOWLEDGE_BASE.mddocs/history/PT23_TO_PT45_CHANGELOGS.mddocs/history/PT23_TO_PT45_BRANCH_MAP.mdKNOWLEDGE_BASE.mddocs/history/PT2_TO_PT11_KNOWLEDGE_BASE.mddocs/history/PT12_TO_PT22_KNOWLEDGE_BASE.mddocs/history/PT23_TO_PT45_KNOWLEDGE_BASE.mddocs/history/PT2_TO_PT45_MASTER_KNOWLEDGE_BASE.mddocs/history/PT6_PT9_DEPENDENT_WORKSHOPS_ANNEX.mddocs/history/NON_FFX_EDITOR_THREADS_ANNEX.mddocs/history/PT_FAMILY_LINES_ANNEX.mddocs/history/OFFICIAL_MERGE_PLAN_2026-05-31.mddocs/history/PS3DATA_FULL_TREE_RESEARCH_PLAN.mddocs/history/PS2_FULL_TREE_RESEARCH_PLAN.mddocs/history/PT50_TO_PT58_ABSORPTION_PLAN.mddocs/history/PT52_TO_PT58_CLOSEOUT_REPORT_2026-05-31.mddocs/history/PT50_PT51_HISTORICAL_CLEANUP_2026-05-31.mddocs/history/PT6_TEMPORARY_CLOSEOUT_2026-05-31.mddocs/history/PT6_CHILD_WORKSHOPS_COMPENDIUM.mddocs/history/PT6_RUNTIME_AI_DISCOVERY_ATLAS.mddocs/history/PT6_SUCCESSOR_BOOTSTRAP.mdhistory/pt23-battleai-structurehistory/pt24-exactlaunch-seamhistory/pt25-selectorbank-materializationhistory/pt26-battlestate-diffhistory/pt27-routereplay-truthhistory/pt28-battlecapacity-prephistory/pt29-keyitem-crashfixhistory/pt30-autoability-crashfixhistory/pt31-geometryviewport-blockhistory/pt32-chrcarrier-decodehistory/pt33-aislice-payloadhistory/pt34-legacybridge-narrowing### CambióCurrentWorkspaceOverviewCurrentMonsterEditorCurrentItemsCurrentBattleExplorerCurrentLiveBattleLabCurrentStringExplorerEncodeSafeDecodeOnlyRawPreserveUnknownRiskReuseOriginalBytesReencodeAllowedBlocked- envoltorios operativos para la línea
Extras / ps3datalínea - útiles microtalleres
Pt6 / Pt23AI con conocimientos preservados y estado de archivo seguro merge nowmerge laterExtras/read-onlyknowledge onlyPt56,Pt52,Pt54,Pt58= ataque ahora en softwarePt57y partes dePt53/Pt55= ataque posterior, todavía de solo lecturaPt53,Pt55,Pt57= investigación agresiva sin exageraciónPt50,Pt51= limpieza histórica antes de que cuenten como fuentes limpiasMagicPackageViewerBatEffPackageViewerMagicEffectCrosswalkExplorernever blind merge### Validado- objetivo
- utilidad
- probabilidad de fusión
- mini registro de cambios por taller
binding truthidioma- fuerte estrechamiento para
owner/target/parentage/commit - base de barandilla para
Pt6yPt23 formation 0..7enemy actor rows 0..10rawMonsterId -> corpuscomposition truthfrente aactor-surface truthPt46 / AIBlobParityGrammarLabPt47 / AIRuntimeDispatchLabPt48 / SafeAIMicroProbeLabcomo parte del legado tiempo de ejecución/AI, incluso sin reclamos de escritor o parcheador.- base antigua
Pt2..Pt11 - base de onda medios
Pt12..Pt22 - base de olas pesadas
Pt23..Pt45 - un único atlas agregado con memoria/runtime/binding/guardrails
- satélites de
Pt6 - satélites de
Pt9 - excepciones del lado de producción
Pt29/30 Model Viewer / BindingBattle / AI / Runtime TruthText SafetyKernel / ShopTooling / Safety / ReleaseProduction Crashfixes### Notas ### Planificado ### AtrasoTextSourceCapabilityIndex*StringExplorerUI cableado0x10 + 0x120x13### Bloqueado ## [v2.13.0] - 2026-06-05 ### Agregado ### Notas ## [v2.12.0] - 2026-06-05 ### AgregadoFfxLib/BattleMap/BattleArenaPositionWriter.csre: estampa el X/Y/Z de cada actor en la matriz de anclaje chunk3 EN SU LUGAR (monstruos en el campo = puntero+0x20; también fiesta/eón/puesta en escena porrole), solo valor: nunca se toca el encabezado/punteros/recuento/otros fragmentos conserva W palabra por palabra. Dado que la transformación de la escena de batalla es IDENTIDAD (IDA-probado, v2.10.0.1), una coord seleccionada en el espacio de la escena se escribe palabra por palabra. El mismo patrón de ranura segura queFormationSlotWriter(guardia + respaldo una vezWriteLooseFile). ### Validado RT0 (sin edición == byte idéntico) 862/862, SOLO POSICIÓN (diferencia limitada a la matriz+0x20) 862/862, RE-LEER 862/862, + GUARDAR CICLO DE VIDA (sin editar/editar/restaurar en una copia temporal) PASS. BiancaCatalogLab + AuroraChamberLab + BattleArenaPositionLab (anteriormente omitido). Completo CI PASS (7/7 puertas): ReverseHarness, AiScriptLab, FormationSlotLab, AbilityCommandLab + los 3 nuevos. ### Diferido desconectado; la pantalla del juego es el árbitro. Agregar/eliminar espacio para monstruos (variar el recuento) = estructural (Reconstruir), a continuación. ## [v2.11.1] - 2026-06-05 ### Agregado cuadro que filtra las filas de diálogo por contenido de texto y (2) un filtro de idioma (casillas de verificación en inglés/japonés, Inglés por defecto) — anteriormente, JP y EN estaban incluidos en la MISMA lista (japonés primero = un muro de japoneses). RefactorizadoEventExplorer_DataModel(allTextRows+ApplyTextFilter, English-primero) + axaml (buscar TextBox + Japón/Estados Unidos CheckBoxes). NO toca el escritor (El nivel 1 permanece en--event-rt0397/397 + edición 12/12). ### Notas inyección de traducción, fuera del alcance del escritor). La búsqueda de palabras está dentro del evento seleccionado. ## [v2.10.0.1] - 2026-06-05 ### Probado (RE / IDA, fuera de línea) copia las coordenadas chunk3 (locales de batalla) VERBATIM en el nodo mundial del actor - sin giro Z, escala o rotación; solo Y gana una altura de modelo por actor (actor+0x534). Desde la escena.dae.phyre== el Phyre sin formato cuadro de vértice 1:1, P_scene(X,Y,Z) = P_battle(X,Y,Z) (s=1, R=YO, T=0). Cadena probada:FFX_Battle_AreaChunk_GetSetPosition(0x7AC000; chunk3 base0x112A9B0; copia 4 flotadores palabra por palabra; mundo de actores pos @+0x3B0) →FFX_Battle_ResolveActorPlacement(0x7A9AE0) →FFX_Battle_GetActorByIndex(0x794030, zancada0xF90== RT2 enemigo). La suposición de voltear-Z fue un artefacto al incluir filas de preparación fuera del campo (grupo-atrás Z≈-168). Doc:docs/reverse/FFX_AURORA_BATTLE_TO_SCENE_TRANSFORM_IDA_PROVEN_2026-06-05.md(+ cambio de nombre de cola para el.i64REAL). ### Cambiado (Cámara Aurora – honestidad) traza anclajes directamente en las coordenadas de la escena (el valor predeterminado ya era identidad) y el interruptor voltear-Z se convierte en DESPROBADO/comparación;aurora-actors.jsoncoordSpace=scene_world_identity_ida_proven. ### Diferido≈ chunk3(residual ~0) + medir el término Y exacto. Sonda AUTORIZADA por Halyson; pendiente solo el juego está abierto (LEER a través de la sonda existente, sin código nuevo). SPIRA FORGE permanece en pausa. ## [v2.10.0] - 2026-06-05 ### Agregado contenedor) ya no es de solo lectura. La edición de escenas/diálogos de eventos ahora es un BOTÓN.FfxLib/Event/Event_File.Write.cs(nuevo): reempaquetado del contenedor EV01 con bytes fieles: cada fragmento alineado con re0x40, la tabla de compensación absoluta + terminador EOF recalculada (magia + centinela0xFFFFFFFFpreservada). sin edición = garantizado VERBATIM; el texto editado reutilizaTextTable_File.Write(fragmentos JP=1/EN=4); Script ATEL (0), Desconocido 2 y FTCX (3) conservado byte por byte. Gancho de nivel 2ScriptChunkOverride(re-puntada de un trozo editado-0).Event_File.cs: captura el encabezado sin formato + las tablas de texto; tolera entradas de cadena de campo con puntero nulo (8 archivos) preservando el fragmento palabra por palabra (frontera documentada con texto editable).TextTable_File.Writesobrecarga de aditivo (includeTrailingPadding): emite mesa+piscina sin relleno interno (el contenedor re-pads a 0x40). NO rompe--textstr-rt0(predeterminado = comportamiento heredado).Modules/EventExplorerse convirtió en un diálogo EDITOR: cadenas editables JP/EN (TwoWay TextBox) + un "Guardar diálogo" botón que re-empaqueta y escribe el.ebp. (FfxLib/Ai/AiScript_File.cs, usado solo lectura como donante) lee/edita el script del evento (misma familia AiFile).- Operando local de bytes PARCHE PROBADO (12/12): la edición de un operando de fragmento 0 cambia solo esos bytes; el contenedor re-puntadas idénticas en otros lugares; la lectura re lleva el nuevo operando.
- CRECER (AppendCode) es una frontera documentada: el donante
AppendCode(construido para la batalla, descriptores en DATA) no reubica el uso de scripts de eventos de descriptores residentes en encabezado ([0x38..scriptStart)): necesita reconocimiento de eventos reubicación (coordinar con el carril de Ensamblador AI). ### Validado ida y vuelta 12/12** (intercambiar una cadena → reempaquetar → re-leer: coincidencias de cadenas editadas, fragmentos intactos palabra por palabra, idempotente). 397/397; operando local de bytes parche 12/12. El editor genera 0 errores. (0 descansos), EOF==tamaño de archivo, centinela0xFFFFFFFF. Documentos endocs/reverse/FFX_EVENT_*_2026-06-05.md. ### Honestidad / Diferido texto editable todavía). Nivel 2 = parche probado; añadir/crecer + creación estructural = Nivel 3, no documentado cerrado. Verificación preferida byte sin conexión-RT0; Todavía se recomienda el RT2 de diálogo editado en el juego. ## [v2.9.0] - 2026-06-05 ### Agregado btlmap escena catálogo) al MapViewer y levanta coordenadas del actor de chunk3. Dedicado a Aurora y Bianca. 💛 - Selector de escenas consume
BattleMapCatalog_File/BattlefieldSceneResolver(solo lectura): enumera/selecciona escenas por área y clave de mapa. - Renderizar controla
PhyreMapExportLab(exportación glTF bajo demanda de la escena btlmap) y abreFFXMapViewerWebmediante el enlace profundo?catalog=/?map=/?actors=: un minicatálogo por escena, que nunca toca el contenido compartidocatalog.jsonni reescribirapp.js. - Coordenadas a través del nuevo lector
FfxLib/BattleMap/BattleArenaAnchors_File.cs(puro/libre de Avalonia): decodifica chunk3 (registro de área 96B, punteros+0x10..+0x2C, monstruos vivos+0x20, 16B XYZW Y-arriba elementos), enumera los anclajes locales de batalla y exportaciones JSON para Encounter Creación. artilugios de anclaje de?actors=+ un modo de "selección" (y = 0 plano raycast → coordenadas mundiales). No intrusivos (ganchoswindow.ffxMapViewerDebug; no-ops sin?actors/seleccionar; nunca editaapp.js). ### Validado klyt00_00/sins02_00/mihn00_00 == coordenadas documentadas); corpus 862/862 limpio (0 NaN/Inf, W==0 en monstruos vivos); determinista; BIANCA→escena→batalla→ducto de anclajes 52/52 escenas mapeadas llevan anclas. 10.804 triángulos,gatePass: true). El editor se compila con 0 errores (verificado en un árbol de trabajo HEAD aislado). ### Honestidad / Diferido SIN CALIBRAR** (P_scene = R·s·P_battle + T; voltear-Z/yaw-180 sin resolutor): las anclas son locales de batalla sin procesar, no Exacto al motor. Calibración de la sonda = Onda 3 (necesita el visto bueno de Halyson). SPIRA FORGE permanece EN PAUSA; Aurora solo CONSUME MapViewer + BIANCA (solo lectura/aditivo), sin iniciar nunca el concentrador. ## [v2.8.0] - 2026-06-05 ### Agregado (cataloga las 25 áreas / 56 escenas de HDps3data/btlmap—<area>NN_<variant>conmdl/d3d11/<leaf>.dae.phyre) +FfxLib/BattleMap/BattlefieldSceneResolver.cs. Puro/sin Avalonia, se compila en el editor (0 errores). "azit03"), NO elbattlefieldu16 (es decir, una arena GLOBAL id, compartida entre mapas;bf=1061abarca nagi/prueba/tori/zzzz). Documento:docs/reverse/FFX_BATTLEFIELD_SCENE_BRIDGE_2026-06-05.md. puntero+0x20(float32 X,Y,Z,W; Y-arriba; W=0; zancada de 16 bytes; ranura de formación ↔ entrada). Fiesta+0x10, eón+0x18, cámara+0x2C. Documento:docs/reverse/FFX_BATTLE_FORMATION_POSITION_CHUNK3_DECODED_2026-06-05.md. (-- export --ps3-root <ps3data> --area btlmap/azit/azit03_a). Plan de superposición de actores + calibración de coordenadas de sonda (DISEÑO):docs/ai/FFX_AURORA_COORDINATE_SYSTEM_AND_CALIBRATION_2026-06-05.md(sonda solo con OK de Halyson). ### Validado determinista; 56/56 escenas con exactamente un modelo principal; puente con 0 errores inexplicables (22 HD-huérfano mapas = cortar/PS2-solo ESPERADO; 4 escenas huérfanas bika04/grid00/nagi03/sfia00 = jefe/historia ESPERADA). ### Diferido la sonda DINPUT8 necesita el OK de Halyson y SPIRA FORGE está en PAUSA. ## [v2.7.1] - 2026-06-05 ### Agregado / Validado WeaponNameTable, MacroDictionary, NameDescriptionTextTable, NameDescriptionTextPrefixTable, BtlTextTable, SphereGrid, ShopGearCatalog, BukiGetTreasureCatalog, AlBhedDictionary, PointerScriptTable, BattleTextTable, ShopTable. Patrón de solo conservación (WriteIdentitypara los de reconstrucción con pérdida). Nuevo barrido de puertaTools/Wave1Rt0.cs. ## [v2.7.0] - 2026-06-05 ### Agregado intercambia la partición AiFile por una de DIFERENTE longitud, 16 pads la AiFile, cambia secciones posteriores y reescribe los punteros de la sección de encabezado (m###.bin), escribiendo el AiFile palabra por palabra (sin sobrescribir codeLength). El AI Ensamblador UI ahora GUARDA el crecimiento/reducción (solo conservaba la longitud). Causa de la paliza documentada + solucionada por diseño (Opción B: superficie mínima, NO tocaMonster_File.Write→--monster-rt0se queda 361/361). VM de recuentos de trabajadores + datos por trabajadorlen (ronda 16) (NO partición/DeclaredLength/codeLength) y confía en punteros en el archivo → se respeta la reubicación de crecimiento y la plataforma de seguimiento es segura. (regla de oro: cambiar el nombre de la cola). ### Validado (insertar → empalme con reconocimiento de crecimiento → re-lectura limpia + cola/encabezado preservado palabra por palabra + 16 alineados + idempotente), SHRINK 346/346 (eliminar una instrucción no dirigida → delta negativo → re-lectura limpia + cola preservada).--monster-rt0361/361 (sin regresión). Alineación del corpus: 16/32/64/128/256, 0 plataforma de seguimiento. (edición gratuita)"** tarjeta renderizada con la lista de instrucciones editables (código de operación/operando/eliminar) + Insertar/Guardar estructural + avance. Captura de pantallawork/spira_forge_qa/monster_ai_assembler_v01.png. ### Diferido Sonda DINPUT8 (compartida): bajo el visto bueno explícito de Halyson. sin conexión + RE prueba la seguridad del byte/juego; la pantalla del juego es el árbitro final. ## [v2.6.0] - 2026-06-05 ### Agregado (insertar/eliminar/modificar) en la parte superior del editor de operandos locales de bytes. El AiFile reconstruido proviene deAiScript_File.Rebuild(RT0-probado: reubica puntos de entrada + tablas de salto a través de un mapa antiguo → nuevo). Lista editable (código de operación/operando hexadecimal + eliminar casilla de verificación), insertar después de seleccionar, vista previa delta. Guardar está habilitado sólo para que conserva la longitud ediciones (codeLength sin cambios) → seguro byte a byte empalme a través deSpliceAiFileIntoMonster. CRECER/REDUCIR es LAB (mensaje honesto): el archivo suelto guardado necesita una retransmisión de monstruos con reconocimiento de encabezado + relleno de alineación + prueba en el juego. --ctbbase-rt0→CtbBase_File(ctb_base.bin), solo conservación.--mixtable-rt0→MixTable_File(prepare.bin), solo conservación.--aiasm-rt0→ demuestra el guardado estructural del ensamblador AI (reconstrucción sin edición + retransmisión + byte de empalme idéntico) y mide la alineación del corpus AiFile→WorkerFile. ### Validado La edición que conserva la longitud es segura en bytes. Crecer=LAB (causa: el encabezado 0x34 deMonster_Filese superpone aAiFile[0..4)=codeLength + un cambio de longitud rompe la alineación WorkerFile; el corpus está alineado 16/32/64/128/256, 0 almohadilla de seguimiento). ### Bloqueado / LAB ## [v2.5.0] - 2026-06-05 ### Agregado controles (Open Spector,Capture Next Frame,Export Last Capture) más una primeraMaterial Debugpanel con inventario en vivo de los materiales glTF cargados, un selector, fichas de datos y tarjetas de textura por ranura (map,normalMap,aoMap,envMap, etc.). registra lo que aterrizó, lo que fue validado y lo que queda explícitamente fuera de la prueba. ### Validado Aparecieron los controles y el panelMaterial Debugse completó a partir del glTF cargado. manera confiable, el visor se degrada aFrame preview unavailable/Texture preview unavailable on this source surfaceen lugar de pretender mostrar evidencia visual válida. ## [v2.4.4] - 2026-06-05 ### Agregado batallas seleccionables; al seleccionar uno se publica enFieldContext.SelectedBattleIdy el Editor de formaciones salta directo a esa batalla (carga su formación). Realiza el plan maestro "haga clic en una zona, intercambie la formación" a través de la columna vertebral compartida, sin tuberías de concha.FieldContextganadoSelectedBattleId/SelectBattle. ### Validado 37 BattleIds sin carpeta + 37 carpetas a las que nunca se hace referencia (batallas especiales/evento): el traspaso se filtra al los que existen. El editor saltó a la batalla cargada). Captura de pantallawork/spira_forge_qa/handoff_encounter_to_formation_v04.png. ## [v2.4.3.1] - 2026-06-05 ### Reverso / Prueba hipótesis (CONTINUE_AQUI_PERNAS_HD): el mapa "52m_skeletonMatrices→ 79 uniones" vive en el archivo Phyre, no en IDA.- La paleta de aspectos es
PMatrix4[0..51](vinculada desdePMeshcampo 12); es igual al vivom_skeletonMatricesbyte por byte (maxDist=0.00000). - El mapa de ranura → nodo es
inten desplazamiento 12 de cadaPSkeletonJointBounds[j](52 ranuras → 52 nodos, biyección). - Composición
m_defaultPosea través dem_matrixParentsreproduce el autor inverse-vincular EXACTAMENTE:0/52nodos divergir. Entonces--hd-defpose+--hd-parentsya es el verdadero vínculo del juego. - Causa raíz de la bobina histórica: un horneado sin
--hd-defpose/--hd-parentsvuelve a serinvBind = PMatrix4[52+b](matriz LOCAL sin procesar) → la malla explota. La receta defpose+parents es la solución y ya es la predeterminada de la galería. - Nuevas sondas de solo lectura:
work/_scratch_mgrp/phyre_palette_probe(localiza la paleta, demuestra que la unión es exacta, emitenode_to_slot.json) yphyre_legs_probe(matcher; ilustra el problema de la traducción coincidente). ### Validado c007 (Rikku) — en descanso forzado, batalla (id5_c4318 t0.0–0.9), 4 ángulos de pantorrilla en cuclillas profundas y clip múltiple (c4333/c4365/c4886). Numéricamente: las matrices local/mundial de articulación de pierna son rígidas perfectas (escala=1, det=+1, orto 0.0000). No. IDA. Prueba completa endocs/reverse/FFX_HD_SKIN_PALETTE_DECODED_LEGS_NOT_BIND_2026-06-05.md. ## [v2.4.3] - 2026-06-05 ### Agregado existía pero nunca había sido controlado por bytes, cerrando 4 familias de base editable más concretas: --keyitem-rt0(Tools/KeyItemRt0) →KeyItem_File(important.bin), escritor de solo conservación (clona el bytes originales + re -sellos soloPrimerByte10/OrderingByte13).--treasure-rt0(Tools/TreasureRt0) →Treasure_File(takara.bin), ida y vuelta con decodificación completa (4 bytes/entrada).--customization-rt0(Tools/CustomizationRt0) →Customization_Fileengranaje kaizou.bin + eón sum_grow.bin (conserva el prefijo/cola del encabezado + re: emite las entradas decodificadas).--autoability-rt0(Tools/AutoAbilityRt0) →AutoAbility_File.WriteAbilities(a_ability.bin, DATOS sección), escritor de sólo preservación. (Leearms_rate.binsolo para satisfacer el contrato de lectura; NO escribe arms_rate y NO cubre el reempaque deWriteAbilitiesAndText/texto.) ### Validado takara.bin (503 entradas, 2012 B), kaizou.bin (125) + sum_grow.bin (77), a_ability.bin (134 entradas, 19590 B). Guardado sin edición = byte idéntico; editar = local al byte (el mismo patrón de solo conservación que cerró Monstruo/Encounter). Elimina parcialmente la advertencia histórica "important.bin/a_ability.bin bloqueado para afirmaciones de escritores seguros contra mutaciones": la edición de campos (sección de datos) ahora está probada; el reempaquetado del grupo de texto permanece sin reclamar (mismo estilo monmagic riesgo: fuera del alcance de esta puerta). ## [v2.4.2] - 2026-06-05 ### Agregado en línea (p. ej.[m003 - Murussu, m003 - Murussu, m009 - Dingo]). Carga diferida + caché + limitado (≤90 visibles batallas; con el listado completo pide filtrar por zona). Sólo lectura; trae las "zonas pintadas con el color" del plan maestro monstruos que aparecen allí" en el editor (encuentro↔fusión de formación hecha visible). ## [v2.4.1] - 2026-06-05 ### Agregado asistente de producción (guardia de solo ranura + copia de seguridad única.spiraforge.bak+ escritura). Ahora utilizado por el Editor de formaciones (PersistSnapshot) Y probado por la puerta sin cabeza: el mismo código en el editor y en la prueba, sin duplicación. ### Validado espacio de trabajo/activo, solo lectura respetada): (a) Guardar sin edición = bytes de disco idénticos + copia de seguridad==original; (b) editar Guardar = solo ranura en disco + coincidencia de relectura + copia de seguridad preservada; (c) restaurar desde copia de seguridad = byte idéntico. PASS. Cierra la brecha de honestidad v0.2 (guardado en la aplicación probado en disco, reversible). Corpus todavía 858/858;offline_ci4 puertas PASS. ## [v2.4.0] - 2026-06-05 ### Agregado Entradas/Grupos/Formaciones (recuentos VARIABLES + crear tablas), asigna dataOffsets nuevo, reconstruye chunk0 + la tabla de fragmentos conserva bloque compartido + relleno. Puerta--encounter-rebuild-rt0. El estructural base para "CREAR ENCUENTROS". ### Validado (4096/4096)** + prueba de crecimiento (agregar 1 formación, finalizar 0x1000→0x1002, 2 trozos intactos) válido. familia; arreglado el acolchado de arrastre deriva. Nota honesta: el StringExplorerhelp_txt.bininscripciones están MUERTOS en esta extracción (archivo ausente): el escritor está probado en una cadena de campo REAL (spcodedic.bin). ## [v2.3.2] - 2026-06-05 ### Agregado (Ability_Command.ReadList→WriteList), queKernelCommandsya usa para guardar pero nunca fue activado por bytes. Hace referencia al proyecto del editor (árbol de profundidad profundo), llama solo a métodos estáticos FfxLib. Cableado aoffline_ci.ps1. ### Validado (1 byte) 4/4. PASS. Esta es la base comprobada para la función de sueño "nueva magia negra" (vive en command.bin). ### Bloqueado texto original de monmagic comparte/desups mientras queWriteListre-añade (soloFfxEncoding.WriteBytesIntoTextFile) añade; comando/elemento son puramente agregados → coinciden). Riesgo: KernelCommands' MonMagic Guardar infla el archivo — contrólelo hasta que pase un escritor compatible con dedup. Objetivo de auditoría + corrección:docs/reverse/FFX_ABILITY_WRITER_AUDIT_2026-06-05.md. ## [v2.3.1] - 2026-06-04 ### Agregado EOF pasado (kino03_*,mihn05_*,cdsp00_02): trata el fragmento EOF pasado (y más allá) como ausente en lugar de rechazar todo el expediente; Los fragmentos anteriores (incluida la formación @2) siguen siendo válidos. Esas batallas ahora son editables en el Editor de formaciones. ### Validado re-leer 858/858 PASS. Los 843 anteriores sin cambios. ## [v2.3.0] - 2026-06-04 ### Agregado monstruos (16 bytes) de una formación btl_* a través deBattle_File.WriteWithFormationSlots, sólo ranura segura para bytes. Consume la columna vertebralFieldContext(prefiltra las batallas según el área de campo seleccionada del Hub). recolector de monstruos (Monster_Dictionary+ Vacío, conserva el mordisco alto sin procesar). Guardar escribe un archivo suelto del espacio de trabajo con un.spiraforge.bakcopia de seguridad +AssertSlotOnlyDiffguardia, a través deByteSnapshotEditorSession(Deshacer/Descartar). Fuera de línea, sin sonda.offline_ci.ps1(parámetro-BtlRoot). Miembros adicionales de solo lectura enBattle_File(FormationChunkOffset/FormationSlotsOffset/FormationSlotsLength). ### Validado (15 btl_* no analizable por el lector en ese momento; corregido en v2.3.1). ## [v2.2.0] - 2026-06-04 ### Agregado Lomo codificado porfield_token. Selector de campo alimentado por el puente CSV (ps3data-map-btlmap-fieldid-bridge.csv, 357 campos, candidato-estructural). Al seleccionar un campo se publica enFieldContext(singleton observable) y 2 los consumidores reaccionan como solo lectura: enlace profundo del mapa (?map=map/<area>/<field>para FFXMapViewerWeb) + vistazo del encuentro (leebtl.bina través deEncounterTable_File, área candidata↔unión de mapa). CSV copiado a la salida mediante csproj<Content>. Desconectado; el selector funciona sin proyecto. sin escritor, sin investigación. ### Validado Captura de pantallawork/spira_forge_qa/field_hub_v01.png. ## [v2.1.1] - 2026-06-04 ### Validado--player-rt0puerta:ply_save.bin(3098) +ply_rom.bin(2161) -> sin edición RT0 idéntico byte a byte. (Los escritores ya existían solo para espacios; ahora están cerrados). ## [v2.1.0] - 2026-06-04 ### Agregadobtl.binbyte por byte y re marcan solo los campos editables (tablaId/Unknown0C, grupoBattlefield/Danger/TotalWeight, formaciónId/Weight).--encounter-rt0puerta en el editor. ### Validado ## [v2.0.0] - 2026-06-04 > NUEVA ERA — MAJOR. El editor pasó de "edición de archivos sin conexión" a EDICIÓN PROBADA EN TIEMPO DE EJECUCIÓN EN VIVO: > editar el código de bytes AI de un monstruo en RAM y ver el cambio de comportamiento en la pantalla, sin fallas, reversible — > el objetivo supremo #1 del proyecto, realizado. MAJOR = una nueva clase de capacidad (no un contrato/guardado/compilación > romper: solo agregamos y endurecimos).-betaporque RT2/God-Modo aún no se han convertido en productos en UI cerrado. > Hito de la ola Claude Código / VSCode + la unión con la segunda cuenta del Codex. ### Reflejos cambios en la pantalla: Flan de llamas Piro++→Electro++, sin bloqueo, reversible. Cadena:enemy-list(0xD34460) ->MemoryChr.Ptr_script_chunks(+0xF78) -> AiFile en vivo === discom0NN.bincon bytes idénticos. habilidad GLOBAL: el monstruo no necesita "poseerla". Prueba: un Dole escupió al Fuego infernal de Ifrit en la pantalla. reanimación de datos (banderas de muerte + KO), todo mediante sondaMemoryChr+. ### Agregado desplazamiento** (+delta) -> un AiFile válido más grande (la ruta a "AGREGAR AI", más allá del presupuesto local de bytes). etiquetas de salto + tipo de trabajador inferido), edición de operandos + guardar archivo suelto.FFX_MUSIC_SYSTEM_AND_MOD_IDEA(Remapeador de música),FFX_AI_BYTECODE_OPCODE_TABLE_PROVEN,CODEX_MAPVIEWER_WATCH_JARVIS,FFX_MAP_DEVELOPMENT_TOOL_MASTERPLAN(Forja Spira). ### Cambiado / Validado StatSheet/Botín + conservar encabezado Firma/Relleno (el relleno se superpuso aAiFile[0..3]). ### BLOQUEADO / Diferido (honesto) (reconstrucción de juego cerrado). Reproductor encontrado:FFX_FmodMusic_PlayTrackByIndex(181 pistas); el PS2 SPU FIFO está conectado a HD. ### Absorbido de laboratorios/multiagente unión con la segunda cuenta del Codex (MapViewer / carril de textura de modelo): el exportador ahora expone el papel del material señales (TextureSampler1/normalMap/reflexión/agua/PhyreWaterShader), comparación de visor externo (glTF-Sample-Visor como oráculo; brecha probada exporter-side, no cáscara), y el Forja de Espira plan maestro patada inicial. Coordinación de múltiples agentes registrada endocs/ai/CODEX_MAPVIEWER_WATCH_JARVIS.md. ## [v1.7.0] - 2026-06-04 ### AgregadoAppendCode: agrega instrucciones al final + reubica la sección de datos.Rebuild: insertar/eliminar/modificar una instrucción EN CUALQUIER LUGAR + reubica AUTOMÁTICAMENTE todo saltos + puntos de entrada (mapa enlazador antiguo → nuevo) + la sección de datos. Rama huérfana (instr eliminada) -> error honesto. ### Validado los trabajadores resuelven, el punto de entrada posterior a la inserción se reubicó0x2D1→0x2D4por sí solo; prueba de crecimiento (AppendCode) RT0. ## [v1.6.0] - 2026-06-04 ### Validado StatSheet/Botín + preservar encabezadoSignature/Padding(el relleno se superpuso aAiFile[0..3]). ## [v1.5.0] - 2026-06-04 ### Validado / BLOQUEADO intercambiar BLOQUEADO** (FMOD API__thiscall, sonda cdecl-solo). DocFFX_MUSIC_SYSTEM_AND_MOD_IDEA(Remapeador de música). ## [v1.4.0] - 2026-06-04 ### Validado (en vivo) habilidad: el monstruo no necesita "poseerla". Prueba: un Dole escupió al Fuego infernal de Ifrit en la pantalla. ## [v1.3.1] - 2026-06-04 ### Fijo / Validado (en vivo) banderas). Escaneo automático (estadoScan) activado. ## [v1.3.0] - 2026-06-04 ### Validado (en vivo) (POINTER_BATTLE_ENEMY_LIST 0xD34460, zancada0xF90) + sonda. ## [v1.2.0] - 2026-06-04 ### Agregado saltar etiquetas) + edición de operandos + guardar archivo suelto. ## [v1.1.0] - 2026-06-04 ### Validado (🏆 TÍTULO — objetivo supremo n.° 1) cambios de comportamiento en la pantalla (Flan de llamas Piro++→Electro++), sin bloqueo, reversible. Cadena:enemy-list 0xD34460->MemoryChr.Ptr_script_chunks +0xF78-> live AiFile === diskm0NN.binbyte idéntico. Documento:docs/reverse/FFX_AI_RT2_LIVE_EDIT_PROVEN_2026-06-04.md. ## [v1.0.0] - 2026-06-01 Hito de madurez para el editor como plataforma REAL de lectura, validación y navegación de conocimientos, con suficiente superficie de productoExtraspara justificar un1.0honesto, aunque los jefes de tiempo de ejecución, AI y reproducción corporal todavía están abiertos. ### ReflejosPS2 KnowledgeTextures (TM2 + TXC/CLT/FMT/SPS2 support lane)BIN-FTC AtlasProject / PipelineMagic EffectsPresentation ContainersBattle Corpus Crosswalk### AgregadoMagicPackageViewerBatEffPackageViewerMagicEffectCrosswalkExplorerFtcHeaderInspectorBinSidecarGraphSignature Groupen el caparazónTxcCltPairExplorer- frío
fmt/sps2metadatos ### Cambió ### Validado read-onlydo not promoteno runtime proofcuando correspondapipeline/support onlycuando corresponda ### Notasmagic solvedAI solvedModelViewer playback solved- amplia autorización del escritor ## [v0.11.0-beta.2] - 2026-06-01 Evolución REAL del producto para la línea
Extrasenmain. ### Reflejos masterffx_ps2ps3dataPS2 KnowledgeTextures (TM2)BIN-FTC AtlasProject / Pipeline### AgregadoExtrasSourceResolverExtrasEvidenceBadgeModelExtrasProvenanceModelExtrasReadonlyBoundaryModelExtrasFileOpenServiceCdIndexExplorerProjectDescriptorViewerAbmapSupportGraphdocs/history/PT52_BIN_FTC_FILE_MEANING_GUIDE_2026-06-01.mddocs/history/PT53_BATTLE_MAGIC_FILE_MEANING_GUIDE_2026-06-01.mddocs/history/PT54_PROJECT_ABMAP_FILE_MEANING_GUIDE_2026-06-01.mddocs/history/PT56_TEXTURE_PALETTE_FILE_MEANING_GUIDE_2026-06-01.mddocs/history/PT57_PRESENTATION_CONTAINER_FILE_MEANING_GUIDE_2026-06-01.mddocs/history/PT58_FFX_PS2_OWNERSHIP_AND_LINKAGE_GUIDE_2026-06-01.md### Cambió ### Validado- ningún escritor
- no reempacar
- no hay reclamaciones de decodificación finales
- no mezclar investigación en frío con prueba de tiempo de ejecución ### Notas
kernel -> mag_* -> bat_eff## [v0.10.0-beta.1] - 2026-05-31 Consolidación de la sucursal principal beta después de la primera ola fuerte de absorción de talleres seleccionados. ### Reflejos ### AgregadoShop ExplorerFfxLib/ShopAssets/Shop- un escritor protegido para
item_shop.binyarms_shop.bin NameDescriptionTextPrefixTable_Filereader + no-edit guardparaimportant.binreader + no-edit guardparaa_ability.bin### Cambió ### Validado ### Diferido ### Bloqueado ## [v0.9.0-beta.1] - 2026-05-31 Primera versión que asume honestamente el tamaño REAL del editor y del ecosistema que lo rodea. ### Aspectos destacados de la sucursal principal ### Superficie de producción presente en principal ### Absorbido de los talleresTextLabTools;ProductionAuditTools;- Arnés y liberación de texto/monstruo conservadores.
PlayerGrowthEditor;CtbBaseEditor;MixTableEditor;- la línea histórica que luego sostuvo a
KeyItemEditor. AutoAbilityEditor;- analizadores conservadores de
AutoAbility_File.csyArms_Rate.cs. Shop Explorer;FfxLib/Shop;Assets/Shop;- escritor protegido para
item_shop.binyarms_shop.bin. ### Gobernanza y control de versiones ### Validado ### Todavía BLOQUEADO ### Por qué esto sigue siendo Beta ## Reconstrucción Semántica Histórica Nota editorial importante: ## [v0.8.0-beta.1] - reconstrucción histórica (SemVer oficial anterior a Git) Hito donde el ecosistema ya opera como un gran editor modular con múltiples frentes especializados vivos al mismo tiempo. ### Superficie principal en esta etapa ### Presión del ecosistema ### Aún falta ## [v0.7.0] - reconstrucción histórica (SemVer oficial anterior a Git) Hito en el que la línea principal pasa de “más módulos” a “más pruebas”. ### Agregado ### Cambió ### Aún no es seguro ## [v0.6.0] - reconstrucción histórica (SemVer oficial anterior a Git) Hito donde la línea kernel y el endurecimiento conservador de los sistemas secundarios dejan de ser una promesa y pasan a formar parte de un editor serio. ### Agregado ### Cambió ### Aún falta ## [v0.5.0] - reconstrucción histórica (SemVer oficial anterior a Git) Hito de la fuerte olaKernelTablesLab. ### Agregado ### Cambió ### Aún falta ## [v0.4.0] - reconstrucción histórica (SemVer oficial anterior a Git) Hito donde el proyecto aprende a decir “sí” y “no” en texto con criterio REAL. ### Agregado ### Cambió proven reader;conservative writer;blocked; ### Aún falta ## [v0.3.0] - reconstrucción histórica (SemVer oficial anterior a Git) Hito donde el editor deja de ser solo un explorador de archivos y comienza a tocar AI, el tiempo de ejecución y las superficies de juego de alto valor. ### Agregado ### Cambió ### Aún falta ## [v0.2.0] - reconstrucción histórica (SemVer oficial anterior a Git) Hito de la expansión estructural del editor hacia grandes sistemas visibles. ### Agregado ### Cambió ### Aún falta ## [v0.1.0] - reconstrucción histórica (SemVer oficial anterior a Git) Sincero hito mínimo donde ya existía un editor REAL, muy por encima de un prototipo desechable. ### Agregado ### Cambió ### Aún falta ## [línea de base-2026-05-31] - 2026-05-31 Importación inicial honesta de producción a Git. ### Agregado ### Preservado ### Validado ### Notas ## Historial de miniversiones del taller Nota: ## [pt2-v0.3.0-superseded.1] - 2026-05-31 ### Misión ### Evolución ### Resultado de la sucursal principal ### Estado final ## [pt3-v0.8.0-freeze.1] - 2026-05-31 ### Misión ### Evolución ### Resultado de la sucursal principal ### Estado final ## [pt4-v0.5.0-hold.1] - 2026-05-31 ### Misión ### Evolución ### Resultado de la sucursal principal ### Estado final ## [pt5-v0.9.0-final.1] - 2026-05-31 ### Misión ### Evolución ### Resultado de la sucursal principal ### Estado final ## [pt6-v0.7.0-beta.1] - 2026-05-31 ### Misión ### Evolución ### Resultado de la sucursal principal ### Estado final ## [pt7-v0.9.0-final.1] - 2026-05-31 ### Misión ### Evolución ### Resultado de la sucursal principal ### Estado final ## [pt8-v0.7.0-freeze.1] - 2026-05-31 ### Misión ### Evolución ### Resultado de la sucursal principalShop Explorer;FfxLib/Shop;Assets/Shop;- barandillas documentadas en
docs/history/PT8_SHOP_GUARDRAILS.md. ### Estado final ## [pt9-v0.6.0-alpha.1] - 2026-05-31 ### Misión ### Evolución ### Resultado de la sucursal principal ### Estado final ## [pt10-v0.2.0-final.1] - 2026-05-31 ### Misión ### Evolución ### Resultado de la sucursal principal ### Estado final ## [pt11-v0.3.0-blocked.1] - 2026-05-31 ### Misión ### Evolución ### Resultado de la sucursal principal ### Estado final ## [pt12-v0.3.0-package.1] - 2026-05-31 ### Misión ### Evolución ### Resultado de la sucursal principal ### Estado final ## [pt13-v0.3.0-package.1] - 2026-05-31 ### Misión ### Evolución ### Resultado de la sucursal principal ### Estado final ## [pt14-v0.2.0-architecture.1] - 2026-05-31 ### Misión ### Evolución ### Resultado de la sucursal principal ### Estado final ## [pt15-v0.2.0-architecture.1] - 2026-05-31 ### Misión ### Evolución ### Resultado de la sucursal principal ### Estado final ## [pt16-v0.2.0-architecture.1] - 2026-05-31 ### Misión ### Evolución ### Resultado de la sucursal principal ### Estado final ## [pt17-v0.3.0-guardrail.1] - 2026-05-31 ### Misión ### Evolución ### Resultado de la sucursal principal ### Estado final ## [pt18-v0.3.0-governance.1] - 2026-05-31 ### Misión ### Evolución ### Resultado de la sucursal principal ### Estado final ## [pt19-v0.3.0-surface.1] - 2026-05-31 ### Misión ### Evolución ### Resultado de la sucursal principal ### Estado final ## [pt20-v0.2.0-strategy.1] - 2026-05-31 ### Misión ### Evolución ### Resultado de la sucursal principal ### Estado final ##v2.227.0.0(2026-08-08) — Visual QA infra: modelos GRATUITOS de código abierto enverboo_router.py(límites honestos + comparación de potencia). MENOR. Carril Jarvis-CLINE. [anterior:v2.226.0.0] ##v2.226.0.0(2026-08-08) — Visual QA infra: Integración OpenCode Go (gpt-5.6-luna) + mododesc+ mensaje UX humanizado + corrección de informe. MENOR. Carril Jarvis-CLINE. [anterior:v2.225.2.0] ##v2.225.2.0(2026-08-06) — F7 Monster AI Intercambio: estado de capacidad a través de RAM. MENOR. Carril Jarvis-HOOK. [anterior:v2.225.1.0] ##v2.225.1.0(2026-08-06) — Tesoro Mapa: análisis del encabezado ATEL + corrección del glosario. PARCHE. Carril Jarvis-CLINE. [anterior:v2.225.0.0]
v2.11.0BETA
Seymour
🧠 AI ENSAMBLADOR PRODUCTIZADO (un editor monstruo-AI utilizable):
- el códec "edita el AI 100% libremente" se convirtió en una FUNCIÓN. Nuevo en el carril
FfxLib/Ai+Modules/MonsterAiEditor: - Biblioteca de comportamiento (
AiSnippetLibrary): plantillas parametrizadas cuyos bytes ESPEJO prueban el corpus modismos: lineal (force-cmd/perform-cmd/grant-field/set-stat/raw-call) y condicional (RNG Rotación 1 en K, comando de fuerza en caso de contador/fase). - Validador previo al vuelo (
AiValidator): código de operación∈48, HasOperand vs 0x80, rama colgante/punto de entrada (nombra cuál, en lugar del lanzamiento opaco), rangos de operandos, autocomprobación RT0, ejecución en seco de reconstrucción, crecer/reducir;SaveAssemblerahora está a la defensiva (se niega a escribir en errores). - Selector de comando amigable (
AiCommandId): operando performCommand ↔ nombre vía(cat<<12)|idsobreCommandCharacter/CommandMonster1_Dictionary; Menú desplegable UI (no más hexadecimal sin formato). - Nuevas primitivas de códec (
AiScript_File):GrowWorkerJumpTable(agrega ranuras a la tabla de salto de un trabajador — habilita una NUEVA rama) +AppendGuardedAction(antepone una acción protegida a un punto de entrada, preservando el controlador original) +OperandKindOf. - UI en
MonsterAiEditor: tarjeta de biblioteca de comportamiento + botón/informe Validar + menú desplegable de comandos. - Puerta
AiScriptLab --ai2PASS (corpus REAL, 361): salto-crecimiento 898/898 trabajadores, acción protegida 692/692 (primer+último punto de entrada) + centinela sintético 1/1, validador limpio 346/346, AiCommandId 620/620, captura positiva 8/8/8 (jumpOOB a través de la ruta del editor). Puerta original--RT0 361/361 intacta. - A Se encontró una revisión adversaria de 4 agentes + se corrigieron 2 errores (uno-past-fin centinela sí mismo-bucle;
OperandKindeliminado en la ruta de guardado del editor), ahora bloqueado por la puerta. Documentos:docs/reverse/FFX_AI_JUMPTABLE_GROW_PROVEN_2026-06-05.md+docs/ai/FFX_AI_ASSEMBLER_PRODUCTIZED_2026-06-05.md. - ⚠️ Estructura probada SIN CONEXIÓN; comportamiento en el juego (RT2) pendiente Halyson está bien (sonda). Plantillas "curar aliado < 25% HP" y "enfurecer en el turno N" NO se envían (campo HP/ancla de contador de turnos no confirmado por bytes).
SUCESSOR_FFX_HD_MODELOS_MASTER_2026-06-05.mdcerrado por suma/npc. - Texturas (basadas en manifiesto):
extract-texture-batchenRuntimeTools/PhyreModelExportLabganado--from-manifest, que lee el<id>.ahwin32g_fileNames[](manifiesto de activos autorizado) y extrae la textura EXACTA que carga el juego. 305 PNG (pc/npc/suma), mapa de procedenciatexture-provenance-map.json, 0 discrepancia silenciosa. RE:ahwin32es un encabezado C legible: resuelve referencias cruzadas (c906←c106,c908←c108,c806←c805) Y multitextura (c101+c101_01,n238+n238_hair,n356←n238_hair) sin IDA. Búsqueda adicional: clave de herencia de equipo NPC =0x6NNNen el.chr(mapa nXXX→kNNN, 222/222 válido). Documentodocs/reverse/FFX_AHWIN32_ASSET_MANIFEST_2026-06-05.md. - Hornear (malla+textura+animación): controlador
work/_scratch_mgrp/bake_cast.pyvíaphyre_chr_gate. Estático 253/253 (molde entero texturizado, limpio). Animado: suma de movimiento propio, npc heredaskl/<base>. - Visual QA (flujo de trabajo, 21 agentes de visión): 248 animados clasificados a través de F3D — 157 limpios / 58 de torsión / 33 explotaron. El selector de enlaces (rest/A1) en el 33 no se solucionó.
- 🔧 CORRECCIÓN Hélice (2026-06-06): F3D estaba MENTIDO en la animación revestida. Diagnóstico Hélice (malla
EXPLODE_RATIO≈1.0, sin crecimiento) + el renderizado veraz de Eevee demostró que los "explotados" tienen un cuerpo intacto, sólo una extremidad/accesorio estirado. Re-QA (8 agentes sobre renderizados de Hélice) corrige a 175 limpio (71%) / 59 torsión (24%) / 14 explotaron (6%) — 20 modelos rescatados, el horneado fuera de línea siempre fue ~94% utilizable. Los 14 genuinos = 11 Eones + 3 npc (equipo no humanoide; necesita mocap/mapa principal RE). Regla actualizada: el La pantalla de BLENDER decide, F3D miente. Tuberíawork/_scratch_mgrp/blender_{diagnose,render_anim,batch_render}.py. - 🎯 RETARGET RESUELTO a través de
--retarget-delta(2026-06-06): 175 → 215 limpio (87%). Nuevas clasesphyre_chr_gatebandera que aplica el movimiento heredado como delta de frame0 al REST npc (M=restLocal·inv(m0)·mf), preservando npc proporciones en lugar de imponer las de la base. IDA RE demostró que la reasignación.chr@0x30ya se aplicó: el La causa fue el retarget de pose de descanso, no la reasignación (docFFX_INHERITED_MOTION_REMAP_RUNTIME_2026-06-06.md). Piloto+lote de 73 fallos + Hélice re-QA + por-modelo mantener-best: +40 limpio, 44 rescatado, CERO regresión (Me quedé porque retrocedería). NPC animado = 200/222 limpio (90%), 0 explotado; 8 Aeons todavía explotaron (malla inmune → mocap). Resuelve el MASTER §2.4 "A1-universal" sin riesgo de A1. - 🐉 TODO EL REPARTO cerrado sin conexión (2026-06-06): 498/643 limpio (77%), 90% utilizable. Veraz extendido-Hélice-QA+ retarget-delta + mantener-best para el resto: obj/wep/pc (46 limpio/55, grupo limpio) Y los 340 MONSTRUOS. el viejo monstruo QA (bbox) afirmó "0 explosiones" = una mentira; veraz Hélice QA (29 agentes) encontrado 127 fallos reales; retarget-delta en los 66 heredados → 36 ascendidos, monstruos 206→237 limpios. Total animado (643): 498 limpio/ 86 de torsión / 51 explotados / 8 en blanco. Residual (9%) = malla divergente / unión degenerada → mocap/malla-RE, no reorientación.
- obj/wep/pc (2026-06-06): mismo canal extendido - estático obj 110/110 + wep 79/79 + pc 34/49 (15 pc falla = ranuras
c8xxficticias sin PS2.chr). Todo el elenco HD estático = 476 modelos. obj/wep en su mayoría rígido (animación escasa 25/7); verificación puntual de la pantalla: f001/w001/c004=Auron limpio. - Galería
work/cast_hd_gallery.html(visor de modelo, alternancia estática/anim, filtro suma/npc/obj/wep/pc). Todo dentrowork/(ignorado por Git): solo los COMANDOS son código. sin aumento de csproj (lab/RE en RuntimeTools).FFX_TOOLBOX_DISCOVERY_PLAYBOOK_2026-06-05.md): un barrido en línea + investigación de licencias de herramientas externas FFX HD/PS2 (VBF, Phyre, kernel.bin, ATEL, FMOD, TM2, FMV) y editor NuGets. La clave examinada encuentra: Cargador de archivos externo (ffgriever, BSD-2) archivo suelto sin reempaquetar, Kaitai Struct (tiempo de ejecución de C# MIT) para generar lectores C#+JS, fahrenheit (MIT, C#) gancho+marco mod DLL y confirmación de que FFXDataParser NO tiene LICENCIA (solo estudio). La columnatested?sigue siendo❌: prueba de Oráculo contra el corpus local es pendiente, plan incluido en el propio documento. Solo documento: sin csproj Aumento (regla de solo documentos lab/RE). 58expedientes empaquetados;- un manifiesto por expediente;
- una copia reflejada con Git-seguro bajo
docs/history/DOSSIÊ FFX 01-06-2026/; - un informe de exclusión para el binario externo gigante único bloqueado por los límites de tamaño de GitHub.
- bases de conocimientos separadas para talleres;
- un atlas maestro agregado;
- raíz
KNOWLEDGE_BASE.mdcomo punto de entrada único; - un plan de fusión oficial;
- un anexo de talleres dependientes
Pt6/Pt9; - Líneas familiares técnicas formales del proyecto.
merge in docsExtras nowExtras laterfrozen researchhistorical cleanupps3dataffx_ps2- cierre ejecutivo
- compendio de talleres infantiles
- tiempo de ejecución/AI atlas
- arranque sucesor
- tablero de vencimiento corto
Extras nowveredictoExtras laterveredicto- límites de investigación congelados
- derivado
Pt67producto rol ps3datavsffx_ps2dividido- libro de reglas de procedencia
- facetas de cita obligatoria ### Agregado
important.bina_ability.binReadNo-Edit Byte IdentityReread- contratos de token de texto aditivo en
FFXProjectEditor/FfxLib/Text/* - una utilidad pura de validación/decisión de ida y vuelta
TextLabTools/TextContractHarnesscomo el primer consumidor de humo del lado de produccióndocs/history/BATTLE_AI_FRONTIER_2026-05-31.mddocs/history/MODELVIEWER_BINDING_FRONTIER_2026-05-31.mddocs/history/PT23_TO_PT34_KNOWLEDGE_BASE.mddocs/history/PT23_TO_PT34_CHANGELOGS.mddocs/history/PT23_TO_PT34_BRANCH_MAP.mddocs/history/PT23_TO_PT45_CODE_KNOWLEDGE_BASE.mddocs/history/PT23_TO_PT45_CHANGELOGS.mddocs/history/PT23_TO_PT45_BRANCH_MAP.mdKNOWLEDGE_BASE.mddocs/history/PT2_TO_PT11_KNOWLEDGE_BASE.mddocs/history/PT12_TO_PT22_KNOWLEDGE_BASE.mddocs/history/PT23_TO_PT45_KNOWLEDGE_BASE.mddocs/history/PT2_TO_PT45_MASTER_KNOWLEDGE_BASE.mddocs/history/PT6_PT9_DEPENDENT_WORKSHOPS_ANNEX.mddocs/history/NON_FFX_EDITOR_THREADS_ANNEX.mddocs/history/PT_FAMILY_LINES_ANNEX.mddocs/history/OFFICIAL_MERGE_PLAN_2026-05-31.mddocs/history/PS3DATA_FULL_TREE_RESEARCH_PLAN.mddocs/history/PS2_FULL_TREE_RESEARCH_PLAN.mddocs/history/PT50_TO_PT58_ABSORPTION_PLAN.mddocs/history/PT52_TO_PT58_CLOSEOUT_REPORT_2026-05-31.mddocs/history/PT50_PT51_HISTORICAL_CLEANUP_2026-05-31.mddocs/history/PT6_TEMPORARY_CLOSEOUT_2026-05-31.mddocs/history/PT6_CHILD_WORKSHOPS_COMPENDIUM.mddocs/history/PT6_RUNTIME_AI_DISCOVERY_ATLAS.mddocs/history/PT6_SUCCESSOR_BOOTSTRAP.mdhistory/pt23-battleai-structurehistory/pt24-exactlaunch-seamhistory/pt25-selectorbank-materializationhistory/pt26-battlestate-diffhistory/pt27-routereplay-truthhistory/pt28-battlecapacity-prephistory/pt29-keyitem-crashfixhistory/pt30-autoability-crashfixhistory/pt31-geometryviewport-blockhistory/pt32-chrcarrier-decodehistory/pt33-aislice-payloadhistory/pt34-legacybridge-narrowing### CambióCurrentWorkspaceOverviewCurrentMonsterEditorCurrentItemsCurrentBattleExplorerCurrentLiveBattleLabCurrentStringExplorerEncodeSafeDecodeOnlyRawPreserveUnknownRiskReuseOriginalBytesReencodeAllowedBlocked- envoltorios operativos para la línea
Extras / ps3datalínea - útiles microtalleres
Pt6 / Pt23AI con conocimientos preservados y estado de archivo seguro merge nowmerge laterExtras/read-onlyknowledge onlyPt56,Pt52,Pt54,Pt58= ataque ahora en softwarePt57y partes dePt53/Pt55= ataque posterior, todavía de solo lecturaPt53,Pt55,Pt57= investigación agresiva sin exageraciónPt50,Pt51= limpieza histórica antes de que cuenten como fuentes limpiasMagicPackageViewerBatEffPackageViewerMagicEffectCrosswalkExplorernever blind merge### Validado- objetivo
- utilidad
- probabilidad de fusión
- mini registro de cambios por taller
binding truthidioma- fuerte estrechamiento para
owner/target/parentage/commit - base de barandilla para
Pt6yPt23 formation 0..7enemy actor rows 0..10rawMonsterId -> corpuscomposition truthfrente aactor-surface truthPt46 / AIBlobParityGrammarLabPt47 / AIRuntimeDispatchLabPt48 / SafeAIMicroProbeLabcomo parte del legado tiempo de ejecución/AI, incluso sin reclamos de escritor o parcheador.- base antigua
Pt2..Pt11 - base de onda medios
Pt12..Pt22 - base de olas pesadas
Pt23..Pt45 - un único atlas agregado con memoria/runtime/binding/guardrails
- satélites de
Pt6 - satélites de
Pt9 - excepciones del lado de producción
Pt29/30 Model Viewer / BindingBattle / AI / Runtime TruthText SafetyKernel / ShopTooling / Safety / ReleaseProduction Crashfixes### Notas ### Planificado ### AtrasoTextSourceCapabilityIndex*StringExplorerUI cableado0x10 + 0x120x13### Bloqueado ## [v2.13.0] - 2026-06-05 ### Agregado ### Notas ## [v2.12.0] - 2026-06-05 ### AgregadoFfxLib/BattleMap/BattleArenaPositionWriter.csre: estampa el X/Y/Z de cada actor en la matriz de anclaje chunk3 EN SU LUGAR (monstruos en el campo = puntero+0x20; también fiesta/eón/puesta en escena porrole), solo valor: nunca se toca el encabezado/punteros/recuento/otros fragmentos conserva W palabra por palabra. Dado que la transformación de la escena de batalla es IDENTIDAD (IDA-probado, v2.10.0.1), una coord seleccionada en el espacio de la escena se escribe palabra por palabra. El mismo patrón de ranura segura queFormationSlotWriter(guardia + respaldo una vezWriteLooseFile). ### Validado RT0 (sin edición == byte idéntico) 862/862, SOLO POSICIÓN (diferencia limitada a la matriz+0x20) 862/862, RE-LEER 862/862, + GUARDAR CICLO DE VIDA (sin editar/editar/restaurar en una copia temporal) PASS. BiancaCatalogLab + AuroraChamberLab + BattleArenaPositionLab (anteriormente omitido). Completo CI PASS (7/7 puertas): ReverseHarness, AiScriptLab, FormationSlotLab, AbilityCommandLab + los 3 nuevos. ### Diferido desconectado; la pantalla del juego es el árbitro. Agregar/eliminar espacio para monstruos (variar el recuento) = estructural (Reconstruir), a continuación. ## [v2.11.1] - 2026-06-05 ### Agregado cuadro que filtra las filas de diálogo por contenido de texto y (2) un filtro de idioma (casillas de verificación en inglés/japonés, Inglés por defecto) — anteriormente, JP y EN estaban incluidos en la MISMA lista (japonés primero = un muro de japoneses). RefactorizadoEventExplorer_DataModel(allTextRows+ApplyTextFilter, English-primero) + axaml (buscar TextBox + Japón/Estados Unidos CheckBoxes). NO toca el escritor (El nivel 1 permanece en--event-rt0397/397 + edición 12/12). ### Notas inyección de traducción, fuera del alcance del escritor). La búsqueda de palabras está dentro del evento seleccionado. ## [v2.10.0.1] - 2026-06-05 ### Probado (RE / IDA, fuera de línea) copia las coordenadas chunk3 (locales de batalla) VERBATIM en el nodo mundial del actor - sin giro Z, escala o rotación; solo Y gana una altura de modelo por actor (actor+0x534). Desde la escena.dae.phyre== el Phyre sin formato cuadro de vértice 1:1, P_scene(X,Y,Z) = P_battle(X,Y,Z) (s=1, R=YO, T=0). Cadena probada:FFX_Battle_AreaChunk_GetSetPosition(0x7AC000; chunk3 base0x112A9B0; copia 4 flotadores palabra por palabra; mundo de actores pos @+0x3B0) →FFX_Battle_ResolveActorPlacement(0x7A9AE0) →FFX_Battle_GetActorByIndex(0x794030, zancada0xF90== RT2 enemigo). La suposición de voltear-Z fue un artefacto al incluir filas de preparación fuera del campo (grupo-atrás Z≈-168). Doc:docs/reverse/FFX_AURORA_BATTLE_TO_SCENE_TRANSFORM_IDA_PROVEN_2026-06-05.md(+ cambio de nombre de cola para el.i64REAL). ### Cambiado (Cámara Aurora – honestidad) traza anclajes directamente en las coordenadas de la escena (el valor predeterminado ya era identidad) y el interruptor voltear-Z se convierte en DESPROBADO/comparación;aurora-actors.jsoncoordSpace=scene_world_identity_ida_proven. ### Diferido≈ chunk3(residual ~0) + medir el término Y exacto. Sonda AUTORIZADA por Halyson; pendiente solo el juego está abierto (LEER a través de la sonda existente, sin código nuevo). SPIRA FORGE permanece en pausa. ## [v2.10.0] - 2026-06-05 ### Agregado contenedor) ya no es de solo lectura. La edición de escenas/diálogos de eventos ahora es un BOTÓN.FfxLib/Event/Event_File.Write.cs(nuevo): reempaquetado del contenedor EV01 con bytes fieles: cada fragmento alineado con re0x40, la tabla de compensación absoluta + terminador EOF recalculada (magia + centinela0xFFFFFFFFpreservada). sin edición = garantizado VERBATIM; el texto editado reutilizaTextTable_File.Write(fragmentos JP=1/EN=4); Script ATEL (0), Desconocido 2 y FTCX (3) conservado byte por byte. Gancho de nivel 2ScriptChunkOverride(re-puntada de un trozo editado-0).Event_File.cs: captura el encabezado sin formato + las tablas de texto; tolera entradas de cadena de campo con puntero nulo (8 archivos) preservando el fragmento palabra por palabra (frontera documentada con texto editable).TextTable_File.Writesobrecarga de aditivo (includeTrailingPadding): emite mesa+piscina sin relleno interno (el contenedor re-pads a 0x40). NO rompe--textstr-rt0(predeterminado = comportamiento heredado).Modules/EventExplorerse convirtió en un diálogo EDITOR: cadenas editables JP/EN (TwoWay TextBox) + un "Guardar diálogo" botón que re-empaqueta y escribe el.ebp. (FfxLib/Ai/AiScript_File.cs, usado solo lectura como donante) lee/edita el script del evento (misma familia AiFile).- Operando local de bytes PARCHE PROBADO (12/12): la edición de un operando de fragmento 0 cambia solo esos bytes; el contenedor re-puntadas idénticas en otros lugares; la lectura re lleva el nuevo operando.
- CRECER (AppendCode) es una frontera documentada: el donante
AppendCode(construido para la batalla, descriptores en DATA) no reubica el uso de scripts de eventos de descriptores residentes en encabezado ([0x38..scriptStart)): necesita reconocimiento de eventos reubicación (coordinar con el carril de Ensamblador AI). ### Validado ida y vuelta 12/12** (intercambiar una cadena → reempaquetar → re-leer: coincidencias de cadenas editadas, fragmentos intactos palabra por palabra, idempotente). 397/397; operando local de bytes parche 12/12. El editor genera 0 errores. (0 descansos), EOF==tamaño de archivo, centinela0xFFFFFFFF. Documentos endocs/reverse/FFX_EVENT_*_2026-06-05.md. ### Honestidad / Diferido texto editable todavía). Nivel 2 = parche probado; añadir/crecer + creación estructural = Nivel 3, no documentado cerrado. Verificación preferida byte sin conexión-RT0; Todavía se recomienda el RT2 de diálogo editado en el juego. ## [v2.9.0] - 2026-06-05 ### Agregado btlmap escena catálogo) al MapViewer y levanta coordenadas del actor de chunk3. Dedicado a Aurora y Bianca. 💛 - Selector de escenas consume
BattleMapCatalog_File/BattlefieldSceneResolver(solo lectura): enumera/selecciona escenas por área y clave de mapa. - Renderizar controla
PhyreMapExportLab(exportación glTF bajo demanda de la escena btlmap) y abreFFXMapViewerWebmediante el enlace profundo?catalog=/?map=/?actors=: un minicatálogo por escena, que nunca toca el contenido compartidocatalog.jsonni reescribirapp.js. - Coordenadas a través del nuevo lector
FfxLib/BattleMap/BattleArenaAnchors_File.cs(puro/libre de Avalonia): decodifica chunk3 (registro de área 96B, punteros+0x10..+0x2C, monstruos vivos+0x20, 16B XYZW Y-arriba elementos), enumera los anclajes locales de batalla y exportaciones JSON para Encounter Creación. artilugios de anclaje de?actors=+ un modo de "selección" (y = 0 plano raycast → coordenadas mundiales). No intrusivos (ganchoswindow.ffxMapViewerDebug; no-ops sin?actors/seleccionar; nunca editaapp.js). ### Validado klyt00_00/sins02_00/mihn00_00 == coordenadas documentadas); corpus 862/862 limpio (0 NaN/Inf, W==0 en monstruos vivos); determinista; BIANCA→escena→batalla→ducto de anclajes 52/52 escenas mapeadas llevan anclas. 10.804 triángulos,gatePass: true). El editor se compila con 0 errores (verificado en un árbol de trabajo HEAD aislado). ### Honestidad / Diferido SIN CALIBRAR** (P_scene = R·s·P_battle + T; voltear-Z/yaw-180 sin resolutor): las anclas son locales de batalla sin procesar, no Exacto al motor. Calibración de la sonda = Onda 3 (necesita el visto bueno de Halyson). SPIRA FORGE permanece EN PAUSA; Aurora solo CONSUME MapViewer + BIANCA (solo lectura/aditivo), sin iniciar nunca el concentrador. ## [v2.8.0] - 2026-06-05 ### Agregado (cataloga las 25 áreas / 56 escenas de HDps3data/btlmap—<area>NN_<variant>conmdl/d3d11/<leaf>.dae.phyre) +FfxLib/BattleMap/BattlefieldSceneResolver.cs. Puro/sin Avalonia, se compila en el editor (0 errores). "azit03"), NO elbattlefieldu16 (es decir, una arena GLOBAL id, compartida entre mapas;bf=1061abarca nagi/prueba/tori/zzzz). Documento:docs/reverse/FFX_BATTLEFIELD_SCENE_BRIDGE_2026-06-05.md. puntero+0x20(float32 X,Y,Z,W; Y-arriba; W=0; zancada de 16 bytes; ranura de formación ↔ entrada). Fiesta+0x10, eón+0x18, cámara+0x2C. Documento:docs/reverse/FFX_BATTLE_FORMATION_POSITION_CHUNK3_DECODED_2026-06-05.md. (-- export --ps3-root <ps3data> --area btlmap/azit/azit03_a). Plan de superposición de actores + calibración de coordenadas de sonda (DISEÑO):docs/ai/FFX_AURORA_COORDINATE_SYSTEM_AND_CALIBRATION_2026-06-05.md(sonda solo con OK de Halyson). ### Validado determinista; 56/56 escenas con exactamente un modelo principal; puente con 0 errores inexplicables (22 HD-huérfano mapas = cortar/PS2-solo ESPERADO; 4 escenas huérfanas bika04/grid00/nagi03/sfia00 = jefe/historia ESPERADA). ### Diferido la sonda DINPUT8 necesita el OK de Halyson y SPIRA FORGE está en PAUSA. ## [v2.7.1] - 2026-06-05 ### Agregado / Validado WeaponNameTable, MacroDictionary, NameDescriptionTextTable, NameDescriptionTextPrefixTable, BtlTextTable, SphereGrid, ShopGearCatalog, BukiGetTreasureCatalog, AlBhedDictionary, PointerScriptTable, BattleTextTable, ShopTable. Patrón de solo conservación (WriteIdentitypara los de reconstrucción con pérdida). Nuevo barrido de puertaTools/Wave1Rt0.cs. ## [v2.7.0] - 2026-06-05 ### Agregado intercambia la partición AiFile por una de DIFERENTE longitud, 16 pads la AiFile, cambia secciones posteriores y reescribe los punteros de la sección de encabezado (m###.bin), escribiendo el AiFile palabra por palabra (sin sobrescribir codeLength). El AI Ensamblador UI ahora GUARDA el crecimiento/reducción (solo conservaba la longitud). Causa de la paliza documentada + solucionada por diseño (Opción B: superficie mínima, NO tocaMonster_File.Write→--monster-rt0se queda 361/361). VM de recuentos de trabajadores + datos por trabajadorlen (ronda 16) (NO partición/DeclaredLength/codeLength) y confía en punteros en el archivo → se respeta la reubicación de crecimiento y la plataforma de seguimiento es segura. (regla de oro: cambiar el nombre de la cola). ### Validado (insertar → empalme con reconocimiento de crecimiento → re-lectura limpia + cola/encabezado preservado palabra por palabra + 16 alineados + idempotente), SHRINK 346/346 (eliminar una instrucción no dirigida → delta negativo → re-lectura limpia + cola preservada).--monster-rt0361/361 (sin regresión). Alineación del corpus: 16/32/64/128/256, 0 plataforma de seguimiento. (edición gratuita)"** tarjeta renderizada con la lista de instrucciones editables (código de operación/operando/eliminar) + Insertar/Guardar estructural + avance. Captura de pantallawork/spira_forge_qa/monster_ai_assembler_v01.png. ### Diferido Sonda DINPUT8 (compartida): bajo el visto bueno explícito de Halyson. sin conexión + RE prueba la seguridad del byte/juego; la pantalla del juego es el árbitro final. ## [v2.6.0] - 2026-06-05 ### Agregado (insertar/eliminar/modificar) en la parte superior del editor de operandos locales de bytes. El AiFile reconstruido proviene deAiScript_File.Rebuild(RT0-probado: reubica puntos de entrada + tablas de salto a través de un mapa antiguo → nuevo). Lista editable (código de operación/operando hexadecimal + eliminar casilla de verificación), insertar después de seleccionar, vista previa delta. Guardar está habilitado sólo para que conserva la longitud ediciones (codeLength sin cambios) → seguro byte a byte empalme a través deSpliceAiFileIntoMonster. CRECER/REDUCIR es LAB (mensaje honesto): el archivo suelto guardado necesita una retransmisión de monstruos con reconocimiento de encabezado + relleno de alineación + prueba en el juego. --ctbbase-rt0→CtbBase_File(ctb_base.bin), solo conservación.--mixtable-rt0→MixTable_File(prepare.bin), solo conservación.--aiasm-rt0→ demuestra el guardado estructural del ensamblador AI (reconstrucción sin edición + retransmisión + byte de empalme idéntico) y mide la alineación del corpus AiFile→WorkerFile. ### Validado La edición que conserva la longitud es segura en bytes. Crecer=LAB (causa: el encabezado 0x34 deMonster_Filese superpone aAiFile[0..4)=codeLength + un cambio de longitud rompe la alineación WorkerFile; el corpus está alineado 16/32/64/128/256, 0 almohadilla de seguimiento). ### Bloqueado / LAB ## [v2.5.0] - 2026-06-05 ### Agregado controles (Open Spector,Capture Next Frame,Export Last Capture) más una primeraMaterial Debugpanel con inventario en vivo de los materiales glTF cargados, un selector, fichas de datos y tarjetas de textura por ranura (map,normalMap,aoMap,envMap, etc.). registra lo que aterrizó, lo que fue validado y lo que queda explícitamente fuera de la prueba. ### Validado Aparecieron los controles y el panelMaterial Debugse completó a partir del glTF cargado. manera confiable, el visor se degrada aFrame preview unavailable/Texture preview unavailable on this source surfaceen lugar de pretender mostrar evidencia visual válida. ## [v2.4.4] - 2026-06-05 ### Agregado batallas seleccionables; al seleccionar uno se publica enFieldContext.SelectedBattleIdy el Editor de formaciones salta directo a esa batalla (carga su formación). Realiza el plan maestro "haga clic en una zona, intercambie la formación" a través de la columna vertebral compartida, sin tuberías de concha.FieldContextganadoSelectedBattleId/SelectBattle. ### Validado 37 BattleIds sin carpeta + 37 carpetas a las que nunca se hace referencia (batallas especiales/evento): el traspaso se filtra al los que existen. El editor saltó a la batalla cargada). Captura de pantallawork/spira_forge_qa/handoff_encounter_to_formation_v04.png. ## [v2.4.3.1] - 2026-06-05 ### Reverso / Prueba hipótesis (CONTINUE_AQUI_PERNAS_HD): el mapa "52m_skeletonMatrices→ 79 uniones" vive en el archivo Phyre, no en IDA.- La paleta de aspectos es
PMatrix4[0..51](vinculada desdePMeshcampo 12); es igual al vivom_skeletonMatricesbyte por byte (maxDist=0.00000). - El mapa de ranura → nodo es
inten desplazamiento 12 de cadaPSkeletonJointBounds[j](52 ranuras → 52 nodos, biyección). - Composición
m_defaultPosea través dem_matrixParentsreproduce el autor inverse-vincular EXACTAMENTE:0/52nodos divergir. Entonces--hd-defpose+--hd-parentsya es el verdadero vínculo del juego. - Causa raíz de la bobina histórica: un horneado sin
--hd-defpose/--hd-parentsvuelve a serinvBind = PMatrix4[52+b](matriz LOCAL sin procesar) → la malla explota. La receta defpose+parents es la solución y ya es la predeterminada de la galería. - Nuevas sondas de solo lectura:
work/_scratch_mgrp/phyre_palette_probe(localiza la paleta, demuestra que la unión es exacta, emitenode_to_slot.json) yphyre_legs_probe(matcher; ilustra el problema de la traducción coincidente). ### Validado c007 (Rikku) — en descanso forzado, batalla (id5_c4318 t0.0–0.9), 4 ángulos de pantorrilla en cuclillas profundas y clip múltiple (c4333/c4365/c4886). Numéricamente: las matrices local/mundial de articulación de pierna son rígidas perfectas (escala=1, det=+1, orto 0.0000). No. IDA. Prueba completa endocs/reverse/FFX_HD_SKIN_PALETTE_DECODED_LEGS_NOT_BIND_2026-06-05.md. ## [v2.4.3] - 2026-06-05 ### Agregado existía pero nunca había sido controlado por bytes, cerrando 4 familias de base editable más concretas: --keyitem-rt0(Tools/KeyItemRt0) →KeyItem_File(important.bin), escritor de solo conservación (clona el bytes originales + re -sellos soloPrimerByte10/OrderingByte13).--treasure-rt0(Tools/TreasureRt0) →Treasure_File(takara.bin), ida y vuelta con decodificación completa (4 bytes/entrada).--customization-rt0(Tools/CustomizationRt0) →Customization_Fileengranaje kaizou.bin + eón sum_grow.bin (conserva el prefijo/cola del encabezado + re: emite las entradas decodificadas).--autoability-rt0(Tools/AutoAbilityRt0) →AutoAbility_File.WriteAbilities(a_ability.bin, DATOS sección), escritor de sólo preservación. (Leearms_rate.binsolo para satisfacer el contrato de lectura; NO escribe arms_rate y NO cubre el reempaque deWriteAbilitiesAndText/texto.) ### Validado takara.bin (503 entradas, 2012 B), kaizou.bin (125) + sum_grow.bin (77), a_ability.bin (134 entradas, 19590 B). Guardado sin edición = byte idéntico; editar = local al byte (el mismo patrón de solo conservación que cerró Monstruo/Encounter). Elimina parcialmente la advertencia histórica "important.bin/a_ability.bin bloqueado para afirmaciones de escritores seguros contra mutaciones": la edición de campos (sección de datos) ahora está probada; el reempaquetado del grupo de texto permanece sin reclamar (mismo estilo monmagic riesgo: fuera del alcance de esta puerta). ## [v2.4.2] - 2026-06-05 ### Agregado en línea (p. ej.[m003 - Murussu, m003 - Murussu, m009 - Dingo]). Carga diferida + caché + limitado (≤90 visibles batallas; con el listado completo pide filtrar por zona). Sólo lectura; trae las "zonas pintadas con el color" del plan maestro monstruos que aparecen allí" en el editor (encuentro↔fusión de formación hecha visible). ## [v2.4.1] - 2026-06-05 ### Agregado asistente de producción (guardia de solo ranura + copia de seguridad única.spiraforge.bak+ escritura). Ahora utilizado por el Editor de formaciones (PersistSnapshot) Y probado por la puerta sin cabeza: el mismo código en el editor y en la prueba, sin duplicación. ### Validado espacio de trabajo/activo, solo lectura respetada): (a) Guardar sin edición = bytes de disco idénticos + copia de seguridad==original; (b) editar Guardar = solo ranura en disco + coincidencia de relectura + copia de seguridad preservada; (c) restaurar desde copia de seguridad = byte idéntico. PASS. Cierra la brecha de honestidad v0.2 (guardado en la aplicación probado en disco, reversible). Corpus todavía 858/858;offline_ci4 puertas PASS. ## [v2.4.0] - 2026-06-05 ### Agregado Entradas/Grupos/Formaciones (recuentos VARIABLES + crear tablas), asigna dataOffsets nuevo, reconstruye chunk0 + la tabla de fragmentos conserva bloque compartido + relleno. Puerta--encounter-rebuild-rt0. El estructural base para "CREAR ENCUENTROS". ### Validado (4096/4096)** + prueba de crecimiento (agregar 1 formación, finalizar 0x1000→0x1002, 2 trozos intactos) válido. familia; arreglado el acolchado de arrastre deriva. Nota honesta: el StringExplorerhelp_txt.bininscripciones están MUERTOS en esta extracción (archivo ausente): el escritor está probado en una cadena de campo REAL (spcodedic.bin). ## [v2.3.2] - 2026-06-05 ### Agregado (Ability_Command.ReadList→WriteList), queKernelCommandsya usa para guardar pero nunca fue activado por bytes. Hace referencia al proyecto del editor (árbol de profundidad profundo), llama solo a métodos estáticos FfxLib. Cableado aoffline_ci.ps1. ### Validado (1 byte) 4/4. PASS. Esta es la base comprobada para la función de sueño "nueva magia negra" (vive en command.bin). ### Bloqueado texto original de monmagic comparte/desups mientras queWriteListre-añade (soloFfxEncoding.WriteBytesIntoTextFile) añade; comando/elemento son puramente agregados → coinciden). Riesgo: KernelCommands' MonMagic Guardar infla el archivo — contrólelo hasta que pase un escritor compatible con dedup. Objetivo de auditoría + corrección:docs/reverse/FFX_ABILITY_WRITER_AUDIT_2026-06-05.md. ## [v2.3.1] - 2026-06-04 ### Agregado EOF pasado (kino03_*,mihn05_*,cdsp00_02): trata el fragmento EOF pasado (y más allá) como ausente en lugar de rechazar todo el expediente; Los fragmentos anteriores (incluida la formación @2) siguen siendo válidos. Esas batallas ahora son editables en el Editor de formaciones. ### Validado re-leer 858/858 PASS. Los 843 anteriores sin cambios. ## [v2.3.0] - 2026-06-04 ### Agregado monstruos (16 bytes) de una formación btl_* a través deBattle_File.WriteWithFormationSlots, sólo ranura segura para bytes. Consume la columna vertebralFieldContext(prefiltra las batallas según el área de campo seleccionada del Hub). recolector de monstruos (Monster_Dictionary+ Vacío, conserva el mordisco alto sin procesar). Guardar escribe un archivo suelto del espacio de trabajo con un.spiraforge.bakcopia de seguridad +AssertSlotOnlyDiffguardia, a través deByteSnapshotEditorSession(Deshacer/Descartar). Fuera de línea, sin sonda.offline_ci.ps1(parámetro-BtlRoot). Miembros adicionales de solo lectura enBattle_File(FormationChunkOffset/FormationSlotsOffset/FormationSlotsLength). ### Validado (15 btl_* no analizable por el lector en ese momento; corregido en v2.3.1). ## [v2.2.0] - 2026-06-04 ### Agregado Lomo codificado porfield_token. Selector de campo alimentado por el puente CSV (ps3data-map-btlmap-fieldid-bridge.csv, 357 campos, candidato-estructural). Al seleccionar un campo se publica enFieldContext(singleton observable) y 2 los consumidores reaccionan como solo lectura: enlace profundo del mapa (?map=map/<area>/<field>para FFXMapViewerWeb) + vistazo del encuentro (leebtl.bina través deEncounterTable_File, área candidata↔unión de mapa). CSV copiado a la salida mediante csproj<Content>. Desconectado; el selector funciona sin proyecto. sin escritor, sin investigación. ### Validado Captura de pantallawork/spira_forge_qa/field_hub_v01.png. ## [v2.1.1] - 2026-06-04 ### Validado--player-rt0puerta:ply_save.bin(3098) +ply_rom.bin(2161) -> sin edición RT0 idéntico byte a byte. (Los escritores ya existían solo para espacios; ahora están cerrados). ## [v2.1.0] - 2026-06-04 ### Agregadobtl.binbyte por byte y re marcan solo los campos editables (tablaId/Unknown0C, grupoBattlefield/Danger/TotalWeight, formaciónId/Weight).--encounter-rt0puerta en el editor. ### Validado ## [v2.0.0] - 2026-06-04 > NUEVA ERA — MAJOR. El editor pasó de "edición de archivos sin conexión" a EDICIÓN PROBADA EN TIEMPO DE EJECUCIÓN EN VIVO: > editar el código de bytes AI de un monstruo en RAM y ver el cambio de comportamiento en la pantalla, sin fallas, reversible — > el objetivo supremo #1 del proyecto, realizado. MAJOR = una nueva clase de capacidad (no un contrato/guardado/compilación > romper: solo agregamos y endurecimos).-betaporque RT2/God-Modo aún no se han convertido en productos en UI cerrado. > Hito de la ola Claude Código / VSCode + la unión con la segunda cuenta del Codex. ### Reflejos cambios en la pantalla: Flan de llamas Piro++→Electro++, sin bloqueo, reversible. Cadena:enemy-list(0xD34460) ->MemoryChr.Ptr_script_chunks(+0xF78) -> AiFile en vivo === discom0NN.bincon bytes idénticos. habilidad GLOBAL: el monstruo no necesita "poseerla". Prueba: un Dole escupió al Fuego infernal de Ifrit en la pantalla. reanimación de datos (banderas de muerte + KO), todo mediante sondaMemoryChr+. ### Agregado desplazamiento** (+delta) -> un AiFile válido más grande (la ruta a "AGREGAR AI", más allá del presupuesto local de bytes). etiquetas de salto + tipo de trabajador inferido), edición de operandos + guardar archivo suelto.FFX_MUSIC_SYSTEM_AND_MOD_IDEA(Remapeador de música),FFX_AI_BYTECODE_OPCODE_TABLE_PROVEN,CODEX_MAPVIEWER_WATCH_JARVIS,FFX_MAP_DEVELOPMENT_TOOL_MASTERPLAN(Forja Spira). ### Cambiado / Validado StatSheet/Botín + conservar encabezado Firma/Relleno (el relleno se superpuso aAiFile[0..3]). ### BLOQUEADO / Diferido (honesto) (reconstrucción de juego cerrado). Reproductor encontrado:FFX_FmodMusic_PlayTrackByIndex(181 pistas); el PS2 SPU FIFO está conectado a HD. ### Absorbido de laboratorios/multiagente unión con la segunda cuenta del Codex (MapViewer / carril de textura de modelo): el exportador ahora expone el papel del material señales (TextureSampler1/normalMap/reflexión/agua/PhyreWaterShader), comparación de visor externo (glTF-Sample-Visor como oráculo; brecha probada exporter-side, no cáscara), y el Forja de Espira plan maestro patada inicial. Coordinación de múltiples agentes registrada endocs/ai/CODEX_MAPVIEWER_WATCH_JARVIS.md. ## [v1.7.0] - 2026-06-04 ### AgregadoAppendCode: agrega instrucciones al final + reubica la sección de datos.Rebuild: insertar/eliminar/modificar una instrucción EN CUALQUIER LUGAR + reubica AUTOMÁTICAMENTE todo saltos + puntos de entrada (mapa enlazador antiguo → nuevo) + la sección de datos. Rama huérfana (instr eliminada) -> error honesto. ### Validado los trabajadores resuelven, el punto de entrada posterior a la inserción se reubicó0x2D1→0x2D4por sí solo; prueba de crecimiento (AppendCode) RT0. ## [v1.6.0] - 2026-06-04 ### Validado StatSheet/Botín + preservar encabezadoSignature/Padding(el relleno se superpuso aAiFile[0..3]). ## [v1.5.0] - 2026-06-04 ### Validado / BLOQUEADO intercambiar BLOQUEADO** (FMOD API__thiscall, sonda cdecl-solo). DocFFX_MUSIC_SYSTEM_AND_MOD_IDEA(Remapeador de música). ## [v1.4.0] - 2026-06-04 ### Validado (en vivo) habilidad: el monstruo no necesita "poseerla". Prueba: un Dole escupió al Fuego infernal de Ifrit en la pantalla. ## [v1.3.1] - 2026-06-04 ### Fijo / Validado (en vivo) banderas). Escaneo automático (estadoScan) activado. ## [v1.3.0] - 2026-06-04 ### Validado (en vivo) (POINTER_BATTLE_ENEMY_LIST 0xD34460, zancada0xF90) + sonda. ## [v1.2.0] - 2026-06-04 ### Agregado saltar etiquetas) + edición de operandos + guardar archivo suelto. ## [v1.1.0] - 2026-06-04 ### Validado (🏆 TÍTULO — objetivo supremo n.° 1) cambios de comportamiento en la pantalla (Flan de llamas Piro++→Electro++), sin bloqueo, reversible. Cadena:enemy-list 0xD34460->MemoryChr.Ptr_script_chunks +0xF78-> live AiFile === diskm0NN.binbyte idéntico. Documento:docs/reverse/FFX_AI_RT2_LIVE_EDIT_PROVEN_2026-06-04.md. ## [v1.0.0] - 2026-06-01 Hito de madurez para el editor como plataforma REAL de lectura, validación y navegación de conocimientos, con suficiente superficie de productoExtraspara justificar un1.0honesto, aunque los jefes de tiempo de ejecución, AI y reproducción corporal todavía están abiertos. ### ReflejosPS2 KnowledgeTextures (TM2 + TXC/CLT/FMT/SPS2 support lane)BIN-FTC AtlasProject / PipelineMagic EffectsPresentation ContainersBattle Corpus Crosswalk### AgregadoMagicPackageViewerBatEffPackageViewerMagicEffectCrosswalkExplorerFtcHeaderInspectorBinSidecarGraphSignature Groupen el caparazónTxcCltPairExplorer- frío
fmt/sps2metadatos ### Cambió ### Validado read-onlydo not promoteno runtime proofcuando correspondapipeline/support onlycuando corresponda ### Notasmagic solvedAI solvedModelViewer playback solved- amplia autorización del escritor ## [v0.11.0-beta.2] - 2026-06-01 Evolución REAL del producto para la línea
Extrasenmain. ### Reflejos masterffx_ps2ps3dataPS2 KnowledgeTextures (TM2)BIN-FTC AtlasProject / Pipeline### AgregadoExtrasSourceResolverExtrasEvidenceBadgeModelExtrasProvenanceModelExtrasReadonlyBoundaryModelExtrasFileOpenServiceCdIndexExplorerProjectDescriptorViewerAbmapSupportGraphdocs/history/PT52_BIN_FTC_FILE_MEANING_GUIDE_2026-06-01.mddocs/history/PT53_BATTLE_MAGIC_FILE_MEANING_GUIDE_2026-06-01.mddocs/history/PT54_PROJECT_ABMAP_FILE_MEANING_GUIDE_2026-06-01.mddocs/history/PT56_TEXTURE_PALETTE_FILE_MEANING_GUIDE_2026-06-01.mddocs/history/PT57_PRESENTATION_CONTAINER_FILE_MEANING_GUIDE_2026-06-01.mddocs/history/PT58_FFX_PS2_OWNERSHIP_AND_LINKAGE_GUIDE_2026-06-01.md### Cambió ### Validado- ningún escritor
- no reempacar
- no hay reclamaciones de decodificación finales
- no mezclar investigación en frío con prueba de tiempo de ejecución ### Notas
kernel -> mag_* -> bat_eff## [v0.10.0-beta.1] - 2026-05-31 Consolidación de la sucursal principal beta después de la primera ola fuerte de absorción de talleres seleccionados. ### Reflejos ### AgregadoShop ExplorerFfxLib/ShopAssets/Shop- un escritor protegido para
item_shop.binyarms_shop.bin NameDescriptionTextPrefixTable_Filereader + no-edit guardparaimportant.binreader + no-edit guardparaa_ability.bin### Cambió ### Validado ### Diferido ### Bloqueado ## [v0.9.0-beta.1] - 2026-05-31 Primera versión que asume honestamente el tamaño REAL del editor y del ecosistema que lo rodea. ### Aspectos destacados de la sucursal principal ### Superficie de producción presente en principal ### Absorbido de los talleresTextLabTools;ProductionAuditTools;- Arnés y liberación de texto/monstruo conservadores.
PlayerGrowthEditor;CtbBaseEditor;MixTableEditor;- la línea histórica que luego sostuvo a
KeyItemEditor. AutoAbilityEditor;- analizadores conservadores de
AutoAbility_File.csyArms_Rate.cs. Shop Explorer;FfxLib/Shop;Assets/Shop;- escritor protegido para
item_shop.binyarms_shop.bin. ### Gobernanza y control de versiones ### Validado ### Todavía BLOQUEADO ### Por qué esto sigue siendo Beta ## Reconstrucción Semántica Histórica Nota editorial importante: ## [v0.8.0-beta.1] - reconstrucción histórica (SemVer oficial anterior a Git) Hito donde el ecosistema ya opera como un gran editor modular con múltiples frentes especializados vivos al mismo tiempo. ### Superficie principal en esta etapa ### Presión del ecosistema ### Aún falta ## [v0.7.0] - reconstrucción histórica (SemVer oficial anterior a Git) Hito en el que la línea principal pasa de “más módulos” a “más pruebas”. ### Agregado ### Cambió ### Aún no es seguro ## [v0.6.0] - reconstrucción histórica (SemVer oficial anterior a Git) Hito donde la línea kernel y el endurecimiento conservador de los sistemas secundarios dejan de ser una promesa y pasan a formar parte de un editor serio. ### Agregado ### Cambió ### Aún falta ## [v0.5.0] - reconstrucción histórica (SemVer oficial anterior a Git) Hito de la fuerte olaKernelTablesLab. ### Agregado ### Cambió ### Aún falta ## [v0.4.0] - reconstrucción histórica (SemVer oficial anterior a Git) Hito donde el proyecto aprende a decir “sí” y “no” en texto con criterio REAL. ### Agregado ### Cambió proven reader;conservative writer;blocked; ### Aún falta ## [v0.3.0] - reconstrucción histórica (SemVer oficial anterior a Git) Hito donde el editor deja de ser solo un explorador de archivos y comienza a tocar AI, el tiempo de ejecución y las superficies de juego de alto valor. ### Agregado ### Cambió ### Aún falta ## [v0.2.0] - reconstrucción histórica (SemVer oficial anterior a Git) Hito de la expansión estructural del editor hacia grandes sistemas visibles. ### Agregado ### Cambió ### Aún falta ## [v0.1.0] - reconstrucción histórica (SemVer oficial anterior a Git) Sincero hito mínimo donde ya existía un editor REAL, muy por encima de un prototipo desechable. ### Agregado ### Cambió ### Aún falta ## [línea de base-2026-05-31] - 2026-05-31 Importación inicial honesta de producción a Git. ### Agregado ### Preservado ### Validado ### Notas ## Historial de miniversiones del taller Nota: ## [pt2-v0.3.0-superseded.1] - 2026-05-31 ### Misión ### Evolución ### Resultado de la sucursal principal ### Estado final ## [pt3-v0.8.0-freeze.1] - 2026-05-31 ### Misión ### Evolución ### Resultado de la sucursal principal ### Estado final ## [pt4-v0.5.0-hold.1] - 2026-05-31 ### Misión ### Evolución ### Resultado de la sucursal principal ### Estado final ## [pt5-v0.9.0-final.1] - 2026-05-31 ### Misión ### Evolución ### Resultado de la sucursal principal ### Estado final ## [pt6-v0.7.0-beta.1] - 2026-05-31 ### Misión ### Evolución ### Resultado de la sucursal principal ### Estado final ## [pt7-v0.9.0-final.1] - 2026-05-31 ### Misión ### Evolución ### Resultado de la sucursal principal ### Estado final ## [pt8-v0.7.0-freeze.1] - 2026-05-31 ### Misión ### Evolución ### Resultado de la sucursal principalShop Explorer;FfxLib/Shop;Assets/Shop;- barandillas documentadas en
docs/history/PT8_SHOP_GUARDRAILS.md. ### Estado final ## [pt9-v0.6.0-alpha.1] - 2026-05-31 ### Misión ### Evolución ### Resultado de la sucursal principal ### Estado final ## [pt10-v0.2.0-final.1] - 2026-05-31 ### Misión ### Evolución ### Resultado de la sucursal principal ### Estado final ## [pt11-v0.3.0-blocked.1] - 2026-05-31 ### Misión ### Evolución ### Resultado de la sucursal principal ### Estado final ## [pt12-v0.3.0-package.1] - 2026-05-31 ### Misión ### Evolución ### Resultado de la sucursal principal ### Estado final ## [pt13-v0.3.0-package.1] - 2026-05-31 ### Misión ### Evolución ### Resultado de la sucursal principal ### Estado final ## [pt14-v0.2.0-architecture.1] - 2026-05-31 ### Misión ### Evolución ### Resultado de la sucursal principal ### Estado final ## [pt15-v0.2.0-architecture.1] - 2026-05-31 ### Misión ### Evolución ### Resultado de la sucursal principal ### Estado final ## [pt16-v0.2.0-architecture.1] - 2026-05-31 ### Misión ### Evolución ### Resultado de la sucursal principal ### Estado final ## [pt17-v0.3.0-guardrail.1] - 2026-05-31 ### Misión ### Evolución ### Resultado de la sucursal principal ### Estado final ## [pt18-v0.3.0-governance.1] - 2026-05-31 ### Misión ### Evolución ### Resultado de la sucursal principal ### Estado final ## [pt19-v0.3.0-surface.1] - 2026-05-31 ### Misión ### Evolución ### Resultado de la sucursal principal ### Estado final ## [pt20-v0.2.0-strategy.1] - 2026-05-31 ### Misión ### Evolución ### Resultado de la sucursal principal ### Estado final