PrintStash v0.6.3: importaciones más seguras e historial
La v0.6.3 arregló los estados de trabajo de Bambu, el historial repetido, la paginación, la búsqueda en Postgres y el análisis de G-code.
La v0.6.3 de PrintStash fue una versión de mantenimiento para casos límite encontrados en las importaciones, el historial de impresoras, la navegación por la biblioteca y las copias de seguridad. La cobertura del backend creció de 351 a 547 pruebas, y la del frontend pasó de 85 a 93.
Arreglos de impresora e historial
Los valores de estado de Bambu como RUNNING, PAUSE y FINISH se traducían a los estados comunes de proveedor. Los trabajos pausados y completados dejaron de aparecer como desconocidos o de quedarse atascados en curso.
Arrancar el mismo archivo de G-code una segunda vez crea ahora un registro de trabajo nuevo. Antes, la segunda ejecución podía revivir la fila completada de la primera y borrar su resultado.
Las marcas de tiempo de los archivos de Moonraker se normalizaron a UTC en lugar de interpretarse en la zona horaria local del servidor. Los nombres de archivo del lado de la impresora que por casualidad se parecían a un marcador de revisión de PrintStash dejaron también de tener prioridad sobre un marcador final válido.
Arreglos de biblioteca y metadatos
La paginación de la biblioteca y de la papelera ganó un criterio de desempate estable. Eso evita filas repetidas o saltadas cuando muchos modelos comparten la misma marca de tiempo después de una importación masiva.
La búsqueda por nombre de modelo pasó a no distinguir mayúsculas en Postgres, igualando el comportamiento que ya tenía SQLite.
El análisis de G-code corrigió varios errores pequeños pero visibles:
- las estimaciones de tiempo con fracciones como
1.5hya no se convierten en cinco horas; - las longitudes de filamento de Cura se convierten desde metros aunque varíe el espaciado;
- los ceros de verdad, incluido un relleno del 0 por ciento y una cama a 0 C, siguen visibles y se exportan bien.
Importaciones más robustas
La detección de páginas de marketplace pasó a comprobar el dominio exacto, así que un nombre de host parecido no podía disparar la ruta de importación específica de MakerWorld. Los nombres de archivo descargados conservaban los puntos y comas, y se rechazaban las entradas de ZIP que usaban recorrido al directorio padre en formato Windows.
Un bloque de miniatura incrustada sin cerrar en un G-code mal formado ya no hacía que el analizador cargara el resto del archivo en memoria.
Listados de copias en la nube más rápidos
El manifiesto de la copia de seguridad pasó a ser la primera entrada del archivo comprimido. Listar copias en S3 o R2 podía entonces leer una cabecera pequeña en lugar de descargar cada archivo completo solo para identificarlo.
Las pruebas nuevas cubrieron el análisis de G-code, los resolutores de marketplace, las protecciones contra SSRF y contra rutas maliciosas en archivos comprimidos, los cálculos de filamento, los permisos de colección, los ciclos completos de copia y restauración, el escaneo de volúmenes compartidos, la correspondencia de archivos de impresora, las miniaturas de 3MF y los formateadores del frontend.