The previous hardening pass still dropped source diagnostics and data-quality context once live-mode serialized a dual-lane failure. Keep those fields when a structured CombinedSignalFailure reaches the websocket layer so consumers can distinguish provider mismatch, stale data, and other degraded cases even when no final signal exists.
Constraint: Follow-on fix after
|
||
|---|---|---|
| .. | ||
| contracts | ||
| data | ||
| examples | ||
| tests | ||
| __init__.py | ||
| backtest_mode.py | ||
| config.py | ||
| live_mode.py | ||
| llm_runner.py | ||
| market_calendar.py | ||
| orchestrator.py | ||
| quant_runner.py | ||
| signals.py | ||