gsxdsm
b65bc0bbb4
FN-8650: preserve Grok CLI authentication status
Keep unavailable Grok CLI billing data distinct from authentication expiry.
- Preserve billing outcomes for usage windows, missing data, HTTP responses, and transport failures.
- Mark CLI authentication expired only after observed 401 or 403 responses.
- Cover unmeterable authenticated accounts in usage and indicator tests.
- Add a patch changeset for the corrected indicator behavior.
Files changed:
.changeset/fn-8650-grok-cli-auth-expired.md | 7 ++
.../components/__tests__/UsageIndicator.test.tsx | 16 +++++
packages/dashboard/src/__tests__/usage.test.ts | 79 ++++++++++++++++++++--
packages/dashboard/src/usage.ts | 57 ++++++++++++----
4 files changed, 139 insertions(+), 20 deletions(-)
Fusion-Task-Id: FN-8650
Fusion-Task-Lineage: f18cceb6-1092-4073-b540-9c7a5434fbcd
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-31 19:20:16 -07:00
..
2026-07-31 19:20:16 -07:00
2026-07-16 14:08:43 -07:00
2026-07-31 12:54:58 -07:00
2026-07-30 02:38:58 -07:00
2026-07-02 11:38:35 -07:00
2026-07-29 09:15:28 -07:00
2026-07-30 12:03:07 -07:00
2026-07-24 22:32:49 -07:00
2026-07-23 18:39:10 -07:00
2026-07-26 12:01:19 -07:00
2026-07-26 12:01:19 -07:00
2026-07-23 20:19:18 -07:00
2026-07-13 13:58:35 -07:00
2026-07-26 13:05:23 -07:00
2026-07-26 13:15:36 -07:00
2026-07-19 18:45:27 -07:00
2026-06-04 23:39:07 -07:00
2026-07-25 22:52:53 -07:00
2026-07-22 18:46:46 -07:00
2026-07-14 22:13:30 -07:00
2026-07-30 21:51:09 -07:00
2026-07-17 12:00:26 -07:00
2026-07-13 19:07:58 -07:00
2026-07-03 21:45:20 -07:00
2026-06-05 03:56:29 -07:00
2026-06-15 02:30:41 -07:00
2026-06-05 03:41:54 -07:00
2026-07-02 15:00:40 -07:00
2026-07-09 19:58:03 -07:00
2026-07-19 18:59:28 -07:00
2026-07-19 18:59:36 -07:00
2026-07-26 12:01:19 -07:00
2026-07-13 23:16:36 -07:00
2026-07-26 13:15:36 -07:00
2026-07-15 10:07:20 -07:00
2026-07-15 19:29:02 -07:00
2026-06-30 00:03:37 -07:00
2026-07-30 12:03:07 -07:00
2026-06-10 10:34:36 -07:00
2026-07-30 12:03:07 -07:00
2026-07-30 07:14:54 -07:00
2026-07-31 03:34:27 -07:00
2026-07-05 11:31:48 -07:00
2026-07-20 08:49:28 -07:00
2026-07-02 19:01:09 -07:00
2026-07-30 12:03:07 -07:00
2026-07-26 12:01:19 -07:00
2026-07-02 11:38:34 -07:00
2026-07-30 12:03:07 -07:00
2026-07-30 12:03:07 -07:00
2026-07-02 11:38:34 -07:00
2026-07-15 21:58:46 -07:00
2026-07-13 23:16:36 -07:00
2026-07-09 19:58:03 -07:00
2026-07-07 22:04:55 -07:00
2026-07-18 13:18:08 -07:00
2026-07-17 13:31:42 -07:00
2026-07-19 18:37:45 -07:00
2026-07-13 19:07:58 -07:00
2026-07-26 12:01:19 -07:00
2026-07-26 12:01:19 -07:00
2026-07-30 12:03:07 -07:00
2026-07-26 12:01:19 -07:00
2026-07-24 22:32:49 -07:00
2026-07-24 22:32:49 -07:00
2026-07-23 18:39:10 -07:00
2026-07-30 21:35:23 -07:00
2026-07-14 08:16:42 -07:00
2026-07-14 22:16:16 -07:00
2026-07-19 15:45:45 -07:00
2026-07-14 08:18:52 -07:00
2026-07-14 22:16:16 -07:00
2026-07-30 12:03:07 -07:00
2026-07-24 22:17:39 -07:00
2026-07-26 12:01:19 -07:00
2026-07-24 22:32:49 -07:00
2026-06-28 01:17:22 -07:00
2026-06-16 15:08:24 -07:00
2026-07-21 15:30:31 -07:00
2026-07-23 17:27:59 -07:00
2026-07-02 14:31:16 -07:00
2026-07-31 13:23:20 -07:00
2026-07-18 10:55:50 -07:00
2026-07-19 20:42:05 -07:00
2026-07-18 14:23:14 -07:00
2026-07-18 17:06:34 -07:00
2026-07-14 22:13:30 -07:00
2026-07-30 12:03:07 -07:00
2026-07-30 10:35:31 -07:00
2026-07-26 12:01:19 -07:00
2026-07-17 12:00:26 -07:00
2026-07-31 13:23:20 -07:00
2026-07-02 11:38:35 -07:00
2026-07-15 10:38:04 -07:00
2026-07-26 12:01:19 -07:00
2026-07-24 22:32:49 -07:00
2026-07-30 13:18:08 -07:00
2026-07-30 12:03:07 -07:00
2026-07-30 15:16:24 -07:00
2026-07-26 12:01:19 -07:00
2026-07-10 23:42:10 -07:00
2026-07-17 01:23:32 -07:00
2026-07-13 19:07:58 -07:00
2026-07-19 13:34:25 -07:00
2026-07-31 19:20:16 -07:00
2026-07-26 12:01:19 -07:00