Commit Graph
30 Commits
Author SHA1 Message Date
TheFuryaandClaude Opus 4.6 23a7b6ad53 Update project config for Go tool and port change
Add Go to .tool-versions, update .gitignore for Go build output and
cache, document seed data regeneration in README, and change API port
from 8000 to 8080 in docker-compose.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 19:44:19 +01:00
TheFuryaandClaude Opus 4.6 f57d4793f9 Regenerate seed data with Go fetch tool
Updated all game JSON files with data from the new Go-based PokeAPI
fetcher. Includes corrected encounter data and form identification.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 19:44:14 +01:00
TheFuryaandClaude Opus 4.6 66ad41cf1c Replace Python fetch scripts with static special_encounters.json
Remove fetch_pokeapi.py and special_encounters.py (now handled by the
Go tool) and add special_encounters.json as the new config source.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 19:44:10 +01:00
TheFuryaandClaude Opus 4.6 0bf628157f Add Go-based PokeAPI fetch tool
Replaces the Python fetch_pokeapi.py script with a Go tool that crawls
a local PokeAPI instance and writes seed JSON files. Supports caching
and special encounter definitions via JSON config.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 19:44:05 +01:00
TheFuryaandClaude Opus 4.6 ab6c1adb1f Fix seeder crash on null game data and disable SQL logging by default
Skip games with null route data (Gen 8-9 have no PokeAPI encounters)
and silence SQLAlchemy echo unless --verbose/-v is passed.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 19:43:09 +01:00
TheFuryaandClaude Opus 4.6 5c91cef057 Update beans tracking files
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 14:55:54 +01:00
TheFuryaandClaude Opus 4.6 d168d99bba Separate PokeAPI ID from national dex for correct form identification
Pokemon forms (e.g., Alolan Rattata) had their PokeAPI ID (10091) stored as
national_dex, causing them to display incorrectly. This renames the unique
identifier to pokeapi_id and adds a real national_dex field shared between
forms and their base species, so Alolan Rattata correctly shows as #19.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 14:55:06 +01:00
TheFuryaandClaude Opus 4.6 cb027e5215 Extract version groups and route ordering to separate JSON files
Moves ~850 lines of inline data from fetch_pokeapi.py into
version_groups.json and route_order.json for easier editing.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 14:35:30 +01:00
TheFuryaandClaude Opus 4.6 9cec9836b4 Add Pokemon form support to seeding (Alolan, regional variants, etc.)
Pokemon forms with dex IDs >= 10000 (e.g., Alolan Rattata = 10091) were
being collected in encounter data but missing from pokemon.json, causing
them to be silently dropped during DB seeding. Now fetch_all_pokemon()
also fetches form entries that appear in encounter data, with clean
display names like "Rattata (Alola)" and correct form-specific types.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 14:32:13 +01:00
TheFuryaandClaude Opus 4.6 5edda2dba9 Improve UX with merged run view, method badges, grouped encounters, and mobile nav
Merges the run dashboard into the encounters page as a unified view at /runs/:runId,
adds encounter method grouping in the modal and badges on route rows, improves the
home page with recent runs, adds mobile hamburger nav, and polishes empty states.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 14:20:26 +01:00
TheFuryaandClaude Opus 4.6 0beb287365 Mark gift/static encounter bean as completed
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 13:54:46 +01:00
TheFuryaandClaude Opus 4.6 9aca1806f6 Move starter Pokemon to dedicated route that appears first
Starters are now their own "Starter" route entry instead of being
merged into the location where you receive them (Pallet Town, New Bark
Town, Route 101). This makes them always appear first in the route
list for each game.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 13:53:40 +01:00
TheFuryaandClaude Opus 4.6 07fca1d25d Mark MVP epic and route ordering beans as completed
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 13:51:35 +01:00
TheFuryaandClaude Opus 4.6 d488c252b8 Add starter, gift, and fossil encounters to seed data
Define special encounter data (starters, gifts, fossils) in a new
special_encounters module and merge them into route seed JSON during
generation. Add new route locations to ROUTE_ORDER for cities that
previously had no wild encounters (Saffron City, Pewter City, etc.).
Show colored method badges in the EncounterModal UI for special
encounter types.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 13:50:49 +01:00
TheFuryaandClaude Opus 4.6 73d4a1831c Sort seed data routes by game progression instead of alphabetically
Add ROUTE_ORDER maps for Kanto (FRLG), Johto (HGSS), and Hoenn (Emerald)
progressions with aliases for related version groups. Add Export Order
button to admin game detail page for iterating on route orderings.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 13:27:51 +01:00
TheFuryaandClaude Opus 4.6 110b864e95 Add ability to end a run as victory or defeat
Add End Run button to run dashboard with a confirmation modal offering
Victory/Defeat choice. Backend auto-sets completedAt timestamp and
validates only active runs can be ended. Ended runs show a completion
banner with date and duration, rename team to "Final Team", and hide
encounter logging and status change interactions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 13:12:56 +01:00
TheFuryaandClaude Opus 4.6 1f198aca4c Improve admin panel UX with toasts, evolution CRUD, sorting, drag-and-drop, and responsive layout
Add sonner toast notifications to all mutations, evolution management backend
(CRUD endpoints with search/pagination) and frontend (form modal with pokemon
selector, paginated list page), sortable AdminTable columns (Region/Gen/Year
on Games), drag-and-drop route reordering via @dnd-kit, skeleton loading states,
card-styled table wrappers, and responsive mobile nav in AdminLayout.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 13:09:27 +01:00
TheFuryaandClaude Opus 4.6 b434ab52ae Add beans for seeding improvements, pokemon forms, and admin UX
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 19:29:06 +01:00
TheFuryaandClaude Opus 4.6 c5a2d5c0e6 Mark evolution and admin panel beans as completed
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 19:26:53 +01:00
TheFuryaandClaude Opus 4.6 9728773a94 Add pokemon evolution support across the full stack
- Evolution model with trigger, level, item, and condition fields
- Encounter.current_pokemon_id tracks evolved species separately
- Alembic migration for evolutions table and current_pokemon_id column
- Seed pipeline loads evolution data with manual overrides
- GET /pokemon/{id}/evolutions and PATCH /encounters/{id} endpoints
- Evolve button in StatusChangeModal with evolution method details
- PokemonCard shows evolved species with "Originally" label

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 19:26:49 +01:00
TheFuryaandClaude Opus 4.6 c8d8e4b445 Fix ambiguous foreign keys on Pokemon.encounters relationship
Encounter has two FKs to pokemon (pokemon_id and current_pokemon_id),
so the reverse relationship needs an explicit foreign_keys argument.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 19:20:19 +01:00
TheFuryaandClaude Opus 4.6 001ee98bb5 Rewrite fetch_pokeapi.py to read from local submodule instead of PokeAPI
Replace all pokebase API calls with local JSON file reads from the
PokeAPI/api-data git submodule, removing the network dependency and
pokebase package. The script now runs with stdlib Python only.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 19:17:03 +01:00
TheFuryaandClaude Opus 4.6 80369daab5 Add PokeAPI/api-data as git submodule for local seed data
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 19:08:40 +01:00
TheFuryaandClaude Opus 4.6 f251903874 Update seeding refactor bean to use PokeAPI/api-data JSON instead of CSV
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 19:06:33 +01:00
TheFuryaandClaude Opus 4.6 71a8f2e695 Add bean for refactoring seeding to use PokeAPI CSV data via git submodule
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-05 19:01:56 +01:00
TheFuryaandClaude Opus 4.5 6bff1c8612 Add CLAUDE.md with post-task commit prompt instruction
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 18:37:47 +01:00
TheFuryaandClaude Opus 4.5 55e6650e0e Add admin panel with CRUD endpoints and management UI
Add admin API endpoints for games, routes, pokemon, and route encounters
with full CRUD operations including bulk import. Build admin frontend
with game/route/pokemon management pages, navigation, and data tables.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 18:36:19 +01:00
TheFuryaandClaude Opus 4.5 a911259ef5 Add pokemon status management with death tracking
Implement status change workflow (alive → dead) with confirmation modal,
death cause recording, and visual status indicators on pokemon cards.
Includes backend migration for death_cause field and graveyard view
on the run dashboard.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 18:36:08 +01:00
TheFurya a87d2ef523 add user auth epic 2026-02-04 17:22:41 +01:00
TheFurya 259c200d93 Initial commit 2026-02-04 16:28:10 +01:00