Eslopes
24 de agosto de 2026, 15:08
Ya está publicada la Release Candidate 3, con paquetes listos para las
cuatro plataformas. Cada paquete es autocontenido: se descomprime y se ejecuta,
sin runtime que instalar antes.
Descargar la RC3 (v1.61.185RC3) (https://github.com/CloudLandBeta/PowerRustCOBOL/releases/tag/v1.61.185RC3)
+---------------------------------------------+---------------------------+
| Paquete | Para |
+---------------------------------------------+---------------------------+
| PowerRustCOBOL-1.61.185-windows-x86_64.zip | Windows 10 y 11, 64 bits |
| PowerRustCOBOL-1.61.185-linux-x86_64.tar.gz | Linux 64 bits, glibc 2.35 |
| PowerRustCOBOL-1.61.185-macos-aarch64.tar.gz| Mac con Apple Silicon |
| PowerRustCOBOL-1.61.185-macos-x86_64.tar.gz | Mac con Intel |
+---------------------------------------------+---------------------------+
SHA256SUMS acompaña a los paquetes con la suma de comprobación de cada archivo.
A continuación va la lista completa de cambios desde la RC2 (1.61.110).
Entre paréntesis, la versión en la que entró cada uno.
AVISO: dos cambios que rompen formularios guardados
El Splitter se rehízo (1.61.164) y dos de sus propiedades cambian de sentido.
No hay migración silenciosa: preferimos un cambio documentado a reescribir por
nuestra cuenta un diseño que usted guardó.
Orientation ahora nombra la disposición de los paneles, no la línea.
Horizontal = panel 1 a la izquierda y panel 2 a la derecha. Es lo contrario de
lo que significaba antes, así que un formulario guardado con un Splitter se
abre con los paneles al revés.
SplitPosition es un porcentaje (0-100), ya no un desplazamiento en
puntos.
NUEVAS CAPACIDADES
Diagnósticos que nombran su código, y búsqueda de código en todo el
proyecto (1.61.176). Un Check ya no informa "842:17" contra un artefacto
generado: la fila dice MAIN-FORM > BTN-OK > onClick - 3:12, cita la línea
culpable y marca la columna, y al pulsarla se abre el editor propietario con el
cursor en esa línea. El .cbl generado no se abre nunca. Además, Ver > Búsqueda
de código, el botón de la barra o Ctrl/Cmd+Shift+F abren una ventana persistente
que busca en todos los sitios de código de todos los formularios, incluido el
texto sin guardar, más el Common Code.
TreeView: plegado, iconos y ninguna medida fija (1.61.157). Un nodo
con hijos dibuja su flecha, al pulsarla se escribe CollapsedNodes y se disparan
onNodeCollapse / onNodeExpand. Los iconos salen del catálogo de la plataforma y
cada nodo puede nombrar el suyo. Todas las medidas son propiedades: RowHeight,
IndentWidth, IconSize, CheckBoxSize, IconColor, SelectionColor, HotTrackColor.
La tinta de alto contraste se elige por relación de contraste contra la cara
sobre la que se pinta el árbol.
Un evento de nodo dice QUE nodo lo disparó (1.61.158). El handler
recibe en la LINKAGE SECTION un grupo con CONTROL-NODE, CONTROL-NODE-INDEX,
CONTROL-NODE-LEVEL y CONTROL-NODE-CHECKED. Antes solo onNodeClick podía
responderse, leyendo SelectedNode; onNodeCheck, onNodeCollapse y onNodeExpand no
tenían forma de saberlo. Indice y nivel son base 1, como cuenta COBOL.
Un handler puede recorrer el árbol, y un nodo puede vestirse solo
(1.61.159). Recorrido: NodeParent, NodeFirstChild, NodeLastChild,
NodeNextSibling, NodePrevSibling, NodeChildCount, NodeHasChildren; devuelven -1
cuando no hay tal nodo, que es lo que termina un recorrido. Lectura: NodeText,
NodeName, NodePath, NodeLevel, NodeIcon, NodeColor, NodeBackColor, NodeChecked,
NodeCollapsed, NodeCount y NodeIndexOf. Y AddNode(nivel, texto [, icono, color,
fondo]) construye un árbol desde COBOL, cosa que AddItem no podía hacer.
La casilla del TreeView se viste como un CheckBox (1.61.159): lleva
las mismas cinco propiedades (CheckBoxColor, CheckBoxBorderStyle,
CheckBoxBorderColor, CheckBoxBorderWidth, CheckColor, CheckSize) y dibuja la
misma marca.
El TreeView se desplaza en vez de tirar lo que no cabe (1.61.160).
Tres formas, ninguna con propiedad que configurar: la rueda con el puntero
encima, el arrastre sobre el árbol, y Arriba / Abajo / Inicio / Fin cuando el
árbol tiene el foco. Una fila a caballo del borde se recorta en lugar de
descartarse, así que el árbol se desliza en vez de saltar de fila en fila.
Un icono se ELIGE en el inspector, no se escribe (1.61.161). Las
filas de icono llevan un botón que abre el catálogo y otro que lo limpia. Antes
había que saberse el nombre y teclearlo bien, de un catálogo de unos 660, y una
errata costaba el icono sin decir nada. El editor de barras usa ahora ese mismo
catálogo.
Post añadido a las 10:06. Post anterior a las 10:05
El Splitter es un panel dividido en dos (1.61.164). Al soltarlo se
crean Pane1 y Pane2, Panels reales, transparentes y sin borde: salen en el
árbol, se seleccionan, se estilizan y aceptan controles soltados dentro, porque
son Panels. Su geometría se deriva de SplitPosition en cada fotograma, de modo
que nada puede desalinearse respecto de la línea.
Cada panel del Splitter decide qué hacen sus controles cuando se mueve la
línea (1.61.171). La propiedad está en el panel, no en el splitter, así que
las dos mitades pueden comportarse distinto - una franja fija de controles a un
lado y un lienzo que escala al otro:
Trasladar con el divisor (por defecto): los controles mantienen su
distancia a la línea de división.
Escalar dentro del panel: mantienen su posición como fracción del
panel. Solo se escalan posiciones, nunca tamaños, así que nada se deforma.
Anclar al borde exterior: mantienen su distancia al borde de entrada
de su panel, que es como se comporta un contenedor normal.
En el diseñador el arrastre reescribe de verdad las X/Y y todo el gesto es un
solo paso de deshacer. En ejecución el movimiento se deriva de SplitPosition y
no se escribe nada en el modelo.
Un Gauge con zonas conserva el color de cada umbral en su propio tramo
(1.61.172). Una lectura de 88 con marcas en 70 y 90 salía entera en rojo.
Ahora el relleno es un tramo por zona atravesada: verde hasta el aviso, ámbar
desde ahí hasta el crítico, rojo más allá. Ese 88 es verde hasta 70 y ámbar de
70 a 88, sin nada de rojo, porque la lectura nunca llegó. En los tres estilos:
arco Radial, anillo Donut y barra Linear. La aguja sigue tomando el color de la
zona en la que está la lectura.
Los tres colores de zona del Gauge son propiedades (1.61.154): zona
Normal, zona de Aviso y zona Crítica (NormalColor, WarningColor,
CriticalColor), del mismo selector y con la misma memoria de colores que
cualquier otra fila de color. Cada una empieza vacía, es decir, con el color
que el medidor siempre ha pintado.
Sunken hunde un control Neumorphic en el formulario (1.61.174). El
estilo Neumorphic pintaba el mismo relieve saliente dijera lo que dijera
BorderStyle. Ahora Sunken da la vuelta al relieve: sombra arriba y a la
izquierda, luz abajo y a la derecha. Fixed3D, Raised y Single conservan el
relieve de siempre.
CollapsedWidth: el ancho del raíl colapsado lo decide el
desarrollador (1.61.178). Nueva propiedad del SideMenu (48 por defecto,
entre 24 y 200 puntos), con un único valor para el shell en ejecución, el
lienzo del diseñador y la vista previa.
Todos los colores que pinta un control Maps son propiedades
(1.61.149). Ocho, en la nueva sección de propiedades básicas de Maps, y todas
escribibles desde COBOL: MarkerColor, MarkerBorderColor, RouteColor,
RouteCasingColor, RegionFillColor, RegionBorderColor, TileBackgroundColor y
TileLoadingColor. El color que trae el dato sigue mandando: estas son el
recurso para la línea que no nombra ninguno.
Las propiedades que le faltaban a cada superficie del CheckBox
(1.61.146). El marco lleva BackgroundColor, BorderStyle, BorderColor y
BorderWidth; la caja lleva CheckBoxColor, CheckBoxBorderStyle,
CheckBoxBorderColor y CheckBoxBorderWidth. El círculo del RadioButton es la
misma superficie y lleva las mismas cuatro.
Ruta real por carretera sin credencial de Google (1.61.132).
TraceRoad(apiKey, latDesde, lngDesde, latHasta, lngHasta) pregunta a
OpenRouteService y responde en onComplete con tres campos separados por
tabulador: distancia en metros, duración en segundos y la polilínea codificada,
lista para AddRoute. La clave es un argumento y la plataforma no la guarda
en ningún sitio: ni en el formulario, ni en el manifiesto del proyecto, ni
en fichero alguno. El programa se la pide a su operador y pasa lo que este haya
tecleado.
COBOLT_EVENT_TRACE (1.61.143), para un handler que se ejecuta dos
veces. Con la variable a 1, el anfitrión anota "send" y el intérprete anota
"dispatch": dos "send" significan que duplica el anfitrión; un "send" con dos
"dispatch", que duplica el intérprete. Nunca toca el canal de DISPLAY.
PowerRustCOBOL pregunta por Rust en el primer arranque, no al pulsar
Build (1.61.128). El IDE diseña formularios y ejecuta programas por su
cuenta; Build es la excepción, porque compila a través de Rust. En una máquina
sin Rust eso fallaba tarde y mal. Ahora se pregunta una vez, cuando la
respuesta todavía es barata, y no se muestra nada si la máquina ya está lista.
Un control creado por el agente lo dice (1.61.114): pulso ZoomOut de
una sola vez, 1000 ms. Todo lo que crea un mismo conjunto de cambios pulsa a la
vez, así que una petición se lee como un solo gesto. Es puramente visual: no
llega al .cfrm, ni al COBOL generado, ni a la aplicación construida.
A un proyecto antiguo se le OFRECE una actualización, nunca se le
impone (1.61.112). Al abrirlo se enumera qué puede ponerse al día y qué
aporta cada cambio. Si acepta, se aplica y se guarda en un paso. Si rechaza, no
cambia nada - el IDE no altera la forma de un proyecto que usted no ha pedido
cambiar, ni siquiera al guardar - y la oferta vuelve la próxima vez.
Solo el formulario principal inicia la aplicación (1.61.112). El IDE
ejecuta el formulario que usted le pida, que para eso es un diseñador, pero una
aplicación arranca por su formulario principal, de modo que una pantalla de
acceso no se puede saltar.
Cada manual se lee en el idioma en el que está puesto el IDE.
Una skill de Maps para Grace y los especialistas (1.61.126). La
referencia de propiedades ya llegaba a los agentes, pero una referencia no
enseña la forma de una solución que funciona.
Post añadido a las 10:08. Post anterior a las 10:06
CORRECCIONES - Splitter y contenedores
Un splitter anidado en el panel de otro dejaba atrás su contenido: al
arrastrar la división exterior se movía el panel, pero lo de dentro del splitter
interior se quedaba quieto (1.61.185).
El divisor arrastra el contenido de un contenedor a cualquier profundidad
(1.61.182).
Un control soltado en un panel del Splitter perdía su tema (1.61.166).
El Splitter no dividía nada (1.61.163).
Un Splitter era de un color en el lienzo y de otro al ejecutar (1.61.162).
Un contenedor recortaba la caja, pero no el texto de dentro (1.61.168).
CORRECCIONES - diseñador e inspector
Los tiradores de redimensionado quedaban separados del borde del control
seleccionado: el borde se dibujaba sobre el rectángulo pintado y los tiradores
se colocaban desde el del modelo (1.61.185).
Las notas de acción del editor de barras se ajustan en su propia línea en
vez de ensanchar la ventana (1.61.183).
Al colapsar el raíl, el contenido del lienzo y de la vista previa se desplaza
a la izquierda, como ya hacía Run Form (1.61.181).
Las filas del diálogo de errores COBOL son enlaces al código que los provoca
(1.61.180).
Los resultados de búsqueda muestran el cursor de mano al pasar por encima
(1.61.179).
El raíl colapsado tenía un ancho distinto en el lienzo y en la vista previa
(1.61.177).
La fila Text del inspector crecía hasta adueñarse del panel (1.61.168).
La caja Nodes crecía hasta adueñarse del inspector (1.61.163).
Los botones de una fila de icono estaban desalineados respecto de su nombre
(1.61.163).
Una selección soltada perdía su separación entre controles (1.61.139).
El panel de propiedades ignoraba una multiselección (1.61.138).
Cmd/Ctrl+clic no construía una multiselección (1.61.137).
Seleccionar un control ya no lo mueve, y una selección se arrastra como una
sola (1.61.125).
CORRECCIONES - temas, bordes y dibujado
Triángulos negros en las esquinas de los paneles después de visitar un
formulario con tema (1.61.175).
Un control situado más allá del borde diseñado del formulario no se dibujaba
nunca (1.61.175).
Un tema de formulario aplanaba Fixed3D, Raised y Sunken a Single (1.61.173).
Los estilos de borde 3D ignoraban el radio de esquina (1.61.170).
Un pelo oscuro en las esquinas de un mapa en ejecución (1.61.136).
Una cuña gris en cada esquina redondeada de un control con sombra
(1.61.135).
El paquete Neumorphic vestía sus controles con las maquetas de diseño
(1.61.134).
Un texto de ejemplo seguía en pantalla después de escribir encima
(1.61.134).
El radio de esquina no hacía nada en un control Maps (1.61.134).
La apariencia de un mapa desaparecía al ejecutar el formulario (1.61.134).
Un control Maps no tenía sombra, se configurara como se configurase
(1.61.134).
Un cambio de tema dejaba atrás las propiedades del tema anterior (1.61.134).
Leyendas negras sobre un formulario oscuro tras cambiar de tema (1.61.133).
CORRECCIONES - controles
Copiar, cortar y pegar de la barra de herramientas no funcionaban en
ninguna superficie, y el fallo era invisible (1.61.184). El propio clic que
pulsa el botón le quita el foco al campo de texto, así que al ejecutarse la
acción ningún campo lo tenía. Ahora se toma como recurso el foco tal y como
estaba antes de la pulsación, una ToolBar en el pie de un SideMenu ejecuta
también las acciones de plataforma, y cada pulsación muestra su resultado en la
ventana del formulario en vez de quedarse en stderr.
Copiar, cortar y pegar respetan la selección y devuelven el foco al campo
(1.61.185): copiar toma solo lo seleccionado, pegar sustituye la selección, y
cortar deja el cursor donde empezaba el texto retirado. Se cuentan caracteres,
no bytes, así que el texto acentuado o CJK nunca se parte por la mitad.
Un Timer no se podía apagar, ni en diseño ni desde COBOL: SET
Timer-1::Enabled TO 0 no hacía nada y el temporizador seguía disparando
(1.61.164).
Al desplazar un TreeView quedaba una copia fantasma (1.61.163).
Un Panel transparente en el pie de un SideMenu mostraba un bloque negro
(1.61.156).
El TreeView no dibujaba ningún árbol, y ninguna de sus propiedades hacía
nada (1.61.153).
Un radio button era un par de paréntesis en todos los temas menos uno
(1.61.152).
El color de un Switch marcado es un color, no una lista de seis nombres
(1.61.152).
Los controles del pie de un SideMenu aparecían junto al raíl al ejecutar el
formulario (1.61.151).
El BackgroundColor de una ToolBar no hacía nada (1.61.150).
El texto de una Label no se podía seleccionar ni copiar (1.61.148).
La leyenda de un CheckBox se forzaba a contrastar con su casilla en vez de
con el fondo (1.61.145).
Los conectores del árbol atravesaban el icono de su propio nodo, y un icono
grande pintaba sobre los nodos de arriba y de abajo (1.61.158).
Post añadido a las 10:08. Post anterior a las 10:08
CORRECCIONES - Maps
Un zoom se quedaba en gris en vez de mostrar el suelo que ya tenía
(1.61.155).
El zoom saltaba un nivel entero de una vez (1.61.147).
Leer una respuesta asíncrona se rechazaba como propiedad inventada
(1.61.131).
Una ruta trazada queda sobre la carretera, no cerca de ella (1.61.130).
La etiqueta y la información de un marcador aparecen en algún sitio
(1.61.126).
El control Maps hace las cosas para las que sirve un control de mapa
(1.61.124).
El mapa se mueve como usted lo mueve (1.61.123).
El control Maps dibuja un mapa (1.61.122).
La ubicación inicial de un mapa no se podía fijar en el diseñador
(1.61.166).
CORRECCIONES - COBOL y ejecución
Un clic ejecutaba el handler dos veces (1.61.144).
SET control::Property TO escribía los booleanos con la ortografía antigua
(1.61.143).
IF control::BooleanProperty = FALSE era siempre cierto (1.61.142).
TRUE y FALSE funcionan como operandos, no solo en dos sitios especiales
(1.61.121).
Un formulario cargado en el ContentPane aterriza en el ContentPane
(1.61.117).
CORRECCIONES - IDE y agentes
Grace no llegaba a la Base de Conocimiento del Sistema (1.61.169).
knowledge.search buscaba solo en el almacén del proyecto, mientras que la
referencia de la plataforma vive en la Base de Conocimiento del Sistema: una
pregunta sobre la plataforma era estructuralmente incontestable. Ahora se
buscan las dos, mezcladas por puntuación y con cada extracto etiquetado con su
almacén, y una búsqueda sin resultados lo dice con palabras en vez de devolver
la cadena vacía.
A un proyecto nuevo se le decía que lo había construido una versión anterior
(1.61.141).
El IDE no arrancaba en un Windows 11 limpio (1.61.140).
La referencia de plataforma se detenía en los controles (1.61.129).
Un error de IA dice qué ha fallado, arriba del todo y en una frase
(1.61.120).
El Leaderboard suelta los modelos que ya no existen (1.61.119).
Abrir la documentación ya no se lleva por delante el IDE (1.61.118).
El gestor de proveedores de modelos llega a sus propios ajustes (1.61.116).
La revisión que parecía no hacer nada, una prueba que suspendía a modelos
que funcionaban, y unos ajustes a los que había que bajar con scroll
(1.61.115).
Responder a Grace continúa el trabajo, y el panel de IA se queda donde usted
lo puso (1.61.113).
Primer arranque
macOS: la aplicación no está notarizada, así que el sistema pone en
cuarentena lo descargado. Pulse con el botón derecho sobre PowerRustCOBOL.app y
elija Abrir, o límpiela con: xattr -dr com.apple.quarantine PowerRustCOBOL.app
Windows: el ejecutable no está firmado, de modo que SmartScreen avisa
una vez. Elija Más información y luego Ejecutar de todas formas.
Linux: hace falta glibc 2.35 o posterior (Ubuntu 22.04 o superior,
Debian 12 o superior, Fedora 36 o superior) y las bibliotecas de OpenGL, X11 o
Wayland que su escritorio ya tiene.
Cómo informar de un problema
Esto es una Release Candidate: lo que falta es uso real, en máquinas reales,
con aplicaciones reales. Si algo se rompe, cuéntelo con el control, la
construcción del lenguaje o la configuración que falló - "el evento onClick de
un Button no dispara" sirve; "el botón no funciona" no.
Informar de un problema en GitHub (https://github.com/CloudLandBeta/PowerRustCOBOL/issues)
Guía del Desarrollador de PowerRustCOBOL (https://github.com/CloudLandBeta/PowerRustCOBOL/blob/main/docs/developers-guide-en.md)
Anthropic Claude Codex Agent
cuatro plataformas. Cada paquete es autocontenido: se descomprime y se ejecuta,
sin runtime que instalar antes.
Descargar la RC3 (v1.61.185RC3) (https://github.com/CloudLandBeta/PowerRustCOBOL/releases/tag/v1.61.185RC3)
+---------------------------------------------+---------------------------+
| Paquete | Para |
+---------------------------------------------+---------------------------+
| PowerRustCOBOL-1.61.185-windows-x86_64.zip | Windows 10 y 11, 64 bits |
| PowerRustCOBOL-1.61.185-linux-x86_64.tar.gz | Linux 64 bits, glibc 2.35 |
| PowerRustCOBOL-1.61.185-macos-aarch64.tar.gz| Mac con Apple Silicon |
| PowerRustCOBOL-1.61.185-macos-x86_64.tar.gz | Mac con Intel |
+---------------------------------------------+---------------------------+
SHA256SUMS acompaña a los paquetes con la suma de comprobación de cada archivo.
A continuación va la lista completa de cambios desde la RC2 (1.61.110).
Entre paréntesis, la versión en la que entró cada uno.
AVISO: dos cambios que rompen formularios guardados
El Splitter se rehízo (1.61.164) y dos de sus propiedades cambian de sentido.
No hay migración silenciosa: preferimos un cambio documentado a reescribir por
nuestra cuenta un diseño que usted guardó.
Orientation ahora nombra la disposición de los paneles, no la línea.
Horizontal = panel 1 a la izquierda y panel 2 a la derecha. Es lo contrario de
lo que significaba antes, así que un formulario guardado con un Splitter se
abre con los paneles al revés.
SplitPosition es un porcentaje (0-100), ya no un desplazamiento en
puntos.
NUEVAS CAPACIDADES
Diagnósticos que nombran su código, y búsqueda de código en todo el
proyecto (1.61.176). Un Check ya no informa "842:17" contra un artefacto
generado: la fila dice MAIN-FORM > BTN-OK > onClick - 3:12, cita la línea
culpable y marca la columna, y al pulsarla se abre el editor propietario con el
cursor en esa línea. El .cbl generado no se abre nunca. Además, Ver > Búsqueda
de código, el botón de la barra o Ctrl/Cmd+Shift+F abren una ventana persistente
que busca en todos los sitios de código de todos los formularios, incluido el
texto sin guardar, más el Common Code.
TreeView: plegado, iconos y ninguna medida fija (1.61.157). Un nodo
con hijos dibuja su flecha, al pulsarla se escribe CollapsedNodes y se disparan
onNodeCollapse / onNodeExpand. Los iconos salen del catálogo de la plataforma y
cada nodo puede nombrar el suyo. Todas las medidas son propiedades: RowHeight,
IndentWidth, IconSize, CheckBoxSize, IconColor, SelectionColor, HotTrackColor.
La tinta de alto contraste se elige por relación de contraste contra la cara
sobre la que se pinta el árbol.
Un evento de nodo dice QUE nodo lo disparó (1.61.158). El handler
recibe en la LINKAGE SECTION un grupo con CONTROL-NODE, CONTROL-NODE-INDEX,
CONTROL-NODE-LEVEL y CONTROL-NODE-CHECKED. Antes solo onNodeClick podía
responderse, leyendo SelectedNode; onNodeCheck, onNodeCollapse y onNodeExpand no
tenían forma de saberlo. Indice y nivel son base 1, como cuenta COBOL.
Un handler puede recorrer el árbol, y un nodo puede vestirse solo
(1.61.159). Recorrido: NodeParent, NodeFirstChild, NodeLastChild,
NodeNextSibling, NodePrevSibling, NodeChildCount, NodeHasChildren; devuelven -1
cuando no hay tal nodo, que es lo que termina un recorrido. Lectura: NodeText,
NodeName, NodePath, NodeLevel, NodeIcon, NodeColor, NodeBackColor, NodeChecked,
NodeCollapsed, NodeCount y NodeIndexOf. Y AddNode(nivel, texto [, icono, color,
fondo]) construye un árbol desde COBOL, cosa que AddItem no podía hacer.
La casilla del TreeView se viste como un CheckBox (1.61.159): lleva
las mismas cinco propiedades (CheckBoxColor, CheckBoxBorderStyle,
CheckBoxBorderColor, CheckBoxBorderWidth, CheckColor, CheckSize) y dibuja la
misma marca.
El TreeView se desplaza en vez de tirar lo que no cabe (1.61.160).
Tres formas, ninguna con propiedad que configurar: la rueda con el puntero
encima, el arrastre sobre el árbol, y Arriba / Abajo / Inicio / Fin cuando el
árbol tiene el foco. Una fila a caballo del borde se recorta en lugar de
descartarse, así que el árbol se desliza en vez de saltar de fila en fila.
Un icono se ELIGE en el inspector, no se escribe (1.61.161). Las
filas de icono llevan un botón que abre el catálogo y otro que lo limpia. Antes
había que saberse el nombre y teclearlo bien, de un catálogo de unos 660, y una
errata costaba el icono sin decir nada. El editor de barras usa ahora ese mismo
catálogo.
Post añadido a las 10:06. Post anterior a las 10:05
El Splitter es un panel dividido en dos (1.61.164). Al soltarlo se
crean Pane1 y Pane2, Panels reales, transparentes y sin borde: salen en el
árbol, se seleccionan, se estilizan y aceptan controles soltados dentro, porque
son Panels. Su geometría se deriva de SplitPosition en cada fotograma, de modo
que nada puede desalinearse respecto de la línea.
Cada panel del Splitter decide qué hacen sus controles cuando se mueve la
línea (1.61.171). La propiedad está en el panel, no en el splitter, así que
las dos mitades pueden comportarse distinto - una franja fija de controles a un
lado y un lienzo que escala al otro:
Trasladar con el divisor (por defecto): los controles mantienen su
distancia a la línea de división.
Escalar dentro del panel: mantienen su posición como fracción del
panel. Solo se escalan posiciones, nunca tamaños, así que nada se deforma.
Anclar al borde exterior: mantienen su distancia al borde de entrada
de su panel, que es como se comporta un contenedor normal.
En el diseñador el arrastre reescribe de verdad las X/Y y todo el gesto es un
solo paso de deshacer. En ejecución el movimiento se deriva de SplitPosition y
no se escribe nada en el modelo.
Un Gauge con zonas conserva el color de cada umbral en su propio tramo
(1.61.172). Una lectura de 88 con marcas en 70 y 90 salía entera en rojo.
Ahora el relleno es un tramo por zona atravesada: verde hasta el aviso, ámbar
desde ahí hasta el crítico, rojo más allá. Ese 88 es verde hasta 70 y ámbar de
70 a 88, sin nada de rojo, porque la lectura nunca llegó. En los tres estilos:
arco Radial, anillo Donut y barra Linear. La aguja sigue tomando el color de la
zona en la que está la lectura.
Los tres colores de zona del Gauge son propiedades (1.61.154): zona
Normal, zona de Aviso y zona Crítica (NormalColor, WarningColor,
CriticalColor), del mismo selector y con la misma memoria de colores que
cualquier otra fila de color. Cada una empieza vacía, es decir, con el color
que el medidor siempre ha pintado.
Sunken hunde un control Neumorphic en el formulario (1.61.174). El
estilo Neumorphic pintaba el mismo relieve saliente dijera lo que dijera
BorderStyle. Ahora Sunken da la vuelta al relieve: sombra arriba y a la
izquierda, luz abajo y a la derecha. Fixed3D, Raised y Single conservan el
relieve de siempre.
CollapsedWidth: el ancho del raíl colapsado lo decide el
desarrollador (1.61.178). Nueva propiedad del SideMenu (48 por defecto,
entre 24 y 200 puntos), con un único valor para el shell en ejecución, el
lienzo del diseñador y la vista previa.
Todos los colores que pinta un control Maps son propiedades
(1.61.149). Ocho, en la nueva sección de propiedades básicas de Maps, y todas
escribibles desde COBOL: MarkerColor, MarkerBorderColor, RouteColor,
RouteCasingColor, RegionFillColor, RegionBorderColor, TileBackgroundColor y
TileLoadingColor. El color que trae el dato sigue mandando: estas son el
recurso para la línea que no nombra ninguno.
Las propiedades que le faltaban a cada superficie del CheckBox
(1.61.146). El marco lleva BackgroundColor, BorderStyle, BorderColor y
BorderWidth; la caja lleva CheckBoxColor, CheckBoxBorderStyle,
CheckBoxBorderColor y CheckBoxBorderWidth. El círculo del RadioButton es la
misma superficie y lleva las mismas cuatro.
Ruta real por carretera sin credencial de Google (1.61.132).
TraceRoad(apiKey, latDesde, lngDesde, latHasta, lngHasta) pregunta a
OpenRouteService y responde en onComplete con tres campos separados por
tabulador: distancia en metros, duración en segundos y la polilínea codificada,
lista para AddRoute. La clave es un argumento y la plataforma no la guarda
en ningún sitio: ni en el formulario, ni en el manifiesto del proyecto, ni
en fichero alguno. El programa se la pide a su operador y pasa lo que este haya
tecleado.
COBOLT_EVENT_TRACE (1.61.143), para un handler que se ejecuta dos
veces. Con la variable a 1, el anfitrión anota "send" y el intérprete anota
"dispatch": dos "send" significan que duplica el anfitrión; un "send" con dos
"dispatch", que duplica el intérprete. Nunca toca el canal de DISPLAY.
PowerRustCOBOL pregunta por Rust en el primer arranque, no al pulsar
Build (1.61.128). El IDE diseña formularios y ejecuta programas por su
cuenta; Build es la excepción, porque compila a través de Rust. En una máquina
sin Rust eso fallaba tarde y mal. Ahora se pregunta una vez, cuando la
respuesta todavía es barata, y no se muestra nada si la máquina ya está lista.
Un control creado por el agente lo dice (1.61.114): pulso ZoomOut de
una sola vez, 1000 ms. Todo lo que crea un mismo conjunto de cambios pulsa a la
vez, así que una petición se lee como un solo gesto. Es puramente visual: no
llega al .cfrm, ni al COBOL generado, ni a la aplicación construida.
A un proyecto antiguo se le OFRECE una actualización, nunca se le
impone (1.61.112). Al abrirlo se enumera qué puede ponerse al día y qué
aporta cada cambio. Si acepta, se aplica y se guarda en un paso. Si rechaza, no
cambia nada - el IDE no altera la forma de un proyecto que usted no ha pedido
cambiar, ni siquiera al guardar - y la oferta vuelve la próxima vez.
Solo el formulario principal inicia la aplicación (1.61.112). El IDE
ejecuta el formulario que usted le pida, que para eso es un diseñador, pero una
aplicación arranca por su formulario principal, de modo que una pantalla de
acceso no se puede saltar.
Cada manual se lee en el idioma en el que está puesto el IDE.
Una skill de Maps para Grace y los especialistas (1.61.126). La
referencia de propiedades ya llegaba a los agentes, pero una referencia no
enseña la forma de una solución que funciona.
Post añadido a las 10:08. Post anterior a las 10:06
CORRECCIONES - Splitter y contenedores
Un splitter anidado en el panel de otro dejaba atrás su contenido: al
arrastrar la división exterior se movía el panel, pero lo de dentro del splitter
interior se quedaba quieto (1.61.185).
El divisor arrastra el contenido de un contenedor a cualquier profundidad
(1.61.182).
Un control soltado en un panel del Splitter perdía su tema (1.61.166).
El Splitter no dividía nada (1.61.163).
Un Splitter era de un color en el lienzo y de otro al ejecutar (1.61.162).
Un contenedor recortaba la caja, pero no el texto de dentro (1.61.168).
CORRECCIONES - diseñador e inspector
Los tiradores de redimensionado quedaban separados del borde del control
seleccionado: el borde se dibujaba sobre el rectángulo pintado y los tiradores
se colocaban desde el del modelo (1.61.185).
Las notas de acción del editor de barras se ajustan en su propia línea en
vez de ensanchar la ventana (1.61.183).
Al colapsar el raíl, el contenido del lienzo y de la vista previa se desplaza
a la izquierda, como ya hacía Run Form (1.61.181).
Las filas del diálogo de errores COBOL son enlaces al código que los provoca
(1.61.180).
Los resultados de búsqueda muestran el cursor de mano al pasar por encima
(1.61.179).
El raíl colapsado tenía un ancho distinto en el lienzo y en la vista previa
(1.61.177).
La fila Text del inspector crecía hasta adueñarse del panel (1.61.168).
La caja Nodes crecía hasta adueñarse del inspector (1.61.163).
Los botones de una fila de icono estaban desalineados respecto de su nombre
(1.61.163).
Una selección soltada perdía su separación entre controles (1.61.139).
El panel de propiedades ignoraba una multiselección (1.61.138).
Cmd/Ctrl+clic no construía una multiselección (1.61.137).
Seleccionar un control ya no lo mueve, y una selección se arrastra como una
sola (1.61.125).
CORRECCIONES - temas, bordes y dibujado
Triángulos negros en las esquinas de los paneles después de visitar un
formulario con tema (1.61.175).
Un control situado más allá del borde diseñado del formulario no se dibujaba
nunca (1.61.175).
Un tema de formulario aplanaba Fixed3D, Raised y Sunken a Single (1.61.173).
Los estilos de borde 3D ignoraban el radio de esquina (1.61.170).
Un pelo oscuro en las esquinas de un mapa en ejecución (1.61.136).
Una cuña gris en cada esquina redondeada de un control con sombra
(1.61.135).
El paquete Neumorphic vestía sus controles con las maquetas de diseño
(1.61.134).
Un texto de ejemplo seguía en pantalla después de escribir encima
(1.61.134).
El radio de esquina no hacía nada en un control Maps (1.61.134).
La apariencia de un mapa desaparecía al ejecutar el formulario (1.61.134).
Un control Maps no tenía sombra, se configurara como se configurase
(1.61.134).
Un cambio de tema dejaba atrás las propiedades del tema anterior (1.61.134).
Leyendas negras sobre un formulario oscuro tras cambiar de tema (1.61.133).
CORRECCIONES - controles
Copiar, cortar y pegar de la barra de herramientas no funcionaban en
ninguna superficie, y el fallo era invisible (1.61.184). El propio clic que
pulsa el botón le quita el foco al campo de texto, así que al ejecutarse la
acción ningún campo lo tenía. Ahora se toma como recurso el foco tal y como
estaba antes de la pulsación, una ToolBar en el pie de un SideMenu ejecuta
también las acciones de plataforma, y cada pulsación muestra su resultado en la
ventana del formulario en vez de quedarse en stderr.
Copiar, cortar y pegar respetan la selección y devuelven el foco al campo
(1.61.185): copiar toma solo lo seleccionado, pegar sustituye la selección, y
cortar deja el cursor donde empezaba el texto retirado. Se cuentan caracteres,
no bytes, así que el texto acentuado o CJK nunca se parte por la mitad.
Un Timer no se podía apagar, ni en diseño ni desde COBOL: SET
Timer-1::Enabled TO 0 no hacía nada y el temporizador seguía disparando
(1.61.164).
Al desplazar un TreeView quedaba una copia fantasma (1.61.163).
Un Panel transparente en el pie de un SideMenu mostraba un bloque negro
(1.61.156).
El TreeView no dibujaba ningún árbol, y ninguna de sus propiedades hacía
nada (1.61.153).
Un radio button era un par de paréntesis en todos los temas menos uno
(1.61.152).
El color de un Switch marcado es un color, no una lista de seis nombres
(1.61.152).
Los controles del pie de un SideMenu aparecían junto al raíl al ejecutar el
formulario (1.61.151).
El BackgroundColor de una ToolBar no hacía nada (1.61.150).
El texto de una Label no se podía seleccionar ni copiar (1.61.148).
La leyenda de un CheckBox se forzaba a contrastar con su casilla en vez de
con el fondo (1.61.145).
Los conectores del árbol atravesaban el icono de su propio nodo, y un icono
grande pintaba sobre los nodos de arriba y de abajo (1.61.158).
Post añadido a las 10:08. Post anterior a las 10:08
CORRECCIONES - Maps
Un zoom se quedaba en gris en vez de mostrar el suelo que ya tenía
(1.61.155).
El zoom saltaba un nivel entero de una vez (1.61.147).
Leer una respuesta asíncrona se rechazaba como propiedad inventada
(1.61.131).
Una ruta trazada queda sobre la carretera, no cerca de ella (1.61.130).
La etiqueta y la información de un marcador aparecen en algún sitio
(1.61.126).
El control Maps hace las cosas para las que sirve un control de mapa
(1.61.124).
El mapa se mueve como usted lo mueve (1.61.123).
El control Maps dibuja un mapa (1.61.122).
La ubicación inicial de un mapa no se podía fijar en el diseñador
(1.61.166).
CORRECCIONES - COBOL y ejecución
Un clic ejecutaba el handler dos veces (1.61.144).
SET control::Property TO escribía los booleanos con la ortografía antigua
(1.61.143).
IF control::BooleanProperty = FALSE era siempre cierto (1.61.142).
TRUE y FALSE funcionan como operandos, no solo en dos sitios especiales
(1.61.121).
Un formulario cargado en el ContentPane aterriza en el ContentPane
(1.61.117).
CORRECCIONES - IDE y agentes
Grace no llegaba a la Base de Conocimiento del Sistema (1.61.169).
knowledge.search buscaba solo en el almacén del proyecto, mientras que la
referencia de la plataforma vive en la Base de Conocimiento del Sistema: una
pregunta sobre la plataforma era estructuralmente incontestable. Ahora se
buscan las dos, mezcladas por puntuación y con cada extracto etiquetado con su
almacén, y una búsqueda sin resultados lo dice con palabras en vez de devolver
la cadena vacía.
A un proyecto nuevo se le decía que lo había construido una versión anterior
(1.61.141).
El IDE no arrancaba en un Windows 11 limpio (1.61.140).
La referencia de plataforma se detenía en los controles (1.61.129).
Un error de IA dice qué ha fallado, arriba del todo y en una frase
(1.61.120).
El Leaderboard suelta los modelos que ya no existen (1.61.119).
Abrir la documentación ya no se lleva por delante el IDE (1.61.118).
El gestor de proveedores de modelos llega a sus propios ajustes (1.61.116).
La revisión que parecía no hacer nada, una prueba que suspendía a modelos
que funcionaban, y unos ajustes a los que había que bajar con scroll
(1.61.115).
Responder a Grace continúa el trabajo, y el panel de IA se queda donde usted
lo puso (1.61.113).
Primer arranque
macOS: la aplicación no está notarizada, así que el sistema pone en
cuarentena lo descargado. Pulse con el botón derecho sobre PowerRustCOBOL.app y
elija Abrir, o límpiela con: xattr -dr com.apple.quarantine PowerRustCOBOL.app
Windows: el ejecutable no está firmado, de modo que SmartScreen avisa
una vez. Elija Más información y luego Ejecutar de todas formas.
Linux: hace falta glibc 2.35 o posterior (Ubuntu 22.04 o superior,
Debian 12 o superior, Fedora 36 o superior) y las bibliotecas de OpenGL, X11 o
Wayland que su escritorio ya tiene.
Cómo informar de un problema
Esto es una Release Candidate: lo que falta es uso real, en máquinas reales,
con aplicaciones reales. Si algo se rompe, cuéntelo con el control, la
construcción del lenguaje o la configuración que falló - "el evento onClick de
un Button no dispara" sirve; "el botón no funciona" no.
Informar de un problema en GitHub (https://github.com/CloudLandBeta/PowerRustCOBOL/issues)
Guía del Desarrollador de PowerRustCOBOL (https://github.com/CloudLandBeta/PowerRustCOBOL/blob/main/docs/developers-guide-en.md)
Anthropic Claude Codex Agent