From d7992e7a7abc9b5c5f5bd080001007c0f0fad8b4 Mon Sep 17 00:00:00 2001 From: yumao Date: Sat, 18 Jul 2026 16:55:47 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20push=5Fgate=20=E5=88=A4=E5=AE=9A?= =?UTF-8?q?=E5=88=86=E6=94=AF=E5=8A=A0=E7=BB=93=E6=9E=84=E5=8C=96=E6=97=A5?= =?UTF-8?q?=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit force/推送/静默日/无更新仍推 四分支各记一条 logger.info, 无人值守时可定位「早报没推是静默日还是别的原因」(T7)。 Co-Authored-By: Claude Opus 4.8 (1M context) --- daily/push_gate.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/daily/push_gate.py b/daily/push_gate.py index b360de6..a07c9b9 100644 --- a/daily/push_gate.py +++ b/daily/push_gate.py @@ -2,11 +2,14 @@ from __future__ import annotations +import logging from dataclasses import dataclass, field from typing import Any from daily.config import force_push, skip_push_when_silent +logger = logging.getLogger(__name__) + @dataclass class PushGateResult: @@ -34,6 +37,7 @@ def evaluate_push_gate( featured_pick: dict[str, Any] | None, ) -> PushGateResult: if force_push(): + logger.info("push_gate: force_push=on, 强制推送") return PushGateResult(should_push=True, reasons=["force_push"], silent=False) reasons: list[str] = [] @@ -48,4 +52,10 @@ def evaluate_push_gate( should = bool(reasons) silent = not should and skip_push_when_silent() + if should: + logger.info("push_gate: 推送 (原因: %s)", ",".join(reasons)) + elif silent: + logger.info("push_gate: 静默日, 跳过推送 (无任何更新信号)") + else: + logger.info("push_gate: 无更新但 skip_push_when_silent=off, 仍推送") return PushGateResult(should_push=should, reasons=reasons, silent=silent)