70 Commits

Author SHA1 Message Date
e93384bf71 refactor(list): split pokemon_list into sub-widgets (<150 lines)
Extract PokedexListHeader, PokedexCountBar; reuse shared ScanlineOverlay.
pokemon_list.dart 169 -> 128 lines.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 11:53:27 +02:00
b12739af09 Merge: split system_page into sub-widgets (<150 lines) 2026-06-23 11:51:15 +02:00
749314d312 refactor(system): extract system_page sub-widgets into separate files (<150 lines)
Move SystemHeader, SectionTitle, StatsGrid/StatItem and PalettePicker into
widgets/system/. system_page.dart 260 -> 80 lines.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 11:51:15 +02:00
dd33885bda Merge: split pokemon_detail into sub-widgets (<150 lines) 2026-06-23 11:49:19 +02:00
41a80f03f0 refactor(detail): split pokemon_detail into sub-widgets (<150 lines)
Extract PokemonDetailTop and PokemonStatsPanel (+ reusable _StatBar).
pokemon_detail.dart 286 -> 97 lines.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 11:49:19 +02:00
93e3fa76c8 Merge: split game_over_page into sub-widgets (<150 lines) 2026-06-23 11:47:08 +02:00
bdbd2fcc6a refactor(game-over): split game_over_page into sub-widgets (<150 lines)
Extract GameOverHeader, GameOverStats (+ reusable _StatBox), HingeDivider,
GameOverActions. game_over_page.dart 338 -> 100 lines.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 11:47:08 +02:00
2f0d7e1e36 Merge: split guess_page into sub-widgets (<150 lines) 2026-06-23 11:44:55 +02:00
cb9e214aa2 refactor(guess): split guess_page into focused sub-widgets (<150 lines)
Extract GuessSilhouette, GenFilterSection, LivesRow, GuessInputSection,
ScoreBoard and a shared ScanlineOverlay. guess_page.dart 440 -> 149 lines.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 11:44:55 +02:00
d12b01b4ab chore: add documents 2026-06-23 11:36:13 +02:00
1b9618de84 Merge branch 'pokeguess-preview' 2026-06-23 11:34:23 +02:00
71f5122e74 setings and gen filter 2026-06-23 10:54:16 +02:00
d54e517ca6 chore(core): remove unused Result type (dead code)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 15:33:51 +02:00
43b68d1352 docs: update architecture documentation for new layered design
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 15:24:33 +02:00
5c9cef99a7 test: fix default widget smoke test for new architecture
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 15:24:05 +02:00
ca77317a20 chore: remove legacy models/utils/api/database layers
Also moves stray lib/pages/quel-est-ce-pokemon.code-workspace to repo
root, and fixes two trivial test lint infos (curly_braces_in_flow_
control_structures, constant_identifier_names) to reach clean analyze.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 15:20:54 +02:00
dc7e681508 fix(presentation): recover from game-over back gesture, show final score, guard hint, constants
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 15:15:27 +02:00
e62c8a9034 refactor: wire main.dart to presentation layer
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 11:45:59 +02:00
2c21b80a03 refactor(presentation): guess page consumes gameProvider
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 11:45:20 +02:00
4ac13bd233 refactor(presentation): game over page uses repository + constant
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 11:43:48 +02:00
7fd6d16020 refactor(presentation): pokemon list consumes pokedexProvider
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 11:43:02 +02:00
d4c8936c80 refactor(presentation): main page as ConsumerWidget with nav provider
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 11:42:13 +02:00
439c0101f4 refactor: move UI into presentation/widgets and presentation/pages
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 11:41:41 +02:00
29d2c92b37 fix(presentation): resilient pokemon loading, web-safe invalidate, correct best-score persist
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 11:38:40 +02:00
4bca4b1ed5 feat(presentation): add game state Notifier
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 11:31:42 +02:00
2d87879af8 feat(presentation): add selected-tab navigation provider
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 11:31:16 +02:00
d531fcb2c8 feat(presentation): add pokedex AsyncNotifier provider
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 11:30:55 +02:00
f6a6ba2cd1 feat(presentation): add repository DI provider
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 11:30:30 +02:00
e2e310cae5 test(domain): cover skip bonus and invalid-guess paths in GameEngine
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 11:29:03 +02:00
e3a9831ce1 feat(domain): add pure GameEngine with TDD (removes pikachu cheat)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 11:22:03 +02:00
0d977e5cca feat(domain): add immutable GameState
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 11:20:46 +02:00
4bc3948fed feat(gitignore): add .claude/ to ignore list 2026-06-09 11:19:20 +02:00
6885771081 fix(data): race-safe DB open, graceful unknown types, explicit id error + fallback tests
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 11:18:56 +02:00
51c6ef904d feat(data): add PokemonRepository implementation + tests
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 11:13:06 +02:00
42bd9f7c20 feat(domain): add PokemonRepository interface
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 11:12:05 +02:00
cbc742b25a feat(data): add HTTP remote datasource
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 11:11:31 +02:00
96758f1b6b feat(data): add instance-based SQLite local datasource
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 11:10:25 +02:00
f2dcba0fe2 feat(data): add PokemonDto with single-source JSON parsing + tests
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 11:09:51 +02:00
2f051c8da6 refactor: point leaf components at domain Pokemon entity
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 10:57:51 +02:00
b1f67d3daa feat(presentation): add type colors helper
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 10:57:23 +02:00
8ca6405bc0 feat(domain): add pure Pokemon entity and PokemonType enum
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 10:56:59 +02:00
8f29f3578a refactor(core): keep logger pure-Dart and document Result subtypes
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 10:55:36 +02:00
2a3f489a2d feat(core): add AppLogger
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 10:50:31 +02:00
6b150945fa feat(core): add sealed Result type
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 10:50:16 +02:00
03dbdd723d feat(core): add centralized app constants
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 10:49:51 +02:00
ca769dca2d chore: add flutter_riverpod and wrap app in ProviderScope
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 10:48:53 +02:00
6f81384a06 chore: gitignore local superpowers docs
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 10:39:29 +02:00
4faf259aaa feat: Introduce PokemonImage component for robust image loading with fallback and shiny support, and update iOS platform to 15.0. 2026-03-20 11:23:22 +01:00
8cca5a64de Merge branch 'pokeguess-preview' of https://gitea.losvernos.com/guillaumev/quel-est-ce-pokemon into pokeguess-preview 2026-03-20 10:44:42 +01:00
d3d3ba3586 app perfect 2026-03-20 10:42:30 +01:00