Actualización 2.79
10/6/2026
v2.79.0BETAMINOR
Seymour
SIN Puerta 5 del constructor de cadenas: con puerta del operador copia de seguridad/aplicación SANDBOX — se aplica a un desechable COPIA y DESHACE es idéntico byte a byte; SIN permanece BLOQUEADO para escritura pública
- Abre la Puerta 5 del SIN Cadena Constructor: demuestra un
SinApplyPlanvalidado (Puerta 3/NEMESIS) y AEON-revisado (Puerta 4/OMEGA) se puede aplicar y deshacer en una zona de pruebas/copia controlada, sin tocar el juego, sin tocar ningún archivo de usuario REAL, sin RT2 y sin un botón público. Copia de seguridad/aplicar sandbox no es una creación pública. Nuevas clases sandbox-solo enFfxLib/Ai/Sin:SinSandboxApplyGate(SinSandboxEligibility— el 8 de solo lectura condiciones: válido estructuralmente ·ApplyAcceptablepermanece falso · un SEPARADO permisoAllowSandboxApplyexplícito · AEON AGREGADO-solo · ningún bloqueador crítico fuera del andamio eliminable, la regla que separa los bloqueadores de la Puerta 5 se resuelve (plan-blocker/rung-ladder) de los reales (carga útil candidata/bloqueada,divmul-integrity,jump-slots, paso-bloqueador)),SinSandboxApplySession(orquestador: copiar → copia de seguridad-antes-escribir → emisión REAL al copiar solo → diferencia REAL → verificar que el original esté intacto → restaurar → idéntico byte a byte),SinSandboxBackup(.prev.bakde la copia + pre-image hash +Restore),SinSandboxRestoreVerifier(SHA-256 + byte-comparar) ySinSandboxApplyResult(resultado inspeccionable + plantilla de salida). REAL se aplica a través del códec probado: para la receta elegible, carga una copia desechable de un monstruo REAL (de solo lectura del corpus →work/), construye el cuerpo lineal medianteAppendGuardedAction(siempre-verdadero guardiaPUSHII 1): el único método limpio, sí mismo-relocating que se agrega al final del código (compensaciones existentes estables), se ejecutaSpliceAiFileIntoMonsterGrow, re-lee (re-parses limpio =offline-emittablerenglón), ejecuta un REALAiScript_Diff.Compare(original, edited)(solo el bloque AGREGADO previsto, 0 modificado / 0 eliminado =AEON-reviewedpeldaño, sin deriva) +AiValidator.ValidateRebuilt(AiScriptLab-cleanrenglón), y solo entonces escribe en el COPIA (después del.prev.bak=backup-readyrenglón). 3 recetas piloto (una decisión honesta, nunca forzada en verde): SIN-006 (Véu de Bevelle, turno-1 sí mismo-buff; Autoobjetivo probado, sin carga útil de comando, sin 0x16/0x17) = el SOLO elegible → se aplica el sandbox REAL (m201, OnTurn resuelto medianteAiWorkerMapping.TryResolveCombatOnTurn, diff +15 ~0 -0, idéntico byte a byte restaurar, hash original/corpus sin cambios); SIN-009 (Mandato hacer Maester; carga útil candidata) = conservadoramente BLOQUEADO (una copia desechable no es excusa para escribir una carga útil deshonesta; decisión documentada); SIN-010 (Farplane Peaje, HP%) = BLOQUEADO por el0x16DIV frente al HP% multiplicado (divmul-integrity) — 0x16/0x17 es un dedicado PARCHE en otro carril, NUNCA arreglado aquí. Pruebas adicionales: sin el permisoAllowSandboxApplyincluso SIN-006 es BLOQUEADO (con puerta del operador); una diferencia inesperada (manipulada) es rechazada por el mismo predicado conservador (+0 ~1 -0 → conservative=False); el original nunca se escribe (AppliedToOriginal=NO, probado mediante hash tanto de la copia de referencia Y como de la fuente del corpus REAL). Nueva puerta--sin-sandbox-rt0: ejecuta las 3 recetas, prueba la copia de seguridad/restauración/aislamiento y una protección del sistema de archivos (nada escrito fuera dework/, no.prev.bak/monster_*.binen la salida dir, cada elemento REAL de solo lectura con un hash sin cambios, el directorio sandbox limpio al final (sin residuos, nunca comprometido). (NUEVO capacidad ejecutable: sandbox aplicar capa + puerta; cruza el sin conexión-emittable/AiScriptLab-limpio/AEON-revisado/copia de seguridad-ready renglones en una copia). Alcance/honestidad: SIN permanece BLOQUEADO para escritura pública — La puerta 5 se aplica solo a un sandbox/copia, es NO RT2 y NO un público botón;PublicApplyAllowed=NO/Rt2=NOpor construcción. Hace NO hacer un escritor público/guardar/runtime/RT2/UI/button enMonsterAiEditor; toca NO unmonster_*.bin/Aurora/nativo-menú/Blitzball/Tienda/Alquimia/Sphere/Common(ANIMA) REAL; se reutilizaSinDryRunPlanner/SinPlanValidator/SinAeonDiffPlanner+AiScript_File.AppendGuardedAction/SpliceAiFileIntoMonsterGrow/AiScript_Diff/AiValidator(el ida y vuelta ya probado 345/345 por--aiasm-rt0). Construya 0 errores;--sin-sandbox-rt0+--sin-aeon-preview-rt0(Puerta 4) +--sin-validate-rt0(Puerta 3) +--sin-dryrun-rt0(Puerta 2) +--aicmdmeta-rt0+--spiraatlas-rt0+--aiasm-rt0todos PASS. Documentos:docs/ai/SIN_PENANCE_BACKUP_APPLY_SANDBOX_RESULT_2026-06-10.md+docs/ai/HANDOFF_PENANCE_SIN_RT2_PILOT_NEXT_2026-06-10.md
v2.78.1