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/accountcon 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
.rsa estándares actuales derustfmt - 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 usaOnceLock<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_matchedahora 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 hotnetwork::scale_to_per_secpara 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