Celia Chen
09cf609218
Route pet asset downloads through the shared HTTP client ( #36008 )
...
## Why
Built-in pet downloads used a standalone blocking client, so CDN redirects did
not use Codex's configured route handling.
## What changed
- Download pet spritesheets asynchronously with a reusable
`RouteAwareClientPool`.
- Keep cache validation, asset installation, and pet decoding off the async
runtime while sharing one asset-and-load path across startup, previews, and
selection.
- Preserve the download size limit while consuming streamed response chunks,
and remove the TUI's direct `reqwest` dependency.
## Testing
Add coverage for oversized response chunks, cached built-in assets, pet loads
without an existing Tokio runtime, and stale preview and selection completions.
GitOrigin-RevId: 725e76f3ddb7e84b7212769892f28dc0add15741
2026-07-29 18:40:38 +00:00
..
2026-07-29 18:40:38 +00:00
2026-06-11 22:26:31 -07:00
2026-07-29 14:01:31 +00:00
2026-07-29 18:40:38 +00:00
2026-07-20 14:44:25 +00:00
2026-07-29 16:40:05 +00:00
2026-07-29 18:40:38 +00:00
2026-07-11 01:15:48 +00:00
2026-07-17 23:19:12 +00:00
2026-07-23 21:03:40 +00:00
2026-07-29 14:01:31 +00:00
2026-04-21 17:10:36 +00:00
2026-07-29 13:53:15 +00:00
2026-07-29 18:40:38 +00:00
2026-07-29 13:53:15 +00:00
2026-07-29 16:40:05 +00:00
2026-07-29 14:01:31 +00:00
2026-07-20 13:50:06 +00:00
2026-07-27 17:59:06 +00:00
2026-07-21 19:17:18 +00:00
2026-07-15 02:35:49 +00:00
2026-07-21 14:25:18 +00:00
2026-07-15 01:07:29 +00:00
2026-07-28 00:38:45 +00:00
2026-07-22 23:45:45 +00:00
2026-06-15 19:25:54 -07:00
2026-07-29 18:37:22 +00:00
2026-07-29 03:54:05 +00:00
2026-06-17 19:52:43 +02:00
2026-07-23 23:13:59 +00:00
2026-05-04 16:11:15 -03:00
2026-07-29 18:40:38 +00:00
2026-05-14 18:51:36 -07: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-06-05 08:32:07 -07:00
2026-06-05 08:32:07 -07:00
2026-07-29 13:57:46 +00:00
2026-07-29 13:53:15 +00:00
2026-07-23 23:21:33 +00:00
2026-04-30 10:52:19 -07:00
2026-07-29 13:53:15 +00:00
2026-06-08 21:32:46 -07: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-07-29 13:53:15 +00:00
2026-07-18 18:00:51 +00:00
2026-07-29 13:53:15 +00:00
2026-07-29 13:53:15 +00:00
2026-07-25 19:28:57 +00:00
2026-07-23 21:03:40 +00:00
2026-07-29 16:40:05 +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-06-11 09:56:09 -07: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-04-25 22:00:32 -03:00
2026-05-01 09:07:56 -07:00
2026-07-17 23:07:40 +00:00
2026-04-25 17:09:29 -07:00
2026-07-29 13:53:15 +00:00
2026-07-29 13:53:15 +00:00
2026-07-21 19:17:18 +00:00
2026-04-25 22:00:32 -03:00
2026-07-29 18:37:22 +00:00
2026-07-29 13:53:15 +00:00
2026-05-20 15:57:50 -07:00
2026-07-28 05:26:16 +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-07-20 15:44:37 +00:00
2026-07-21 20:13:08 +00:00
2026-06-10 11:24:29 -07:00
2026-07-29 13:53:15 +00:00
2026-07-29 13:53:15 +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-07-29 13:53:15 +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-07-19 16:46:58 +00:00
2026-05-08 07:56:13 -07:00
2026-07-28 20:12:13 +00:00
2026-06-15 08:23:02 -07:00
2026-07-29 13:53:15 +00:00
2026-07-06 16:33:13 -04:00
2026-07-08 12:17:58 -04:00
2026-07-29 13:53:15 +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-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