From 2a02669222dafe69b23c7e3e986a343d472a5da0 Mon Sep 17 00:00:00 2001 From: Marko Djordjevic Date: Tue, 17 Feb 2026 18:47:04 +0100 Subject: [PATCH] feat: add FastAPI model/load endpoint and all Next.js proxy routes (tasks 2-4) --- .../line-rectangle-annotations/.openspec.yaml | 2 - .../line-rectangle-annotations/design.md | 92 ---- .../line-rectangle-annotations/proposal.md | 29 -- .../specs/annotation-tools/spec.md | 83 ---- .../specs/rectangle-annotation/spec.md | 105 ----- .../line-rectangle-annotations/tasks.md | 57 --- .../changes/ml-db-consolidation/design.md | 110 ----- .../changes/ml-db-consolidation/proposal.md | 35 -- .../specs/docker-deployment/spec.md | 81 ---- .../specs/ml-training/spec.md | 37 -- .../specs/postgres-data-layer/spec.md | 80 ---- openspec/changes/ml-db-consolidation/tasks.md | 53 --- .../.openspec.yaml | 0 openspec/changes/ml-ui-connection/design.md | 87 ++++ openspec/changes/ml-ui-connection/proposal.md | 31 ++ .../specs/backend-api/spec.md | 122 +++++ .../specs/model-selector/spec.md | 38 ++ .../specs/prediction-ui/spec.md | 31 ++ .../specs/talib-pattern-ui/spec.md | 57 +++ .../specs/training-ui/spec.md | 60 +++ openspec/changes/ml-ui-connection/tasks.md | 26 +- services/ml/app/main.py | 421 +++++++++++++++++- src/app/api/model/load/route.ts | 37 ++ src/app/api/patterns/available/route.ts | 34 ++ src/app/api/patterns/detect/route.ts | 38 ++ src/app/api/span-annotations/route.ts | 39 +- src/app/api/training/dataset-info/route.ts | 34 ++ src/app/api/training/runs/route.ts | 34 ++ src/app/api/training/start/route.ts | 37 ++ 29 files changed, 1110 insertions(+), 780 deletions(-) delete mode 100644 openspec/changes/line-rectangle-annotations/.openspec.yaml delete mode 100644 openspec/changes/line-rectangle-annotations/design.md delete mode 100644 openspec/changes/line-rectangle-annotations/proposal.md delete mode 100644 openspec/changes/line-rectangle-annotations/specs/annotation-tools/spec.md delete mode 100644 openspec/changes/line-rectangle-annotations/specs/rectangle-annotation/spec.md delete mode 100644 openspec/changes/line-rectangle-annotations/tasks.md delete mode 100644 openspec/changes/ml-db-consolidation/design.md delete mode 100644 openspec/changes/ml-db-consolidation/proposal.md delete mode 100644 openspec/changes/ml-db-consolidation/specs/docker-deployment/spec.md delete mode 100644 openspec/changes/ml-db-consolidation/specs/ml-training/spec.md delete mode 100644 openspec/changes/ml-db-consolidation/specs/postgres-data-layer/spec.md delete mode 100644 openspec/changes/ml-db-consolidation/tasks.md rename openspec/changes/{ml-db-consolidation => ml-ui-connection}/.openspec.yaml (100%) create mode 100644 openspec/changes/ml-ui-connection/design.md create mode 100644 openspec/changes/ml-ui-connection/proposal.md create mode 100644 openspec/changes/ml-ui-connection/specs/backend-api/spec.md create mode 100644 openspec/changes/ml-ui-connection/specs/model-selector/spec.md create mode 100644 openspec/changes/ml-ui-connection/specs/prediction-ui/spec.md create mode 100644 openspec/changes/ml-ui-connection/specs/talib-pattern-ui/spec.md create mode 100644 openspec/changes/ml-ui-connection/specs/training-ui/spec.md create mode 100644 src/app/api/model/load/route.ts create mode 100644 src/app/api/patterns/available/route.ts create mode 100644 src/app/api/patterns/detect/route.ts create mode 100644 src/app/api/training/dataset-info/route.ts create mode 100644 src/app/api/training/runs/route.ts create mode 100644 src/app/api/training/start/route.ts diff --git a/openspec/changes/line-rectangle-annotations/.openspec.yaml b/openspec/changes/line-rectangle-annotations/.openspec.yaml deleted file mode 100644 index 2a45c1f..0000000 --- a/openspec/changes/line-rectangle-annotations/.openspec.yaml +++ /dev/null @@ -1,2 +0,0 @@ -schema: spec-driven -created: 2026-02-15 diff --git a/openspec/changes/line-rectangle-annotations/design.md b/openspec/changes/line-rectangle-annotations/design.md deleted file mode 100644 index 4cd4138..0000000 --- a/openspec/changes/line-rectangle-annotations/design.md +++ /dev/null @@ -1,92 +0,0 @@ -## Context - -The candle annotator uses lightweight-charts for rendering candlestick data and currently has two rendering layers for annotations: - -1. **Canvas-based (ISeriesPrimitive)**: Used by `SpanRectanglePrimitive.ts` for span annotations. These are attached to the series via `series.attachPrimitive()` and render natively within the chart canvas. They support `hitTest()`, autoscaling, and z-ordering. - -2. **SVG overlay**: Used by `SvgOverlay.tsx` for line annotations. An absolutely-positioned SVG element sits on top of the chart with `zIndex: 1111`, intercepting pointer events when the line or delete tool is active. It duplicates coordinate conversion logic and manages its own interaction state. - -The existing `src/plugins/trend-line.ts` already implements a `TrendLine` class using `ISeriesPrimitive