claude-memory/graph/workflows/pr-review-paper-dynasty-database48-replace-broad-except-exce-37cca1.md

2.1 KiB

id type title tags importance confidence created updated relations
37cca1c8-7fbd-43c3-a289-129b1c530f9f workflow PR review: paper-dynasty-database#48 — replace broad except Exception with DoesNotExist (APPROVED)
pr-reviewer
paper-dynasty-database
fastapi
peewee
python
exception-handling
0.4 0.8 2026-03-04T01:18:04.266886+00:00 2026-03-04T01:18:04.686668+00:00
target type direction strength edge_id
759c8f57-2519-4e21-afd6-bf89386aedb8 RELATED_TO outgoing 0.76 8668a1bd-c71f-44f4-b15a-34ad97917e66
target type direction strength edge_id
d36a86f0-8183-4c94-8d63-0be65d3fd63a RELATED_TO outgoing 0.81 faef1278-c663-4607-b2a1-4b3f8d877d99
target type direction strength edge_id
5ae1bf6e-1e1c-4486-8a4d-10afd9e42189 RELATED_TO outgoing 0.81 ba47c3f8-ca13-47ca-98a5-2e3f6da75899

PR #48: fix: replace broad except Exception blocks with DoesNotExist (#15)

Verdict: APPROVED (could not post — Gitea blocks self-reviews on cal-owned repos)

Summary

  • 71 except Exception blocks replaced with except peewee.DoesNotExist across 19 router files in app/routers_v2/
  • DoesNotExist imported into each file from ..db_engine, which re-exports it via from peewee import *
  • Real DB errors now propagate as 500s instead of being swallowed as 404s

Key Findings

  • Correctness: Change is mechanically correct. DoesNotExist is peewee's standard exception for Model.get_by_id() misses.
  • Import validity: db_engine.py line 8 uses from peewee import *, so DoesNotExist is available in that namespace. All 19 import additions are valid.
  • Pre-existing minor issue: A few handlers use except DoesNotExist as e: but don't include e in their log messages (e.g., cards.py v1_cards_wipe_team, results.py get_team_results). Pre-existing, out of scope.
  • No security concerns. No style violations.

Note

Gitea raises "approve your own pull is not allowed" when the reviewer owns the repo. Self-review is blocked at the platform level — this is a known limitation for solo repos.