ed
37ece145fa
refactor(ai_client): apply Re-Raise Pattern 1 to 4 RETHROW sites (Phase 12)
...
Per styleguide §7.6 Pattern 1: 'catch + convert + raise as different type'
requires 'raise X from e' to preserve the original exception in the
traceback.
Sites updated:
Site 1 (L277 _load_credentials):
except FileNotFoundError as e:
raise FileNotFoundError(f'...') from e
Sites 2+3 (L878+L879 _default_send, nested in run_with_tool_loop):
if not res.ok:
raise res.errors[0].original from None
raise RuntimeError(...) from None
The exceptions come from a Result, not a local except; 'from None'
suppresses the implicit context.
Site 5 (L2061 _send inside _send_gemini_cli):
raise cast(Exception, send_result.errors[0].original) from None
Site 6 (L2742 _dashscope_call):
raise classify_dashscope_error(_dashscope_exception_from_response(resp)) from None
KNOWN LIMITATION: the audit script does not have a heuristic for
'raise X from e' / 'from None' (Pattern 1). The sites remain
INTERNAL_RETHROW in the audit. INTERNAL_RETHROW is 'suspicious but
not violation' (strict mode accepts). Adding a heuristic requires
Tier 1 approval per the conventions.
Audit: ai_client RETHROW 6 -> 5 (site 4 migrated separately; these
4 sites stay as INTERNAL_RETHROW by audit classification but follow
Pattern 1 by styleguide).
2026-06-20 15:48:00 -04:00
..
2026-06-19 21:13:46 -04:00
2026-06-20 15:48:00 -04:00
2026-06-08 00:46:12 -04:00
2026-06-08 00:33:21 -04:00
2026-06-19 10:59:18 -04:00
2026-06-08 00:47:21 -04:00
2026-06-18 12:09:00 -04:00
2026-06-17 00:38:29 -04:00
2026-06-17 00:38:29 -04:00
2026-06-17 00:38:29 -04:00
2026-06-15 13:54:57 -04:00
2026-06-11 14:48:03 -04:00
2026-06-13 18:05:12 -04:00
2026-06-17 00:32:33 -04:00
2026-06-17 00:38:29 -04:00
2026-06-08 20:46:41 -04:00
2026-06-08 17:49:34 -04:00
2026-06-08 15:19:30 -04:00
2026-06-07 19:54:17 -04:00
2026-06-08 20:46:41 -04:00
2026-06-07 10:20:17 -04:00
2026-06-08 10:13:07 -04:00
2026-06-06 22:02:35 -04:00
2026-06-08 23:45:25 -04:00
2026-06-19 14:25:53 -04:00
2026-06-19 12:40:26 -04:00
2026-06-19 19:13:20 -04:00
2026-06-19 16:24:01 -04:00
2026-06-08 23:45:25 -04:00
2026-06-08 20:46:41 -04:00
2026-06-07 19:54:17 -04:00
2026-06-07 10:23:45 -04:00
2026-06-07 10:54:51 -04:00
2026-06-17 18:53:25 -04:00
2026-06-18 09:37:28 -04:00
2026-06-20 11:59:20 -04:00
2026-06-07 15:24:57 -04:00
2026-06-20 01:47:23 -04:00
2026-06-07 19:54:17 -04:00
2026-06-20 12:15:15 -04:00
2026-06-08 00:41:20 -04:00
2026-06-08 01:14:12 -04:00
2026-06-08 00:27:04 -04:00
2026-06-09 17:01:14 -04:00
2026-06-09 16:40:18 -04:00
2026-06-17 19:15:51 -04:00
2026-06-17 00:29:21 -04:00
2026-06-17 00:33:36 -04:00
2026-06-09 18:42:53 -04:00
2026-06-17 22:38:17 -04:00
2026-06-18 12:09:00 -04:00
2026-06-17 23:15:57 -04:00
2026-06-17 22:38:17 -04:00
2026-06-17 00:38:29 -04:00
2026-06-17 00:38:29 -04:00
2026-06-06 18:30:44 -04:00
2026-06-07 19:54:17 -04:00
2026-06-15 18:21:58 -04:00
2026-06-18 17:55:05 -04:00
2026-06-07 21:21:38 -04:00
2026-06-19 14:25:53 -04:00
2026-06-16 19:06:09 -04:00
2026-06-07 10:10:53 -04:00
2026-06-17 00:38:29 -04:00
2026-06-17 00:38:29 -04:00
2026-06-17 00:38:29 -04:00
2026-06-15 14:15:52 -04:00
2026-06-07 21:21:38 -04:00
2026-06-15 13:04:45 -04:00
2026-06-17 00:38:29 -04:00
2026-06-09 15:37:47 -04:00
2026-06-20 02:26:42 -04:00
2026-06-07 14:43:36 -04:00
2026-06-07 19:54:17 -04:00
2026-06-19 12:36:21 -04:00
2026-06-19 09:40:01 -04:00
2026-06-07 19:54:17 -04:00
2026-06-06 21:29:03 -04:00
2026-06-08 15:19:30 -04:00
2026-06-17 00:38:29 -04:00
2026-06-17 00:38:29 -04:00
2026-06-07 19:54:17 -04:00
2026-06-17 22:42:10 -04:00
2026-06-17 22:42:10 -04:00
2026-06-08 17:51:39 -04:00
2026-06-07 19:54:17 -04:00
2026-06-07 01:34:48 -04:00
2026-06-15 09:41:39 -04:00
2026-06-09 15:37:47 -04:00
2026-06-17 00:38:29 -04:00
2026-06-15 11:04:46 -04:00
2026-06-09 15:42:00 -04:00
2026-06-18 14:26:12 -04:00
2026-06-08 21:17:54 -04:00
2026-06-15 13:52:38 -04:00
2026-06-15 13:25:31 -04:00
2026-06-15 18:27:40 -04:00
2026-06-07 21:21:38 -04:00
2026-06-12 18:07:16 -04:00
2026-06-13 18:57:44 -04:00
2026-06-07 19:54:17 -04:00
2026-06-07 17:57:36 -04:00
2026-06-10 09:16:46 -04:00
2026-06-07 10:01:40 -04:00
2026-06-07 19:54:17 -04:00
2026-06-18 14:40:04 -04:00
2026-06-13 17:50:43 -04:00
2026-06-17 00:38:29 -04:00
2026-06-19 12:36:21 -04:00
2026-06-17 00:30:48 -04:00
2026-06-17 22:31:35 -04:00
2026-06-07 19:54:17 -04:00
2026-06-19 12:36:21 -04:00
2026-06-17 00:38:29 -04:00
2026-06-07 19:54:17 -04:00
2026-06-19 09:40:01 -04:00
2026-06-07 16:56:05 -04:00
2026-06-11 16:38:09 -04:00
2026-06-11 16:38:09 -04:00
2026-06-20 08:25:27 -04:00
2026-06-08 00:47:03 -04:00
2026-06-15 18:05:45 -04:00
2026-06-09 17:10:33 -04:00
2026-06-12 20:14:01 -04:00
2026-06-12 20:14:40 -04:00
2026-06-17 00:38:29 -04:00
2026-06-10 17:20:57 -04:00
2026-06-10 14:43:27 -04:00
2026-06-16 00:09:02 -04:00
2026-06-09 10:37:14 -04:00
2026-06-10 15:14:35 -04:00
2026-06-12 16:29:22 -04:00
2026-06-17 00:38:29 -04:00
2026-06-09 16:14:40 -04:00
2026-06-17 22:29:36 -04:00
2026-06-17 00:38:29 -04:00
2026-06-19 12:36:21 -04:00
2026-06-17 00:38:29 -04:00
2026-06-09 16:25:44 -04:00
2026-06-07 19:54:17 -04:00
2026-06-19 14:25:53 -04:00
2026-06-17 14:20:17 -04:00
2026-06-17 10:26:32 -04:00
2026-06-15 14:26:32 -04:00
2026-06-20 01:45:34 -04:00
2026-06-16 19:13:30 -04:00
2026-06-16 20:25:44 -04:00
2026-06-17 14:50:01 -04:00
2026-06-19 07:41:15 -04:00
2026-06-16 22:26:04 -04:00
2026-06-17 00:38:29 -04:00
2026-06-17 00:38:29 -04:00
2026-06-17 00:38:29 -04:00
2026-06-09 16:14:40 -04:00
2026-06-11 21:46:41 -04:00
2026-06-10 15:13:25 -04:00
2026-06-10 15:45:44 -04:00
2026-06-06 22:48:50 -04:00
2026-06-07 16:02:30 -04:00
2026-06-09 20:45:24 -04:00
2026-06-10 15:14:35 -04:00