docs/run-diagnostics-p1.md
本文档记录 #1391 Phase 1 的最小运行时落地范围:统一 trace_id,并为首批关键数据链路记录结构化 provider 尝试。
TaskInfo 使用 task_id 作为默认 trace_id。trace_id 字段;旧客户端可忽略该字段。query_id 作为默认 trace_id。data_provider/base.py 对以下链路记录 ProviderRun 风格事件:
daily_datarealtime_quotecontext_snapshot.diagnostics 保存;旧历史记录缺少该字段时保持兼容。ProviderRun 字段首版字段保持最小:
trace_iddata_typeprovideroperationsuccesslatency_mserror_typeerror_message_sanitizedfallback_torecord_countcreated_at错误摘要会做基础脱敏,避免输出 token、API key、Authorization、Cookie、包含敏感参数的 webhook URL 等内容。
trace_id 和 provider runs 先进入 API/SSE/历史快照,供后续 Phase 2/3 聚合与展示复用。python -m pytest tests/test_run_diagnostics_p1.py tests/test_analysis_api_contract.py::AnalysisApiContractTestCase::test_get_analysis_status_normalizes_completed_queue_result_contract
python -m py_compile src/services/run_diagnostics.py src/services/task_queue.py src/services/analysis_service.py src/core/pipeline.py data_provider/base.py api/v1/schemas/analysis.py api/v1/endpoints/analysis.py