Felipe Coury
f1a1fce26a
Show estimated thread usage in /status ( #38281 )
...
## What changed
- Extend `account/usage/read` with an optional `threadId` request and a
backward-compatible `threadUsage` response containing estimated credits,
optional USD cost, and model, reasoning, speed, and token breakdowns.
- Fetch thread usage for eligible Business and Enterprise plans when `/status`
is opened, then update the rendered status card asynchronously.
- Preserve terminal scrollback when replacing a visible status-card tail, and
append a refreshed card when the original tail can no longer be updated.
## Testing
- Add app-server coverage for authentication, canonical thread IDs,
unavailable billing routes, and malformed IDs.
- Add TUI coverage for usage formatting, stale responses, retries, history
updates, terminal reflow, and scrollback preservation.
GitOrigin-RevId: 49300914b3fba917c0f08e8595363e04e5ba6d37
2026-08-13 00:30:08 +00:00
..
2026-08-13 00:30:08 +00:00
2026-08-04 19:18:03 +00:00
2026-03-28 11:23:07 -06:00
2026-08-13 00:00:16 +00:00
2026-08-13 00:30:08 +00:00
2026-07-20 14:44:25 +00:00
2026-08-01 14:33:12 +00:00
2026-08-12 16:33:32 +00:00
2026-07-11 01:15:48 +00:00
2026-08-07 00:37:50 +00:00
2026-08-01 17:43:03 +00:00
2026-08-01 17:43:03 +00:00
2026-07-29 14:01:31 +00:00
2026-04-21 17:10:36 +00:00
2026-08-05 18:09:26 +00:00
2026-07-29 18:40:38 +00:00
2026-04-07 08:03:35 -07:00
2026-07-29 13:53:15 +00:00
2026-08-07 03:54:23 +00:00
2026-08-07 03:54:23 +00:00
2026-08-13 00:30:08 +00:00
2026-08-07 00:37:50 +00:00
2026-08-13 00:30:08 +00:00
2026-07-21 19:17:18 +00:00
2026-08-13 00:30:08 +00:00
2026-07-21 14:25:18 +00:00
2026-07-15 01:07:29 +00:00
2026-08-13 00:30:08 +00:00
2026-07-22 23:45:45 +00:00
2026-06-15 19:25:54 -07:00
2026-08-07 23:43:14 +00:00
2026-08-13 00:30:08 +00:00
2026-06-17 19:52:43 +02:00
2026-04-13 18:27:00 -07:00
2026-07-23 23:13:59 +00:00
2026-08-04 16:53:33 +00:00
2026-08-13 00:30:08 +00:00
2026-08-11 19:16:15 +00:00
2026-05-05 16:18:02 +00:00
2026-06-01 18:01:52 +02:00
2026-05-13 15:40:37 -07:00
2026-03-28 11:23:07 -06:00
2026-06-05 08:32:07 -07:00
2026-06-05 08:32:07 -07:00
2026-08-07 00:05:41 +00:00
2026-08-01 14:33:12 +00:00
2026-08-10 11:22:55 +00:00
2026-04-30 10:52:19 -07:00
2026-08-11 21:12:23 +00:00
2026-03-28 11:23:07 -06:00
2026-03-28 11:23:07 -06:00
2026-03-28 11:23:07 -06:00
2026-03-28 11:23:07 -06:00
2026-08-04 16:53:33 +00:00
2026-06-05 08:34:34 -07:00
2026-07-29 03:50:00 +00:00
2026-06-12 17:14:27 -07:00
2026-05-09 21:17:30 +00:00
2026-05-01 09:39:48 -07:00
2026-08-07 00:37:50 +00:00
2026-08-07 00:37:50 +00:00
2026-08-13 00:30:08 +00:00
2026-08-01 17:43:03 +00:00
2026-08-01 17:43:03 +00:00
2026-08-01 17:43:03 +00:00
2026-08-11 19:16:15 +00:00
2026-07-29 14:01:31 +00:00
2026-07-29 14:01:31 +00:00
2026-07-29 14:01:31 +00:00
2026-06-24 03:10:20 +00:00
2026-08-11 19:16:15 +00:00
2026-06-26 19:27:31 +00:00
2026-06-26 19:27:31 +00:00
2026-07-29 14:01:31 +00:00
2026-07-29 14:01:31 +00:00
2026-07-19 16:50:54 +00:00
2026-06-08 17:02:36 -07:00
2026-07-18 18:00:51 +00:00
2026-07-12 19:18:37 +00:00
2026-04-29 17:22:41 -07:00
2026-08-01 14:33:12 +00:00
2026-05-01 09:07:56 -07:00
2026-07-17 23:07:40 +00:00
2026-08-05 20:44:03 +00:00
2026-08-05 20:44:03 +00:00
2026-04-25 17:09:29 -07:00
2026-07-29 13:53:15 +00:00
2026-08-04 19:12:46 +00:00
2026-07-21 19:17:18 +00:00
2026-04-25 22:00:32 -03:00
2026-08-07 03:54:23 +00:00
2026-07-29 13:53:15 +00:00
2026-05-20 15:57:50 -07:00
2026-08-03 23:05:35 +00:00
2026-08-11 19:16:15 +00:00
2026-07-21 20:13:08 +00:00
2026-07-23 19:19:35 +00:00
2026-06-18 15:06:23 -07:00
2026-03-28 11:23:07 -06:00
2026-07-20 15:44:37 +00:00
2026-08-07 02:45:35 +00:00
2026-06-10 11:24:29 -07:00
2026-08-08 04:57:06 +00:00
2026-08-01 17:43:03 +00:00
2026-07-29 13:53:15 +00:00
2026-05-10 20:42:11 +00:00
2026-07-29 14:01:31 +00:00
2026-07-27 17:59:06 +00:00
2026-06-16 09:09:24 -07:00
2026-04-17 08:39:37 -07:00
2026-06-05 17:23:45 -07:00
2026-08-13 00:30:08 +00:00
2026-06-10 17:55:49 -07:00
2026-07-29 14:01:31 +00:00
2026-05-26 20:59:47 -07:00
2026-08-04 19:05:45 +00:00
2026-05-08 07:56:13 -07:00
2026-07-28 20:12:13 +00:00
2026-08-04 19:05:45 +00:00
2026-08-13 00:30:08 +00:00
2026-07-06 16:33:13 -04:00
2026-07-08 12:17:58 -04:00
2026-08-01 14:33:12 +00:00
2026-04-25 17:09:29 -07:00
2026-06-12 09:26:08 -07:00
2026-06-12 09:26:08 -07:00
2026-07-28 19:58:25 +00:00
2026-03-28 11:23:07 -06:00
2026-07-29 14:01:31 +00:00
2026-06-11 09:23:08 -07:00
2026-06-11 18:16:39 -07:00
2026-06-22 04:25:07 -07:00
2026-06-22 04:25:07 -07:00
2026-07-29 14:01:31 +00:00