Commit Graph
4 Commits
Author SHA1 Message Date
cbazzaandClaude Sonnet 5 612334dc1a Add watchdog for missed launchd runs, fix backup path bug + retention
Watchdog (scripts/utils/watchdog.py, com.lotto.watchdog.plist, daily
21:30) checks whether the latest draw or the trained models are older
than the launchd schedule allows and sends a Telegram alert - this
would have caught the Aug 15 update run that silently never fired
(the Mac was presumably asleep; launchd does not retry missed
StartCalendarInterval jobs), instead of that only surfacing on the
next manual check.

Also fixes a real path bug in LottoAPIUpdater.create_backup(): since
self.data_file already points into data/, joining "data","backups"
wrote backups to data/data/backups/ instead of data/backups/ - 73
backups (6.3MB) had been piling up there undetected for months, with
data/data/ only ever gitignored rather than the root cause fixed.
Merges the misplaced backups into the correct location and adds
retention (keep last 30) so backups no longer grow unbounded; applied
the same retention to Eurojackpot's updater in a matching commit
there, which didn't have the path bug but had the same unbounded
growth (85 backups, 2.4MB).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-12 10:02:04 +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
cbazzaandClaude Sonnet 4.6 31cfd914c5 Improve generator quality and sync data (May 2026)
Data:
- Add missing draw 2026-05-16 (7 11 20 23 27 30 SZ:9) via GitHub archive
- Run retroactive learning for skipped 2026-01-07 draw

Generator improvements (ported from Eurojackpot):
- Add hard structural filters (sum 100-200, min 1 even + 1 odd per tip)
- Add long-term frequency prior as learner dampener (alpha=0.2)
- Fix ENSEMBLE strategy generating duplicate tips (greedy → weighted random)
- Fix Division-by-Zero edge case in set_frequency_prior
- Fix freq_alpha boundary and clip final adjusted value to [0,1]
- Prevent negative weights in random.choices (floor at 0.001)
- Use vectorized stack().value_counts() for frequency calculation

.gitignore:
- Exclude data/backups/, weekly tip CSVs, performance reports, data/data/

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 13:34:24 +02:00
cbazzaandClaude Sonnet 4.5 f6106b8333 Initial commit: Lotto number generator project
This project includes multiple AI/ML-based lottery number generators for
German Lotto 6aus49, including pattern analysis, weighted predictions,
and hybrid approaches. Features automated weekly tip generation,
performance tracking, and Telegram bot integration.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-16 14:47:59 +01:00