Changelog
v0.0.7-alpha actual pre-release
8 de mayo de 2026
Facturacion fiscal
- Lock de facturas al asentar: las facturas pasan a estado bloqueado (
locked) automaticamente al asentarlas, evitando modificaciones accidentales. Solo admins pueden desbloquarlas. - Calculo de retenciones (IRPF): integrado en el flujo de facturas de venta y compra. Configurable por partner y tipo de documento. Se calcula automaticamente sobre la base imponible.
- Estados de cobros/pagos: cada documento de venta/compra lleva un estado de pago que evoluciona automaticamente:
pending→partial→paid. El estado se recalcula al registrar cada pago o cobro. - Conciliacion automatica: el motor de conciliacion empareja pagos registrados con lineas de factura pendientes, marcando automaticamente el estado segun el importe conciliado.
Email por tenant (SMTP)
- SMTP configurable por empresa: cada tenant define su propio servidor SMTP (host, puerto, usuario, password, TLS/STARTTLS) desde Ajustes > Email.
- Cola de envio desatendida: los emails se encolan y se enviegan en segundo plano. Reintentos automaticos en caso de fallo temporal.
- Preview antes de enviar: modal que muestra exactamente como quedara el email antes de enviarlo.
- Envio masivo: seleccion multiple de documentos para envio por email en bloque.
- Notificaciones in-app al completar: cuando un email termina de enviarse (o falla), aparece una notificacion in-app en tiempo real.
Modulo RRHH
- Calendario de tareas: vista mensual y semanal de tareas asignadas a empleados. Visibilidad de carga de trabajo por departamento.
- Shift patterns y templates: patrones de turnos configurables (manana, tarde, noche, personalizado) y plantillas para asignarlos rapidamente.
- Commissions: registro y seguimiento de comisiones por empleado y periodo. Configurable como porcentaje o cantidad fija.
- Evaluations: evaluaciones de rendimiento con metricas configurables, ratings y feedback.
- Payrolls (nominas): generacion de nominas con conceptos salariales configurables (salario base, plus, deducciones, IRPF).
- Payroll concepts: tabla de conceptos de nomina reutilizables (devengos, deducciones, retenciones).
- Timeclock kiosk: modo terminal para que los empleados fichen entrada y salida directamente desde una pantalla dedicada.
- Incidents e incident types: registro de incidencias laborales con tipologia configurable (retraso, ausencia, incidente).
- Departments: estructura organizativa por departamentos.
- Employees: gestion completa de empleados con datos personales, contrato y departamento.
- Tasks: tareas asignables a empleados con fechas, prioridad y estado de realizacion.
Logistica
- Logistics hub: panel centralizado con overview de todas las operaciones logisticas activas.
- Shipments: gestion completa de envios. Estados: pending → picked → in_transit → delivered → returned.
- Routes: planificacion y gestion de rutas de entrega con asignacion de vehiculos y conductores.
- Driver app: aplicacion web para conductores con acceso movil: lista de entregas, estado de cada envio, incidencias.
- Platforms: gestion de plataformas de carga/descarga con ubicacion y capacidad.
- Vehicles: catalogo de vehiculos con matricula, tipo, capacidad y estado.
- Staging areas: areas de staging para organizacion fisica de preparados.
- Packages: gestion de bultos y paquetes dentro de un envio.
- Preparation tab: interfaz de preparacion de pedidos para operadores de almacen.
- Picking tasks panel: panel de tareas de picking con asignacion y seguimiento.
- Incidents tab: registro de incidencias en ruta (averias, retrasos, reclamaciones).
Editor visual de plantillas PDF
- Diseñador drag & drop: editor visual de plantillas de documento basado en canvas. Arrastra elementos para colocarlos, redimensiona y reposiciona con el raton.
- Elementos disponibles: texto, imagen, codigo de barras (Code-128), QR por pagina, tablas de lineas, lineas divisorias.
- Inspector editable: panel lateral para tipografia (fuente, tamano, color, peso), colores de fondo, posicion y tamano exactos.
- Preview PDF en tiempo real: genera la vista previa del PDF directamente desde el diseñador al guardar.
- Importar/exportar layout: exporta el layout del canvas como JSON para backup o versionado. Importa desde otro archivo JSON.
- Importar desde otra plantilla: copia el diseno de una plantilla existente a una nueva.
- Campos de plugins en el FieldPicker: los campos personalizados declarados por plugins aparecen disponibles en el selector de campos.
- Chips de lotes/series: embebidos automaticamente en documentos donde se requiera trazabilidad.
- QR + Code-128 por pagina: generacion automatica de codigos de verificacion en cada pagina.
- Marca de agua PAGADA: en facturas rectificativas ya pagadas se aplica automaticamente una marca de agua de estado “PAGADA”.
- Paleta de marca Keirost: el editor viene precargado con los colores de la identidad visual de Keirost.
SEO y presencia web
- OG image 1200x630: imagen optimizada para comparticion en redes sociales y apps de mensajeria.
- Meta tags completos: title, description y keywords para SEO organico.
- Open Graph: etiquetas OG para riqueza de previsualizacion en Facebook, LinkedIn, WhatsApp, Twitter.
- JSON-LD structured data: schema.org para mejor indexacion por motores de busqueda.
- robots.txt y sitemap.xml: configuracion de rastreo e indice para bots.
- Iconos PNG: favicon en multiples tamanos (16, 32, 192, 512) para todos los contextos (browser, PWA, apple-touch).
- Scrollbar con color de marca: scrollbar personalizado en color teal, soporte Firefox con estilo nativo.
UX y polish
- Tablas ordenables: todas las listas incorporan ordenacion por columna (asc/desc) sin recargar la pagina.
- Animaciones de entrada: row-in (fila entra desde la izquierda), card-in (tarjeta escala desde 0.95), pulse-dot (indicador pulsante en elementos activos).
- ~180 arreglos de modo oscuro: eliminadas clases
dark:duplicadas, corregidos hover mal-paireados, fixed transparencias en modales y dropdowns. - Sidebar compacta con iconos lucide: 60px de ancho, iconos de la coleccion lucide-react, hover scale + color transition.
- Topbar de sub-tabs: barra superior con tabs de subseccion del modulo activo.
- Tablas compactas con multi-select: checkbox tristate en todas las tablas, bulk actions bar al seleccionar.
- Dashboard con charts (recharts): grafica de linea (ventas vs compras 12 meses), donut (facturas por estado), barras (top clientes/proveedores).
- Bulk actions: barras de acciones masivas que aparecen al seleccionar filas: enviar, exportar, anular.
- Modal con backdrop blur: depth visual en todos los modales con backdrop-filter blur + opacidad.
- i18n preparada: estructura de internacionalizacion ES/EN en su lugar; traduccion completa al ingles en proceso para la siguiente release.
v0.0.6-alpha pre-release
18 de abril de 2026
Rediseño de UI
- Sidebar minimal de 60px con iconos lucide para los 7 módulos top-level (Inicio, Inventario, Ventas, Compras, Interlocutores, Contabilidad, Plugins, Ajustes)
- Topbar con sub-tabs del módulo activo
- Avatar de usuario y selector de empresa al pie del sidebar como popovers
- Tablas a ancho completo (sin el padding excesivo anterior)
- Hover scale 1.1 + cambio de color (200ms) en los iconos del sidebar
Tablas compactas
- Densidad compact por defecto en
@openfactu/uiTable, con propdensityopcional (compact | normal | comfy) - Multi-select con checkbox tristate (
selectable,selectedKeys,onSelectionChange) - Nuevo componente
<BulkActionsBar>que aparece encima de la tabla cuando hay filas seleccionadas - Fix de dark mode striping (filas no se ven lavadas)
- thead y SearchableSelect dropdown sin transparencia (no se ven a través de modales)
- Modal con backdrop opaco al 90% + blur, constraint de altura
max-h-90vhy scroll interno
Dashboard con gráficos (recharts)
- Línea: tendencia mensual de Ventas vs Compras (12 meses)
- Donut: distribución de facturas por estado (Abiertas / Cerradas / Parcial / Anuladas)
- Barras horizontales: Top 5 clientes y Top 5 proveedores por volumen
- KPIs y secciones de stock se mantienen
- Todos los charts respetan el modo dark/light
Plugin SDK extendido (@openfactu/plugin-sdk v0.1.0)
- Nuevos tipos
PluginModuleyPluginSubTabenPluginManifest.ui - Plugins pueden registrar módulos top-level propios (icono nuevo en el sidebar)
- Plugins pueden inyectar sub-tabs en módulos core
- Nuevo
ListFetchContext<T>y eventos<entity>.list.afterFetchpara inyectar/mutar filas en listados core (items,partners) - Backwards compatible:
menuItemslegacy se mapean automáticamente al módulo “Plugins”
Bug fixes (~180 instancias)
- Eliminadas todas las clases
dark:duplicadas (dark:text-X dark:text-Y) que dejaban texto lavado en oscuro - Reparados patrones
hover:bg-X dark:bg-Ymal-paireados (ahoradark:hover:bg-Y) - TenantSwitcher adaptado a tema light/dark
- Card header sólido (sin opacity 30 en dark)
- PermToggle con ring + dot adaptados a dark mode
v0.0.5-alpha pre-release
17 de abril de 2026
Sandbox de desarrollo de plugins
- Hot reload: edita un plugin y se recarga automaticamente sin reiniciar el servidor
- File watcher con chokidar para deteccion de cambios
- WebSocket
/ws/pluginspara notificar al frontend en tiempo real - Componentes UI se actualizan en el browser sin refrescar la pagina
HookManager.unregisterPlugin()para evitar duplicacion de hooks al recargar
Desarrollo remoto de plugins
- Dev API Keys: genera credenciales (clientId/clientSecret) desde la UI del ERP
POST /api/plugins/upload— sube un plugin como ZIPPOST /api/plugins/:id/push— sync incremental de archivos- Autenticacion por dev key o JWT de admin
- Pantalla de gestion de API Keys en Plugins > Desarrollo
CLI: nuevos comandos de plugins
openfactu plugin search— buscador interactivo con autocompleteopenfactu plugin install/update/remove— gestion completaopenfactu plugin push— sube plugin a servidor remotoopenfactu plugin watch— auto-sync al guardar (desarrollo remoto)openfactu plugin link/unlink— symlinks para desarrollo localopenfactu plugin dev— servidor en modo desarrollo con logs filtrados
CLI: comandos de Docker
openfactu rebuild— reconstruye y reinicia contenedoresopenfactu logs— muestra logs de los serviciosopenfactu stop/openfactu restart— control de servicios
Fixes de Docker
- Dockerfiles compilar paquetes compartidos (@openfactu/pdf, common, ui) antes del server/web
- Crear tablas del schema publico automaticamente al arrancar
.dockerignorepara evitar copiar storage/db_data
SDK (@openfactu/plugin-sdk v0.0.3)
- Tipos completos:
PluginContext,HookContext,PluginManifest,CoreTableName - Hooks tipados:
DocumentType,HookEvent,HookHandler - Documentacion actualizada con ejemplos
v0.0.4-alpha
16 de abril de 2026
Primera version funcional completa de Keirost.
CLI (@openfactu/cli)
openfactu install— Descarga e instala desde releases de GitHub, con soporte Docker (Windows/Mac/Linux)openfactu deploy— Wizard para configurar acceso externo (LAN / dominio publico / SSL)openfactu deploy:status— Estado de contenedores Dockeropenfactu update— Actualiza a la ultima version sin perder datos (plugins, storage, .env)openfactu setup— Configuracion inicial interactiva (BD, admin, primer tenant)openfactu migrate/migrate:status— Gestion de migraciones de base de datos por tenantopenfactu tenant list/create/sync— Gestion de empresasopenfactu plugin list— Estado de plugins por empresa- Soporte
sudopara instalar en cualquier directorio del sistema - Funciona desde cualquier ruta con
--pathoOPENFACTU_HOME
Plugins por empresa
- Activar/desactivar plugins por tenant desde la UI o API
- Nueva tabla
TenantPlugincon cache en memoria para rendimiento HookManagerfiltra hooks segun la activacion del plugin en el tenant- Pantalla de gestion de plugins en el frontend con toggles
FactuAPI
FactuApi.transaction()— Operaciones atomicas (todo o nada)- IDs pre-asignados antes de
save()para referencias cruzadas entre documentos FactuApi.session()— Login + seleccion de tenant + conexion a BD en una sola llamada- Helpers de consulta:
getPartner(),getItem(),getSeries(),getOpenPeriods() FactuApi.connect()— Acceso a la BD del tenant sin transaccion
Docker
- Fix del build de la web (TypeScript deprecations, type imports con
verbatimModuleSyntax) VITE_API_URLcomo build arg en el Dockerfile de la web- Eliminado atributo
versiondeprecado de docker-compose docker-compose.prod.ymlgenerado por el CLI con binding a0.0.0.0
ERP Core
- Multi-empresa con esquemas PostgreSQL aislados
- Facturacion completa: pedidos, albaranes y facturas (venta y compra)
- Inventario: almacenes, zonas, lotes, series, stock por ubicacion
- Socios de negocio: clientes, proveedores, grupos, direcciones multiples
- Impuestos configurables (IVA 0%, 4%, 10%, 21%)
- Series de numeracion por tipo de documento y periodo
- Plantillas PDF personalizables con HTML/Handlebars
- Dashboard con metricas de ventas, compras, stock y documentos recientes
- Busqueda global en todas las entidades
- Audit log completo (CREATE/UPDATE/DELETE con valores anterior y nuevo)
- Sistema de permisos granulares por usuario y tenant
- Datos geograficos: paises, regiones, provincias, municipios
- Dark mode completo en la interfaz web
v0.0.3-alpha
16 de abril de 2026
Cambios
- Primera version del CLI publicada en npm (
@openfactu/cli) - Comando
installcon seleccion de releases de GitHub - Comando
deploypara configurar acceso externo - Correcciones menores
v0.0.2-alpha
16 de abril de 2026
Cambios
- Primera release publica de Keirost
- ERP funcional con facturacion, inventario y multi-empresa
- Interfaz web con React 19 y Tailwind CSS
- API REST completa
- Sistema de plugins
- Docker Compose para despliegue
Proximas versiones
Funcionalidades planificadas para futuras versiones:
- Traduccion completa al ingles de la interfaz
- OCR para escaneo de facturas
- Contabilidad integrada (libros de diario, mayor, balances)
- Reportes y graficos avanzados
- Marketplace de plugins
- Soporte multi-idioma en la interfaz
- SII/AEAT y TicketBAI
- Exportacion a formatos standar (FACTURA-E, EDI)