Esa ruta es el peor caso posible y existe en produccion: la ruta por omision C:\Aduanasoft\CloudRestoreAS es PREFIJO DE CADENA de ella, asi que cualquier comparacion hecha con startsWith daria por iguales dos instalaciones distintas — y el resultado seria el fallo silencioso otra vez, actualizar una carpeta y arrancar la otra. El flujo ya la manejaba bien (Test-SamePath compara por igualdad exacta tras normalizar), pero nada lo probaba: la emulacion usaba declarada/otra-carpeta, nombres sin relacion entre si, que un startsWith mal puesto pasaria sin problema. - Escenario `sufijo` en emular-actualizacion-windows.ps1: instalacion en ...\CloudRestoreAS-win y tarea apuntando a ...\CloudRestoreAS. Verificado en Windows: reapunta la tarea, el proceso queda corriendo desde -win y el sello en la version nueva. - Nuevo scripts/probar-funciones-install.ps1: extrae las funciones del instalador por AST y las ejercita contra una tarea simulada, sin elevacion. Cubre los casos limite de la comparacion de rutas (el par de prefijo en ambos sentidos, comillas, barra final, mayusculas, `..`, ruta vacia) y que Sync-AgentTaskPath falle cuando no puede corregir. BUILD.md documenta por que se compara por igualdad exacta y no por prefijo. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
9 lines
468 B
Python
9 lines
468 B
Python
"""CloudRestoreAS - Aplicación de restauración automática de bases de datos SQL Server."""
|
|
|
|
# Fuente ÚNICA de la versión. La leen: el spec de PyInstaller (metadatos del .exe),
|
|
# package-release.sh (nombres de artefacto y release.json) y el reporte al PANEL.
|
|
# Formato obligatorio: puntos y números, monotónico creciente — el PANEL compara
|
|
# versiones como tuplas de enteros para detectar si hay una más nueva.
|
|
__version__ = "1.1.3"
|
|
__author__ = "Aduanasoft"
|