From d98f8f92c6c890580fff9bfb7bcaa20e2e8f835f Mon Sep 17 00:00:00 2001 From: Ed_ Date: Wed, 17 Jun 2026 15:54:13 -0400 Subject: [PATCH] docs(track): result_migration_review_pass decisions for src/api_hooks.py INTERNAL_RETHROW (2 PATTERN_2, same site) --- docs/reports/RESULT_MIGRATION_REVIEW_PASS_20260617.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/docs/reports/RESULT_MIGRATION_REVIEW_PASS_20260617.md b/docs/reports/RESULT_MIGRATION_REVIEW_PASS_20260617.md index 9e4c4da7..c90111f7 100644 --- a/docs/reports/RESULT_MIGRATION_REVIEW_PASS_20260617.md +++ b/docs/reports/RESULT_MIGRATION_REVIEW_PASS_20260617.md @@ -195,7 +195,12 @@ Other audit findings (unchanged by this review pass): ### 2.11 `src/api_hooks.py` — INTERNAL_RETHROW sites (2) -*(filled in Task 3.5)* +| Line | Context | Snippet | Decision | Pattern / Rationale | +|---|---|---|---|---| +| 938 | `WebSocketServer._run_loop` (port-bind retry) | `except OSError as e:` (start of except) | **PATTERN_2** | Composite site: the except body contains `if attempt == max_retries - 1: logging.error(...); raise` (log + re-raise after all retries fail). The except is the boundary for the retry-then-give-up pattern | +| 941 | `WebSocketServer._run_loop` (port-bind retry) | `raise` (bare re-raise inside except) | **PATTERN_2** | Catch + log + re-raise: the bare `raise` is paired with `logging.error(...)` for the "all retries failed" path. The original OSError is preserved for the caller | + +**Subtotals:** 2 PATTERN_2 + 0 migration-target (both are the same site; L938 is the except and L941 is the raise). ---