github cggmx/garmin-health-dashboard v1.0.9
v1.0.9 — Full internationalization, tests, Windows MFA, UX improvements

8 hours ago

What's new in v1.0.9

🌐 Internationalization (i18n)

  • Systematic audit: removed all hardcoded Spanish strings leaking into English mode
  • Fixed Training Zones, BMI card, profile form, recovery badges, percentile tooltip, AI summary and more
  • Dates in the weight log now respect the selected language
  • Imperial / metric toggle in the profile form (ft·in·lbs ↔ cm·kg)

🤖 AI Summary

  • Card now collapses to 5 lines with a "Read more / Read less" button
  • Model markdown (#, **) is stripped automatically before rendering

🔧 Bug fixes

  • "Demo data" badge no longer appears when credentials are valid but Garmin fails temporarily — new orange badge ("Garmin temporarily unavailable")
  • Resting HR floor lowered from 30 to 20 BPM for elite athletes
  • Connection error message now translates correctly

🪟 MFA / Windows

  • get-garmin-tokens.js script fully rewritten:
    • Patches the instance (not the prototype) → works on all platforms
    • Double safety net: instance patch + axios response interceptor
    • Removed form-data dependency → uses native URLSearchParams
    • Vercel pipe now compatible with Windows CMD / PowerShell

🧪 Tests

  • 72 unit tests with Jest covering all pure algorithms
  • Scoring: sleep, recovery, strain, training zones, VO2max, median, sleep debt
  • i18n: variable interpolation
  • Commands: npm test · npm run test:watch · npm run test:ci

📸 Screenshots

  • Screenshots section added to the bilingual README with 5 real app images

Qué hay de nuevo en v1.0.9

🌐 Internacionalización (i18n)

  • Auditoría sistemática: eliminados todos los strings hardcodeados en español que aparecían en modo inglés
  • Corregidas Training Zones, BMI card, perfil, badges de recuperación, tooltip de percentil, resumen IA y más
  • Fechas en el registro de peso ahora respetan el idioma seleccionado
  • Sistema imperial / métrico en el formulario de perfil (ft·in·lbs ↔ cm·kg)

🤖 AI Summary

  • El card ahora se colapsa a 5 líneas con botón "Ver más / Ver menos"
  • El markdown del modelo (#, **) se limpia automáticamente antes de mostrar

🔧 Bug fixes

  • El badge "Datos demo" ya no aparece cuando las credenciales son válidas pero Garmin falla temporalmente — nuevo badge naranja ("Garmin temporalmente no disponible")
  • RHR floor bajado de 30 a 20 BPM para atletas de élite
  • El texto de error de conexión ahora se traduce correctamente

🪟 MFA / Windows

  • Script get-garmin-tokens.js reescrito completamente:
    • Parchea la instancia (no el prototipo) → funciona en todas las plataformas
    • Doble seguro: patch + interceptor de axios
    • Elimina dependencia form-data → usa URLSearchParams nativo
    • Pipe a Vercel compatible con Windows CMD/PowerShell

🧪 Tests

  • 72 tests unitarios con Jest cubren todos los algoritmos puros
  • Scoring: sueño, recuperación, strain, zonas de entrenamiento, VO2max, mediana, deuda de sueño
  • i18n: interpolación de variables
  • Comandos: npm test · npm run test:watch · npm run test:ci

📸 Capturas de pantalla

  • Sección de screenshots añadida al README bilingüe con 5 imágenes de la app real

Don't miss a new garmin-health-dashboard release

NewReleases is sending notifications on new releases.