2025-10-06T09:14:20Z - 2026-04-06T09:14:20Z

Overview

95 Active Pull Requests
81 Active Issues
Excluding merges, 1 author has pushed 37 commits to main and 200 commits to all branches. On main, 56 files have changed and there have been 12684 additions and 4029 deletions.

10 Releases published by 1 user

Published dev 2026-04-04 17:41:05 +00:00

Published 2026.4.1 2026-04-04 17:41:05 +00:00

Published 2026.3.6 2026-03-24 12:45:53 +00:00

Published 2026.3.5 2026-03-23 13:40:47 +00:00

Published 2026.3.4 2026-03-17 20:37:50 +00:00

Published 2026.3.3 2026-03-17 19:25:34 +00:00

Published 2026.3.2 2026-03-09 14:56:01 +00:00

Published 2026.3.1 2026-03-09 14:41:07 +00:00

Published 2026.2.2 2026-02-18 20:04:58 +00:00

Published 2026.2.1 2026-02-17 23:25:27 +00:00

90 Pull requests merged by 2 users

Merged #180 fix: refractor card art post-merge fixes — cache bypass, template guards, dev server 2026-04-04 17:41:06 +00:00

Merged #179 feat: refractor tier-specific card art rendering 2026-04-04 17:33:38 +00:00

Merged #178 fix: auto-initialize RefractorCardState in evaluate-game 2026-03-31 06:25:42 +00:00

Merged #177 feat: Refractor Phase 2 integration — wire boost into evaluate-game 2026-03-30 18:17:30 +00:00

Merged #176 feat: Refractor Phase 2 foundation — boost functions, schema, tests 2026-03-30 16:11:08 +00:00

Merged #175 feat: add evaluated_only filter to GET /api/v2/refractor/cards (#174) 2026-03-25 22:53:08 +00:00

Merged #167 feat: add limit/pagination to paperdex endpoint (#143) 2026-03-25 14:52:58 +00:00

Merged #168 feat: add limit/pagination to cardpositions endpoint (#142) 2026-03-25 14:52:56 +00:00

Merged #173 feat: add GET /api/v2/refractor/cards list endpoint (#172) 2026-03-25 14:52:25 +00:00

Merged #171 test: refractor system Tier 3 test coverage 2026-03-25 04:13:18 +00:00

Merged #170 test: refractor system Tier 1+2 test coverage 2026-03-24 21:18:14 +00:00

Merged #169 feat: capture total_count before limit across all paginated endpoints 2026-03-24 12:45:54 +00:00

Merged #150 feat: add limit/pagination to notifications endpoint (#140) 2026-03-24 12:13:07 +00:00

Merged #165 feat: add limit/pagination to gauntletrewards endpoint (#145) 2026-03-24 12:12:33 +00:00

Merged #158 feat: add limit/pagination to pitstats endpoint (#134) 2026-03-24 12:11:00 +00:00

Merged #152 feat: add limit/pagination to rewards endpoint (#139) 2026-03-24 12:09:59 +00:00

Merged #156 feat: add limit/pagination to events endpoint (#147) 2026-03-24 12:09:46 +00:00

Merged #160 feat: add limit/pagination to gauntletruns endpoint (#146) 2026-03-24 12:08:50 +00:00

Merged #161 feat: add limit/pagination to pitchingcardratings endpoint (#136) 2026-03-24 12:08:45 +00:00

Merged #164 feat: add limit/pagination to stratgame (games) endpoint (#138) 2026-03-24 12:08:16 +00:00

Merged #163 feat: add limit/pagination to results endpoint (#137) 2026-03-24 12:08:02 +00:00

Merged #154 feat: add limit/pagination to scout_opportunities endpoint (#148) 2026-03-24 12:07:35 +00:00

Merged #157 feat: add limit/pagination to awards endpoint (#132) 2026-03-24 12:07:30 +00:00

Merged #162 feat: add limit/pagination to mlbplayers endpoint (#141) 2026-03-24 12:06:50 +00:00

Merged #166 feat: add limit/pagination to gamerewards endpoint (#144) 2026-03-24 12:06:23 +00:00

Merged #159 feat: add limit/pagination to battingcardratings endpoint (#135) 2026-03-24 12:05:38 +00:00

Merged #155 feat: add limit/pagination to batstats endpoint (#133) 2026-03-24 12:04:44 +00:00

Merged #151 feat: add limit/pagination to scout_claims endpoint (#149) 2026-03-24 12:04:39 +00:00

Merged #153 ci: database CI catchup — local buildx cache + dev tag trigger 2026-03-24 05:17:06 +00:00

Merged #131 refactor: rename Evolution system to Refractor 2026-03-23 19:23:50 +00:00

Merged #130 feat: Card Evolution Phase 1 — full backend implementation 2026-03-23 18:20:22 +00:00

Merged #129 ci: switch to tag-based Docker builds 2026-03-23 17:22:08 +00:00

Merged #127 fix: remove SQLite references from CLAUDE.md (#123) 2026-03-23 13:32:16 +00:00

Merged #95 feat: Phase 0 baseline benchmark script and log (WP-00) (#87) 2026-03-23 04:00:03 +00:00

Merged #103 fix: prevent paperdex timeout on unfiltered requests (#102) 2026-03-23 03:59:48 +00:00

Merged #118 chore: replace deprecated datetime.utcnow() with datetime.now(UTC) (#114) 2026-03-19 18:26:17 +00:00

Merged #120 fix: sort /teams/{id}/evolutions by current_tier desc, current_value desc (#116) 2026-03-19 18:24:49 +00:00

Merged #121 docs: update list_team_evolutions docstring for player_name and Player join 2026-03-19 18:22:23 +00:00

Merged #119 fix: include player_name in /teams/{id}/evolutions response (#115) 2026-03-19 18:20:22 +00:00

Merged #117 fix: season-stats update-game returns 404 for nonexistent game_id 2026-03-19 18:18:41 +00:00

Merged #112 Card Evolution: season stats full recalculation → next-release 2026-03-19 15:49:11 +00:00

Merged #111 refactor: full recalculation for season stats + fix evaluator bugs 2026-03-19 15:35:43 +00:00

Merged #110 Card Evolution Phase 1: card-evolution → next-release 2026-03-18 21:29:15 +00:00

Merged #109 feat(WP-13): post-game callback endpoints for season stats and evolution 2026-03-18 21:05:38 +00:00

Merged #108 feat(WP-07): Card State API endpoints (#72) 2026-03-18 20:33:19 +00:00

Merged #107 feat(WP-10): pack opening hook — evolution_card_state initialization 2026-03-18 20:32:01 +00:00

Merged #98 feat: WP-08 evaluate endpoint and evolution evaluator service (#73) 2026-03-18 20:31:55 +00:00

Merged #106 feat: add ProcessedGame ledger for full idempotency in update_season_stats() (#105) 2026-03-18 20:30:37 +00:00

Merged #104 Card Evolution Phase 1a: Schema & Data Foundation 2026-03-18 16:06:44 +00:00

Merged #101 fix: Dockerfile COPY path and missing CMD 2026-03-17 20:29:34 +00:00

Merged #100 Merge next-release into main 2026-03-17 19:17:34 +00:00

Merged #97 feat: persistent browser instance for card rendering (#89) 2026-03-16 16:21:31 +00:00

Merged #94 feat: render pipeline optimization (Phase 0) 2026-03-16 16:15:42 +00:00

Merged #86 feat: Track Catalog API endpoints (WP-06) (#71) 2026-03-16 16:15:03 +00:00

Merged #82 feat: PlayerSeasonStats Peewee model (#67) 2026-03-16 16:13:09 +00:00

Merged #83 feat: evolution track seed data and tests (WP-03) (#68) 2026-03-16 16:12:20 +00:00

Merged #85 feat: formula engine for evolution value computation (WP-09) (#74) 2026-03-16 16:10:44 +00:00

Merged #53 fix: batch Paperdex lookups to avoid N+1 queries (#17) 2026-03-16 16:09:57 +00:00

Merged #57 fix: remove stub live_update_pitching endpoint (#11) 2026-03-16 16:09:15 +00:00

Merged #60 fix: use max() for pitcher OPS split weighting (#6) 2026-03-10 14:43:00 +00:00

Merged #65 chore: pin all Python dependency versions in requirements.txt (#64) 2026-03-10 14:06:42 +00:00

Merged #63 fix: remove stray syntax error in players.py db_engine import 2026-03-09 14:55:03 +00:00

Merged #62 fix: remove stray syntax error in teams.py db_engine import 2026-03-09 14:40:05 +00:00

Merged #61 Release: Scouting API, roster refactor, and bug fixes 2026-03-09 14:12:42 +00:00

Merged #58 fix: refactor Roster from 26 FK columns to RosterSlot junction table (#29) 2026-03-07 03:23:42 +00:00

Merged #54 fix: remove broken live_update_batting stub endpoint (#10) 2026-03-07 03:22:09 +00:00

Merged #48 fix: replace broad except Exception blocks with DoesNotExist (#15) 2026-03-07 03:18:57 +00:00

Merged #45 fix: batch BattingCard/BattingCardRatings lookups in lineup builder (#18) 2026-03-07 03:16:13 +00:00

Merged #59 feat: add scout opportunities and claims API (#44) 2026-03-05 03:45:58 +00:00

Merged #56 fix: use constant-time comparison for bearer token validation (#8) 2026-03-05 03:44:14 +00:00

Merged #55 fix: remove plaintext bearer token from warning logs (#7) 2026-03-05 03:43:41 +00:00

Merged #52 fix: consolidate redundant double-query in get_one_play (#14) 2026-03-05 03:36:27 +00:00

Merged #51 fix: compute CSV after appending data row in get_one_player (#12) 2026-03-05 03:32:22 +00:00

Merged #50 fix: guard against None rating objects in pitcher sorting functions (#13) 2026-03-05 03:29:49 +00:00

Merged #49 fix: document SQLite synchronous=0 pragma in db_engine.py (#20) 2026-03-05 03:23:51 +00:00

Merged #46 fix: centralize logging config in main.py (#26) 2026-03-05 03:22:29 +00:00

Merged #44 fix: batch-fetch PitchingCardRatings instead of per-row queries (#19) 2026-03-05 03:19:59 +00:00

Merged #43 fix: add type annotations to untyped path parameters (#27) 2026-03-05 03:18:51 +00:00

Merged #42 fix: remove duplicate ranking_max filter in get_teams (#21) 2026-03-05 03:17:51 +00:00

Merged #33 fix: replace 467 manual db.close() calls with middleware (#30) 2026-03-03 21:53:38 +00:00

Merged #38 fix: use Field(default_factory) for offense_col random default (#24) 2026-03-03 21:46:47 +00:00

Merged #35 fix: remove dead roster fields from CSV in v1_cards_get_one (#25) 2026-03-03 21:45:16 +00:00

Merged #40 fix: correct inverted TESTING env check and leading space in .env (#23) 2026-03-03 21:44:26 +00:00

Merged #41 fix: respect is_ai=False in get_teams filter (#22) 2026-03-03 21:42:01 +00:00

Merged #32 fix: remove debug print(req.scope) from get_docs route (#31) 2026-03-03 16:52:39 +00:00

Merged #5 ci: Fix act_runner auth for composite actions 2026-02-18 19:52:37 +00:00

Merged #4 ci: Use Gitea API for tag creation 2026-02-17 23:24:51 +00:00

Merged #3 ci: Switch to CalVer versioning 2026-02-17 23:11:57 +00:00

Merged #2 ci: switch Docker build cache to type=registry 2026-02-11 22:14:28 +00:00

Merged #1 postgres-migration 2026-02-05 19:43:14 +00:00

5 Pull requests proposed by 1 user

Proposed #96 feat: self-hosted WOFF2 fonts via base64 embedding (#88) 2026-03-13 06:03:55 +00:00

Proposed #125 fix: rewrite skill scripts to use API instead of sqlite3 (#124) 2026-03-23 04:08:32 +00:00

Proposed #126 fix: remove legacy SQLite compatibility code (#122) 2026-03-23 04:37:31 +00:00

Proposed #184 fix: ensure count is never null in GET /refractor/cards (#182) 2026-04-06 06:07:58 +00:00

Proposed #185 fix: ensure count is never null in GET /refractor/cards (#183) 2026-04-06 06:34:16 +00:00

72 Issues closed from 2 users

Closed #9 Rotate credentials committed in .env 2026-04-01 18:03:39 +00:00

Closed #174 GET /api/v2/refractor/cards: add evaluated_only filter to exclude zero-value cards 2026-03-25 22:53:08 +00:00

Closed #143 feat: add limit/pagination to paperdex endpoint 2026-03-25 14:52:59 +00:00

Closed #142 feat: add limit/pagination to cardpositions endpoint 2026-03-25 14:52:56 +00:00

Closed #172 feat: add GET /api/v2/refractor/cards list endpoint 2026-03-25 14:52:25 +00:00

Closed #69 WP-04: SQL Migration Script 2026-03-25 05:30:36 +00:00

Closed #66 WP-01: Evolution Peewee Models 2026-03-25 05:30:36 +00:00

Closed #70 WP-05: PlayerSeasonStats Incremental Update Logic 2026-03-25 05:30:36 +00:00

Closed #140 feat: add limit/pagination to notifications endpoint 2026-03-24 12:13:07 +00:00

Closed #145 feat: add limit/pagination to gauntletrewards endpoint 2026-03-24 12:12:33 +00:00

Closed #134 feat: add limit/pagination to pitstats endpoint 2026-03-24 12:11:00 +00:00

Closed #139 feat: add limit/pagination to rewards endpoint 2026-03-24 12:09:59 +00:00

Closed #147 feat: add limit/pagination to events endpoint 2026-03-24 12:09:47 +00:00

Closed #146 feat: add limit/pagination to gauntletruns endpoint 2026-03-24 12:08:50 +00:00

Closed #136 feat: add limit/pagination to pitchingcardratings endpoint 2026-03-24 12:08:45 +00:00

Closed #138 feat: add limit/pagination to stratgame (games) endpoint 2026-03-24 12:08:17 +00:00

Closed #137 feat: add limit/pagination to results endpoint 2026-03-24 12:08:03 +00:00

Closed #148 feat: add limit/pagination to scout_opportunities endpoint 2026-03-24 12:07:36 +00:00

Closed #132 feat: add limit/pagination to awards endpoint 2026-03-24 12:07:30 +00:00

Closed #141 feat: add limit/pagination to mlbplayers endpoint 2026-03-24 12:06:50 +00:00

Closed #144 feat: add limit/pagination to gamerewards endpoint 2026-03-24 12:06:23 +00:00

Closed #135 feat: add limit/pagination to battingcardratings endpoint 2026-03-24 12:05:38 +00:00

Closed #133 feat: add limit/pagination to batstats endpoint 2026-03-24 12:04:43 +00:00

Closed #149 feat: add limit/pagination to scout_claims endpoint 2026-03-24 12:04:40 +00:00

Closed #123 Update database CLAUDE.md — remove SQLite references 2026-03-23 13:32:16 +00:00

Closed #102 GET /api/v2/paperdex times out on unfiltered requests 2026-03-23 03:59:48 +00:00

Closed #114 chore: replace deprecated datetime.utcnow() with datetime.now(UTC) 2026-03-19 18:26:17 +00:00

Closed #116 feat: /teams/{id}/evolutions should sort by current_value desc 2026-03-19 18:24:49 +00:00

Closed #115 fix: /teams/{id}/evolutions response missing player_name 2026-03-19 18:20:22 +00:00

Closed #113 fix: season-stats update-game leaks SQL in 500 error for nonexistent game 2026-03-19 18:18:41 +00:00

Closed #79 WP-14: Tier Completion Notifications 2026-03-18 21:23:30 +00:00

Closed #77 WP-12: Tier Badge on Card Embed 2026-03-18 21:20:41 +00:00

Closed #76 WP-11: /evo status Slash Command 2026-03-18 21:19:31 +00:00

Closed #78 WP-13: Post-Game Callback Integration 2026-03-18 21:05:38 +00:00

Closed #72 WP-07: Card State API Endpoints 2026-03-18 20:33:20 +00:00

Closed #75 WP-10: Pack Opening Hook — evolution_card_state Initialization 2026-03-18 20:32:01 +00:00

Closed #73 WP-08: Evaluate Endpoint 2026-03-18 20:31:55 +00:00

Closed #105 feat: add ProcessedGame ledger for full idempotency in update_season_stats() 2026-03-18 20:30:37 +00:00

Closed #88 WP-01: Self-Hosted Fonts 2026-03-16 19:48:28 +00:00

Closed #90 WP-03: FastAPI Lifespan Hooks 2026-03-16 19:48:28 +00:00

Closed #87 WP-00: Baseline Benchmarks 2026-03-16 19:48:27 +00:00

Closed #89 WP-02: Persistent Browser Instance 2026-03-16 16:21:31 +00:00

Closed #71 WP-06: Track Catalog API Endpoints 2026-03-16 16:15:04 +00:00

Closed #67 WP-02: PlayerSeasonStats Peewee Model 2026-03-16 16:13:09 +00:00

Closed #68 WP-03: Track and Threshold Seed Data 2026-03-16 16:12:20 +00:00

Closed #74 WP-09: Formula Engine 2026-03-16 16:10:44 +00:00

Closed #17 Batch Paperdex lookups to avoid N+1 queries in player/card list endpoints 2026-03-16 16:09:57 +00:00

Closed #93 Card Evolution Phase 0 — Render Pipeline Optimization Master Tracker 2026-03-16 16:04:00 +00:00

Closed #92 WP-05: Legacy Upload Script Update 2026-03-16 16:03:48 +00:00

Closed #91 WP-04: Concurrent Upload Pipeline 2026-03-16 16:03:47 +00:00

Closed #64 chore: pin all Python dependency versions in requirements.txt 2026-03-10 18:26:29 +00:00

Closed #30 Replace 488 manual db.close() calls with middleware/dependency context manager 2026-03-10 18:26:28 +00:00

Closed #27 Add type annotations to untyped path parameters 2026-03-10 18:26:27 +00:00

Closed #25 Remove or fix dead CSV code in v1_cards_get_one referencing removed roster fields 2026-03-10 18:26:27 +00:00

Closed #23 Fix inverted TESTING environment variable check 2026-03-10 18:26:26 +00:00

Closed #22 Fix is_ai filter to respect False value in get_teams 2026-03-10 18:26:26 +00:00

Closed #20 Document or reconsider SQLite synchronous=0 in production 2026-03-10 18:26:25 +00:00

Closed #19 Replace per-row PitchingCardRatings lookup with batched fetch in pitcher sort 2026-03-10 18:26:24 +00:00

Closed #10 Complete or remove the stub live_update_batting endpoint 2026-03-10 18:26:23 +00:00

Closed #12 Fix get_one_player CSV response — data row never written to output 2026-03-10 18:26:23 +00:00

Closed #6 Resolve or document the pitcher OPS aggregation formula 2026-03-10 14:43:01 +00:00

Closed #29 Refactor Roster model from 26 FK columns to a junction table 2026-03-07 03:23:42 +00:00

Closed #15 Replace broad except Exception blocks with specific exception types 2026-03-07 03:18:57 +00:00

Closed #18 Batch BattingCard/BattingCardRatings lookups in lineup endpoints 2026-03-07 03:16:14 +00:00

Closed #8 Use constant-time comparison for bearer token validation 2026-03-05 03:44:14 +00:00

Closed #7 Remove plaintext bearer token from warning logs 2026-03-05 03:43:42 +00:00

Closed #14 Consolidate redundant double-query in get_one_play 2026-03-05 03:36:27 +00:00

Closed #13 Guard against None rating objects in pitcher sorting functions 2026-03-05 03:29:49 +00:00

Closed #26 Centralize logging configuration — remove basicConfig from 30+ router files 2026-03-05 03:22:30 +00:00

Closed #21 Remove duplicate ranking_max filter in get_teams 2026-03-05 03:17:51 +00:00

Closed #24 Move random.randint default out of Pydantic model field 2026-03-03 21:46:47 +00:00

Closed #31 Remove debug print(req.scope) from get_docs route 2026-03-03 16:52:40 +00:00

9 Issues created by 1 user

Opened #11 Complete or remove the stub live_update_pitching endpoint 2026-02-20 06:52:06 +00:00

Opened #16 Return normal responses instead of raising 200 HTTPExceptions 2026-02-20 06:52:31 +00:00

Opened #28 Add a test suite — zero test coverage 2026-02-20 06:53:42 +00:00

Opened #80 WP-15: Deployment and Smoke Testing 2026-03-12 20:57:13 +00:00

Opened #81 Card Evolution Phase 1 — Master Tracker 2026-03-12 20:59:50 +00:00

Opened #122 Remove legacy SQLite compatibility code 2026-03-23 03:33:08 +00:00

Opened #124 Rewrite skill scripts to use API instead of direct SQLite access 2026-03-23 03:33:23 +00:00

Opened #182 bug: GET /refractor/cards returns count: null with out-of-range tier filter 2026-04-06 05:35:44 +00:00

Opened #183 bug: GET /refractor/cards returns count: null with very large limit 2026-04-06 05:35:48 +00:00