releasecloudperformanceaccessibility

OmniMon v5.2.0 - CrabNebula Cloud, Optimizaciones Rust 1.93 y Accesibilidad

v5.2.0 agrega integración CrabNebula Cloud, cumplimiento Rust 1.93 clippy, accesibilidad con focus trap, búsquedas O(1) de procesos y 198 tests con 85% de cobertura.

OmniMon v5.2.0

v5.2.0 consolida las features de v5.1.0 en un release listo para producción con integración cloud, cumplimiento Rust 1.93, mejoras de accesibilidad y optimizaciones de rendimiento. 53 archivos modificados, +4,273 líneas en 7 commits.

Integración CrabNebula Cloud

OmniMon ahora se integra con CrabNebula Cloud para distribución y actualizaciones automáticas:

  • Detección de tier cloud - Free, Premium o Unknown basado en respuesta de la API
  • Almacenamiento en keyring del SO - claves API guardadas de forma segura en macOS Keychain, Windows Credential Manager o Linux Secret Service
  • Validación de formato de clave - rechaza claves vacías, demasiado largas (>512 caracteres) o con caracteres no-ASCII
  • Validación asíncrona - GET autenticado a api.crabnebula.dev/v1/account con timeout de 10 segundos
  • Fallback silencioso - la app funciona completamente sin features cloud. Sin crash, sin pantalla molesta
  • 13 tests cubriendo todas las rutas de validación y error

Cumplimiento Rust 1.93

Todo el código Rust fue actualizado para Rust 1.93 con cumplimiento total de cargo fmt y cargo clippy:

  • Corregidos todos los nuevos lints de clippy introducidos en Rust 1.93
  • Formateados todos los archivos .rs a estándares actuales de rustfmt
  • Fórmula de Homebrew actualizada con nueva versión y SHA256

Optimizaciones de Rendimiento

  • Búsqueda O(1) de procesos bloqueados - is_immutable_blocked_process_name() ahora usa OnceLock<HashSet> inicializado una vez al arranque, reemplazando escaneo lineal O(N) en cada tick del watcher
  • Fix de fuga de memoria - HashMap rules_engine::last_matched ahora elimina entradas obsoletas después de 60 segundos, previniendo crecimiento ilimitado
  • Límite de caché de iconos - limitado a 2,048 entradas para prevenir asignación de memoria ilimitada
  • #[inline] en función hot network::scale_to_per_sec para mejor generación de código
  • Recuperación de RwLock envenenado - todos los .unwrap() en RwLock reemplazados con funciones de recuperación elegante

Mejoras de Accesibilidad

  • Utilidad focus trap (focusTrap.ts) - ciclo correcto Tab/Shift+Tab para todos los diálogos modales
  • SecurityReportView llama focusFirstFocusable() al montar para navegación por teclado
  • Modal de ajustes recibe el mismo tratamiento de focus trap
  • Atributos ARIA en toda la app - aria-controls, aria-label, aria-expanded, role="status" en skeleton loaders

Calidad de Código

  • 25+ constantes extraídas de números mágicos en ai.rs (URLs de API, servicios keyring, max tokens, nombres de modelo)
  • 3 funciones helper - add_anthropic_headers(), add_openrouter_headers(), check_response_status() eliminan ~90 líneas de código duplicado
  • Fallos en operaciones de store ahora se registran en logs en vez de tragarse silenciosamente
  • Branding completo OmniMon - todas las referencias legacy “macmon” renombradas en títulos HTML, rutas APPDATA, URLs de GitHub, scripts de instalación y prompts de IA

Cobertura de Tests

  • 198 tests totales: 109 unitarios + 85 integración + 4 CLI
  • Enforcement de 85% de cobertura en CI de macOS y Linux
  • Nuevos módulos de test: audit_trail, cloud, process_identity, rate_limit, telemetry
  • Tests de integración crecieron de 120 líneas a 1,200 líneas (aumento 10x)

Instalar

# macOS
brew tap chochy2001/omnimon && brew install --cask omnimon

# Linux
curl -fsSL https://get.omnimon.com.mx | bash

# Windows
winget install chochy2001.omnimon

Changelog completo en GitHub