- google_calendar: RefreshError se referenciaba como
google.oauth2.credentials.exceptions.RefreshError, ruta que no existe. Al
fallar un refresh de token saltaba un AttributeError que ocultaba el error
real y rompia el re-auth. Ahora se importa de google.auth.exceptions.
- google_calendar: getEvent() comprobaba si habia un evento activo en ese
instante. El daemon planifica de madrugada, asi que una ausencia de 09:00 a
18:00 no se detectaba y se fichaba igual. Ahora acepta un dia y comprueba
solapamiento. Sin argumento mantiene el comportamiento anterior.
- google_calendar: datetime.utcnow() esta deprecado en Python 3.12+.
- timenet_manager: "args.basedtime and not args.type" ignoraba -t 0 (Entrada)
al combinarlo con -bt, porque not 0 es True. Ahora es "args.type is None".
- timenet_manager: updateVersion() asignaba el objeto Response al header Tn-V
en vez de su texto.
- timenet_manager: geo.accuracy se parseaba y se podia sobrescribir por CLI
pero nunca se enviaba en el payload de cp/checks.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
- Agregado logging estructurado en todos los módulos
- Implementados try-catches en todos los métodos críticos
- Errores ahora se envían automáticamente por Telegram
- Mejorado manejo de excepciones en requests HTTP
- Agregado try-catch global en main.py para errores no manejados
- Logging detallado en timenet_manager, telegram_bot, google_calendar y config_parser