nftpoetrist
2b7eb97fbf
fix(gateway): scope the OpenAI-compat Idempotency-Key cache by profile
...
_run_idempotent() (chat completions / responses) keyed the shared
_idem_cache purely on the client-supplied Idempotency-Key header plus a
body fingerprint, with no profile identity anywhere in the key. Under
gateway.multiplex_profiles, both the native routes and their /p/<profile>/
mirrors share the same process-global cache, so two different profiles'
clients sending the same Idempotency-Key with a matching fingerprint (a
realistic case for automation/SDKs that derive the key deterministically
from request content) silently share a cached response instead of each
profile running its own turn.
The sibling /v1/runs admission API already scopes its own idempotency
namespace this way (_run_idempotency_scope() folds in
_api_request_profile.get() or "default"); this mirrors that exact
expression into _run_idempotent()'s cache key.
2026-09-11 19:37:59 -07:00
..
2026-09-07 04:46:04 -07:00
2026-09-10 03:58:37 -07:00
2026-09-11 16:50:20 -07:00
2026-09-06 07:19:21 -07:00
2026-09-11 11:54:49 -07:00
2026-09-03 13:22:51 -07:00
2026-09-11 15:28:37 -07:00
2026-09-03 14:21:52 -07:00
2026-09-03 17:28:02 -07:00
2026-09-07 22:47:33 +05:30
2026-09-03 23:55:56 -07:00
2026-08-31 01:04:11 -07:00
2026-09-11 19:37:59 -07:00
2026-09-11 19:01:47 -07:00
2026-09-11 06:37:27 -07:00
2026-09-10 10:45:57 -07:00
2026-09-07 10:24:17 +02:00
2026-09-04 00:53:42 -07:00
2026-09-03 13:38:36 -07:00
2026-09-03 13:29:35 -07:00
2026-09-01 14:11:55 +05:30
2026-09-11 15:26:46 -07:00
2026-09-07 06:06:46 -07:00
2026-09-03 13:38:36 -07:00
2026-09-11 06:37:27 -07:00
2026-09-11 11:54:49 -07:00
2026-09-02 10:33:43 -07:00
2026-09-11 11:54:49 -07:00
2026-09-11 06:37:27 -07:00
2026-09-11 15:44:00 -07:00
2026-09-11 19:14:24 -07:00
2026-09-09 02:35:41 -07:00
2026-09-09 04:38:01 -07:00
2026-09-11 19:01:47 -07:00
2026-09-01 09:28:01 -07:00
2026-09-03 13:28:22 -07:00
2026-08-31 09:56:43 -07:00
2026-08-31 12:36:33 -07:00
2026-09-07 22:47:33 +05:30
2026-09-10 11:48:01 -07:00
2026-09-02 19:20:44 -07:00
2026-09-03 14:21:52 -07:00
2026-09-02 13:29:46 -07:00
2026-09-06 22:45:31 +05:30
2026-09-03 13:29:55 -07:00
2026-09-04 00:15:16 -07:00
2026-09-03 13:46:50 -07:00
2026-09-03 13:28:22 -07:00
2026-09-02 19:53:29 -07:00
2026-09-07 06:09:56 -07:00
2026-09-01 08:36:03 -07:00
2026-09-08 17:13:48 -07:00
2026-09-02 00:44:19 -07:00
2026-09-08 17:13:48 -07:00
2026-08-31 10:05:13 -07:00
2026-09-06 07:19:21 -07:00
2026-09-05 02:31:06 -07:00
2026-09-10 18:13:16 -07:00
2026-09-03 13:12:50 -07:00
2026-09-02 15:03:42 -07:00
2026-09-11 06:37:27 -07:00
2026-09-03 05:03:04 +05:30
2026-08-31 09:56:43 -07:00
2026-09-11 10:30:29 +10:00
2026-09-02 15:03:42 -07:00
2026-09-03 13:46:50 -07:00
2026-09-08 02:27:24 +05:30
2026-09-03 02:06:56 +05:30
2026-09-02 15:03:42 -07:00
2026-09-03 16:35:01 -07:00
2026-08-31 09:56:04 -07:00
2026-09-11 06:23:23 -07:00
2026-09-11 06:24:54 -07:00
2026-09-03 13:16:47 -07:00
2026-09-10 10:45:57 -07:00
2026-08-31 10:00:38 -07:00
2026-09-02 17:26:25 -04:00
2026-09-01 09:28:01 -07:00
2026-09-01 09:28:01 -07:00
2026-09-01 09:28:01 -07:00
2026-08-31 10:00:55 -07:00
2026-08-31 10:53:18 -07:00
2026-08-31 10:53:18 -07:00
2026-09-01 11:25:10 -07:00
2026-09-09 18:26:15 +05:30
2026-09-03 13:46:50 -07:00
2026-09-03 15:07:39 -07:00
2026-09-09 09:19:54 -07:00
2026-09-09 13:30:28 -07:00
2026-09-02 17:07:24 -07:00
2026-09-03 13:46:50 -07:00
2026-09-03 13:48:49 -07:00
2026-09-10 02:21:16 +05:30
2026-09-03 13:28:22 -07:00
2026-09-11 11:54:49 -07:00
2026-08-31 10:03:34 -07:00
2026-09-03 17:45:53 -07:00
2026-09-04 04:56:11 -07:00
2026-09-04 01:28:31 -07:00
2026-09-11 15:44:00 -07:00
2026-09-04 20:24:24 -04:00
2026-09-09 11:31:10 -07:00
2026-09-03 19:33:28 -07:00
2026-09-03 14:21:52 -07:00
2026-08-31 05:56:18 -07:00
2026-09-03 13:46:50 -07:00
2026-08-31 09:56:04 -07:00
2026-09-03 14:21:52 -07:00
2026-09-11 06:24:54 -07:00
2026-09-07 06:04:23 -07:00
2026-09-03 13:46:50 -07:00
2026-09-02 07:26:52 -07:00
2026-09-03 13:46:50 -07:00
2026-09-09 18:26:15 +05:30
2026-09-11 06:37:27 -07:00
2026-09-03 13:46:50 -07:00
2026-09-03 13:46:50 -07:00
2026-09-03 13:46:50 -07:00
2026-09-03 13:46:50 -07:00
2026-09-03 13:46:50 -07:00
2026-09-03 13:46:50 -07:00
2026-09-09 09:19:57 -07:00
2026-09-03 16:35:01 -07:00
2026-09-03 13:46:50 -07:00
2026-09-11 15:44:00 -07:00
2026-09-05 12:21:21 +05:30
2026-09-11 15:27:23 -07:00
2026-09-09 12:20:38 -07:00
2026-09-10 10:27:07 -07:00
2026-09-11 11:54:49 -07:00
2026-09-03 14:21:52 -07:00
2026-09-03 14:21:52 -07:00
2026-09-07 08:23:08 -07:00
2026-09-03 13:12:50 -07:00
2026-09-03 13:12:50 -07:00
2026-09-03 13:12:50 -07:00
2026-09-09 18:25:11 +05:30