kshitijk4poor
336d9662cc
fix: detach aliased agent.tools at the outbound sanitization chokepoint
...
api_kwargs["tools"] is rebuilt from agent.tools on every attempt
(_build_api_kwargs_for_mode: tools_for_api = agent.tools; transports set
api_kwargs["tools"] = tools without copying), so the list usually aliases
the canonical tool schemas. The ASCII retry path then runs
sanitize_outbound_kwargs with _force_ascii_payload set, and its in-place
strip rewrote agent.tools for the rest of the session.
Move the guard to the chokepoint: when the flag is set and tools IS
agent.tools, deepcopy before stripping. The deepcopy the contributor pick
added inside _recover_unicode_encode_error only protected the failed
request's kwargs, which are discarded before the retry; drop it and have
recovery skip an aliased tools list entirely (request-local lists are
still stripped for the diagnostic message).
The kept test now exercises the chokepoint directly: with the flag set on
kwargs whose tools aliases agent.tools, agent.tools must be byte-stable
afterwards. Verified red against the previous chokepoint.
2026-09-21 21:33:44 +05:30
..
2026-09-20 18:54:24 -07:00
2026-09-13 05:07:50 -07:00
2026-09-18 10:22:14 -07:00
2026-09-13 05:07:11 -07:00
2026-09-19 16:20:29 +05:30
2026-09-20 14:29:39 -07:00
2026-09-15 04:56:01 -07:00
2026-09-20 00:35:04 -07:00
2026-09-13 09:18:02 -07:00
2026-09-20 16:31:10 -07:00
2026-09-20 16:31:10 -07:00
2026-09-19 12:38:55 -07:00
2026-09-20 12:49:40 -07:00
2026-09-20 12:49:40 -07:00
2026-09-19 09:56:12 -07:00
2026-09-14 20:01:19 +05:30
2026-09-17 08:53:15 -07:00
2026-09-20 13:22:30 -07:00
2026-09-17 08:45:46 -07:00
2026-09-17 09:07:51 -07:00
2026-09-19 02:37:36 -07:00
2026-09-17 09:11:38 -07:00
2026-09-19 10:25:30 -07:00
2026-09-19 09:28:45 -07:00
2026-09-20 12:09:47 -07:00
2026-09-19 12:30:32 -07:00
2026-09-20 12:09:47 -07:00
2026-09-20 00:35:04 -07:00
2026-09-20 14:29:39 -07:00
2026-09-20 17:00:43 -07:00
2026-09-19 09:53:48 -07:00
2026-09-19 09:53:48 -07:00
2026-09-19 09:53:48 -07:00
2026-09-20 14:29:39 -07:00
2026-09-19 09:28:13 -07:00
2026-09-19 10:52:11 -07:00
2026-09-19 20:44:24 -07:00
2026-09-19 20:44:24 -07:00
2026-09-15 03:47:15 -07:00
2026-09-20 15:27:11 -07:00
2026-09-13 05:09:43 -07:00
2026-09-20 15:50:49 -07:00
2026-09-21 01:04:16 -07:00
2026-09-11 02:07:48 -07:00
2026-09-16 17:17:47 -07:00
2026-09-19 10:28:34 -07:00
2026-09-20 19:45:30 -07:00
2026-09-13 05:20:26 -07:00
2026-09-20 18:53:10 -07:00
2026-09-19 09:52:18 -07:00
2026-09-19 10:44:26 -07:00
2026-09-19 09:40:56 -07:00
2026-09-19 09:37:23 -07:00
2026-09-19 21:24:05 -07:00
2026-09-20 13:22:30 -07:00
2026-09-18 20:55:24 -07:00
2026-09-20 14:02:17 +05:30
2026-09-19 09:20:54 -07:00
2026-09-19 12:30:32 -07:00
2026-09-16 17:48:48 -07:00
2026-09-18 10:03:04 -07:00
2026-09-20 15:28:21 -07:00
2026-09-19 10:54:43 -07:00
2026-09-20 17:00:43 -07:00
2026-09-18 10:08:58 -07:00
2026-09-20 10:50:27 -07:00
2026-09-14 06:44:54 -07:00
2026-09-11 15:26:46 -07:00
2026-09-17 13:52:36 +05:30
2026-09-19 20:56:31 -07:00
2026-09-12 01:35:05 -07:00
2026-09-21 10:04:32 +05:30
2026-09-12 08:23:13 -07:00
2026-09-18 13:01:12 -04:00
2026-09-16 17:48:17 -07:00
2026-09-18 09:21:42 -07:00
2026-09-11 11:54:49 -07:00
2026-09-15 19:03:33 -07:00
2026-09-13 05:19:48 -07:00
2026-09-15 03:47:15 -07:00
2026-09-21 21:33:44 +05:30
2026-09-20 15:26:34 -07:00
2026-09-18 20:56:35 -07:00
2026-09-20 15:51:19 -07:00
2026-09-20 14:29:39 -07:00
2026-09-19 21:08:09 -07:00
2026-09-19 00:53:26 -07:00
2026-09-18 01:43:35 +05:30
2026-09-17 12:28:25 +05:30
2026-09-13 05:09:06 -07:00
2026-09-19 09:21:18 -07:00
2026-09-19 10:56:19 -07:00
2026-09-11 15:26:46 -07:00
2026-09-16 11:06:06 -07:00
2026-09-17 09:03:29 -07:00
2026-09-18 09:56:28 -07:00
2026-09-21 01:04:37 -07:00
2026-09-14 06:55:54 -07:00
2026-09-18 10:22:14 -07:00
2026-09-15 06:16:38 -07:00
2026-09-20 14:02:17 +05:30
2026-09-19 10:20:55 -07:00
2026-09-20 16:03:38 -07:00
2026-09-13 21:27:35 -07:00
2026-09-19 09:57:53 -07:00
2026-09-18 09:58:12 -07:00
2026-09-19 23:38:49 -07:00
2026-09-19 23:42:20 -07:00
2026-09-16 17:10:13 -07:00
2026-09-13 19:23:09 +05:30
2026-09-19 09:49:39 -07:00
2026-09-18 10:22:47 -07:00
2026-09-15 19:23:53 -07:00
2026-09-17 20:56:27 +05:30
2026-09-19 10:38:30 -07:00
2026-09-20 10:16:51 -07:00
2026-09-20 11:27:39 -07:00
2026-09-18 12:51:22 -07:00
2026-09-20 15:50:26 -07:00
2026-09-18 10:22:47 -07:00
2026-09-18 01:43:35 +05:30
2026-09-19 12:21:39 -07:00
2026-09-20 10:51:03 -07:00
2026-09-18 01:43:35 +05:30
2026-09-16 06:27:23 -05:00
2026-09-13 05:20:26 -07:00
2026-09-15 04:12:13 -07:00
2026-09-20 14:09:57 -07:00
2026-09-20 18:09:19 +05:30
2026-09-18 10:03:04 -07:00
2026-09-18 10:03:04 -07:00
2026-09-12 08:25:14 -07:00
2026-09-20 18:24:07 -07:00
2026-09-20 12:36:34 +05:30
2026-09-20 17:00:43 -07:00
2026-09-14 20:35:28 +05:30
2026-09-20 12:52:07 -07:00
2026-09-21 10:04:32 +05:30
2026-09-18 01:43:35 +05:30
2026-09-20 20:13:33 -07:00
2026-09-16 17:48:17 -07:00
2026-09-15 04:18:34 -07:00
2026-09-19 10:54:43 -07:00
2026-09-19 12:12:04 +05:30
2026-09-20 14:09:57 -07:00
2026-09-20 15:26:34 -07:00
2026-09-18 01:43:35 +05:30
2026-09-19 00:59:27 -07:00
2026-09-18 01:43:35 +05:30
2026-09-18 09:49:14 -07:00
2026-09-19 12:38:55 -07:00
2026-09-21 21:33:44 +05:30
2026-09-19 00:04:42 -07:00
2026-09-19 10:47:48 -07:00
2026-09-19 00:04:42 -07:00
2026-09-19 12:38:55 -07:00
2026-09-18 09:21:42 -07:00
2026-09-18 01:43:35 +05:30
2026-09-18 01:43:35 +05:30
2026-09-19 10:51:40 -07:00
2026-09-17 18:36:10 -07:00
2026-09-20 14:29:39 -07:00
2026-09-20 10:21:52 -07:00
2026-09-20 10:23:04 -07:00
2026-09-19 09:51:12 -07:00
2026-09-15 04:48:20 -07:00