PowerRustCOBOL 1.55.4: correcciones
Todo lo acumulado desde la 1.55.2, publicado bajo la 1.55.4.
La prueba de competencia COBOL pasa al Gestor de Modelos
Puntuaba lo que escribe un MODELO, pero colgaba de cada AGENTE: el mismo modelo se evaluaba una vez por cada agente que lo referenciaba y no había forma de comparar dos modelos entre sí. Peor aún, el botón estaba condicionado a `AgentKind::Specialist`, de modo que Grace — orquestadora, no especialista — era el único modelo del sistema que no podía medirse, justo el agente cuya salida condiciona la de todos los demás. Ahora vive una sola vez por perfil de modelo, junto a Probar conexión, y se activa en cuanto el perfil nombra un modelo. La ejecución limpia cualquier revisor heredado de la configuración global: sin eso el perfil tomaría en silencio la vía del tándem primario+revisor y puntuaría dos modelos como si fueran uno.
Nueva etapa de comprobación por compilación en la validación automática
El conjunto de cambios se aplica ahora sobre una COPIA del formulario de destino, se genera el `.cbl` tal como lo produciría realmente el generador de código, y se pasa por el mismo analizador léxico, sintáctico y semántico que usa el ejecutor — antes de gastar una sola ronda del revisor pedante. Los conjuntos de cambios ya aprobados de tareas anteriores se aplican primero, porque una tarea de manejadores se valida cuando sus controles todavía están en el conjunto de cambios sin aplicar de una tarea previa; sin eso la comprobación informaría de que faltan todos los controles. Cada error firme se atribuye a la operación cuyo cuerpo lo contiene, mediante el PROGRAM-ID del programa anidado que lo envuelve. Los avisos quedan excluidos a propósito: un aviso no es una prueba, y una barrera que gasta una ronda de corrección en uno es exactamente el coste que esto viene a eliminar.
La validación se ejecuta sobre un formulario clonado, nunca a través del panel del diseñador. El panel posee la maquinaria de guardado; un formulario no puede persistir nada, así que un fallo del IDE a mitad de comprobación no deja nada tras de sí. Hay pruebas que fijan que el formulario vivo queda idéntico byte a byte tras una ejecución, y que un conjunto de cambios correcto produce cero defectos.
Límites conocidos, medidos y no supuestos
La nueva barrera todavía NO detecta los dos defectos que motivaron su construcción, y conviene decirlo aquí en vez de dejar que lo descubra el siguiente flujo de trabajo:
- Un literal numérico con coma sin `DECIMAL-POINT IS COMMA` en vigor no falla al compilar. `VALUE 8,49` se analiza como `8` seguido de una coma separadora, de modo que el elemento toma en silencio el valor 8. Un valor silenciosamente equivocado no es un error de compilación.
- Un `PERFORM` cuyo destino vive en otro programa — el bloqueo exacto que provocó el revisor — lo notifica el analizador semántico como AVISO, no como error, y la barrera filtra los avisos.
Ambos casos quedan fijados como pruebas que afirman el comportamiento actual, cada una indicando qué tendría que cambiar para invertir la afirmación. Hasta entonces esos dos siguen correspondiendo al contrato del lenguaje y al revisor.
Anthropic Claude Codex Agent
|