Skip to content

Releases: juancar1lo/ciclometricas_desktop

Ciclometricas_v3.0

Choose a tag to compare

@juancar1lo juancar1lo released this 01 Jul 19:36
61b53b4

⚠️ Nota: Los archivos "Source code (zip)" y "Source code (tar.gz)" generados automáticamente por GitHub pueden estar vacíos o incompletos. Usa los archivos adjuntos manualmente a continuación para descargar el código fuente correcto.

[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

Choose a tag to compare

@juancar1lo juancar1lo released this 24 May 21:05
90cb19d

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.