--- id: e4de9df4-6f69-4c05-a9ed-bbdb4c12cf53 type: workflow title: "PR review: paper-dynasty-database#39 — remove dead roster CSV fields (APPROVED)" tags: [pr-reviewer, paper-dynasty-database, fastapi, peewee, python, cards-router] importance: 0.4 confidence: 0.8 created: "2026-03-03T20:49:08.129805+00:00" updated: "2026-03-03T20:49:08.548777+00:00" relations: - target: 0fdd32ea-6b6a-4cd0-aa4b-117184e0c81d type: RELATED_TO direction: outgoing strength: 0.86 edge_id: 87edc056-eb8b-4a39-a648-cae2ce5c3051 - target: b9375a89-6e0f-4722-bca7-f1cd655de81a type: RELATED_TO direction: outgoing strength: 0.86 edge_id: ea0eb03c-b08c-48bf-b7bf-ba0a71e3a737 - target: 1e0e14cd-588f-417d-8fcb-a48a6cca506d type: RELATED_TO direction: outgoing strength: 0.85 edge_id: 3af6c3a5-59eb-4886-9db7-48b71049c396 --- ## PR #39: fix: remove dead roster fields from CSV in v1_cards_get_one **Verdict**: APPROVED (posted as COMMENT — Gitea blocks self-approval) **Branch**: ai/paper-dynasty-database-37 (AI-authored) **File**: app/routers_v2/cards.py ### Fix Summary Removed `roster1`, `roster2`, `roster3` columns from `v1_cards_get_one` CSV output. The `Card` model in `db_engine.py` has no such fields — accessing `this_card.roster1.name` raised `AttributeError` at runtime on every `GET /api/v2/cards/{card_id}?csv=true` request. ### Key Findings - Fix correct: Card model (db_engine.py:472) only has player/team/pack/value fields - Bulk of diff is ruff reformatting (single→double quotes) — cosmetic only - `v1_cards_patch` still accepts roster1_id/roster2_id/roster3_id params that silently no-op (Peewee ignores undeclared field assignments on save()) — dead API surface, not a crash risk - `this_card.player` in CSV produces Peewee model repr, not player name — pre-existing behavior ### Note on Self-Approval Gitea blocks self-approval when PR author == reviewer account. Posted as COMMENT with APPROVED verdict text instead. ### Related - Linked issue #37 - Follow-up: clean up dead roster params from v1_cards_patch signature