--- id: a08cfd86-d519-41cd-b93e-0877e11c7cc3 type: workflow title: "PR review: paper-dynasty-database#36 — remove dead roster CSV fields" tags: [pr-reviewer, paper-dynasty, paper-dynasty-database, fastapi, python, fix, csv, card-model, dead-code] importance: 0.4 confidence: 0.8 created: "2026-03-03T19:33:19.604675+00:00" updated: "2026-03-03T19:33:20.003651+00:00" relations: - target: b1eb1655-e006-447d-a0cf-bba7a914b331 type: RELATED_TO direction: outgoing strength: 0.85 edge_id: 84892a1f-730c-4967-8294-db09c17ad676 - target: 61b618e7-6c6a-46be-9dec-b31b57cb19fe type: RELATED_TO direction: outgoing strength: 0.77 edge_id: 1b5c2d30-6668-41b4-a17c-cc2af2bb3105 - target: 6abad694-c8aa-4455-9762-0175d6bc77d4 type: RELATED_TO direction: outgoing strength: 0.9 edge_id: c6a990dc-71d4-4de8-9d1e-b4c7a03b3f6b --- ## PR Review: paper-dynasty-database#36 **Verdict**: APPROVED (posted as COMMENT — Gitea self-review restriction) **Branch**: `ai/paper-dynasty-database#35` (issue-worker agent) **File reviewed**: `app/routers_v2/cards.py` ### Fix Removed non-existent `roster1`, `roster2`, `roster3` columns from CSV output in `v1_cards_get_one`. These fields caused `AttributeError` at runtime on every `GET /api/v2/cards/{card_id}?csv=true` request. ### Verification `Card` model in `db_engine.py` (line 472) confirmed — only fields are `player`, `team`, `pack`, `value`. No roster fields exist. ### Notes - Bulk ruff reformatting (single→double quotes) is cosmetic, non-functional. - Pre-existing issue: `this_card.player` in CSV row vs `line.player.p_name` in bulk endpoint — inconsistency, out of scope. - Pre-existing issue: `v1_cards_patch` still accepts and assigns `roster1_id/2/3` but Peewee silently ignores non-field attributes on save. Author tracking separately. - Gitea blocks self-approval — submitted as COMMENT instead of APPROVED.