Improve AI daily report operations and dedupe observability
This commit is contained in:
@@ -30,6 +30,7 @@ def _source_config_from_dict(value: dict[str, Any]) -> SourceConfig:
|
||||
min_items=int(value.get("min_items", 0)),
|
||||
url=value.get("url", ""),
|
||||
max_item_age_days=int(max_item_age_days) if max_item_age_days is not None else None,
|
||||
failure_policy=str(value.get("failure_policy") or ("block" if bool(value.get("required", False)) else "warn")),
|
||||
)
|
||||
|
||||
|
||||
@@ -347,19 +348,26 @@ def run_stage0_to_stage8(
|
||||
quality_gate_config=quality_gate_config,
|
||||
)
|
||||
slug = f"ai-{run_date}"
|
||||
effective_mode = mode
|
||||
quality_gate_report = stage7_result["reports"].get("quality_gate", {}) or {}
|
||||
required_policy = str(quality_gate_report.get("required_source_failure_policy") or "block")
|
||||
if quality_gate_report.get("required_source_failures") and required_policy in {"draft", "dry_run"}:
|
||||
effective_mode = "dry-run" if required_policy == "dry_run" else "draft"
|
||||
|
||||
publish_result = publish_markdown(
|
||||
title=f"AI日报 · {run_date}",
|
||||
markdown=stage7_result["markdown"],
|
||||
tags=["AI日报", "AI资讯", "人工智能"],
|
||||
slug=slug,
|
||||
base_url=base_url,
|
||||
mode=mode,
|
||||
mode=effective_mode,
|
||||
markdown_report=stage7_result["reports"]["stage7"],
|
||||
client=client,
|
||||
idempotency_config=publish_idempotency_config,
|
||||
)
|
||||
reports = dict(stage7_result["reports"])
|
||||
reports["stage8"] = {
|
||||
"requested_mode": mode,
|
||||
"mode": publish_result.mode,
|
||||
"status": publish_result.status,
|
||||
"slug": publish_result.slug,
|
||||
|
||||
Reference in New Issue
Block a user