Commit History
-
fix: sanitize NaN/inf floats to prevent JSON serialization crashesβ
KSvend +1: Claude Opus 4.6 (1M context)SAR (and potentially other EO products) produce NaN/inf from nanmean on empty pixel slices. These values crash json.dumps() in both the database write path and the API response path. Adds sanitize_for_json() utility that recursively replaces NaN/inf with 0.0, applied at three levels: - ProductResult model_validator (catches on construction) - Database save_job_result (catches on storage) - API get_job endpoint (catches on response) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>2850a7e
-
fix: fix remaining indicator_id/indicator_ids references after renameβ
KSvend +2: Claude, HappySeveral references to old field names survived the rename: - job.request.indicator_ids β product_ids (jobs.py, worker.py) - result.indicator_id β product_id (worker.py, 15 occurrences) - indicator_name kwarg β product_name (worker.py) - indicator_status param β status (database.py) - advisor prompt text cleanup These caused AttributeError at runtime on HF Spaces. Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>749b346 -
refactor: rename "indicators" to "EO products" throughoutβ
KSvend +2: Claude, HappyFull rename across codebase: - app/indicators/ β app/eo_products/ - IndicatorResult β ProductResult, IndicatorMeta β ProductMeta - IndicatorRegistry β ProductRegistry, BaseIndicator β BaseProduct - NdviIndicator β NdviProduct (and Water, SAR, Buildup) - indicator_id β product_id in models, APIs, and frontend - /api/indicators β /api/eo-products - All user-facing text updated - Frontend page/element IDs updated - 27 tests passing Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>df6bf75 -
fix: resolve Python deprecation warnings in database and openeo_clientβ
KSvend +2: Claude, HappyReplace datetime.utcnow() with datetime.now(UTC) and bitwise ~bool with == 0 comparison to silence warnings ahead of Python 3.16. Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>0dfd092
-
feat: add email column to jobs table and get_jobs_by_email queryβ
KSvend +1: Claude Opus 4.6 (1M context)Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>43dd6eb
-
Initial commit: Aperture platform (extracted from SR4S)
KSvendae74af5