sync: ml-ui-connection delta specs to main specs

This commit is contained in:
Marko Djordjevic 2026-02-18 10:21:05 +01:00
parent 9a549b8c7a
commit c0f5654450
15 changed files with 369 additions and 6 deletions

View file

@ -1,31 +0,0 @@
## MODIFIED Requirements
### Requirement: Prediction controls panel
The system SHALL display a prediction controls panel in the sidebar with: master on/off toggle, model selector dropdown (listing available trained models), model info (name, version, type, training date), action buttons ("Run on Visible", "Predict All"), auto-predict toggle, confidence threshold slider, label checkboxes with per-class precision/recall metrics, prediction count, agreement count, and a "Show only disagreements" filter.
#### Scenario: Display model info
- **WHEN** the prediction panel loads and the inference API is available
- **THEN** the panel fetches /api/model/info and displays model name, version, type, and training date
#### Scenario: Inference API unavailable
- **WHEN** the prediction panel loads and /api/model/info returns an error
- **THEN** the panel shows "Model server offline — predictions unavailable" and all controls are disabled
#### Scenario: Per-class metrics display
- **WHEN** model info includes per-class metrics
- **THEN** each label checkbox shows precision and recall values (e.g., "bull_flag (P:0.89 R:0.76)")
#### Scenario: Model selector integrated
- **WHEN** the prediction panel renders with trained models available
- **THEN** a model selector dropdown appears above the action buttons, allowing the user to switch the active model
### Requirement: Prediction cache invalidation on model change
The system SHALL cache predictions in memory keyed by `${pair}_${timeframe}_${startTime}_${endTime}_${modelVersion}`. When the user scrolls to a range with cached predictions, the system SHALL use the cache instead of re-fetching. Cache SHALL be invalidated when the model version changes OR when the user switches models via the model selector.
#### Scenario: Cache hit
- **WHEN** user scrolls back to a previously predicted range with the same model version
- **THEN** the system renders cached predictions without making an API call
#### Scenario: Cache invalidation on model switch
- **WHEN** the user switches to a different model via the model selector
- **THEN** all cached predictions are cleared and the chart removes displayed predictions