Commit Graph
4 Commits
Author SHA1 Message Date
cbazzaandClaude Sonnet 5 ec7290ece5 Wire the web-scraper as a third update fallback, add regression tests
AutoUpdateAndLearn.update_data() now falls back to LottoWebUpdater
(lotto.de scraping) when the API chain (Lottoland/GitHub/lottoAPI)
returns no new data, matching the pattern already in production on
the Eurojackpot sibling project. Required installing beautifulsoup4
into the venv - its absence would have crashed the entire update
script the moment the fallback import was added, not just the
fallback path itself, so this needed verifying before wiring it in.

Also adds tests/test_popularity_score.py (pytest): regression coverage
for the popularity/EV score against known overplayed combinations
(1-2-3-4-5-6, 5-10-15-20-25-30) and the Superzahl EV ordering. Verified
against the pre-fix code (commit 8c2089d) that these tests would
actually have caught the sum-extremity bug fixed in e05f1f1 - this
had previously only been caught by manual spot-checking.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-12 10:08:45 +02:00
cbazzaandClaude Sonnet 5 a45092b162 Wire the Lottoland fallback into the automated update workflow
AutoUpdateAndLearn.update_data() called LottoAPIUpdater with
api_name='github', which skipped the already-implemented Lottoland ->
GitHub -> lottoAPI fallback chain entirely. The GitHub archive alone
has repeatedly lagged 1-6 days behind actual draws (most recently the
Aug 5 draw, still missing as of Aug 7), causing tips to be generated
and models to be retrained on stale data. Switching to api_name='all'
tries Lottoland first, which has consistently had same-day results in
testing, with GitHub still covering full history/fallback.

Also includes the Aug 5 draw pulled in via this fix and the resulting
model retrain (data update was previously interrupted by a truncated
pipe during manual testing, this completes it).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-07 10:55:17 +02:00
cbazzaandClaude Sonnet 5 6630c588a7 Remove unreferenced legacy generator scripts and stale reports
The graphify code-graph pass confirmed nothing in the active pipeline
(scripts/, README, shell entrypoints) imports or calls these - only
scripts/generators/ultimate_ai_ml_hybrid_generator.py is wired into
automation. Also drops 4 orphaned performance-report JSON files from
the same abandoned generation (Sep 2025). History is preserved in git
if anything here turns out to still be wanted.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-04 18:04:27 +02:00
cbazzaandClaude Sonnet 5 3fcc1fc210 Add ARCHITECTURE.md documenting data flow and active vs. legacy code
Built with a graphify code-graph pass to identify the real dependency
structure. Documents the ingestion -> training -> tip generation ->
notification flow, the EV/quality-score rationale, and several
non-obvious facts surfaced by this session's debugging: automation
runs on launchd not crontab (the crontab comments are stale), the
Lottoland/lottoAPI fallback exists but isn't wired into the update
job, and the repo-root generator scripts are legacy/unused - only
scripts/generators/ultimate_ai_ml_hybrid_generator.py is live.

graphify-out/ itself is gitignored as a regenerable build artifact.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-04 18:00:37 +02:00