TradingAgents/orchestrator
陈少杰 eb2ab0afcf Preserve diagnostics in live-mode failure payloads
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 63858bf should stay minimal and not reopen unrelated executor/calendar work
Rejected: Fold this into a larger amend of the prior commit | history is already shared and the delta is a single behavioral correction
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: When failure exceptions carry structured diagnostics, live serializers must preserve them instead of flattening to a generic message
Tested: python -m pytest web_dashboard/backend/tests/test_executors.py web_dashboard/backend/tests/test_services_migration.py web_dashboard/backend/tests/test_api_smoke.py orchestrator/tests/test_market_calendar.py orchestrator/tests/test_live_mode.py orchestrator/tests/test_application_service.py orchestrator/tests/test_quant_runner.py orchestrator/tests/test_llm_runner.py -q
Tested: python -m compileall orchestrator web_dashboard/backend
Tested: npm run build (web_dashboard/frontend)
Not-tested: real websocket consumers against provider-backed failure paths
2026-04-14 02:10:31 +08:00
..
contracts Harden executor configuration and failure contracts before further rollout 2026-04-14 01:54:44 +08:00
data Harden executor configuration and failure contracts before further rollout 2026-04-14 01:54:44 +08:00
examples feat(orchestrator): example scripts for backtest and live mode 2026-04-09 22:12:02 +08:00
tests Harden executor configuration and failure contracts before further rollout 2026-04-14 01:54:44 +08:00
__init__.py feat(orchestrator): add signals.py and config.py 2026-04-09 21:35:31 +08:00
backtest_mode.py fix(review): api_key→anthropic_key bug, sync-in-async event loop block, orchestrator per-message re-init, dead code cleanup 2026-04-09 22:55:36 +08:00
config.py Stabilize TradingAgents contracts so orchestration and dashboard can converge 2026-04-13 17:25:07 +08:00
live_mode.py Preserve diagnostics in live-mode failure payloads 2026-04-14 02:10:31 +08:00
llm_runner.py Expose data-quality semantics before rolling contract-first further 2026-04-14 00:37:35 +08:00
market_calendar.py Harden executor configuration and failure contracts before further rollout 2026-04-14 01:54:44 +08:00
orchestrator.py Harden executor configuration and failure contracts before further rollout 2026-04-14 01:54:44 +08:00
quant_runner.py Carry Phase 4 rollout-readiness work back into the mainline safely 2026-04-14 01:15:18 +08:00
signals.py Stabilize TradingAgents contracts so orchestration and dashboard can converge 2026-04-13 17:25:07 +08:00