Xenpia 0.2.0
Resumen de lo que cambió en la versión 0.2.0, desde la 0.1.0.
Novedades
- Facturación. Planes, suscripciones y monitoreo de tokens (Fases 1-5)
- WhatsApp. Complete OTP activation for panel-created numbers, fix missing webhook subscription
- Idiomas. Full translation sweep + Ecuador Spanish as active locale
- Historia clínica. Create clinical records from the list, linked to a patient
- Fix image uploads, 10MB limit, create templates, mobile editor toolbar
- Historia clínica. Catálogo CIE-10 completo, sistema CIE-11 y tipo de diagnóstico
- Historia clínica. Seguro médico autoalimentable + editar/borrar en catálogos
- Superadmin. Rediseñar impersonation con sesión real vía magic-link
- Pagos. Vitrina Place to Pay via Odoo, apagada por defecto
- Administración. Sync prod data to test for superadmin debug
- Agenda. Bloqueo de agenda on-demand desde el calendario
- Historia clínica. Ficha de geriatría y antecedentes gineco/vacunas
- Historia clínica. Antecedentes dinámicos por chips sobre el motor de catálogos
- Historia clínica. Sube las alergias a la ficha, bajo el grupo sanguineo
- Historia clínica. Antecedentes dentro de la ficha y navegacion pegajosa
- Catálogos. Motor de N niveles, registro y permiso de plataforma
- Administración. Pantalla de catalogos con arbol multinivel
- Documentos. Temas de papeleria, sello de agua y hoja real
- Bots. Tool get_my_contact para identificar paciente nuevo vs registrado
- Bots. El catálogo de especialidades incluye el/los profesional(es)
- Historia clínica. Editar, buscar, duplicar y archivar escalas y fichas
- Historia clínica. Recargar catalogo CIE-10 completo (14212 codigos)
- Historia clínica. Pedidos de imagen y exámenes + arreglo popup de marca
- Historia clínica. Pedidos — modo impresión "formato completo" + fix selector
- Historia clínica. Pedidos — vista "solo lo pedido" con cuadros + editor en hoja A4
- Historia clínica. Controles sobre la cita, borrador→confirmar y ficha plegable
- media. Tablas y bucket para la multimedia de los canales
- media. El bot entiende audios y guarda la multimedia de los canales
- media. Tarjeta de configuracion y multimedia en el inbox
- antecedentes. Soportar catalogos de mas de dos niveles
- Historia clínica. Importar plantillas desde Google Docs y toggle de membrete
- Historia clínica. Certificado de enfermedad general formato IESS (EC)
- Conversaciones. Alertas de bot inactivo y solicitud de agente en menu y header
- Historia clínica. Varios CIE, vitales por encuentro e impresión HCU
- Historia clínica. Cada diagnóstico con texto, CIE y tipo de certeza
- Superadmin. Modo Entrar al tenant sin impersonar
- Historia clínica. Imprimir consulta en borrador y conservar tabla de diagnósticos
- Historia clínica. Barra TipTap completa con columnas y blockquote
- Historia clínica. Vademécum compartido en antecedentes + CIE editable por tenant
- Historia clínica. Plantillas schema v3 HTML sanitizado y espaciado TipTap
- Historia clínica. Catálogo de plantillas con sistema+tenant, versiones y borrado
- Historia clínica. Versiones usables en emisión, tabla expandible y editor HTML real
- Historia clínica. Imágenes en HTML vía data-asset-id y galería de activos en el editor
- Historia clínica. Wipe/reseed plantillas HTML v3, rename de versión y folio por médico
- Agenda. Drawer de paciente al agendar y fecha de nacimiento/edad
- Historia clínica. Plantillas HTML de consultorio con cabecera médica y marca de agua
- Agenda. Habilitar un tramo del día y recortar el eje del calendario
- Agenda. Bloquear varios profesionales a la vez con opción Todos
- Historia clínica. Plantillas MSP consultorio unificadas y sexo/hora en documentos
Correcciones
- Chat web. Warn when install snippet bakes in a localhost backend URL
- Dedupe 20260861 migration version, make db push non-interactive in CI
- Servidor. Add missing type imports for RecipientRoutingService/ChannelDispatcherRegistry in flow-graph
- Servidor. Import DispatchModule in BotsModule to resolve RecipientRoutingService/ChannelDispatcherRegistry DI crash
- WhatsApp. Filter channel_account_channels by channel_code=whatsapp when saving phone number
- Dedupe 20260861_sandbox_channel_pack migration version
- Re-fix invalid UTF-8 bytes in locale JSON (reintroduced by a merge)
- Servidor. Import SandboxChannelsModule in DispatchModule to resolve ChannelDispatcherRegistry DI crash
- Resolve pre-promotion issues found in dev vs main review
- Conversaciones. Show inbound messages live without page reload
- Dedupe migration version prefixes 20260865 and 20260866
- Historia clínica. Permitir borrar del catálogo aunque esté en uso
- Administración. Ocultar y bloquear pantallas de superadmin durante impersonación
- Idiomas. Translate Supabase Auth error messages app-wide
- Idiomas. Traducir el módulo de contactos + agregar documento de identidad
- Administración. Tenants no cargaban en data-sync + renombrar vars de DB
- db. Quote reserved word "authorization" en migracion de payments
- db. No dropear is_superadmin() en migracion de impersonation
- db. Renombrar a user_is_superadmin(uuid) para evitar ambiguedad 42725
- Administración. Evitar 502 en impersonacion por cookies Set-Cookie demasiado grandes
- Idiomas. Completar barrido de textos UI hardcodeados
- Idiomas. No reexportar page-title en el barrel de locales
- db. Renombrar seed_geriatria_form para evitar colision de version
- Administración. SuperadminGuard no leia is_super_admin nativo via SDK
- Administración. Detectar project ref en conexion directa con userinfo
- Administración. Copiar solo columnas comunes en auth.users/auth.identities
- Administración. Excluir columnas generadas al copiar auth.users/identities
- Administración. Excluir vistas al listar columnas de public para data-sync
- Administración. Scope=all no debe tocar cuentas de superadmin de plataforma
- Administración. Copiar solo columnas comunes en TODAS las tablas public
- Historia clínica. Saca las constantes del módulo de acciones de servidor
- Historia clínica. Castea a uuid los NULL de created_by en la semilla
- Historia clínica. Boton de agregar arriba, categorias sin traducir y menu descolocado
- deploy. Bakear NEXT_PUBLIC_CHANNEL_MODE en el build del frontend
- Administración. Una pantalla vacia ya no puede ser un error escondido
- Administración. Una sesion sin espacio de trabajo tampoco puede verse como catalogo vacio
- Catálogos. El arbol leia profiles.email, que no existe
- WhatsApp. Plantillas del pack sandbox en CHANNEL_MODE=sandbox
- Bots. Freno idempotente por turno y tope de acciones en el agente
- WhatsApp. Conservar contexto de la opción tocada (selección de horario)
- Agenda. No reservar con un subject_contact_id no gestionable
- Bots. Validar el botón de send_list (no encolar listas que fallan al enviar)
- WhatsApp. Filter channel_account_channels by channel_code=whatsapp when saving phone number
- Historia clínica. Pedidos — auditoría de acceso y firma fuera del
- Historia clínica. Pedidos — compactar cabecera de la plantilla impresa
- security. Cerrar la escritura anónima a memberships
- security. Cerrar data_sources, flows y la vista de checkpoints
- security. Cerrar a anon los catálogos de IA y de canales
- security. Hacer ilegibles los tokens de Meta y Telegram
- security. Acotar por tenant el núcleo de canales y bots
- security. Proteger los consentimientos legales y cerrar la lectura de memberships
- security. Cerrar tenant_users_v, la vista que exponía los correos
- Chat web. No quemar localhost en la URL del backend por ambiente
- Conversaciones. Handoff en vivo, pausar bot y envio asesor a WhatsApp
- Historia clínica. Fechas escapadas, pestaña de la barra, CIE-10 en controles e impresión de escalas
- Historia clínica. Mostrar el paciente seleccionado al crear historia
- Historia clínica. Fidelidad del import de plantillas y logos visibles en el editor
- Historia clínica. Mostrar el paciente seleccionado al crear historia
- pwa. No interceptar POST de Server Actions (import de plantillas)
- Documentos. Mostrar y poder borrar el logo en Marca y membrete
- Agenda. Citas canceladas no interceptan bloqueo ni agendar en el calendario
- Agenda. Tipar pointerEvents para que el build de Next no falle
- Agenda. Permitir bloquear horarios con permiso de citas
- Historia clínica. Parentizar ?? y || en el encuentro de signos vitales
- Historia clínica. Reimportar toNum en la toma de signos vitales
- Historia clínica. CIE con chips como los antecedentes
- Agenda. Alinear huecos al inicio de jornada y permitir override de duración
- Historia clínica. Permitir mover, redimensionar y alinear imagenes del documento
- db. Renombrar migración admin roles para evitar colisión de timestamp
- db. Renombrar migración de diagnósticos por fila para evitar colisión de timestamp
- Historia clínica. Imprimir en el navegador, no en la PWA instalada
- Historia clínica. Imprimir desde la PWA sin perder la sesion
- Historia clínica. Imprimir solo en pestana nueva, sin duplicar en la PWA
- Historia clínica. Endurecer RPC de impresion de consulta y toast en PWA
- frontend. Fijar [email protected] para Node 20 en Docker
- Historia clínica. Imprimir HCU sin leer tenants.metadata inexistente
- frontend. Sincronizar yarn.lock con isomorphic-dompurify 4.2.0
- Historia clínica. Import por defecto a TipTap; HTML sanitizado como opción avanzada
- frontend. Restaurar import Stack en HtmlDocEditor
- Historia clínica. Switch TipTap/HTML sin bloquear por tokens y navegar tras personalizar
- frontend. Completar birth_date/age en mock de contactos
- frontend. Montar LocalizationProvider para DatePicker
- frontend. LocalizationProvider dentro de SettingsProvider
- contact. Z-index del Select/DatePicker sobre el drawer de paciente
- Historia clínica. Resolver médico de receta desde el usuario vinculado
- db. Renombrar migración de allow/calendar view para evitar colisión de timestamp
- db. Renombrar migración plantillas pro para no colisionar con scheduling
- Historia clínica. Bloques de dominio en editor HTML y slots de exámenes en impresión
- Historia clínica. Toolbar de bloques HTML visible y orden_examenes otra vez en TipTap
- frontend. Declarar showMissing en HtmlDocRenderer para el typecheck
- frontend. Tipar nombres de slot en HtmlDocRenderer para el typecheck
- frontend. Normalizar resourceIds a string en useBlockCreation
- Historia clínica. Usar locale_code en seed de plantillas MSP
- Historia clínica. HCU print omite vacios y muestra evoluciones
- Agenda. Persistir servicios al editar y especialidad en documentos
- Historia clínica. Especialidad en configuracion de credenciales
- Historia clínica. Resolver profesional al imprimir sin resource_id
- Historia clínica. Documento del paciente y medico vinculado a contacto
- docs. Puertos 3840/3841 y dominios de documentación en test
Los detalles técnicos de cada cambio están en el repositorio. Si algo de lo de arriba no se entiende desde la aplicación, escríbenos: probablemente falte explicarlo en el manual.