Private
Public Access
0
0

docs(track): result_migration_review_pass decisions for src/app_controller.py INTERNAL_RETHROW (3 compliant + 0 migration-target)

This commit is contained in:
2026-06-17 15:51:56 -04:00
parent 51a45099ef
commit 98b22b7298
@@ -172,7 +172,13 @@ Other audit findings (unchanged by this review pass):
### 2.9 `src/app_controller.py` — INTERNAL_RETHROW sites (3)
*(filled in Task 3.3)*
| Line | Context | Snippet | Decision | Pattern / Rationale |
|---|---|---|---|---|
| 1224 | `AppController.__getattr__` (dunder guard) | `raise AttributeError(name)` for names starting with `_` or known dunder/sunder | **compliant** | Standard Python `__getattr__` pattern: must raise `AttributeError` for missing attributes so `hasattr()` returns False. This is a language requirement, not a code smell |
| 1250 | `AppController.__getattr__` (default fallback) | `raise AttributeError(name)` for any name not in `_UI_FLAG_DEFAULTS` | **compliant** | Standard Python `__getattr__` pattern (same as L1224). The `_UI_FLAG_DEFAULTS` set is a defensive guard for known UI flags; everything else gets the standard AttributeError |
| 2982 | `load_context_preset` (validation) | `raise KeyError(f"Context preset '{name}' not found.")` after `if name not in presets` | **compliant** | Validation raise: the user requested a preset that doesn't exist. The error message is actionable (includes the missing name). `KeyError` is in `PROGRAMMER_ERROR_EXCEPTIONS` but the function is not `__init__`; this is still a programmer-error pattern (the caller asked for a thing that doesn't exist) |
**Subtotals:** 3 compliant + 0 migration-target.
---