candle-annotator/services/ml/app
Marko Djordjevic 3dc0014328 feat: add training resource limits (500MB size check + 30-min timeout)
- Import concurrent.futures for timeout support
- In _run_training_background: check df.memory_usage(deep=True).sum()
  after loading the labeled dataset; raise ValueError if > 500MB
- Wrap model.fit() in a ThreadPoolExecutor with a 1800s timeout;
  on TimeoutError update DB status to "failed" with message
  "Training timed out after 30 minutes" and return early
- Mark task 5.7 as done in openspec/changes/code-review-fix/tasks.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-18 11:31:33 +01:00
..
__init__.py feat(ml): add database schema, config parser, and DVC setup 2026-02-15 12:08:53 +01:00
annotation_ingestion.py feat: add Python migration script and successfully test SQLite to PostgreSQL data migration 2026-02-17 14:01:21 +01:00
config.py feat(ml): add database schema, config parser, and DVC setup 2026-02-15 12:08:53 +01:00
data_access.py fix: resolve numpy type conversion issues in ML service data access 2026-02-17 14:10:21 +01:00
db.py security: remove credential SQL comments and add DATABASE_URL fail-fast check 2026-02-18 10:56:49 +01:00
main.py feat: add training resource limits (500MB size check + 30-min timeout) 2026-02-18 11:31:33 +01:00
patterns.py feat: add FastAPI pattern detection endpoints (Section 1) 2026-02-17 18:34:14 +01:00
preprocessing.py fix(ml): add windowed feature flattening for inference parity 2026-02-15 22:07:06 +01:00