Commit graph

  • f94d16c6ab fix: implement real health checks in ML service /health endpoint Marko Djordjevic 2026-02-18 11:30:12 +01:00
  • d75b05b585 feat: add candle time-sort and duplicate timestamp validation to POST /predict Marko Djordjevic 2026-02-18 11:28:02 +01:00
  • ff952aa083 feat(ml): add date range validation to POST /predict/batch Marko Djordjevic 2026-02-18 11:27:12 +01:00
  • b9beea1574 fix(ml): add _model_swap_lock to prediction reads for thread-safe model access Marko Djordjevic 2026-02-18 11:26:33 +01:00
  • ff15adc847 feat: add SHA256 model integrity check before joblib.load() Marko Djordjevic 2026-02-18 11:25:14 +01:00
  • b7f9b2e04d security: replace exception details with generic error in ML service HTTP responses Marko Djordjevic 2026-02-18 11:23:41 +01:00
  • 4c53ef7cae fix: add response.ok checks before .json() in CandleChart.tsx Marko Djordjevic 2026-02-18 11:21:54 +01:00
  • 4436cd655f fix: add response.ok checks before .json() in page.tsx fetch calls Marko Djordjevic 2026-02-18 11:21:21 +01:00
  • b2129ad626 security: add CSV injection protection to all export routes Marko Djordjevic 2026-02-18 11:20:36 +01:00
  • 160f146ab4 mark: task 4.9 complete - integer parameter parsing with isNaN guards Marko Djordjevic 2026-02-18 11:19:34 +01:00
  • 15adf09b73 fix: add parseInt(value, 10) with isNaN() guards to all integer query param parsing Marko Djordjevic 2026-02-18 11:19:26 +01:00
  • 1678da2d9d fix: wrap chart cascade delete in db.transaction() and add spanAnnotations deletion Marko Djordjevic 2026-02-18 11:17:19 +01:00
  • 103bfa89cb fix: require chartId for bulk delete in annotations route (task 4.7) Marko Djordjevic 2026-02-18 11:16:37 +01:00
  • aace19b7f4 fix: replace error.message with generic "Internal server error" in all API catch blocks Marko Djordjevic 2026-02-18 11:16:02 +01:00
  • 81e3554d82 feat: add Zod schema validation to patterns/detect route Marko Djordjevic 2026-02-18 11:14:36 +01:00
  • 2e02d155af feat: add Zod schema validation to training/start route (task 4.4) Marko Djordjevic 2026-02-18 11:14:00 +01:00
  • 4cffc223b3 feat: add Zod schema validation to model/load route Marko Djordjevic 2026-02-18 11:13:13 +01:00
  • 5c399037c3 feat: add Zod validation to predict/batch route (task 4.2) Marko Djordjevic 2026-02-18 11:12:38 +01:00
  • 3361236d3f feat: add Zod schema validation to predict API route Marko Djordjevic 2026-02-18 11:11:58 +01:00
  • c023702644 feat: add API_KEY to .env.example with placeholder and instructions Marko Djordjevic 2026-02-18 11:06:47 +01:00
  • 4a3e4a48ba feat: forward X-API-Key header from Next.js proxy routes to ML service Marko Djordjevic 2026-02-18 11:06:18 +01:00
  • 5f569d9134 feat(ml): add API key authentication via FastAPI Depends() on all endpoints except /health Marko Djordjevic 2026-02-18 11:04:41 +01:00
  • 577bb2e56e feat: add API key auth middleware for /api/* routes (task 3.1) Marko Djordjevic 2026-02-18 11:02:51 +01:00
  • 0cd21887e4 mark: task 2.5 complete (CORS configuration) Marko Djordjevic 2026-02-18 11:02:10 +01:00
  • 26ff80a682 fix: implement CORS origins configuration via environment variable Marko Djordjevic 2026-02-18 11:02:00 +01:00
  • 94bc5768d1 feat: add file type validation to upload endpoint Marko Djordjevic 2026-02-18 11:01:28 +01:00
  • 0e239dc3da security: add file size (10MB) and row count (500k) limits to upload route Marko Djordjevic 2026-02-18 11:01:02 +01:00
  • 67dd7aa2f0 security: validate run_id format and add path containment check in ML service Marko Djordjevic 2026-02-18 11:00:19 +01:00
  • 870f92d208 feat: add run_id format validation in DELETE training/runs endpoint Marko Djordjevic 2026-02-18 10:58:54 +01:00
  • 4e5ce321b9 chore: bind ML service port to 127.0.0.1:8001:8001 for localhost-only access Marko Djordjevic 2026-02-18 10:58:31 +01:00
  • c327ba3370 bind: MLflow port to 127.0.0.1:5000:5000 in docker-compose.yml Marko Djordjevic 2026-02-18 10:58:11 +01:00
  • 9efa1dbbcc fix: Bind PostgreSQL port to 127.0.0.1:5432:5432 for localhost-only access Marko Djordjevic 2026-02-18 10:57:55 +01:00
  • e3469ec39f fix: replace hardcoded DB credentials with env var interpolation in docker-compose.yml Marko Djordjevic 2026-02-18 10:57:31 +01:00
  • 9bc82b822c security: remove credential SQL comments and add DATABASE_URL fail-fast check Marko Djordjevic 2026-02-18 10:56:49 +01:00
  • 55ee9c936a fix: replace real credentials in .env.example with placeholders Marko Djordjevic 2026-02-18 10:56:23 +01:00
  • 099f334fe9 chore: mark task 1.2 as completed Marko Djordjevic 2026-02-18 10:55:56 +01:00
  • ea89543c0f feat: add models/ and *.pkl to .gitignore, remove tracked model files from git history Marko Djordjevic 2026-02-18 10:55:48 +01:00
  • 4ba1327a53 task 1.1: add .env to .gitignore and untrack from git Marko Djordjevic 2026-02-18 10:55:24 +01:00
  • c0f5654450 sync: ml-ui-connection delta specs to main specs Marko Djordjevic 2026-02-18 10:21:05 +01:00
  • 9a549b8c7a fix: make volume column optional in feature engineering, skip MFI when absent Marko Djordjevic 2026-02-18 01:01:32 +01:00
  • d3dcfcea7d feat: auto-build training dataset from DB annotations before training Marko Djordjevic 2026-02-18 00:24:39 +01:00
  • b4956f3fb9 fix: call init_db() on ML service startup to create training_runs table Marko Djordjevic 2026-02-18 00:08:23 +01:00
  • d5fc4662e9 fix: replace all SQLite references with PostgreSQL in scripts and lazy-init db connection Marko Djordjevic 2026-02-17 23:48:47 +01:00
  • 2481fda68c fix: remove all SQLite references (migrate.ts, migration script, package.json) Marko Djordjevic 2026-02-17 23:34:12 +01:00
  • 28725caaa8 fix: exclude scripts/ from TypeScript build to fix deployment Marko Djordjevic 2026-02-17 23:29:52 +01:00
  • 69634909d1 fix: correct timestamp/boolean types for PostgreSQL schema (Date not int, bool not 0/1) Marko Djordjevic 2026-02-17 22:50:31 +01:00
  • e00bd4d804 fix: await params in DELETE route for Next.js 15 async params Marko Djordjevic 2026-02-17 22:33:38 +01:00
  • 6ef102cf21 fix: training panel stuck button, stale runs on startup, add delete model Marko Djordjevic 2026-02-17 22:23:50 +01:00
  • d34dc9d729 fix: make sidebar scrollable so training/predictions panels are always visible Marko Djordjevic 2026-02-17 22:10:54 +01:00
  • 2faa8879f3 feat: add keyboard shortcuts R/S/L/D/T/? with shortcuts modal Marko Djordjevic 2026-02-17 20:19:25 +01:00
  • 028a3382d6 fix: pass confidence=null for talib span annotations (DB column is integer, not float) Marko Djordjevic 2026-02-17 20:14:13 +01:00
  • d416aa409c fix: show TA-lib pattern spans on chart and add delete all annotations button Marko Djordjevic 2026-02-17 20:12:23 +01:00
  • 7901a1a257 fix: use annotation's saved color for TrendLine instead of annotationType default color Marko Djordjevic 2026-02-17 20:03:54 +01:00
  • c404e79678 fix: normalize span annotation timestamps to Unix epoch seconds in all API responses Marko Djordjevic 2026-02-17 20:02:14 +01:00
  • 900443d078 fix: convert Unix epoch seconds to Date for span annotation start_time/end_time on insert Marko Djordjevic 2026-02-17 20:01:09 +01:00
  • 4352732630 fix: change is_active type from number to boolean to match API response Marko Djordjevic 2026-02-17 19:59:48 +01:00
  • a75c9307d4 feat: add Settings button in sidebar with links to annotation-types and span-label-types Marko Djordjevic 2026-02-17 19:51:42 +01:00
  • 3a114cccd0 fix: convert Unix epoch seconds to Date before inserting annotation timestamp Marko Djordjevic 2026-02-17 19:46:24 +01:00
  • 148fe22cd7 fix: guard crosshair move handler against re-entrant recursion from applyOptions Marko Djordjevic 2026-02-17 19:44:37 +01:00
  • 0ba3592679 fix: make Line tool button static next to Rect and Span Marko Djordjevic 2026-02-17 19:42:21 +01:00
  • 04a8303f4f fix: convert timestamp columns to Unix epoch seconds in candles and annotations API Marko Djordjevic 2026-02-17 19:40:48 +01:00
  • a9bfe36e47 fix: handle test_ prefixed metric keys from training runs API Marko Djordjevic 2026-02-17 19:00:22 +01:00
  • 12a9603fce feat: add TalibPatternPanel, TrainingPanel, ModelSelector UI components (tasks 5-8) Marko Djordjevic 2026-02-17 18:55:52 +01:00
  • 2a02669222 feat: add FastAPI model/load endpoint and all Next.js proxy routes (tasks 2-4) Marko Djordjevic 2026-02-17 18:47:04 +01:00
  • b8e649e333 feat: add FastAPI pattern detection endpoints (Section 1) Marko Djordjevic 2026-02-17 18:34:14 +01:00
  • 38df874255 chore: archive ml-db-consolidation change and sync specs Marko Djordjevic 2026-02-17 18:22:28 +01:00
  • 0e8dcc6707 chore: archive line-rectangle-annotations change and sync specs Marko Djordjevic 2026-02-17 18:16:49 +01:00
  • d1557a3846 fix: resolve numpy type conversion issues in ML service data access Marko Djordjevic 2026-02-17 14:10:21 +01:00
  • 5377431c9d test: verify Next.js application works with PostgreSQL Marko Djordjevic 2026-02-17 14:02:22 +01:00
  • bfe437857b feat: add Python migration script and successfully test SQLite to PostgreSQL data migration Marko Djordjevic 2026-02-17 14:01:21 +01:00
  • 5f70f13da3 feat: migrate from SQLite to PostgreSQL - complete schema and API updates Marko Djordjevic 2026-02-17 13:43:06 +01:00
  • 4605283d2b feat: redesign UI to match lovable compact sidebar layout Marko Djordjevic 2026-02-16 20:50:30 +01:00
  • 2bde38d0bf fix: resolve database migration failures and startup ordering Marko Djordjevic 2026-02-16 19:59:47 +01:00
  • 573efea5b5 fix: improve migration error handling to gracefully handle existing tables Marko Djordjevic 2026-02-16 19:43:32 +01:00
  • bbaf330020 fix: skip migrations during build phase to prevent 'table already exists' errors Marko Djordjevic 2026-02-16 19:41:22 +01:00
  • ecb23855b5 fix: add curl to ml-service for healthcheck Marko Djordjevic 2026-02-16 17:31:08 +01:00
  • e48bff46cf docs: document RTK npm run bug workaround Marko Djordjevic 2026-02-16 16:37:15 +01:00
  • 511a557c42 add for docker until i fix it Marko Djordjevic 2026-02-16 16:21:46 +01:00
  • 23131b2c33 fix: resolve TypeScript narrowing errors and renamed lightweight-charts exports Marko Djordjevic 2026-02-16 16:05:54 +01:00
  • efcf5c185f docs: document RTK bug with npm run command Marko Djordjevic 2026-02-16 16:01:20 +01:00
  • 025cf6d973 fix: resolve TypeScript error by renaming conflicting lineHit variable Marko Djordjevic 2026-02-16 15:42:13 +01:00
  • 08bd9625ae fix: build TA-Lib from source in ML Dockerfile Marko Djordjevic 2026-02-16 14:58:07 +01:00
  • 2cde02b722 docs: mark all line-rectangle-annotations tasks as complete Marko Djordjevic 2026-02-16 12:14:22 +01:00
  • 73e07c9050 feat: complete SVG overlay removal and line endpoint dragging (tasks 6.1-7.3) Marko Djordjevic 2026-02-16 12:13:29 +01:00
  • aea1791122 feat: complete rectangle annotation tool (tasks 4.1-5.2) Marko Djordjevic 2026-02-16 11:58:49 +01:00
  • 82fd5ce819 feat: wire up drawing interaction for line and rectangle tools (tasks 3.1-3.5) Marko Djordjevic 2026-02-16 11:55:06 +01:00
  • bec0aeb6ca feat: enhance TrendLine plugin and create RectangleDrawingPrimitive Marko Djordjevic 2026-02-16 11:51:07 +01:00
  • 28e3f83cf7 archive: candle-backend change complete Marko Djordjevic 2026-02-16 11:44:53 +01:00
  • 7e0579f65d sync: migrate delta specs to main openspec/specs Marko Djordjevic 2026-02-16 11:44:34 +01:00
  • 65f00e6ce7 feat: complete prediction UI feedback tasks (11.2, 11.4, 11.5) Marko Djordjevic 2026-02-16 11:40:55 +01:00
  • a18c6d110a Remove __pycache__ from git tracking Marko Djordjevic 2026-02-15 22:29:22 +01:00
  • e3184ea86c save mlruns dir to git Marko Djordjevic 2026-02-15 22:25:26 +01:00
  • f7b154f866 fix(ml): extract class labels from model when metadata is missing Marko Djordjevic 2026-02-15 22:18:16 +01:00
  • be09cef098 fix(ml): add missing numpy import in main.py Marko Djordjevic 2026-02-15 22:08:41 +01:00
  • 40d6d1739e fix(ml): add windowed feature flattening for inference parity Marko Djordjevic 2026-02-15 22:07:06 +01:00
  • 4c7b3f2676 fix(ml): detect all-NaN volume column (not just missing column) Marko Djordjevic 2026-02-15 21:58:16 +01:00
  • 317f925c43 fix(ml): handle missing volume data and skip volume-dependent indicators Marko Djordjevic 2026-02-15 21:56:14 +01:00
  • b6b37160a7 fix(ml): cast OHLCV arrays to float64 for TA-Lib compatibility Marko Djordjevic 2026-02-15 21:52:45 +01:00
  • f850728d44 fix(api): add GET /api/charts/[id] and fix batch prediction Marko Djordjevic 2026-02-15 21:49:22 +01:00
  • 6d0d67e39b fix(ml): make pair and timeframe optional in PredictRequest Marko Djordjevic 2026-02-15 21:43:14 +01:00