Skip to content

bug(claude): los medidores de Claude no muestran la fecha de reinicio #269

Open

Description

@egdev6

Pre-flight checks

  • I searched existing issues and found no duplicate.
  • I understand that this report enters review before implementation.

What happened?

Los medidores de Claude no muestran cuándo se reinicia cada ventana: falta el «Se reinicia en…» en la sesión de 5 h y en las ventanas semanales, mientras que el porcentaje de uso sí aparece. Otros proveedores muestran su reinicio con normalidad.

Qué hace hoy el código:

  • parse_usage (src-tauri/src/providers/claude.rs:357-401) lee resets_at de cada ventana (five_hour, seven_day, seven_day_opus, seven_day_sonnet, seven_day_oauth_apps) solo si es una cadena (.and_then(Value::as_str)). Si el campo llega como número (epoch), en otro formato o con otro nombre, se descarta en silencio y el medidor queda con resets_at: None, sin aviso ni diagnóstico.
  • El frontend (formatResetIn, src/lib/format.ts:5-18) oculta el reinicio cuando recibe null o una fecha que Date.parse no entiende. Las fechas ISO con offset o con fracciones de segundo sí se interpretan correctamente.
  • Los tests (claude.rs:451-466) solo cubren resets_at como cadena ISO o null; no hay ningún fixture con la respuesta real actual de la API de uso.
  • extra_usage nunca tiene reinicio (resets_at: None), lo que es esperable; este informe se refiere a las ventanas de 5 h y semanales.

Hipótesis (pendiente de confirmar): la respuesta del endpoint de uso de Claude cambió de forma (por ejemplo, resets_at numérico, anidado o con otro nombre) o devuelve null para esas ventanas. El código ya funciona con el formato que esperan los tests, así que hace falta una captura real para saber cuál de las dos es.

Steps to reproduce

  1. Configurar Claude en Quorb (OAuth) con consumo en la sesión de 5 h o en la semana.
  2. Abrir el detalle de Claude.
  3. Los medidores muestran el porcentaje, pero no «Se reinicia en…».

Expected behavior

Cada ventana de Claude con fecha de reinicio la muestra igual que el resto de proveedores, y el ritmo de consumo y los avisos de reinicio (alerts.ts) usan esa fecha.

Lo que debería incluir el arreglo:

  • Capturar, censurada (sin token ni datos de la cuenta), la respuesta actual del endpoint de uso de Claude y añadirla como fixture.
  • Adaptar parse_usage al formato real; si la API puede enviar varios formatos (cadena ISO y epoch), aceptarlos de forma explícita y con test.
  • Un test que falle con el payload real antes del arreglo.
  • Si la API realmente no envía la fecha para alguna ventana, mantener None y documentarlo, sin inventarla a partir de window_seconds.

Environment

Quorb: main @ 2da297d (0.8.0)
Proveedor: Claude (OAuth)
SO / plataforma: pendiente de completar por quien lo reproduzca

Affected area

Application behavior

Activity

  1. egdev6 commented on Nov 12, 2026

    @egdev6
    OwnerAuthor

    Actualización del diagnóstico, con evidencia real:

    • La hipótesis del formato queda descartada. La respuesta actual de GET https://api.anthropic.com/api/oauth/usage, capturada hoy (solo la estructura) con la sesión de WSL y con la de Windows, trae five_hour y seven_day con resets_at como cadena ISO (2026-11-12T12:40:00.432511+00:00). seven_day_opus, seven_day_sonnet y seven_day_oauth_apps llegan null. parse_usage (claude.rs:379-382) y formatResetIn (format.ts:5-18) interpretan ese formato correctamente.
    • El dato llega a la app: la instancia de desarrollo en Windows (main @ b3f2b3f) consulta Claude con éxito y no registra errores.
    • Recorrido estático hasta la UI sin pérdidas: fetch → parse_usage (claude.rs:309) → fetch_usage (lib.rs:604-624) → merge (format.ts:95-110) → DetailPanel → ProviderCard → MeterBar (MeterBar.tsx:13,20,53).
    • Corrección: en la descripción afirmé que otros proveedores muestran su reinicio con normalidad. No está comprobado, así que lo retiro.
    • Por diseño: el tooltip del orbe y el de la bandeja no muestran la fecha de reinicio de ningún proveedor (ProviderGauge.tsx:77-82, format.ts:121-129). El aviso de reinicio solo salta si el medidor había superado el umbral y luego bajó (alerts.ts:76-82).

    Pendiente: reproducir visualmente en qué superficie falta y si afecta solo a Claude o a todos los proveedores.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    status:needs-reviewAwaiting product review by the repository ownertype:bugBug fix

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions