Releases: gnacho/easyzfs
Releases · gnacho/easyzfs
Release list
v2.0.1
feat(settings): new layout per user spec + daily passive release check
- Fila 1: Apariencia (60%) + Umbrales de salud (40%)
- Fila 2: Mi perfil (idioma, nombre, email, cambiar contrasena inline
estilo NetPulse) + Notificaciones push
- Zona admin: Usuarios | Copia de seguridad | Notificaciones en horizontal
- Acerca de a ancho completo con 4 tiles (Codigo, Changelog, Ko-fi, Privacidad)
- 'Comprobar actualizaciones' fuera: check pasivo 1/dia contra GitHub
releases (releasecheck.ts), ribbon superior descartable por version e
icono de estado en la cabecera de la zona admin
- Saludo 'Hola, {nombre}' en Panel y nombre visible en la sidebar
v1.8.0
feat: encrypted datasets, zfs replication over ssh, long-ops tracking…
v1.7.0
feat(settings): backup de BD + convenciones de Ajustes canonizadas Copia de seguridad de la BD (zona administracion): - internal/backup: VACUUM INTO en <datadir>/backups, colector por frecuencia horaria (la verdad son los ficheros, sobrevive reinicios), purga por retencion - endpoints: GET /api/backup/status, POST /api/backup/run, GET /api/backup/download, POST /api/backup/import (magic+quick_check, swap atomico con app.db.pre-import y exit para que systemd relance) - settings: backup_enabled (def true), backup_freq_hours (1/6/12/24/48/72, def 24), backup_retention_days (1-30, def 3) - tarjeta con estado+config+Forzar ahora (patron ajuste-proceso) + Exportar/Importar (confirmacion inline dos pasos) - tests: 4/4 (Run+Status, purge, concurrente, CheckSQLite) + E2E real (run 201, download SQLite valido, import 202->swap+exit->login OK) Convenciones de Ajustes (canonizadas en skill webapp-shell): - tarjeta Apariencia exacta estilo NetPulse: previews mini-UI con las variables CSS REALES scopeadas [data-theme] en el contenedor (fuera variables --tpv-* duplicadas), check animado, iconos Sun/Moon/Monitor en labels; orden tema->acento->densidad->reduce motion; SIN idioma - idioma movido a 'Mi sesion' (SIEMPRE, regla a fuego) - titulos DENTRO de las tarjetas (.cardtitle), fuera los h2 de seccion - Sistema fusionado dentro de Acerca de - grid 2 columnas >=1400px con altos cuadrados y sin celdas vacias; zonehead a ancho completo Verificado: tsc+build OK, go vet/test OK, Playwright 17/17 (1600px light + 390px)
v1.6.1
fix(shell): full-width layout + theme toggle in sidebar footer - app-shell sin max-width: el contenido aprovecha todo el ancho de la ventana (regla del usuario 2-Ago-2026); pools a 2 columnas >=1500px - toggle de tema movido al pie del sidebar [tema | Ajustes | plegar] (patron webapp-shell); el del topbar solo se muestra en movil Verificado Playwright 6/6 a 2560px y 390px
v1.6.0
feat(shell): webapp-shell adoption + black-screen-on-deploy fix
Fix pantalla negra tras despliegue (bug reportado en todas las apps):
- lazyRetry: React.lazy recarga una vez por sesion si el chunk viejo ya no existe
- ErrorBoundary global: tarjeta con boton recargar en vez de pantalla negra
- updatecheck: banner 'nueva version desplegada' al detectar cambio en /api/version (poll 10min + visibilitychange)
- spaHandler: Cache-Control no-cache para index.html/sw.js, immutable para /assets/
Adopcion webapp-shell:
- sidebar colapsable manual a rail 64px (persiste easyzfs-sidebar-collapsed) con pie: usuario clicable + Ajustes + plegar
- Ajustes accesible a todos los usuarios (zona admin con tinte sutil); bottomnav movil incluye Ajustes
- Apariencia: switch reducir animaciones (clase html.reduce-motion)
- Acerca de: comprobar actualizaciones contra GitHub releases (GET anonima solo al pulsar), changelog enlaza a releases, instalar PWA oculto si el navegador no lo soporta
- Login: guardado de credencial con Credential Management API
- users.language en BD (migracion v11) como fuente de verdad del idioma: GET /api/me devuelve language, PUT /api/me/language propio, PUT /api/users/{name}/language (admin) + desplegable por usuario en Ajustes
- claves localStorage canonicas easyzfs-* con migracion desde las legacy zfc-* (tema, acento, densidad, idioma) en boot anti-FOUC y providers
Verificado: go build/vet/test OK, tsc OK, npm build OK, Playwright 17/17 (colapso persistente, pie, reduce-motion, zona admin, idioma por usuario, bottomnav) contra server DEMO local
v1.5.0
feat(push): per-type preferences, quiet hours with deferred delivery …
v1.4.0
EasyZFS v1.4.0 — Web Push notifications
v1.3.3
feat(install): sha256-verified downloads + resource pre-flight + rele…
EasyZFS 1.3.2
Instalación one-liner: curl -fsSL https://raw.githubusercontent.com/gnacho/easyzfs/main/deploy/install.sh | bash
- Tareas del sistema filtradas a solo ZFS (timers systemd + cron)
- install.sh: URL de release por defecto, NoNewPrivileges solo en root-mode
- schedsys compatible con systemd >= 256
- Filtro de discos físicos (zvol/eMMC fuera), colector schedsys, rebrand EasyZFS