PrintStash v0.7.0: notificaciones y escaneos seguros
La v0.7.0 añadió avisos por webhook, Discord, Telegram y ntfy, mejoró las miniaturas, protegió los escaneos de mallas grandes y arregló los metadatos de G-code.
La v0.7.0 de PrintStash añadió notificaciones opcionales para eventos de impresión y de impresora. También cambió cómo se tratan las mallas densas, mejoró las miniaturas y arregló varios problemas de G-code y de descargas en instalaciones autoalojadas.
Las notificaciones están apagadas hasta que las configuras
Los canales podían suscribirse a impresiones completadas, fallidas y canceladas, además de a impresoras que se desconectan. Se admitían webhooks JSON genéricos, Discord, Telegram y ntfy, con filtros de evento y de impresora por canal.
Los eventos se encolaban en la misma transacción de base de datos que el cambio de estado y los enviaba un despachador en segundo plano. Las entregas fallidas usaban una espera exponencial. La interfaz mostraba los intentos recientes y ofrecía una acción de prueba.
La entrega es al menos una vez, así que un webhook reintentado puede llegar más de una vez. Quien recibe debería deduplicar por la cabecera Idempotency-Key.
Los mensajes incluían un enlace al modelo de origen cuando había una URL http o https segura disponible. Los valores de Telegram se escapaban para HTML, y los títulos Unicode de ntfy se codificaban correctamente.
Las mallas densas ya no tumban un escaneo
Antes de cargar geometría STL, PLY, OBJ o 3MF, PrintStash estimaba el número de triángulos. Los archivos por encima de VAULT_MESH_MAX_RENDER_TRIANGLES, que por defecto era 2.000.000, seguían indexados pero se saltaban la geometría generada y las miniaturas. Un 3MF podía conservar su previsualización incrustada.
Las descargas de STL y 3MF pasaron también a hacerse en streaming desde disco, y los escaneos interrumpidos llegaban a un estado final en lugar de quedarse atascados.
Miniaturas y orientación mejores
El renderizador de miniaturas añadió sombreado suave que respeta las aristas y una cámara de tres cuartos con la Z hacia arriba. Los modelos orgánicos se veían menos facetados, y los modelos diseñados en vertical ya no aparecían tumbados de lado con la rejilla del suelo atravesándolos.
Arreglos de G-code y del slicer
La longitud de filamento de OrcaSlicer dejó de multiplicarse por 1.000. El análisis de la temperatura de cama reconoció el hot_plate_temp de OrcaSlicer y Bambu Studio, y el fill_density de PrusaSlicer pasó a estar disponible como metadato de relleno.
Open in slicer empezó a usar en la URL un token de descarga de vida corta y limitado a un archivo, para que OrcaSlicer y Bambu Studio pudieran obtener un archivo protegido reconociendo su extensión. Se mantuvo el soporte de bambustudioopen:// en macOS.
Las importaciones de ZIP empezaron también a conservar su estructura de carpetas como colecciones anidadas.
Dos migraciones aditivas crearon las tablas de notificaciones y el flag de funcionalidad, desactivado por defecto. La versión añadió la configuración VAULT_MESH_MAX_RENDER_TRIANGLES y VAULT_SLICER_DOWNLOAD_TOKEN_EXPIRE_MINUTES.
Lee la guía de notificaciones actual y el artículo sobre mallas grandes para el comportamiento añadido después de esta versión.
La #24 sigue el fallo con mallas densas, y la #27 sigue el arreglo de la descarga hacia el slicer en instalaciones autoalojadas.