2026-03-05T19:18:08Z - 2026-04-05T19:18:08Z
Overview
25 Pull requests merged by 2 users
Merged
#53 docs: refractor card art mockup and visual spec
Merged
#52 fix: scrub exposed credentials from docs
Merged
#51 docs: refractor Phase 2 design validation spec
Merged
#47 feat: add return type annotations to async DB functions (#20)
Merged
#41 fix: apply timeout parameter to all aiohttp sessions in db_calls.py (#4)
Merged
#30 fix: add @pytest.mark.asyncio to async test methods (#21)
Merged
#49 feat: implement tweak_archetype() and manual_adjustments() (#12)
Merged
#46 fix: use archetype role ratings in pitcher card creation (#11)
Merged
#36 fix: derive SEASON_PCT from date range instead of hardcoding half-season (#9)
Merged
#48 fix: remove import-time derived globals in retrosheet_data.py (#14)
Merged
#34 fix: replace wildcard import from db_calls_card_creation (#13)
Merged
#33 fix: use logger.exception() in calculate_pitcher_ratings error handler
Merged
#31 fix: correct Dict[str, any] to Dict[str, Any] in type annotations (#15)
Merged
#32 chore: pin peewee and polars to exact versions (#24)
Merged
#35 fix: narrow swallowed exception in get_pitching_peripherals() (#10)
Merged
#45 fix: remove dead LAST_WEEK_RATIO ternary — both branches are 0.0 (#19)
Merged
#43 fix: remove test_positions_df non-test that always passes (#16)
Merged
#40 fix: correct get_of() opposite-field direction for switch hitters
Merged
#37 fix: return default 8 on XBT% parse error in running() (#8)
Merged
#39 fix: resolve unreachable duplicate elif 'DO*' branch in result_string() (#6)
Merged
#38 fix: use player_id instead of key_bbref in create_pit_position() (#7)
Merged
#29 Remove hardcoded secrets, load API token from env
Merged
#28 feat: render pipeline optimization (Phase 0)
Merged
#27 feat: Phase 0 concurrent upload pipeline and benchmarks
Merged
#23 Fix hold rating formula and format codebase
21 Issues closed from 1 user
Closed
#50 Rotate secrets exposed in git history
Closed
#20 Add return type annotations to db_calls.py async functions
Closed
#4 Fix timeout parameter — accepted but never applied to HTTP requests
Closed
#21 Fix async test methods missing pytest.mark.asyncio decorator
Closed
#12 Implement tweak_archetype() and manual_adjustments() stubs
Closed
#11 Implement pitcher archetype ratings in interactive creator
Closed
#9 Fix SEASON_PCT hardcoded to half-season in retrosheet_data.py
Closed
#14 Address fragile module-level global mutation pattern in retrosheet_data.py
Closed
#13 Replace wildcard import from db_calls_card_creation
Closed
#17 Log exception details in calculate_pitcher_ratings error handler
Closed
#15 Fix Dict[str, any] type annotation — lowercase any refers to builtin function
Closed
#24 chore: pin all dependency versions in requirements.txt
Closed
#10 Narrow swallowed exception in get_pitching_peripherals() HTML parsing
Closed
#19 Remove dead LAST_WEEK_RATIO ternary — both branches are 0.0
Closed
#16 Fix test_positions_df — non-test that always passes
Closed
#5 Fix get_of() returning identical values for both pull sides on switch hitters
Closed
#8 Fix running() assigning xb_pct = 20 on parse error
Closed
#6 Fix unreachable duplicate elif 'DO*' branch in result_string()
Closed
#7 Fix create_pit_position() passing bbref string key as player_id integer
Closed
#2 Remove hardcoded bearer token from source files
Closed
#3 Remove hardcoded Supabase service-role JWT from committed script
1 Unresolved Conversation
Open
#18
Re-enable commented-out safety guard for promo cardsets