From c9e84c05153419d1c79dba021a261754d27d0dfa Mon Sep 17 00:00:00 2001 From: Ed_ Date: Wed, 17 Jun 2026 15:10:24 -0400 Subject: [PATCH] docs(track): result_migration_review_pass decisions for src/models.py UNCLEAR (2 compliant + 0 migration-target) --- docs/reports/RESULT_MIGRATION_REVIEW_PASS_20260617.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/docs/reports/RESULT_MIGRATION_REVIEW_PASS_20260617.md b/docs/reports/RESULT_MIGRATION_REVIEW_PASS_20260617.md index d1397700..3c56d1ce 100644 --- a/docs/reports/RESULT_MIGRATION_REVIEW_PASS_20260617.md +++ b/docs/reports/RESULT_MIGRATION_REVIEW_PASS_20260617.md @@ -109,7 +109,15 @@ Other audit findings (unchanged by this review pass): ### 2.5 `src/models.py` — UNCLEAR sites (2) -*(filled in Task 2.5)* +| Line | Context | Snippet | Decision | Pattern / Rationale | +|---|---|---|---|---| +| 452 | `from_dict` (track-state deserialization) | `except ValueError: created = None` after `datetime.fromisoformat(created)` | **compliant** | Lenient deserialization: malformed ISO date in TOML config → `None` (don't crash the entire load). Canonical pattern for user-edited config | +| 457 | `from_dict` (track-state deserialization) | `except ValueError: updated = None` after `datetime.fromisoformat(updated)` | **compliant** | Lenient deserialization (same as L452) | + +**Subtotals:** 2 compliant + 0 migration-target. + +**New heuristic candidates:** +9. `datetime.fromisoformat(s)` with `except ValueError: = None` → `INTERNAL_COMPLIANT` (lenient TOML deserialization) ---