2 Commits

Author SHA1 Message Date
5ebe26e5d5 test(calibration): 8 labels + 3 scenarii noi (inclusiv regresie 2026-04-21)
calibration_labels.json: 16 → 24 entry-uri. Toate cele 8 frame-uri dumpate
automat de live loop azi (gray×5, dark_green×1, yellow×1, dark_red×1) trec
prin validate-calibration cu detector-ul curent (24/24 PASS).

scenarios.json: 8 → 11 scenarii:

1. buy_catchup_opposite_rearm_to_sell — REGRESSION pentru bug-ul de azi.
   Trace real din log: 17:00 catchup dark_green → PRIMED_BUY (synth arm+prime),
   apoi 17:45 yellow → ARMED_SELL via opposite_rearm. Verifică că dispatch-ul
   nou emite kind=opposite_rearm și că scheduler-ul se oprește.

2. buy_armed_gray_persist — gray între arm și prime ține ARMED_BUY
   (reason=persist). Acoperă o ramură FSM neacoperită.

3. buy_primed_gray_cooldown — gray după prime ucide ciclul (reason=cooled,
   IDLE, scheduler stop). Confirmă semantica M2D că chart-ul tăcut post-prime
   înseamnă setup expirat.

Total: 11/11 scenarii PASS, 238/238 teste (235 + 3 noi scenarii regresie).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-21 22:35:22 +03:00
9e8cbafbd4 feat: calibration/ corpus + scenarii regresie FSM
- calibration/frames/: 16 PNG-uri ground-truth numite {ts}_{color}.png,
  copiate din logs/fires (izolate de samples/ și logs/fires/ care se pot goli)
- calibration/calibration_labels.json: mutat din samples/, curățat de entries
  cu fișiere inexistente, extins la acoperire completă 7 culori → 16/16 PASS
- calibration/scenarios.json: 8 secvențe FSM (BUY/SELL full cycle, phase_skip,
  catchup, post-fire suppression) pe frame-uri reale
- tests/test_scenarios_regression.py: parametrizat pe scenarios.json, asertează
  color+state+reason+trigger+alerts+scheduler prin pipeline-ul
  Detector → _handle_tick
- docs: README + CLAUDE reflectă noua structură, incidentul 2026-04-20/21
  (pixel saturat UNKNOWN → FSM blocat în PRIMED → polling continuu) +
  troubleshooting pentru trigger UNKNOWN

Pytest: 184 → 192 passed (+8 scenarii regresie).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-21 08:32:11 +03:00