TradingAgents/web_dashboard/backend/services
陈少杰 a4def7aff9 Harden executor configuration and failure contracts before further rollout
The rollout-ready branch still conflated dashboard auth with provider credentials, discarded diagnostics when both signal lanes degraded, and treated RESULT_META as optional even though downstream contracts now depend on it. This change separates provider runtime settings from request auth, preserves source diagnostics/data quality in full-failure contracts, requires RESULT_META in the subprocess protocol, and moves A-share holidays into an updateable calendar data source.

Constraint: No external market-calendar dependency is available in env312 and dependency policy forbids adding one casually
Rejected: Keep reading provider keys from request headers | couples dashboard auth to execution and breaks non-anthropic providers
Rejected: Leave both-signals-unavailable as a bare ValueError | loses diagnostics before live/backend contracts can serialize them
Rejected: Keep A-share holidays embedded in Python constants | requires code edits every year and preserves the stopgap design
Confidence: high
Scope-risk: moderate
Reversibility: clean
Directive: Keep subprocess protocol fields explicit and fail closed when RESULT_META is missing; do not route provider credentials through dashboard auth again
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
Not-tested: real provider-backed execution across openai/google providers
Not-tested: browser/manual verification beyond existing frontend contract consumers
2026-04-14 01:54:44 +08:00
..
__init__.py Stabilize TradingAgents contracts so orchestration and dashboard can converge 2026-04-13 17:25:07 +08:00
analysis_service.py Harden executor configuration and failure contracts before further rollout 2026-04-14 01:54:44 +08:00
executor.py Harden executor configuration and failure contracts before further rollout 2026-04-14 01:54:44 +08:00
job_service.py Expose data-quality semantics before rolling contract-first further 2026-04-14 00:37:35 +08:00
migration_flags.py Make backend task and recommendation APIs contract-first by default 2026-04-14 00:26:28 +08:00
request_context.py Harden executor configuration and failure contracts before further rollout 2026-04-14 01:54:44 +08:00
result_store.py Make backend task and recommendation APIs contract-first by default 2026-04-14 00:26:28 +08:00