Releases: juancar1lo/ciclometricas_desktop
Release list
Ciclometricas_v3.0
[3.0.0] Junio 2026
Added
Editor de picos
Módulo completo de detección y corrección de picos en datos de potencia (spike_filter/).
Cuatro estrategias de detección: Z-score, IQR, LOF (Local Outlier Factor) e Isolation Forest.
Cinco métodos de corrección: interpolación lineal, spline cúbico, media móvil, mediana local y clamping.
Exportación de archivos corregidos en formato FIT y TCX con preservación de metadatos originales.
Vista dedicada spike_editor_view.py con controles de parámetros, previsualización gráfica y flujo guiado.
Gráfico interactivo spike_chart.py con resaltado de picos detectados y vista previa de correcciones.
Pipeline configurable que encadena detección → corrección → exportación.
Suite de tests: 5 módulos de test (test_corrector, test_detector, test_fit_writer, test_pipeline, test_tcx_writer).
Consejero IA
Sistema de chat con LLM local vía Ollama, integrado como vista lateral ai_coach_view.py.
Arquitectura RAG (Retrieval-Augmented Generation) con motor de contexto (context_engine.py).
Almacén de embeddings (embedding_store.py) con modelo EmbeddingDoc en base de datos.
Módulo de consultas de datos (data_queries.py) para extraer métricas del atleta como contexto.
Generador de informes (report_generator.py) con resúmenes estructurados de rendimiento.
Modelos de base de datos: tablas EmbeddingDoc, AiConversation y AiMessage.
Migración automática _migrate_embedding_doc() en db/engine.py.
Botón "Análisis IA" en la vista de detalle de actividad (_build_ai_analysis) para solicitar análisis contextualizado de una actividad concreta.
Suite de tests: 4 módulos (test_ai_coach, test_data_queries, test_embedding_store, test_report_generator).
Internacionalización
Sistema de traducción con función tr() aplicada a todas las cadenas de interfaz.
Soporte para español (ES) e inglés (EN) con módulo i18n/en.py de traducciones.
Selector de idioma en el primer arranque, con persistencia en ~/.ciclometricas/language.json.
Cálculo de par
Módulo calc/torque.py para cálculo de par AET (torque a umbral aeróbico).
Serie de torque añadida al gráfico de series temporales (time_series_chart.py).
Tarjeta de análisis de torque en la vista de detalle de actividad.
Salud (Health)
Importación y exportación de datos de salud en formato CSV.
Auto-detección de codificación y separadores en archivos CSV importados.
Lógica de upsert por fecha para evitar duplicados al importar.
Navegación y vistas
Nueva sección "Editor de picos" en la barra lateral del main_window.
Nueva sección "Consejero IA" en la barra lateral del main_window.
Pestaña de Strava y opciones de backup/restauración en la vista de ajustes.
Vista de actividades: selección múltiple, eliminación por lotes y filtro por tipo de actividad.
Testing
Fixture de test tests/fixtures/sample.tcx para pruebas de lectura/escritura TCX.
Changed
Rendimiento
Carga diferida (lazy loading) de todas las vistas en main_window.py: solo el Dashboard se instancia al inicio; el resto se crean bajo demanda mediante _ensure_view(key). Elimina las 13 importaciones eager de vistas a nivel de módulo.
Formato de definición de secciones del sidebar cambiado de diccionario SECTIONS a tupla _SECTION_DEFS.
Interfaz de usuario
Todas las cadenas de UI envueltas en tr() para soporte multilingüe en vistas, cálculos, widgets, diálogos y gráficos.
Opciones de período en vistas ahora usan tr() para etiquetas traducidas.
Diálogo de sesión manual: presets generados dinámicamente mediante función _type_presets() para i18n.
Fuentes de readiness generadas mediante función _readiness_sources() para i18n.
Bandas de presión arterial generadas mediante función _bp_bands() para i18n.
Renombrado de "DCP" a "PDC" (Perfil de Duración de Carga) en dashboard_view.py.
Tema y gráficos
Colores de QMenu explícitos añadidos al tema.
Paleta de series _SERIES_COLORS separada de CHART_COLORS en chart_utils.py.
Color fg_muted aclarado a #a1b0c8 para mejor legibilidad.
Mapa de ruta: scrollWheelZoom desactivado por defecto; sustitución dinámica de BG_COLOR en el HTML del mapa.
Fixed
Flash blanco al arrancar: se aplica QPalette + setStyleSheet + processEvents antes de showMaximized, eliminando el destello blanco inicial.
Desbordamiento de tooltip en módulo de Salud: ChartTooltip invierte su ancla cuando el cursor está en el 20 % derecho de la vista, evitando que el tooltip se salga de la ventana.
Se establece sys.dont_write_bytecode = True en main.py para evitar generación de archivos .pyc.
Removed
Eliminada la rutina de borrado recursivo de pycache que se ejecutaba en cada arranque (causaba ralentización al inicio y ValueError con el método "Auto").
Eliminadas las 13 importaciones eager de vistas a nivel de módulo en main_window.py (sustituidas por carga diferida).
Ciclometricas_v2.0
v2.0.0 — Ciclométricas
Analiza tu rendimiento en ciclismo a partir de archivos .FIT y .TCX de tu dispositivo o plataforma favorita.
Incluye: modelo de fitness (CTL/ATL/TSB), zonas de potencia y frecuencia cardíaca, curva MMP, detección de intervalos, análisis de cuadrantes, estimación de FTP, modelo de Potencia Crítica (CP/W'), carga de entrenamiento, monotonía, resistencia a la fatiga, recuperación y mucho más.
Requiere Windows 10/11 (64-bit). Consulta el README para instrucciones de instalación.