c3f092fc28
The city card only needs the provider to interpret the latest METAR or official observation. Deterministic fields such as the high-temperature center, model cluster note and fallback risks are already available server-side, so the stream request now asks DeepSeek for only the observation read and concise reasoning. Constraint: City cards still need a complete payload for both Chinese and English UI modes Rejected: Keep generating the full decision schema in the stream | too much model output for every card Rejected: Retry failed streams by default | it can double latency and the fallback can use partial streamed text Confidence: high Scope-risk: moderate Tested: pytest tests/test_web_observability.py::test_city_ai_stream_request_only_asks_provider_for_observation_read tests/test_web_observability.py::test_city_ai_fallback_reasoning_identifies_fast_evidence_mode tests/test_web_observability.py::test_city_ai_partial_json_trims_dangling_taf_clause tests/test_web_observability.py::test_city_ai_schema_completion_trims_dangling_taf_clause -q Tested: npm run build