CHANGELOG What's new, week by week

We improve every week.

Every change we make to the product. Features, fixes and improvements. No asterisks.

v4.13.5 MAJOR 2026-05-05

Hospital · Cloud-to-on-prem · Kydesk Agent + Site Connector + telemetría masiva real-time

  • feature Arquitectura cloud-to-on-prem: Site Connector y Kydesk Agent cierran la brecha entre la nube y tu infra hospitalaria detrás del firewall. Solo tráfico HTTPS saliente, mTLS y enrollment token de 1 solo uso.
  • feature Self-contained: cero binarios externos, cero Docker. Agentes y connector son scripts bash/PowerShell que usan herramientas estándar del SO (/proc, df, ss, snmpwalk · Get-CimInstance, Get-Counter, Get-NetAdapter).
  • feature Compatible cPanel: cloud-side es PHP+MySQL estándar, sin dependencias compiladas, funciona en hosting compartido típico hospitalario.
  • feature Instalación en 1 comando estilo Datadog/New Relic. Linux: curl -fsSL ".../install/agent?t=TOKEN" | sudo bash. Windows: iwr "URL" -UseB | iex. Token embebido en script generado dinámicamente desde la cloud.
  • feature Install profesional: detecta arquitectura, instala dependencias, configura systemd/Scheduled Task, hace primer push de prueba inmediato y reporta resultado en consola con "OK Primer push exitoso (10.1 KB)".
  • feature UI de monitoreo con tabs Linux/Windows, copy-to-clipboard, install commands sobre fondo terminal y banner CTA clickeable para ver telemetría completa.
  • feature Kydesk Agent v2.0: daemon ligero que recolecta 50+ data points por host cada 60s. Push directo HTTPS a la cloud, ideal para servers críticos Epic/PACS/HIS/AD.
  • feature Linux Agent usa /proc, df, ip, ps, systemctl, ss, who, apt/yum. Cron * * * * * dispara el push. Cero dependencias adicionales sobre la base estándar del SO.
  • feature Windows Agent usa Get-CimInstance (OS/Processor/ComputerSystem/BIOS/LogicalDisk), Get-Counter con fallback a Win32_PerfFormattedData en Windows Home, Get-NetAdapter, Get-Process, Get-Service, Get-NetTCPConnection, Get-HotFix, Microsoft.Update.Session COM. Scheduled Task cada minuto.
  • feature Recolección masiva: system (hostname, FQDN, kernel, arch, boot, manufacturer, model, BIOS) · CPU (model, cores físicos/lógicos, MHz, % por core, load) · memoria total/used/swap · todos los disks por mount · todas las NICs con MAC/IPv4/RX/TX · top 10 procesos · servicios · puertos en escucha · sesiones · updates pendientes · hotfixes.
  • feature Bulletproof contra fallos: cada sección con try/catch helper SafeRun. Fallbacks múltiples (CIM si Get-Counter falla, Registry si CIM Processor no responde, Win32_LogonSession si query.exe no existe). El payload se arma siempre.
  • feature Body UTF-8 explícito: PowerShell 5.1 codifica como Windows-1252 por default rompiendo acentos. Forzamos [System.Text.Encoding]::UTF8.GetBytes con Content-Type charset=utf-8 para que la cloud reciba bytes válidos.
  • feature Logging estructurado en agent.log: [start], [step] config OK, [step] system probe, [step] payload X KB, push OK/FAIL con detalle, [end]. Diagnóstico fácil sin entrar al servidor.
  • feature Site Connector: relay self-hosted Linux que polea infra vía SNMP/WMI/SSH y empuja a la cloud. 1 sólo deployment cubre 2,000+ dispositivos. Auto-instala dependencias en apt/yum/dnf. Cron cada minuto.
  • feature Connector heartbeat pregunta a la cloud qué devices polear. Cloud responde con IPs + community SNMP. Soporta SNMP v2c y v3 con auth MD5/SHA/SHA256/SHA512 y priv AES128/192/256.
  • feature Auto-discovery: pantalla "Ejecutar scan" encola job que el connector procesa. Scan de rangos CIDR (10.0.0.0/16) usando credenciales guardadas. Descubre y popula automáticamente network devices, servers, endpoints.
  • feature Credenciales cifradas con AES-256-GCM derivado de app key + tenant ID. SNMP communities, passwords WMI, users SSH jamás se devuelven al frontend. Solo el connector autenticado puede usarlas.
  • feature 6 endpoints API públicos: POST /api/v1/hospital/agent/{enroll,metrics,heartbeat} con token kyt_*, POST /api/v1/hospital/connector/{enroll,heartbeat,device-status} con enrollment_token 40-hex. Sin sesión, sin CSRF, auth puro por token.
  • feature Auto-enroll de hosts: si el agente envía métricas para un hostname que no existe, la cloud crea automáticamente el row hospital_servers + hospital_monitoring_agents y vincula. Cero pasos manuales.
  • feature Backfill de hardware automático: cada push trae cpu_cores, ram_gb, disk_total_gb derivados del payload. El row del server se enriquece sin intervención del admin.
  • feature Auto-detección de eventos: high_cpu (>=85% warning, >=95% critical), high_memory, disk_warn por mount, service_failed, update_available, reboot detectado por uptime reset. Dedupe 5 min por kind.
  • feature Pantalla detalle /hospital/servers/{id} con 9 tabs: Overview (Chart.js CPU/RAM/disco 90 min), Hardware (CPU model + grid % por core), Discos (todos los mounts), Red (todas las NICs), Procesos (top 20), Servicios, Seguridad (puertos+sesiones+updates+hotfixes), Eventos, Raw payload.
  • feature Real-time UI: toda la página se refresca sola cada 5 segundos sin recargar. Alpine.js + endpoint JSON /live.json. Barras animan al nuevo valor, gráfico Chart.js redraws, tablas reemplazan in-place.
  • feature Countdown del próximo push: barra negra terminal con cuenta regresiva segundo-a-segundo, progreso color-coded (violeta→cyan→verde). "último push: hace Ns" en vivo. Botón refrescar manual con spin.
  • feature Banner agente desactualizado: si la cloud detecta version v1.x, muestra banner amarillo con comando exacto para upgradear. Transición transparente sin desinstalar.
  • feature Migration v3 (IT Ops): 7 tablas nuevas (network_devices, servers, server_metrics, endpoints, support_tiers, tier_members, tier_routing).
  • feature Migration v4 (Monitoring): 4 tablas (site_connectors, monitoring_agents, discovery_credentials, discovery_jobs) + ALTERs para metric_source, connector_id, agent_id.
  • feature Migration v5 (Rich telemetry): column hospital_servers.details JSON + agent_payload_kb + last_agent_seen · tablas hospital_server_processes (top 10 por push) y hospital_server_events con dedupe.
  • feature Token validation: agent tokens kyt_<tenantId>_<hmac32> firmados con HMAC-SHA256 derivado de app key. Connector tokens 40-hex con random_bytes(20). Validación constant-time con hash_equals. Revocable desde UI.
  • feature Solo tráfico saliente: firewall hospitalario no abre puertos entrantes. Agentes y connector inician todas las conexiones. TLS 1.3 entre on-prem y cloud. Zero data exposure.
  • feature Ownership enforcement: device-status valida que el device pertenece al tenant del connector. HTTP 403 device_not_owned si un connector intenta tocar infraestructura de otro hospital.
  • improvement Server list view: click en nombre del host abre detalle directo. Ícono ↗ en agentes clickeables del Monitoring page. Botón "Ver servidores monitoreados" prominente en header.
  • improvement Banner CTA en monitoring: cuando hay agentes reportando muestra "Telemetría detallada disponible · N agentes reportando · CPU per-core, procesos top, discos por mount, NICs, servicios, puertos, sesiones..."
  • improvement Métricas de carga del connector: polled_devices y metrics_per_minute calculados automáticamente y mostrados en tabla de Site Connectors. KPI "métricas/minuto" en strip principal.
v4.13.4 MINOR 2026-05-04

Hospital · Resend email cableado + 7 integraciones FHIR/HL7 + 47 eventos suscriptibles

  • feature HospitalMailer · capa de notificaciones email automáticas que usa Core\Mailer (Resend → SMTP fallback) configurado en super admin · templates HTML responsivos con header gradiente rojo, body estructurado y footer del hospital
  • feature Email automático en CODE TRIGGERED · al disparar cualquier código (Rojo/Azul/Amarillo/Púrpura/Blanco) se notifica al comandante + on-call activos del depto + CIO + privacy officer (si púrpura) + emergency_email del hospital · CTA directo al RCA
  • feature Email automático en EMR DOWN · cuando un health check falla (manual o auto), se notifica a TODOS los on-call activos + CIO con detalles del error y timestamp · si auto_code_blue=1, también email del Código Azul disparado
  • feature Email automático en PATIENT SAFETY · sentinel events y major harm notifican al safety officer + privacy officer + CIO con badge "REPORTABLE A AUTORIDADES" si aplica
  • feature Email automático en BACKUP · completado o fallido notifica al usuario que disparó + CIO · incluye checksum SHA-256, tamaño, registros, encriptación · email rojo si falló con detalle del error
  • feature Email automático en TRAINING · al asignar un curso, notifica al usuario con título, categoría, duración, score mínimo, fecha vencimiento, badge OBLIGATORIO si aplica · CTA directo al provider externo
  • feature HospitalMailer trata graciosamente las fallas · si Resend cae, fallback automático a SMTP · si ambos fallan, log a error_log y continuar sin bloquear el flujo del usuario
  • feature Nueva categoría "Healthcare · Hospital" en el marketplace de integraciones · 7 providers nuevos exclusivos para Hospital Edition · plan_required = hospital
  • feature Epic FHIR · POST a /Observation, /Communication, /DiagnosticReport o /Flag con OAuth2 client credentials · funciona con Epic App Orchard · payload FHIR R4 estándar generado desde el evento Kydesk
  • feature Cerner / Oracle Health FHIR · OAuth2 con tenant_id Cerner · soporte para SMART on FHIR scopes · POST a Communication/Observation/Flag/DiagnosticReport · compatible con Millennium R4
  • feature HL7 v2 MLLP outbound · genera mensajes ADT^A04, ORU^R01, MDM^T02 o SIU^S12 · framing MLLP (VT/FS/CR) sobre TCP socket · compatible con Mirth Connect, Rhapsody, Cloverleaf y otros interface engines · valida ACK (AA/CA) o NACK del receiver
  • feature ServiceNow Healthcare ITSM · POST a tabla incident, sn_hcls_incident o change_request · auto-mapea severidad de Códigos a Urgency 1-3 y patient_impact a Impact 1-3 · soporte para assignment_group sys_id
  • feature RapidSOS / 911 bridge · webhook a RapidSOS para Códigos Rojos críticos (incendio, evacuación) · coordina con servicios de emergencia 911 en EE.UU. y Puerto Rico · payload con facility_id, address, severity
  • feature FDA Recall feed · polling diario al openFDA Device Recall API · si un recall coincide con tu inventario biomed (manufacturer + model), crea ticket urgente automático y notifica al biomedical engineer · prevención proactiva
  • feature Ministerio de Salud Pública (RD) · template para reporte oficial al MSP de sentinel events reportables · soporte para certificado digital firmado · webhook configurable para otros países latinoamericanos
  • feature 47 eventos hospitalarios nuevos suscriptibles para webhooks · agrupados en 10 grupos: Códigos (4), Biomed (5), EMR/HIS (4), On-Call (3), HIPAA (4), Patient Safety (3), Backups & DR (4), Training (4), Access Reviews (3), Risk (3)
  • feature Eventos críticos con emoji para claridad visual: 🚨 hospital.code.triggered · 🔴 hospital.emr.down · ⚠️ hospital.biomed.recall · 🚨 hospital.safety.sentinel · 🔴 hospital.hipaa.baa_expired · útil para Slack/Discord/Teams
  • feature Total eventos disponibles: 121 (era 74) · cualquier integración (Slack, Webhook, PagerDuty, etc.) puede suscribirse a eventos hospital específicos · UI de marketplace muestra el grupo "Hospital · X" con eventos checkbox
  • feature IntegrationDispatcher con 7 nuevos handlers · sendEpicFhir, sendCernerFhir, sendHl7Mllp, sendServiceNow, sendRapidSos · oauth2Token() helper compartido para client credentials · buildFhirResource() genera Communication/Observation/Flag/DiagnosticReport canónicos
  • feature HL7 MLLP nativo PHP · sin dependencias externas · usa fsockopen + fread con framing VT(0x0B)/FS(0x1C) · timeout 5s · validación de ACK MSA segment · listo para producción con interface engines hospitalarios
  • feature ServiceNow auto-mapping · mapea automáticamente: severidad 1_critical → urgency 1, patient_impact major/sentinel → impact 1 · category configurable · assignment_group opcional · compatible con HCLS (Healthcare and Life Sciences) plugin
  • improvement Meetings/Agenda confirmado completo en plan Hospital · feature flag "meetings" activo · 29 rutas operacionales · 4 tablas DB · todas las vistas (calendar, list, types, availability, settings, manual booking) accesibles · igual de robusto que Enterprise
  • improvement Hospital Edition incluye TODOS los módulos Business+Enterprise sin restricciones · CRM, Quotes, Retainers, ITSM, Reports Builder, AI Engine, Migration Center, Microsoft Teams Omnicanal, Active Directory, Live Chat, Time Tracking, Email Inbound · sobre los 13 módulos hospitalarios exclusivos
v4.13.3 MINOR 2026-05-04

AI Cost Tracking en USD/DOP por tenant desde super admin

  • feature AiPricing core helper · cálculo USD por modelo (formula: tokens_in/1M × price_in + tokens_out/1M × price_out × markup) · soporte para 13 modelos pre-configurados (Claude 4.x family, Claude 3.x legacy, GPT-4o family) · fallback automático a precio default si modelo no listado
  • feature ai_completions ahora trackea model y cost_usd · cada llamada IA registra al momento el costo neto en USD usando los precios configurados · backfill automático de los registros históricos al ejecutar la migration
  • feature Conversión USD ↔ DOP en vivo · tasa de cambio configurable desde /admin/ai/pricing (default 1 USD = RD$60.50) · markup % opcional sobre precio neto Anthropic (ej. 30% margen)
  • feature Switcher USD/DOP en /admin/ai · todos los costos se muestran en la moneda elegida · persiste vía query string ?cur=USD|DOP · footer informativo con la tasa aplicada
  • feature Nueva columna "Costo (USD/DOP)" en la tabla de tenants del super admin · muestra costo del mes en curso por tenant + acumulado total + modelo activo · clickeable para drilldown
  • feature Nuevo KPI "Costo este mes" en el dashboard de IA · color ámbar para destacar · delta % vs mes pasado con flecha trending-up/down (rojo si subió, verde si bajó)
  • feature Página /admin/ai/costs · breakdown completo · KPIs hero (mes actual, mes pasado, acumulado, costo promedio/call) · gráfico de barras de tendencia 12 meses · top tenants por costo con % de contribución · breakdown por modelo
  • feature Página /admin/ai/costs/tenants/{id} · drilldown por tenant · costo este mes, acumulado, calls, tokens IN/OUT · tendencia 12 meses · breakdown por modelo y por acción (con badge HOSPITAL para acciones hospital:*)
  • feature Página /admin/ai/pricing · 3 secciones · (1) Moneda y tasa USD-DOP · (2) Precio default fallback · (3) Tabla editable de precios por modelo con preview de costo de muestra (100K + 100K tokens) en USD y DOP
  • feature Sidebar super admin · nuevo item "Costos IA" en sección Sistema · acceso rápido al breakdown desde cualquier página del panel
  • feature Pricing pre-configurado con precios oficiales Anthropic · Claude Opus 4.x (\$15/\$75 por 1M) · Sonnet 4.x (\$3/\$15) · Haiku 4.5 (\$1/\$5) · Claude 3.x legacy · GPT-4o (\$2.5/\$10) · GPT-4o-mini (\$0.15/\$0.60) · todos editables desde la UI
  • improvement HospitalAi y AiController ahora persisten model + cost_usd en cada ai_completions · cero overhead operacional, todo se calcula al insertar
  • improvement Helpers de AiPricing reusables · totalCost(), tenantCost(), monthlyBreakdown(), modelBreakdown(), topTenants(), formatBoth() · disponibles para reportes futuros y APIs
v4.13.2 MINOR 2026-05-04

Hospital Edition · IA en todos los módulos + Demo Hospital 24h

  • feature Demo Hospital · cuenta auto-creada, datos clínicos pre-cargados, expira y se elimina automáticamente en 24 horas (igual que demos Starter/Pro/Enterprise)
  • feature Picker /demo expandido a 4 columnas · nueva tarjeta "Hospital" con icono heart-pulse y color rojo institucional · botón "Probar Hospital Edition" funcional desde landing /hospital y home
  • feature Seed clínico automático en cada demo Hospital · 7 departamentos (ER, ICU-A, OR, IMG, LAB, RX, EMR) · 12 equipos biomédicos reales (Dräger Evita, Philips IntelliVue, Siemens MRI, GE CT, B.Braun, Zoll Defibrillator, Roche Cobas, Olympus EVIS X1) · 4 sistemas EMR (Epic, Cerner DR, Mirth, PACS Carestream)
  • feature Seed clínico incluye también · 3 rotaciones on-call con turno activo · 2 BAAs (Epic, Carestream) uno con vencimiento próximo · 6 cursos HIPAA con 10 asignaciones · 9 políticas retention · 1 risk assessment con 4 riesgos (1 critical) · 1 código azul resuelto con RCA · 1 patient safety incident
  • feature Auto-asignación de IA al demo Hospital · si el super admin tiene API key Anthropic configurada, el demo arranca con IA habilitada y 500K tokens de cuota mensual · si no hay API key, queda el registro en ai_settings sin asignar para que el admin lo active
  • feature HospitalAi service · capa unificada que envuelve la infraestructura existente (ai_settings, ai_completions, saas_settings) con prompts especializados en contexto clínico-hospitalario · sistema de cuotas de requests + tokens · audit trail completo en ai_completions con prefijo "hospital:"
  • feature Anti-PHI integrado · HospitalAi::redactObviousPhi() limpia automáticamente SSN, cédulas DR (13 dígitos), MRN, emails y nombres comunes antes de enviar al modelo · capa adicional sobre el redactor manual
  • feature 18 acciones IA disponibles · biomed_predict_failure, biomed_pm_recommendation, code_rca_generate, code_post_mortem, safety_classify, safety_action_plan, risk_suggest_threats, risk_mitigation_plan, hipaa_redact, hipaa_baa_review, access_anomaly, backup_anomaly, training_recommend, emr_alert_summary, dept_clinical_impact, oncall_smart_route, retention_suggest_policy, general_q
  • feature Botón IA en Biomed Show · "Predecir fallas" analiza modelo, edad, historial de mantenimiento y sugiere riesgo de falla próxima con razones técnicas · "Sugerir plan PM" genera plan de mantenimiento preventivo personalizado
  • feature Botón IA en Code Show · "Generar RCA" produce borrador de Root Cause Analysis con 5-Whys + factores contribuyentes + action items desde el timeline · "Post-mortem" escribe documento ejecutivo para CIO/CMIO
  • feature Botón IA en Patient Safety · clasifica el incidente en near_miss/no_harm/minor_harm/moderate_harm/major_harm/sentinel_event al estilo Joint Commission con justificación · sugiere plan de acción correctivo a 30/60/90 días
  • feature Botón IA en Risk Assessment · "Sugerir amenazas" genera 5-8 amenazas relevantes según framework (HIPAA Security Rule / NIST CSF) con vulnerabilidad, likelihood e impact · "Plan de mitigación" diseña controles técnico/administrativo/físico para cada riesgo
  • feature Botón IA en HIPAA · "Redactor PHI" sanea texto pegado reemplazando datos identificables con [REDACTED-tipo] · "BAA Review" señala cláusulas faltantes vs HIPAA Privacy/Security Rule, ambigüedades y vencimientos
  • feature Botón IA en Access Reviews · "Detectar anomalías" analiza snapshot de usuarios y flag accesos sospechosos: cuentas dormidas con privilegios altos, acceso PHI excesivo vs rol, usuarios stale (>90d sin login) priorizados
  • feature Botón IA en Backups · "Detectar anomalías" analiza histórico de backups detectando caída repentina de tamaño, fallos consecutivos, gaps entre backups, RTO/RPO no cumplido · sugiere acciones correctivas
  • feature Botón IA en Training · "Recomendar cursos por rol" sugiere cursos prioritarios según el rol del usuario con justificación ligada al riesgo, urgencia y orden recomendado
  • feature Botón IA en EMR · "Resumen ejecutivo" genera summary 5 líneas del estado actual de Epic, Cerner, PACS, etc. para enviar al CIO · destaca sistemas críticos caídos y tendencias 7d
  • feature Widget IA en Command Center · botón "Preguntar a la IA" para Q&A genérico sobre HIPAA, código azul, biomed engineering, operación hospitalaria · respuesta contextualizada al hospital
  • feature HospitalAiController · 17 endpoints AJAX con validación de tenant + feature gate + permiso · cada uno construye prompt específico del módulo (sin PHI bruto) y delega a HospitalAi::run()
  • feature AI helper partial _ai_helper.php · modal universal con header gradiente púrpura, body Markdown-safe, footer con métricas de tokens · botón "Copiar" con feedback visual · CSS y JS reusable en todas las vistas hospital
  • feature Super Admin AI · AdminAiController::assign() ahora acepta plan Hospital sin requerir override forzado (antes solo Enterprise) · Vista admin/ai con badge "HOSPITAL" en rojo + heart-pulse icon para identificar tenants Hospital
  • improvement Cada llamada IA persiste en ai_completions con tenant_id, user_id, action prefijada "hospital:*", input sanitizado, output, tokens consumidos, duración, IP y user-agent · listo para auditoría HIPAA
  • improvement Cuota de tokens HOSPITAL · 500,000 tokens/mes por defecto en demos auto-asignados · super admin puede ajustar token_quota_monthly por tenant · alertas y bloqueos automáticos al alcanzar el 100%
  • improvement Modelo por defecto Claude Sonnet 4.6 (claude-sonnet-4-6) con fallback al modelo configurado en saas_settings · cada tenant puede tener su propio modelo override en ai_settings.model
  • feature 17 nuevas rutas POST en /t/{slug}/hospital/ai/* · todas con CSRF · cada una vinculada a su feature gate (biomed_assets, code_blue, hipaa_audit, etc.) · 60+ rutas hospital totales
v4.13.1 MINOR 2026-05-04

Hospital Edition · Security & Compliance Pack (5 nuevos módulos)

  • feature Backups self-service · cifrado AES-256-GCM con clave derivada del tenant_id + secreto de aplicación · checksum SHA-256 por archivo · retención configurable (default 90 días) · directorio protegido con .htaccess deny-all
  • feature Scopes de backup: todo el tenant, tickets+SLA, KB, activos biomédicos, códigos de emergencia, HIPAA (BAA + access logs), patient safety · formatos JSON / SQL / CSV / ZIP cifrado
  • feature Disaster Recovery drills nativos · tipo dr_drill con métricas RTO/RPO target vs actual · botón Probar restore en sandbox · restore destructivo a producción requiere confirmación I_UNDERSTAND
  • feature Cada descarga de backup queda registrada en hospital_hipaa_access_logs como acción "export" con phi_flag, IP, user-agent y propósito · listo para auditorías HIPAA
  • feature HIPAA Training Records · catálogo de cursos con código, categoría (HIPAA Privacy/Security, HITECH, phishing, password, social engineering, IR, code blue, biomed safety), duración, score mínimo, periodo de renovación
  • feature Asignación masiva a usuarios con cálculo automático de fecha de vencimiento (default 12 meses) · estados assigned → in_progress → completed/failed/expired/overdue · score 0-100 con threshold de aprobación por curso
  • feature Certificados firmados con hash SHA-256 al completar (user_id|course_id|timestamp) · dashboard de compliance % calculado en vivo · 6 cursos seed para tenants demo (HIPAA-PR, HIPAA-SR, HITECH-1, PHISH-1, PWD-1, IR-1)
  • feature Access Reviews · revisión periódica de accesos según HIPAA Security Rule §164.308(a)(4) "minimum-necessary" · scopes: todos los usuarios, solo PHI access, admins, departamento, vendor BAA, custom
  • feature Snapshot automático al iniciar review · captura rol del usuario, último login y conteo de accesos PHI de los últimos 90 días · highlight de usuarios stale (>90 días sin login) en ámbar
  • feature Decisiones por usuario: keep/revoke/modify/escalate con razón · revoke desactiva usuario inmediatamente · firma del privacy officer requiere 100% items decididos · contadores agregados de access_kept/revoked/modified
  • feature Risk Assessment · frameworks soportados: HIPAA Security Rule, NIST CSF, NIST 800-66, ISO 27001, custom · matriz likelihood × impact con score 1-25 (rare-1 a almost_certain-5 × insignificant-1 a catastrophic-5)
  • feature Cálculo automático de risk_level: low (1-5), medium (6-11), high (12-19), critical (20-25) · 6 categorías: administrative, physical, technical, organizational, third_party, operational · plan de mitigación con owner y fecha
  • feature Mitigation status: open → in_progress → implemented/accepted/transferred/avoided · ordenamiento por riesgo (críticos primero) · próxima revisión anual auto-programada
  • feature Data Retention · políticas por clase de dato (PHI ticket, ticket, KB article, asset, biomed, code incident, patient safety, audit log, PHI access log, backup, training record) · base legal documentada por política
  • feature Acciones al vencer: archive (default), anonymize, soft_delete, hard_delete (irrecuperable) · aviso al owner X días antes · 9 políticas seed alineadas a HIPAA 6 años / Joint Commission / FDA vida útil de equipos
  • feature Bitácora de disposición · cada ejecución registra acción, registros afectados, criterio usado, usuario que disparó y certificado del proceso · trazabilidad completa para auditorías
  • feature 10 tablas nuevas: hospital_backups, hospital_backup_restores, hospital_training_courses, hospital_training, hospital_access_reviews, hospital_access_review_items, hospital_risk_assessments, hospital_risks, hospital_data_retention, hospital_disposal_log
  • feature 14 permisos granulares nuevos · 23 rutas wireadas en Application::registerRoutes · HospitalSecurityController con 23 métodos públicos · 8 vistas (security_dashboard + 5 índices + 2 deep-dives)
  • feature Catálogo de módulos Plan::MODULE_CATALOG expandido con hospital_backups, hospital_training, hospital_access_reviews, hospital_risk, hospital_retention · todos administrables on/off por tenant desde super admin
  • feature Sidebar del workspace · nueva sección "Security" en rojo con 6 items: Security Center, Backups & DR, HIPAA Training, Access Reviews, Risk Assessment, Data Retention · solo visible si plan tiene los features y user tiene los permisos
  • feature Landing /hospital actualizada · sección oscura "Security & Compliance Pack" entre los 7 módulos clínicos y los deep dives · 5 cards con backdrop-blur sobre gradiente espacial · banner de cumplimiento
  • improvement Cierre formal de gaps HIPAA Security Rule: §164.308(a)(1)(ii)(A) Risk Analysis, §164.308(a)(4) Access Authorization & Review, §164.308(a)(5) Security Awareness Training, §164.308(a)(7) Contingency Plan (backups + DR), §164.310(d)(2)(i) Disposal
  • improvement Bases legales documentadas en seed de retention: HIPAA 6 años (45 CFR §164.530(j)), Joint Commission, FDA vida útil de equipos, SOC 2 audit logs · cada política con su justificación
v4.13.0 MAJOR 2026-05-04

Kydesk Hospital Edition · Helpdesk especializado para hospitales

  • feature Plan "Hospital" — nueva licencia especializada por encima de Enterprise · USD 899/mes o 9,000/año (ahorro 16%) · 21 días de prueba sin tarjeta · usuarios y tickets ilimitados · 50 GB de almacenamiento · BAA firmado · MFA obligatoria para PHI · onboarding clínico de 45 días · soporte 24/7 con SLA hospitalario
  • feature Incluye TODOS los módulos Enterprise (AI Engine, Migration Center, Microsoft Teams Omnicanal, Active Directory, AI Assistant, ITSM, Reports Builder, SSO/SAML, custom branding) + 7 módulos clínicos exclusivos
  • feature Catálogo de 7 módulos hospitalarios registrados en Plan::MODULE_CATALOG (tier "hospital") · cada uno administrable por separado desde el panel super admin con overrides on/off por tenant · feature flags propagadas a Application::registerRoutes y al sidebar layout
  • feature Hospital Command Center — tablero unificado del depto. de TI hospitalario · KPIs en tiempo real: códigos abiertos, EMR caídos, mantenimiento próximo, BAA por vencer, patient safety abiertos, departamentos · resumen visual de códigos activos con comandante asignado · widget de on-call ahora · health summary de EMR/HIS/PACS · próximo PM de equipos biomédicos
  • feature Departamentos clínicos — mapeo del impacto IT al impacto clínico real · 11 categorías predefinidas (Emergencias, UCI, Quirófano, Imagenología/PACS, Laboratorio, Farmacia, Hospitalización, Consulta externa, Admin, TI, Otro) · niveles de criticidad: rutina / importante / crítica / soporte vital · conteo de camas, edificio, piso, extensión, jefe de departamento · seed automático para tenants demo con ER, ICU-A, OR, IMG, LAB, RX, EMR
  • feature Activos biomédicos — inventario clínico con 21 categorías de equipos: ventiladores, monitores de signos, bombas de infusión, desfibriladores, MRI, CT, rayos X, ultrasonido, diálisis, anestesia, robot quirúrgico, endoscopios, incubadoras, electrocardiógrafos, equipo de laboratorio, robot de farmacia, esterilizadores, estaciones PACS, estaciones EMR, telemetría, camas inteligentes
  • feature Cada activo biomédico trackea: clase FDA (I/II/III/none), clase de riesgo (low/moderate/high/life_critical), serial, modelo, fabricante, software/firmware, IP/MAC, fechas de calibración (última + próxima), fechas de PM (último + próximo), garantía, sala, departamento, flags is_networked y stores_phi
  • feature Bitácora de mantenimiento por equipo — preventivo, correctivo, calibración, recall, inspección · resultado pasó / pasó con observaciones / falló · vendor externo · costo · técnico responsable · linkeable a ticket · auto-actualiza last_pm_date / next_pm_date / last_calibration / next_calibration en el activo
  • feature On-Call Rotations 24/7 — guardias técnicas con cobertura por hospital, por departamento clínico o por especialidad · rotación semanal / diaria / custom · escalación automática configurable en X minutos · canales: SMS, llamada, WhatsApp · turnos individuales con técnico primario + backup, teléfono pager y notas de handoff
  • feature Asignación inteligente de tickets críticos al on-call activo · widget "On-call ahora" en el dashboard que muestra el técnico de guardia con foto, teléfono y backup · tabla de próximos turnos · resaltado del turno EN GUARDIA en tiempo real
  • feature Códigos de emergencia hospitalarios — protocolos formales para fallas críticas con impacto clínico · 5 tipos: Código Rojo (incendio/evacuación), Código Azul (falla crítica al paciente), Código Amarillo (degradación importante), Código Púrpura (brecha PHI), Código Blanco (mantenimiento programado)
  • feature Disparo de código con un clic — botón "DISPARAR CÓDIGO" en el dashboard · clasificación de severidad 1-4 (crítico/mayor/moderado/menor) · clasificación de impacto al paciente: ninguno, potencial, menor, mayor, sentinel event · asignación automática de comandante del incidente
  • feature Bitácora minuto-a-minuto — cada cambio de estado, nota, acción tomada, notificación y escalación queda registrado con timestamp y usuario · timeline visual con iconos y colores por tipo de evento · RCA obligatorio al cerrar (resumen ejecutivo + causa raíz 5-Whys + action items con persona + fecha)
  • feature Auto-trigger de Código Azul — si el health check de un EMR/HIS marcado is_critical falla con auto_code_blue=1, Kydesk dispara automáticamente un Código Azul severidad 1 con impacto mayor, descripción del error y referencia al sistema afectado
  • feature HIPAA Compliance — registro de Business Associate Agreements (BAA) con vendors que tocan PHI · servicios prestados, categorías de PHI, fecha de firma, fecha de vencimiento, alerta de renovación configurable (default 60 días), documento PDF, contacto del vendor, nivel de riesgo (low/moderate/high)
  • feature Alertas de vencimiento de BAA — dashboard muestra cuántos están por vencer en 60 días · resaltado visual ámbar para BAAs próximos a vencer y rojo para vencidos · KPI agregado en super admin para ver el riesgo de cumplimiento del hospital
  • feature ePHI Access Logs — bitácora inmutable de quién vio cada ticket / activo / BAA / código / patient safety con flag PHI · acción (view/export/update/print/delete), propósito, IP, user-agent · contadores 24h / 7d en el dashboard · base para auditorías HIPAA
  • feature EMR / HIS / PACS Health — monitoreo nativo de los sistemas clínicos críticos · 11 vendors soportados (Epic, Cerner/Oracle, Meditech, Allscripts, athenahealth, NextGen, eClinicalWorks, Greenway, Infor, custom, other) · 10 tipos de sistema (EMR, HIS, LIS, RIS, PACS, Interface Engine, Pharmacy, Billing, Scheduling, Otro)
  • feature 6 métodos de health check: GET, POST, HEAD, TCP, HL7 MLLP, FHIR · intervalo configurable por sistema (default 5 min) · timeout configurable (default 10s) · ambientes production/staging/training/dr · flags is_critical y auto_code_blue · contacto del vendor + teléfono de soporte 24/7 · histórico completo en hospital_emr_health_checks con HTTP code, latencia y error
  • feature Estado consolidado en el dashboard — semáforo verde/ámbar/rojo por sistema · latencia última en ms · botón "Probar ahora" para health check manual · degradación detectada (HTTP 4xx) vs caído (5xx, timeout, error de red)
  • feature Patient Safety Incidents — reporte estilo Joint Commission con 6 niveles de severidad: near miss, sin daño, daño menor, daño moderado, daño mayor, sentinel event · 10 categorías: medicación, falla de equipo, pérdida de datos, registro errado, IT outage, privacidad, workflow, infección, caída, otra
  • feature Cada incidente captura: factores contribuyentes, acción inmediata, plan de acción a largo plazo, flag de reportable a autoridades, confidencialidad por defecto · linkeable a departamento, equipo biomédico, sistema EMR, ticket y código de emergencia · workflow: reportado → en revisión → acción planeada → cerrado
  • feature Roles dedicados — patient safety officer asignado por incidente · permisos granulares hospital.safety.view / report / officer · solo el safety officer puede cambiar estados o agregar plan de acción a largo plazo
  • feature 13 tablas nuevas: hospital_clinical_departments, hospital_biomed_assets, hospital_biomed_maintenance, hospital_oncall_rotations, hospital_oncall_shifts, hospital_code_incidents, hospital_code_timeline, hospital_hipaa_baa, hospital_hipaa_access_logs, hospital_emr_systems, hospital_emr_health_checks, hospital_patient_safety, hospital_settings · todas con FKs, índices y aislamiento multi-tenant via tenant_id
  • feature database/migrate_hospital.php — migrador idempotente con token KYDESK_HOSPITAL · crea las 13 tablas, inserta el plan "hospital" en plans, registra 20 permisos hospitalarios y los asigna al rol owner · seed automático de 7 departamentos clínicos para tenants demo (ER, ICU-A, OR, IMG, LAB, RX, EMR)
  • feature 20 permisos granulares: hospital.view, hospital.settings, hospital.dept.view/manage, hospital.biomed.view/manage/maintenance, hospital.oncall.view/manage, hospital.code.view/trigger/command/review, hospital.hipaa.view/manage, hospital.emr.view/manage, hospital.safety.view/report/officer · todos asignados al rol owner por defecto
  • feature Super Admin · Hospital Edition — nueva sección /admin/hospital con vista agregada de todos los hospitales · KPIs cross-tenant: códigos abiertos en toda la red, EMR caídos, BAA por vencer, equipos biomédicos totales, patient safety pendientes · drill-down a /admin/hospital/{id} con stats por hospital · botón impersonar y enlace al panel del tenant
  • feature Sección "Hospital Edition" en el home — banner con gradiente rojo-naranja, badges de cumplimiento (HIPAA, HITECH, Joint Commission, ePHI, BAA, MFA), grid de los 8 módulos clínicos con hover effect, CTA a /hospital · página dedicada /hospital con hero, showcase de 7 módulos, banda oscura de cumplimiento, lista de 12 vendors EMR compatibles, pricing card destacada con CTA dual
  • feature 40+ rutas nuevas en Application::registerRoutes — /t/{slug}/hospital/* (dashboard, departments, biomed, oncall, codes, hipaa, emr, safety, settings) + /admin/hospital/* (overview + show por hospital) + /hospital (landing pública)
  • improvement Sidebar del workspace — nueva sección "Hospital" en rojo con icono heart-pulse · 8 items navegables: Command Center, Departamentos, Activos biomédicos, On-Call 24/7, Códigos, HIPAA, EMR/HIS, Patient Safety · solo visible si el plan tiene los features y el usuario tiene los permisos correspondientes
  • improvement Sidebar del super admin — nueva categoría "Hospital Edition" con el item "Hospitales" para acceso rápido al overview cross-tenant
  • improvement Color institucional rojo #dc2626 para Hospital Edition · diferenciado visualmente del púrpura Enterprise para que los administradores identifiquen al instante en qué módulo están
v4.12.0 MAJOR 2026-05-04

Integraciones x3, eventos para todo el stack y API REST completa para los módulos nuevos

  • feature Catálogo de integraciones expandido de 13 a 38 proveedores · 8 categorías limpiamente separadas en la UI · cada uno con icon, color, descripción larga, docs_url y campos de config tipados
  • feature Chat & mensajería: Slack, Discord, Telegram, Microsoft Teams (webhook), Mattermost, Rocket.Chat · NUEVOS Google Chat (cards V2), Cisco Webex, WhatsApp Business (Cloud API · Meta Graph), Twilio SMS, Intercom (mensajes inApp)
  • feature Productividad & calendario: NUEVOS Google Calendar (service account JWT · OAuth con scopes calendar), Outlook 365 (Microsoft Graph client_credentials), Calendly (webhook reverse), Zoom (server-to-server OAuth con creación de meetings)
  • feature Productividad: NUEVOS Notion (pages en database con title + paragraph blocks), Airtable (records con todos los fields del evento), Asana (tasks con notes), Trello (cards en list), ClickUp (tasks), monday.com (items via GraphQL), Linear (issues via GraphQL mutation)
  • feature DevOps: NUEVOS GitHub (issues con labels), GitLab (issues self-hosted o cloud), Bitbucket Cloud (issues con basic auth), Jira Software/Service Management (issues con ADF + project_key + issue_type)
  • feature Alerting/observability: NUEVOS PagerDuty (Events API v2 trigger con severity), Opsgenie (alertas con priority mapeada P1-P4 desde nuestra prioridad), Sentry (eventos via DSN parsing), Datadog (events API con multi-site), New Relic (custom events), Statuspage.io (incidentes públicos)
  • feature CRM/sales: NUEVOS Salesforce (Cases/Leads/Tasks vía REST API), HubSpot (tickets/deals/contacts), Pipedrive (activities con multi-domain), Zoho CRM (Leads/Deals/Contacts con multi-data-center US/EU/IN/AU)
  • feature Email/push: existentes Email forwarding + Pushover · NUEVOS SendGrid Mail API, Mailgun Messages API (multi-region US/EU), Postmark, ntfy.sh con priority mapeada y self-host friendly
  • feature Billing/finanzas: NUEVOS Stripe (customers + metadata), QuickBooks Online (notes con prod/sandbox switch), Xero (contacts con tenant ID), PayPal (webhook receiver)
  • feature Automation: existentes Webhook genérico, Zapier, n8n, Make · NUEVOS IFTTT Maker Webhooks con event_name, AWS SNS (publish a topic ARN)
  • feature Sistema de eventos expandido de 12 a 70+ eventos suscriptibles · agrupados en 18 dominios funcionales (tickets, kb, people, tasks, meetings, chat, crm, quotes, retainers, itsm, csat, email, ai_engine, migration, teams, ad, status, automation, billing)
  • feature Reuniones & agenda (10 eventos nuevos): meeting.scheduled, meeting.confirmed, meeting.rescheduled, meeting.cancelled, meeting.completed, meeting.no_show, meeting.starting_soon (10 min antes), meeting.reminder, booking.created (reserva pública), booking.cancelled
  • feature CRM (8 eventos nuevos): crm.lead.created, crm.lead.assigned, crm.lead.converted, crm.deal.created, crm.deal.moved (cambio de etapa), crm.deal.won, crm.deal.lost, crm.activity.created
  • feature Cotizaciones (6 eventos): quote.created, quote.sent, quote.viewed, quote.accepted, quote.rejected, quote.expired · disparados desde QuoteController y desde el portal público de aceptación
  • feature Igualas (4): retainer.created, retainer.consumed, retainer.period_closed, retainer.exhausted
  • feature ITSM (5): itsm.change.created/approved/rejected, itsm.problem.created, itsm.catalog.requested
  • feature AI Engine (5): ai_engine.deflected, ai_engine.escalated, ai_engine.duplicate_detected, ai_engine.article_generated, ai_engine.prediction_made
  • feature Migration Center (4): migration.started, migration.completed, migration.failed, migration.rolled_back
  • feature Microsoft Teams Omnicanal (2): teams.message_received, teams.ticket_created
  • feature Active Directory (4): ad.user_synced, ad.user_provisioned (auto-provision al login), ad.sync_completed, ad.sync_failed
  • feature Live chat (4): chat.started, chat.message, chat.assigned, chat.ended · CSAT (2): csat.submitted, csat.low_score · Email inbound (1): email.received
  • feature Status Page (2), Automations (1), Billing del workspace (3): payment received/failed, invoice generated · People (6): user.created, user.deactivated, contact.created, portal_user.registered, etc.
  • improvement Events::emit cableado en QuoteController (created/sent/accepted/rejected) · MeetingController (confirm/cancel/complete/no_show/manual) · BookingController (booking.created)
  • improvement CrmController emite crm.lead.created al crear leads · crm.deal.created/won/lost al crear deals · crm.deal.moved al cambiar etapa via drag&drop
  • improvement AiEngineController emite ai_engine.article_generated al cluster + ai_engine.duplicate_detected al escanear duplicados
  • improvement MigrationCenterController emite migration.completed al finalizar import + migration.rolled_back al revertir · TeamsOmnichannelController emite teams.message_received en cada inbound + teams.ticket_created al auto-crear ticket
  • improvement ActiveDirectoryController emite ad.sync_completed con usuarios creados/actualizados + ad.sync_failed con mensaje de error en el catch
  • improvement IntegrationDispatcher::titleFor() expandido con prefijos emoji para los 70+ eventos · ej. 📅 meeting.scheduled, 🎯 crm.lead.created, 💰 crm.deal.created, 🏆 crm.deal.won
  • improvement IntegrationDispatcher::eventColor() con mapeo semántico extendido · rojo para .failed/.lost/.exhausted, verde para .won/.accepted/.completed, ámbar para .warning/.starting_soon, azul para .created
  • improvement IntegrationDispatcher::fieldsFor() con 30+ campos típicos mapeados · meeting (starts_at, attendee, duration), crm (deal_value, currency, stage), quotes (quote_total, valid_until), AI (confidence, similarity), AD (users_created, ad_source), Teams (team_name, channel_name)
  • improvement OAuth helpers reutilizables: googleServiceAccountToken (JWT firmado RS256 → access token), msAppToken (Azure client_credentials → Graph token) · usados por handlers de Google Calendar y Outlook respectivamente
  • feature REST API v1 expandida · 8 controllers nuevos en app/Controllers/Api/ · 60+ endpoints adicionales · todos respetan el contrato existente: Bearer auth, scopes, idempotency-key, paginación cursor+offset, expand, fields, ETag, request-id
  • feature API Meetings: GET /meetings (filtros status/from/to/host_user_id/attendee_email) · POST /meetings (crea + emite evento) · GET /meetings/{id} · PATCH (con cambio de status que dispara meeting.cancelled/completed/no_show) · DELETE · GET /meetings/availability · GET /meetings/types
  • feature API CRM: leads CRUD completo (filtros status/rating/owner_id/q) · deals CRUD (filtros pipeline_id/stage_id/lead_id/owner_id) · GET /crm/pipelines con stages anidadas (probability + is_won/is_lost)
  • feature API Quotes: GET /quotes (filtros status/company_id/q) · GET /quotes/{id} con ?expand=items,events · GET /quotes/{id}/items y /events · POST /quotes/{id}/status para cambio de status programático
  • feature API AI Engine: GET /ai-engine/settings · /metrics (rangos from/to + summary con deflection_pct calculado) · /conversations · /predictions · /duplicates · /articles · /rag/search?q= con FULLTEXT MySQL
  • feature API Migration Center: GET /migration/jobs (filtros status/source/entity) · /jobs/{id} con ?expand=mapping,logs · /jobs/{id}/records (filtro por status) · /jobs/{id}/logs
  • feature API Teams Omnichannel: /teams/settings (sin password) · /teams/channels · /teams/conversations (filtros ticket_id/is_personal) · /teams/conversations/{id}/messages · POST /teams/conversations/{id}/send para responder bidireccionalmente vía API
  • feature API Active Directory: /ad/settings (campos seguros sin secrets) · /ad/users (filtros source/is_active/q) · /ad/groups · /ad/sync/logs · POST /ad/sync para disparar sync Azure o LDAP desde script externo + emite ad.sync_completed/failed
  • feature API Integrations: GET /integrations/providers (catálogo público sin secrets para mostrar marketplace en apps) · /integrations/events (eventos + grupos para el UI de suscripción) · /integrations (instalaciones del tenant) · /integrations/{id}/logs
  • improvement OpenAPI 3.1 spec actualizado · 9 nuevos tags (Integrations, Meetings, CRM, Quotes, AI Engine, Migration, Teams, Active Directory) · 50+ paths con summary, parameters y responses tipados
  • improvement Postman 2.1 collection expandida · 9 carpetas nuevas con todos los endpoints listos para importar · variables {{ticket_id}}, {{lead_id}}, {{deal_id}}, {{quote_id}}, {{meeting_id}}, {{job_id}}, {{conv_id}}
  • improvement GET /api/v1/integrations/events expone los grupos (tickets/kb/people/tasks/meetings/chat/crm/quotes/retainers/itsm/csat/ai_engine/migration/teams/ad/status/automation/billing) · útil para builders de webhooks que quieren mostrar checkboxes agrupados
  • improvement Constantes de eventos centralizadas en App\Core\Events · todos los modules nuevos exponen constantes (Events::MEETING_SCHEDULED, Events::CRM_DEAL_WON, etc.) para evitar typos en strings
  • improvement IntegrationRegistry::categories() expandido a 8 categorías ordenadas con label e icon · UI de marketplace puede agruparlos automáticamente
  • improvement IntegrationRegistry::eventGroups() · helper nuevo que devuelve los eventos agrupados por dominio funcional · usado en la API y en el form de suscripción
v4.11.0 MAJOR 2026-05-03

Migration Center · AI Support Engine · Microsoft Teams Omnicanal · Active Directory

  • feature Migration Center (Enterprise) · 4 conectores nativos: Zendesk (API v2), Freshdesk (API v2), Jira Service Management (REST v3) y CSV guiado · soporta tickets, KB, usuarios y empresas
  • feature Asistente paso a paso: elegís origen → configurás credenciales/CSV → mapeás campos con auto-sugerencia → validación previa con sample → ejecución con bitácora 1:1
  • feature Mapeo inteligente de campos con aliases multi-idioma (subject/title/asunto/summary, etc.) · transforms incorporados: lower/upper/trim/priority/status/date/strip_html
  • feature Validación previa que cuenta registros, detecta campos requeridos sin mapear, muestra sample de los primeros 5 mapeos y bloquea ejecución si hay observaciones críticas
  • feature Rollback total con un click · cada registro importado guarda source_id↔target_id en migration_records · revertir borra exactamente lo que ese job creó, ni más ni menos
  • feature Anti-duplicados por job · si un source_id ya tiene target_id, se omite y queda como "skipped" · podés re-ejecutar el mismo job sin crear duplicados
  • feature Bitácora completa por job: estado, total origen, importados, omitidos, fallidos, tiempo de ejecución y log línea-por-línea con nivel info/warn/error
  • feature Conector Zendesk: pagina hasta 50 páginas de 100 tickets (5,000 tickets por job) · trae subject, description, priority, status, requester, tags, fechas
  • feature Conector Freshdesk: pagina hasta 50 páginas con per_page=100 · descripción HTML normalizada con strip_html · auto-mapeo de description_text
  • feature Conector Jira Service Management: hasta 5,000 issues por job · aplana ADF (Atlassian Document Format) a texto plano · normaliza priority/status del Jira hacia los enums Kydesk
  • feature CSV guiado: subida hasta 25MB · UTF-8 · primera fila con headers · sample y headers detectados automáticamente para usar en el mapper
  • improvement 4 tablas (migration_jobs, migration_field_maps, migration_records, migration_logs) con indexes por tenant/source/status para listar miles de jobs sin penalty
  • feature AI Support Engine (Enterprise) · agente IA autónomo 24/7 con cuatro niveles: off, suggest, assist, auto · cambio de modo al instante sin redeploy
  • feature Copiloto para agentes con 4 acciones desde el ticket: clasificar (categoría + prioridad + sentiment + confianza), sugerir respuesta con RAG, buscar duplicados, sugerir escalamiento
  • feature RAG sobre KB con full-text MySQL · reindex parte cada artículo publicado en chunks de ~800 chars con keywords extraídas · busca por NATURAL LANGUAGE MODE
  • feature Generación automática de artículos KB · agrupa tickets resueltos por similitud Jaccard ≥ 0.4, propone título + body + excerpt con confianza · flujo de aprobación humano antes de publicar
  • feature Clasificación predictiva en batch sobre tickets abiertos · predice categoría (login/billing/bug/feature/api), prioridad (low→urgent), sentiment (positive/neutral/negative)
  • feature Detección de duplicados con similaridad Jaccard ≥ 0.65 sobre tickets abiertos · panel de revisión con Confirmar / Mergear (cierra el duplicado) / Descartar
  • feature Métricas diarias en ai_engine_metrics_daily: conversaciones, deflectadas, escaladas, copilot uses, artículos generados, duplicados detectados, predicciones, tokens in/out
  • feature Dashboard con gráfico Chart.js de 30 días (conversaciones · deflectadas · escaladas), tarjetas de estado, deflexión vs meta y tokens del mes
  • feature Configuración: nivel de autonomía, umbral de confianza (0-100%), meta de deflexión (%), canales habilitados (chat/email/portal/ticket/api), idiomas, persona del bot
  • feature Integración con tickets: predicciones quedan en ai_engine_predictions con kb_ids relacionados · al aprobar un artículo IA se publica en kb_articles como borrador
  • improvement 8 tablas (ai_engine_settings, conversations, messages, kb_chunks con FULLTEXT, predictions, duplicates, metrics_daily, articles) · índices por tenant_id
  • feature Microsoft Teams Omnicanal (Enterprise) · totalmente integrado · NO es un simple webhook one-way: es un puente bidireccional ticket↔Teams
  • feature Bot Framework webhook con validación HMAC-SHA256 (header X-Kydesk-Signature) · cada tenant tiene su secret rotable · zero spoofing
  • feature Tres triggers de auto-creación de tickets: mensaje 1:1 al bot, @mención al bot en un canal, post en un canal enlazado con auto_route activo
  • feature Routing por canal: cada team-channel se enlaza a una categoría, departamento, empresa cliente y prioridad por defecto · soporta routing mixto
  • feature Respuesta bidireccional real: comentario en ticket → mensaje en Teams (vía Bot Framework /v3/conversations/{id}/activities) · mensaje en Teams → comentario en ticket
  • feature OAuth 2.0 client credentials con login.microsoftonline.com · token cache implícito por request · panel de "Probar credenciales" sin tener que enviar mensaje
  • feature Mapeo automático de usuarios Teams ↔ usuarios Kydesk · histórico unificado por persona · conversaciones marcadas como personales (DM) o de canal
  • feature Vista de conversación con timeline de mensajes inbound/outbound, formulario de respuesta inline (envía a Teams + agrega comentario al ticket en una sola acción)
  • feature Mensaje de bienvenida configurable que se envía a Teams al abrir el ticket · indica el código del ticket para que el usuario lo referencie
  • improvement 6 tablas (teams_omni_settings, channels, conversations, messages, users, events) · upsert atomic por (tenant_id, teams_conversation_id)
  • feature Active Directory (Enterprise) · soporte completo para Azure AD / Entra ID y LDAP / LDAPS on-prem · tres modos: azure, ldap o hybrid
  • feature Azure AD: OAuth 2.0 con login.microsoftonline.com · scopes openid+profile+email+User.Read · auto-provision al primer login con rol por defecto configurable
  • feature Sync Azure vía Microsoft Graph: lista usuarios paginados (top=999, sigue @odata.nextLink) · campos id/displayName/userPrincipalName/mail/accountEnabled/jobTitle/mobilePhone
  • feature Sync grupos Azure (opcional) · cada grupo importado puede mapearse a un rol interno de Kydesk · al login el usuario hereda el rol del grupo principal
  • feature LDAP / Active Directory on-prem: ldap_connect con StartTLS o LDAPS · timeout 10s · search por filtro configurable (default: objectCategory=person+objectClass=user)
  • feature Atributos LDAP configurables: login_attribute (sAMAccountName), email_attribute (mail), name_attribute (displayName), group_filter · usás los que tu schema corporativo dicte
  • feature Bind con cuenta de servicio · objectGUID se hexea a external_id estable · hash del DN se guarda como attributes JSON para auditoría
  • feature Sincronización: manual / horaria / diaria / semanal · cada corrida queda en ad_sync_logs con users_created, users_updated, groups_synced, errors y mensaje completo
  • feature Auto-provisioning: si un usuario AD no existe en Kydesk, se crea automáticamente con el rol por defecto · si ya existe, se actualiza name si era genérico
  • feature Test de conexión sin guardar: botón "Probar Azure AD" verifica el client_credentials grant · "Probar LDAP" hace bind y desconecta sin alterar nada
  • feature Login URL pública por tenant: /auth/azure/login?slug={tenant} · el state OAuth y tenant_id quedan en sesión hasta el callback /auth/azure/callback
  • improvement 5 tablas (ad_settings, ad_users, ad_groups, ad_sync_logs, ad_sessions) con UNIQUE por (tenant_id, source, external_id) para idempotencia entre sincronizaciones
  • improvement Cuatro nuevos modules registrados en MODULE_CATALOG: ai_engine, migration_center, ms_teams_omni, active_directory · todos enterprise-only · super admin puede activar/desactivar por tenant
  • improvement Sidebar actualizado: nuevas entradas Bot (AI Engine), Database-Zap (Migration), Message-Circle (Teams) y Building (AD) · aparecen bloqueadas con candado en planes inferiores
  • improvement Permisos granulares: ai_engine.{view,config,use} · migration.{view,run,rollback} · teams.{view,config,use} · ad.{view,config,sync} · todos asignados al rol owner por la migration
  • improvement 4 nuevas entradas en LandingController::FEATURES con steps, benefits, hero_kpis y FAQs · accesibles desde /features y desde /features/{key}
  • improvement Soporte i18n completo: traducciones nav.ai_engine, nav.migration, nav.teams_omni, nav.ad en español e inglés
v4.10.0 MAJOR 2026-05-02

Cotizaciones profesionales con PDF, ITBIS configurable y portal de aceptación

  • feature Módulo de Cotizaciones (Business / Enterprise) · cabecera + N líneas de items · cálculo en vivo de subtotal, descuentos, ITBIS, envío y otros cargos en JS sin recargar
  • feature Numeración automática configurable (prefijo + año + secuencial · ej: COT-2026-0001) · contador por tenant · próximo número editable desde la UI
  • feature Items con cantidad decimal (0.001), unidad (hora/unidad/licencia/servicio/proyecto/mes/custom), precio unitario, descuento por línea (%) y flag taxable individual
  • feature Descuento global (%) que se aplica proporcionalmente a la base imponible · sin afectar items exentos · cálculo igual al PDF para evitar discrepancias
  • feature Impuestos 100% configurables desde la UI · seed inicial con ITBIS 18% (RD), IVA 21% (ES/AR), IVA 16% (MX), VAT 7% y Exento 0% · podés crear los que necesites con tasa decimal de hasta 3 dígitos
  • feature Switch rápido de impuesto desde el formulario · uno marcado como default se carga automáticamente · soporte para tax_rate personalizado fuera de los presets
  • feature Items con flag is_taxable independiente · útil para mezclar productos exentos (servicios profesionales, exportación) con productos gravados en la misma cotización
  • feature PDF profesional con mPDF (mejor soporte CSS que dompdf) · header de cada página con tu logo, razón social, RNC, dirección, teléfono y email
  • feature Branding total: color primario y de acento configurables · aparecen en el badge de estado, eyebrow, total destacado y línea separadora del header
  • feature Subida de logo con validación (JPG/PNG/WebP/SVG) · se guarda en /public/uploads/quote_logos · path absoluto resuelto en runtime para que mPDF lo embeba correctamente
  • feature Tabla de items con número, descripción + descripción larga, cantidad con unidad, precio unitario, descuento %, marca de "exento de impuestos" y subtotal por línea con zebra rows
  • feature Bloque de totales con subtotal, descuento (rojo), impuesto con tasa, envío, otros cargos, y el GRAN TOTAL destacado en una caja color brand con tipografía monoespaciada
  • feature Sección de "Datos de pago" opcional (banco, cuenta, RNC) · "Notas internas" opcional · ambos como cards con borde lateral de color
  • feature Términos y condiciones al final · línea de firma con nombre y cargo configurables · si la cotización está aceptada, badge verde con quién y cuándo aceptó reemplaza la firma
  • feature Footer con texto personalizable y paginación "Página X de Y" · tipografía DejaVu Sans con soporte completo de UTF-8 (acentos, ñ, símbolos de moneda)
  • feature Link público único por cotización (token de 32 hex chars · UNIQUE KEY) · cliente abre /q/{token} sin login · branding completo del tenant en la página
  • feature Cliente puede descargar el PDF, aceptar la cotización con su nombre + email firmado, o rechazarla con motivo opcional · todo se registra en quote_events
  • feature Auto-marcado de "vista" al primer load del cliente · timestamp en viewed_at · tracking de actor (agent/client/system) para cada evento
  • feature Email automático al equipo cuando el cliente acepta (configurable) · CTA al panel para arrancar la entrega · destinatario configurable por separado del support_email
  • feature Plantillas de cotización con items prearmados, intro, términos y validez por defecto · cargá una plantilla y la cotización queda lista para enviar en segundos
  • feature Conexión con CRM: desde el detalle del lead, ?lead_id= prefija nombre, email, teléfono y dirección · conexión con Companies para autocompletar al elegir empresa registrada
  • feature Conexión con Service Catalog: botones de "cargar desde catálogo" agregan items con título y descripción del catálogo de servicios ITSM existente
  • feature Estados completos: borrador, enviada, vista, aceptada, rechazada, expirada, revisada, convertida · transiciones automáticas + cambio manual desde el panel
  • feature Auto-marcado de "expirada" cuando valid_until < hoy · al editar una expirada vuelve a "revisada" para indicar que se actualizó · ciclo limpio de re-envío
  • feature Duplicar cotización con un click · clona items, totales, intro y términos · genera código nuevo, token nuevo y arranca como borrador
  • feature Timeline de eventos (created, sent, viewed, accepted, rejected, pdf_downloaded, etc.) con actor_name, actor_email y meta JSON para auditoría completa
  • improvement Permisos granulares quotes.view / create / edit / delete / send / config · auto-asignados a owner y admin · agentes con view+create+edit+send
  • improvement Módulo gateado por plan Business / Enterprise · super admin puede activar/desactivar quotes por tenant desde /admin/tenants/{id}/modules sin tocar el plan
  • improvement 7 tablas nuevas (quote_settings, quote_taxes, quotes, quote_items, quote_templates, quote_template_items, quote_events) · migración idempotente con seed de impuestos y settings por tenant
  • improvement Cálculo de totales centralizado en QuoteController::computeTotals · misma fórmula en backend (PHP) y frontend (JS) · garantiza paridad entre lo que el agente ve y lo que se guarda
  • improvement Validación de status para edición (no se puede editar accepted/rejected/converted) · re-cálculo automático al actualizar items · borrado y re-inserción transaccional
v4.9.0 MAJOR 2026-04-29

CRM avanzado · gestión de leads, oportunidades y conversión de clientes

  • feature Módulo CRM completo (Business / Enterprise) · gestión integral del ciclo comercial · leads, oportunidades, actividades, notas y conversión a clientes en una sola pantalla
  • feature Pipeline kanban con drag & drop · arrastrá tarjetas entre etapas y la probabilidad / estado se actualiza automáticamente · etapas marcadas Won/Lost cierran la oportunidad
  • feature Múltiples pipelines por tenant · seed automático de 3 pipelines (Ventas, Onboarding, Renovaciones) con 17 etapas pre-configuradas y probabilidades calibradas
  • feature Lead scoring 0-100 + rating Frío/Tibio/Caliente · estados (Nuevo, Contactado, Calificado, Propuesta, Negociación, Cliente, Perdido, Archivado) con badges de color en toda la UI
  • feature Actividades del lead (llamadas, emails, reuniones, tareas, WhatsApp, SMS) con scheduled_at · marcado completed/no_answer/rescheduled · alerta visual de actividades vencidas
  • feature Notas internas con autor, timestamp y opción de "fijar arriba" · timeline cronológico por lead · independiente del campo Notas del perfil
  • feature Próximo follow-up por lead con datetime · dashboard muestra leads con follow-ups vencidos y top hot leads del momento
  • feature Orígenes de lead configurables (Web, Referido, Ads, LinkedIn, Cold call, Cold email, Evento, Partner, Formulario web, WhatsApp) · seed de 10 orígenes por tenant
  • feature Tags multi-color por lead · seed de 6 tags útiles (Enterprise, SMB, VIP, Riesgo de fuga, Upsell, Hot lead) · filtros de listado por tag
  • feature Oportunidades por lead con título, monto, moneda, probabilidad heredada de la etapa, fecha esperada de cierre y descripción · razón de pérdida cuando se cae
  • feature Edición inline de oportunidad desde el detalle del lead · cambio de etapa propaga la probabilidad · won_at/lost_at/actual_close_on se setean automáticamente
  • feature Convertí lead a cliente con un click · checkbox opcional para crear automáticamente la empresa en el módulo Companies y el usuario en Portal Cliente con contraseña temporal
  • feature Vinculación con tickets existentes por email del lead · histórico cruzado en la ficha · base para reportes 360 del cliente
  • feature Permisos granulares crm.view / create / edit / delete / config / assign / convert · auto-asignados a roles owner y admin · agentes con view+edit+create por defecto
  • feature Módulo gateado por plan Business/Enterprise · super admin puede activar/desactivar CRM por tenant desde /admin/tenants/{id}/modules sin tocar el plan
  • feature Dashboard del CRM con 4 KPIs (leads totales, abiertos, clientes, valor del pipeline), distribución por estado, top orígenes, próximas actividades y hot leads del día
  • feature Listado de leads con filtros combinados (búsqueda, estado, rating, origen, owner, tag) · pills coloreados para tags · ordenamiento por creación con cap de 300 resultados
  • improvement 9 tablas nuevas (crm_pipelines, crm_stages, crm_sources, crm_leads, crm_deals, crm_activities, crm_notes, crm_tags, crm_lead_tags) · migración idempotente con re-ejecución segura
  • improvement Códigos de lead auto-generados con formato LD-00001 secuencial por tenant · únicos a nivel UNIQUE KEY (tenant_id, code) sin colisión bajo carga
  • improvement Endpoint POST /crm/deals/{id}/move responde JSON · soporta drag & drop sin recargar (con auto-reload tras éxito) · CSRF validado
v4.8.0 MAJOR 2026-04-29

Video conferencia y audio integrados en la agenda

  • feature Video conferencia integrada en el panel · auto-genera un room por reunión virtual o llamada de audio · cliente y host se conectan desde el mismo lugar sin instalar nada
  • feature Provider Jitsi Meet por defecto (gratis · meet.jit.si para testing) · auto-fallback a "abrir en pestaña nueva" cuando el embed gratuito tiene restricciones
  • feature Soporte completo para Jitsi as a Service (8x8.vc) · firma RS256 con clave RSA · header kid (appId/keyId) · sin restricciones de embed · tier gratuito hasta 25 usuarios/mes
  • feature Soporte para Jitsi self-hosted con shared secret HS256 · pegás tu dominio + secret en ajustes y listo
  • feature LiveKit en BETA · access tokens RS256 firmados ya implementados · cambio de provider con un toggle cuando se quiera activar SDK + grabación
  • feature Capa de abstracción Provider con factory pattern · Jitsi/LiveKit/futuros providers detrás de la misma interfaz · cero cambios en controllers/vistas al migrar
  • feature Card oscura con CTA "Iniciar conferencia" en el detalle de la reunión (panel host) · embed inline 600px alto · botón "Salir y minimizar" deja la reunión sin recargar
  • feature Botón "Entrar a la reunión" en la página de gestión pública del cliente · habilitado solo entre 15 min antes y 30 min después · disabled gracefully fuera de ese rango
  • feature Email de confirmación con CTA gigante "Entrar a la videoconferencia" · gradient violeta-oscuro · click directo desde el inbox del cliente
  • feature ICS calendar invite descargable · funciona con Google Calendar / Outlook / Apple Calendar · incluye el meeting URL en el campo location
  • feature Detección automática de modo audio-only · location_type=phone inicia con cámara apagada y oculta toggle de cámara
  • feature Wizard guiado de 4 pasos para configurar 8x8.vc · enlace directo a jaas.8x8.vc/start-guide · auto-detección de App ID JaaS (vpaas-magic-cookie-) → switch automático del dominio a 8x8.vc
  • feature Botón "Probar configuración" sin guardar · firma un JWT de test con las credenciales pegadas · valida algoritmo (HS256/RS256), kid, embed mode · preview del token resultante
  • feature Validación server-side: si el App ID es JaaS pero falta el kid o la private key, bloquea el guardado con mensaje explicativo · evita "Authentication failed" en producción
  • feature Refresh automático de meeting_url para reservas futuras cuando cambia el dominio o provider · sin re-crear las reuniones
  • feature Booking público auto-genera el room al confirmar la reserva (location_type virtual o phone) · room_id determinístico desde el public_token (cripto-seguro · sin colisiones)
  • feature Manual booking desde el panel también auto-genera room cuando el host crea reuniones virtuales/audio sin URL custom
  • improvement Migración idempotente con 5 columnas en meetings (conference_provider, conference_room_id, conference_meta, conference_started_at, conference_ended_at) + 9 columnas en meeting_settings
  • improvement jitsi_app_secret y livekit_api_secret extendidos a TEXT (eran VARCHAR 255) · soporte para claves RSA 2048-bit que ocupan ~1700 chars
  • improvement Helper Jwt::signRS256 con openssl_sign · Jwt::looksLikePem para auto-detección de formato · header kid configurable
  • improvement Cache en memoria del provider por tenant en ConferenceFactory · clearCache automático al guardar settings
  • fix meet.jit.si gratis tenía corte de embed a los 5 min · ahora se detecta el dominio y forzamos "abrir en pestaña nueva" cuando no hay JWT configurado
v4.7.0 MAJOR 2026-04-29

Agenda de reuniones · Página pública estilo Calendly

  • feature Página pública /book/{slug} estilo Calendly · branding propio (logo, color, mensajes) · multi-tipo de reunión
  • feature Selector de fecha/hora con calendario mensual responsive · slots calculados en tiempo real respetando disponibilidad, buffers, bloqueos y reuniones existentes
  • feature Tipos de reunión configurables: nombre, descripción, duración (5–480 min), color/ícono, ubicación (virtual/teléfono/presencial/custom), buffer antes/después, slot step
  • feature Política por tipo: aviso mínimo (horas), anticipación máxima (días), requiere confirmación manual, permitir cancelar/reprogramar al cliente, redirect post-reserva
  • feature Preguntas personalizadas por tipo con 5 formatos (texto, párrafo, número, teléfono, select con opciones) · obligatorias u opcionales
  • feature Disponibilidad semanal por host (usuario) con múltiples franjas por día · seed por defecto Lun–Vie 9–17 para todos los técnicos del tenant
  • feature Días bloqueados por host o globales · día completo o ventana parcial · motivo opcional (vacaciones, feriado, fuera de oficina)
  • feature Detección de conflictos automática: el motor de slots resta reuniones existentes, bloqueos, buffers y aviso mínimo
  • feature Email de confirmación al cliente con plantilla branded + ICS adjunto descargable + link único de gestión por reserva
  • feature Notificaciones internas al equipo (host + emails extra configurables) en cada nueva reserva o reprogramación
  • feature Página de gestión pública /book/{slug}/manage/{token}: ver detalles · cancelar con motivo · reprogramar con calendario nuevo
  • feature Detección automática de empresa por dominio del email (reusa el helper de tickets) · upsert de contacto con teléfono
  • feature Modo manual: agendá reuniones desde el panel sin necesidad de página pública (útil para llamadas espontáneas)
  • feature Dashboard interno con KPIs (hoy, próximas, este mes, total) + lista de próximas + tipos activos + recientes
  • feature Vistas adicionales: listado filtrable (estado, tipo, host, fechas, búsqueda) + calendario mensual con grilla 7×N
  • feature Estados granulares: agendada · confirmada · cancelada · completada · no-show · reprogramada
  • improvement 5 permisos nuevos: meetings.view (granted a agent/manager) + meetings.create/edit/delete/config (granted a owner/admin)
  • improvement 5 tipos seed por tenant: Demo 15min · Consulta 30min · Sesión estratégica 60min · Llamada telefónica · Presencial 60min
  • improvement meeting_settings con slug público único, validación anti-clash · timezone, branding, mensajes, requerir teléfono/empresa, footer "Powered by"
  • improvement Plan::FEATURES y MODULE_CATALOG con la entrada "meetings" tier business · sidebar tenant con item "Reuniones" en sección Gestión
  • improvement Migración idempotente con 5 tablas nuevas + columnas extra + seeds + asignación auto de host por defecto
v4.6.0 MAJOR 2026-04-27

10 módulos nuevos · La actualización más grande hasta ahora

  • feature Email-to-Ticket inbound: convertí emails en tickets automáticamente vía IMAP o forward webhook. Disponible en Pro+
  • feature IMAP fetcher con extracción de body multipart, threading por Message-ID/In-Reply-To, dedupe automático
  • feature Forward webhook universal compatible con Mailgun, Postmark, SendGrid, n8n, Zapier — header x-forward-token con HMAC-style auth
  • feature Auto-asignación de empresa por dominio del email del solicitante
  • feature Categoría y prioridad por defecto configurables por buzón, auto-assign opcional a un agente
  • feature Live Chat / Messenger: widget embebible 1-line para tu sitio web. Disponible en Business+
  • feature Snippet único por widget: <script async src="...kydesk.../chat-widget/{key}.js"></script>
  • feature Visitor JS auto-contenido con bubble flotante, panel responsive, persistencia con localStorage
  • feature Agent inbox con polling en tiempo real, asignación, conversión 1-click a ticket
  • feature Color, mensaje de bienvenida, requerir email, orígenes CORS — todo configurable desde la UI
  • feature Kyros IA — solo plan Enterprise · infraestructura gestionada centralmente por el equipo de Kydesk
  • feature 5 acciones IA: sugerir respuesta, resumir hilo, auto-categorizar, detectar sentiment, traducir
  • feature Super admin: panel /admin/ai con configuración global de provider/API key/modelo, asignación explícita por tenant, control de cuota
  • feature Tenant Enterprise: solo toggle qué acciones usar — sin manejar API keys ni billing del proveedor
  • feature Cuota mensual por tenant con barra visual, kill-switch global, log cross-tenant de completions
  • feature Resumen de IA y sentiment se persisten en columnas tickets.ai_summary y tickets.ai_sentiment
  • feature CSAT (1-5 emojis) y NPS (0-10) post-resolución de tickets · disponible en todos los planes
  • feature Auto-trigger configurable al cerrar tickets en estado resolved
  • feature Encuesta pública en /csat/{token} con UI mobile-first, branding del tenant
  • feature Dashboard con NPS Score (promotores - detractores), % satisfechos CSAT, promedio, distribución
  • feature Hook automático en TicketController::update() y move() — si el tenant habilitó, dispara encuesta al resolver
  • feature ITSM completo (ITIL): Service Catalog · Change Management · Problem Management · Approvals · disponible en Business+
  • feature Service Catalog: items con SLA propio, categoría, departamento, aprobador específico
  • feature Change Requests: tipos standard/normal/emergency, riesgo/impacto low/medium/high, plan de rollback y testing, fechas planeadas
  • feature Multi-step approvals: todos los aprobadores deben aprobar para que un Change pase a estado "approved"
  • feature Problems con root cause, workaround y estado known_error (siguiendo ITIL v4)
  • feature Códigos auto-generados CHG-XXXXX y PRB-XXXXX únicos por tenant
  • feature Time Tracking integrado a Igualas · disponible en Pro+
  • feature Timer en vivo con cronómetro x-data Alpine, 1 timer running por usuario, auto-stop si abrís otro
  • feature Manual entry con horas, fecha de inicio, tarifa, facturable/no
  • feature Auto-detecta iguala activa de la empresa del ticket y descuenta horas del período abierto
  • feature Recalcula consumed_hours y overage_amount del período automáticamente al stop
  • feature Filtros por usuario, rango de fechas, facturable/no — KPIs de horas, billable, monto
  • feature Status Page pública en /status/{slug} · disponible en todos los planes
  • feature Componentes con 5 estados: operational/degraded/partial_outage/major_outage/maintenance
  • feature Incidentes con severidad minor/major/critical/maintenance y timeline de updates investigando→identified→monitoring→resolved
  • feature Suscripción por email con confirmación double-opt-in y notificaciones automáticas en cada update
  • feature Estado general calculado automáticamente del peor estado de los componentes
  • feature Historial público de incidentes resueltos (últimos 12)
  • feature Customer Portal con login autenticado en /portal/{slug}/{login,register,account}
  • feature Sistema de auth completo: registro, verificación email, login, forgot/reset password, perfil
  • feature Cliente ve histórico autenticado de SUS tickets (filtra por portal_user_id o requester_email)
  • feature Vinculación opcional con company al crear cuenta
  • feature Super tenant: gestión /t/{slug}/portal-users con activar/desactivar/eliminar usuarios del portal
  • feature Reports Builder con 10 widgets pre-construidos · disponible en Business+
  • feature Widgets: tickets por estado/prioridad/categoría/agente/día, tiempo medio resolución, cumplimiento SLA, tickets abiertos, CSAT score, top 10 empresas
  • feature Builder Alpine.js con add/remove/reorder de widgets
  • feature Filtros guardados (rango de fechas) por reporte
  • feature Marcar como favorito, compartir con el equipo, scheduled emails (config inicial)
  • feature Custom Fields por categoría · disponible en todos los planes
  • feature 10 tipos: text, textarea, number, date, select, multiselect, checkbox, url, email, phone
  • feature Globales (todos los tickets) o filtrados por categoría específica
  • feature Required, visible en portal, orden, opciones (para select/multiselect), placeholder, help_text — todo configurable
  • feature Helpers estáticos fieldsFor() / valuesFor() / saveValues() para integración con tickets
  • improvement Sidebar tenant: 9 items nuevos (Igualas, Time Tracking, Live Chat, Reports Builder, Email-to-Ticket, IA, ITSM, CSAT/NPS, Status Page, Custom Fields, Usuarios Portal)
  • improvement Sidebar admin: nuevo item "IA Asistente" en sección Sistema con panel de configuración global y asignación por tenant
  • improvement admin-* CSS classes (admin-tabs, admin-table, admin-pill, admin-card, admin-btn) ahora globales en app.css y disponibles en tenant views
  • improvement Plan::FEATURES y MODULE_CATALOG actualizados con 13 nuevas entradas tier-aware
  • improvement 20 permisos nuevos seedeados a roles owner+admin (custom_fields.*, csat.*, status.*, portal.manage, time.*, email.*, chat.*, ai.*, itsm.*, reports.builder)
  • improvement Migración v5 idempotente con 16 tablas nuevas + columnas extra en tickets
  • improvement Migración ai_centralized convierte ai_settings a modelo de asignación super-admin-controlado
  • improvement AI quota cascade: kill switch global → asignación tenant → enabled tenant → API key disponible → cuota no agotada
v4.5.0 MINOR 2026-04-27

Igualas configurables · Soporte TI, Dev, Sistemas y más

  • feature Nuevo módulo Igualas (Retainers) en /t/{slug}/retainers · disponible en Business y Enterprise
  • feature Soporta empresas y clientes individuales (persona física) en el mismo módulo
  • feature Categorías de servicio configurables desde la UI: Soporte TI, Desarrollo de software, Sistemas, Cloud & DevOps, Ciberseguridad, Consultoría, Marketing, Legal, Contable, Mantenimiento web, Licencias SaaS
  • feature Cada categoría con icono + color + unidad por defecto (horas, tickets, usuarios, licencias, proyectos, meses, custom)
  • feature Items por línea en cada iguala con título, categoría, cantidad, unidad, tarifa, importe, recurrente/único y facturable/no
  • feature Cálculo automático de importe por línea (qty × tarifa) y total recurrente facturable en tiempo real
  • feature Plantillas reutilizables con items pre-cargados — 10 plantillas seed: Soporte TI Básico/Premium, Dev Sprint/Maintenance, Cloud Ops 24/7, Pentest mensual, Consultoría Senior, Marketing 360, Legal Corp, Contable
  • feature Builder de plantilla "1-click": crear iguala desde plantilla pre-llena formulario + items
  • feature Filtro de igualas por categoría con pills de color, búsqueda por código/nombre/cliente y filtro por estado
  • feature Ciclos de facturación: mensual, trimestral, anual
  • feature Horas y tickets incluidos por período, tarifa de excedente configurable
  • feature Impuesto (%) y términos de pago configurables por iguala
  • feature SLA opcional por contrato (tiempo de respuesta + resolución en minutos)
  • feature Apertura automática del primer período al activar la iguala
  • feature Cierre manual de período con avance automático al siguiente si auto_renew=1
  • feature Registro de consumos asociado a tickets · cálculo automático de horas consumidas y excedente
  • feature Visualización de progreso del período actual con barra y alerta si supera horas incluidas
  • feature Códigos auto-generados IGL-XXXXX únicos por tenant
  • feature Control de módulos por tenant en /admin/tenants/{id}/modules · super admin habilita/deshabilita features individualmente
  • feature Tres estados por módulo: Heredar (del plan), Activar (override on), Desactivar (override off) · con campo de motivo para auditoría
  • feature Override de módulos respeta plan base pero permite excepciones — ej: dar Igualas a un Pro específico, quitar Integraciones a un Business
  • feature Catálogo de 17 módulos clasificados por nivel: core, pro, business, enterprise
  • feature 6 nuevos permisos: retainers.view/create/edit/delete/bill/config
  • improvement Sidebar tenant: nuevo item "Igualas" en sección Gestión · oculto si el plan no lo incluye
  • improvement Vista de detalle con tabs: Items, Consumos, Períodos, Editar
  • improvement Editor visual de items con Alpine.js: agregar/quitar líneas y cálculo en vivo
  • improvement Vista admin de tenant con botón directo "Gestionar módulos" + columna en listado
  • improvement Vista de upsell extendida con tarjeta dedicada para "Igualas" cuando un Pro intenta acceder
  • improvement Esquema: 6 nuevas tablas (retainers, retainer_periods, retainer_consumptions, retainer_categories, retainer_items, retainer_templates, retainer_template_items, tenant_module_overrides)
  • improvement 11 categorías + 10 plantillas seedadas automáticamente en cada tenant existente al correr la migración
v4.4.0 MINOR 2026-04-27

Marketplace de Integraciones · Conecta Kydesk con tus herramientas

  • feature Nuevo marketplace de integraciones en /t/{slug}/integrations · disponible desde Pro
  • feature Slack: notifica a un canal vía Incoming Webhook con attachments coloreados por tipo de evento
  • feature Discord: embeds ricos con color int, fields y timestamp
  • feature Telegram: bot con sendMessage HTML · soporta canales, grupos y chats privados
  • feature Microsoft Teams: MessageCard adaptativa con facts y theme color
  • feature Zapier · n8n · Make: webhooks genéricos con auth header opcional
  • feature Webhook genérico: POST/PUT/PATCH JSON con firma HMAC-SHA256 opcional
  • feature Email forwarding: reenvía eventos a un email vía Resend con HTML branded
  • feature Pushover: push notifications a tu móvil con prioridad configurable
  • feature Mattermost · Rocket.Chat: payload compatible con Slack
  • feature Configuración 100% UI: cada proveedor define su propio config schema (URL, token, etc.)
  • feature Selector de eventos: marca cuáles disparan la integración (ticket.created, sla.breach, etc.)
  • feature Botón "Probar" envía un ping de test y muestra latencia + status code
  • feature Logs por integración: últimos 30 envíos con HTTP status, latencia y excerpt de respuesta
  • feature Auto-cap de logs por integración a 200 entradas (cleanup automático)
  • feature Toggle activar/pausar sin perder configuración
  • feature Counters de éxitos/errores y last_event_at por integración
  • feature Super admin /admin/integration-limits: configura por plan max integraciones + proveedores permitidos
  • feature Defaults: Pro=5 integraciones (chat+webhook+email) · Business=15 (+automation) · Enterprise=999 (todos)
  • feature Gating en cascada: feature flag por plan · provider whitelist por plan · count limit por plan
  • feature Banner de "límite alcanzado" cuando el tenant llega al máximo de su plan
  • feature Dispatcher hookeado a Events::emit() · cada acción del sistema dispara integraciones automáticamente
  • feature Filtro por categorías en marketplace: Chat, Automatización, DevOps, Notificaciones
  • feature 5 nuevos permisos: integrations.view/install/edit/delete/test
  • improvement Sidebar tenant: nuevo item "Integraciones" en sección Administración (visible en PRO+)
  • improvement Sidebar admin: nuevo item "Integraciones" en sección Sistema
  • improvement Audit log integrado: integration.installed/updated/toggled/deleted
  • improvement Esquema: integrations + integration_logs · indexed por tenant_id, integration_id, status
  • improvement Passwords/tokens en config: campos password no se reenvían al UI · "deja vacío para mantener"
v4.3.0 MINOR 2026-04-27

Departamentos · Organiza tu equipo y enruta tickets automáticamente

  • feature Nueva sección /t/{slug}/departments en el panel del tenant — disponible desde el plan Pro
  • feature CRUD completo de departamentos: nombre, color, icono, descripción, email, líder y orden
  • feature Asignación de agentes (técnicos) por departamento · pivote many-to-many con flag de líder
  • feature Manager/líder configurable que recibe la asignación automática de tickets nuevos
  • feature Selector de departamento al crear ticket · auto-asigna al líder del depto si no hay técnico
  • feature Filtro de departamento en /tickets · listado de tickets muestra badge del depto
  • feature Cambio de departamento desde la vista de detalle del ticket
  • feature Automations: nueva condición "departamento" + acción "enrutar a departamento"
  • feature SLAs por departamento · políticas globales o específicas para áreas concretas
  • feature Reportes: nuevo panel "Desempeño por departamento" con volumen, brechas SLA y tasa de resolución
  • feature Detalle del departamento muestra agentes, tickets recientes, stats y SLAs propios
  • feature 4 departamentos por defecto sembrados en cada tenant: Soporte Técnico, Ventas, Facturación, RRHH
  • feature 5 nuevos permisos: departments.view/create/edit/delete/assign · auto-otorgados al rol owner
  • feature Gating PRO: starter/free ven la pantalla de upsell con CTA al pricing
  • improvement Sidebar tenant: nuevo item "Departamentos" en la sección Gestión (visible solo en PRO+)
  • improvement Audit log integrado: department.created/updated/deleted/agent_added/agent_removed
  • improvement Esquema: departments + department_users (pivote) + tickets.department_id + sla_policies.department_id
  • improvement Slugs únicos por tenant para departamentos · auto-generados con deduplicación numérica
v4.2.0 MINOR 2026-04-26

Webhooks reales, AI Chat con tu workspace y emails con Resend

  • feature Event bus real (App\Core\Events): cada acción de la API emite eventos a webhooks suscritos
  • feature 7 eventos cableados: ticket.created, ticket.updated, ticket.assigned, ticket.resolved, ticket.escalated, ticket.deleted, comment.created
  • feature Entregas firmadas con HMAC-SHA256 (X-Kydesk-Signature) + retries con backoff
  • feature Auto-deshabilitar webhook tras 10 fallos consecutivos · email automático al developer
  • feature Activity events stream: GET /api/v1/events/recent + Server-Sent Events /events/stream
  • feature AI Chat (/developers/ai/chat): chatea con tu workspace usando OpenAI/Anthropic/Google · tool calling con Kydesk · BYO key directo desde el browser
  • feature MCP config download para Claude Desktop, Continue, Cline
  • feature API Console: persistencia de token, historial de 25 requests, favoritos en DB, tabs Respuesta/Headers/Historial/Favoritos
  • feature Email verification + password reset flow completo con token de un solo uso
  • feature Token IP allowlist (CIDR soportado), expiración configurable, descripción de propósito
  • feature 10 emails transaccionales centralizados vía Resend con branding consistente
  • feature Welcome email tras registro · invoice/payment notifications · token security alert · webhook disabled · subscription change · quota warnings (80% y 100%, una vez por mes)
  • feature Super admin: ajustes del developer portal (toggles enforcement, alert %, branding) · auditoría cross-developer · webhook deliveries log
  • feature Banners contextuales: cuota al 80%/100%, email no verificado, suscripción en trial, pago pendiente
  • improvement DevMailer helper: todos los envíos pasan por Resend con logging en email_log y error_log en fallos
  • improvement Anti-spam de quota alerts: marcadores en developers.notes para no enviar más de una vez por mes
  • improvement Sidebar developer con barras de progreso live de cuota y rate limit
  • improvement Idempotency table api_idempotency con TTL 24h evita duplicados
  • fix Variable $e (escape helper) ya no se sobreescribe en views por catch (\Throwable $e)
  • fix Enums TICKETS/COMPANIES/KB validan correctamente al crear (data truncated bug)
  • fix Paginación uniforme con meta.total y links navegables
v4.1.0 MINOR 2026-04-26

La mejor API REST · OpenAPI, paginación, idempotencia y enforcement

  • feature BaseApiController modular con paginación uniforme, sort, expand, fields y idempotencia
  • feature CRUD completo en Tickets, Companies, Categories, Users, KB, SLA, Automations, Assets
  • feature Sub-recursos: comments, escalate, assign, batch (50 ops/request)
  • feature Búsqueda global GET /api/v1/search?q= cross-resource
  • feature Health check público GET /api/v1/health · sin auth
  • feature OpenAPI 3.1 spec auto-generado en /api/v1/openapi.json
  • feature Postman collection descargable en /api/v1/postman.json
  • feature Idempotency-Key header en POSTs · respuesta cacheada 24h
  • feature Headers DX: X-API-Version, X-Request-Id, X-RateLimit-Limit, X-Quota-Used/Limit/Pct
  • feature ETag + If-Match para concurrency control
  • feature Plan enforcement en tiempo real: rate limit por minuto, cuota mensual, status de suscripción
  • feature Overrides de cuota por developer — super admin sobrescribe límites del plan
  • feature Per-request audit log granular (dev_api_request_log) con method/path/status/latencia
  • feature CSV exports: /tickets.csv, /companies.csv, /users.csv
  • feature AI Studio: 8 modelos (Claude, GPT, Gemini, Codex, Cursor, Copilot, Continue, Cline)
  • feature Generadores: system prompt builder, .cursorrules, AI digest, MCP config
  • feature Documentación interactiva con sidebar de navegación + tabs por lenguaje
  • feature API Console (try-it inline) con cURL builder · token persistido
  • improvement Errores con formato consistente { error: { type, message, status, request_id } }
  • improvement CORS preflight + 11 headers expuestos para debugging desde browsers
v4.0.0 MAJOR 2026-04-26

Developer Portal · Construye apps con la API de Kydesk

  • feature Nuevo portal externo /developers · separado del helpdesk de clientes con su propio dashboard, billing y panel
  • feature Cuentas de developer con login/registro y verificación opcional por email
  • feature 5 planes API públicos: Free (10K req/mes), Starter $19, Growth $49, Scale $149, Enterprise $499
  • feature Cada app del developer obtiene su propio tenant aislado · sin contaminación entre proyectos
  • feature Bearer tokens API con scopes (read/write/*) · revocables · preview de últimas letras
  • feature Suscripciones, facturas y pagos para developers — flujo completo con super admin
  • feature Panel super admin: Developers, Apps, Planes Dev, Suscripciones, Facturas, Pagos · CRUD total
  • feature Dashboard super admin con KPIs de developer portal: MRR, requests MTD, top developers
  • feature Tenants sandbox de developers ocultos del listado de empresas regulares
v3.1.0 MINOR 2026-04-26

Tablero Kanban + Automatizaciones IA

  • feature Tablero Kanban con drag-and-drop nativo entre columnas de estado.
  • feature Automatizaciones con disparadores: ticket creado, actualizado, escalado, SLA en riesgo, resuelto.
  • feature Condiciones combinables: prioridad + categoría + palabra clave en el asunto.
  • feature Acciones: cambiar prioridad/estado, asignar técnico, notificar email, agregar comentario interno.
v3.0.0 MAJOR 2026-04-19

API REST completa + Centro de ayuda

  • feature API REST v1 con 18 endpoints (tickets, comentarios, categorías, empresas, KB, SLA, stats).
  • feature Tokens Bearer con scopes granulares (read / write / *) gestionables desde el panel.
  • feature Centro de ayuda con FAQ y buscador en vivo dentro del workspace.
  • feature Soporte directo: comunicación con el equipo Kydesk desde el workspace.
  • improvement Mailer dual: Resend como primario + SMTP de respaldo automático.
v2.4.1 PATCH 2026-04-12

Mejoras de UI y performance

  • fix Layout del dashboard ya no se estira con tablas grandes.
  • fix Charts de Chart.js con altura controlada — sin loops infinitos de redraw.
  • improvement Sidebar colapsable con modo iconos en desktop y drawer en mobile.
  • improvement Tablas con scroll horizontal automático en mobile.
v2.4.0 MINOR 2026-04-05

Planes dinámicos en landing

  • feature La página /pricing y el home pricing leen planes desde la BD en tiempo real.
  • feature Cualquier cambio del super admin se refleja al instante en la landing.
  • feature Toggle Mensual/Anual con switch dinámico de precios.