优先级与责任
P0,活动前阻断项。生产环境变量、Vercel Cron 日志和告警由 owner 主责;代码侧指标、前置校验和 runbook 由工程 PR 实现。
背景
durable public scan 的主要消费者是 Vercel Cron:
路径:GET /api/internal/public-scan
鉴权:Authorization: Bearer CRON_SECRET
当前节奏:每 5 分钟一次
单次预算:最多 24 步或 50 秒
事故期间该接口持续返回 401。三天后的活动会带来集中并发,因此必须证明队列持续排水,而不是只成功调用一次。
Owner 要求
确认当前 Production deployment 包含 CRON_SECRET。
确认至少连续三个调度周期返回 2xx。
记录 processed、exhaustedBudget、持续时间和失败状态,不记录账号或 secret。
确认套餐允许目标频率;临时提高频率必须重新部署并验证。
配置连续两次未运行或非 2xx 的告警。
准备仅 owner 可见的人工排水 runbook。
Code 要求
增加 last successful drain、连续失败次数、canonical 队列深度、最老任务年龄和 phase 分布。
fix(version): 将 #111 正式版本规范化为 v9/v9/v4 #126 后 worker 只能排 canonical v4 job;误发布 v5 job 必须单独统计为 obsolete,不能继续消耗 GitHub 或阻塞 active-job 上限。
缺少生产必需环境变量时阻止 promotion。
Cron 响应必须区分 processed、idle、budget exhausted 和 obsolete work。
不修改评分算法,不恢复 LLM delta,不产生新的版本 bump。
验收标准
Cron 连续三个周期成功调用。
有 canonical 任务时队列深度或最老任务年龄持续改善;无任务时明确 idle。
obsolete job 不被执行,也不计入 canonical queue health。
secret 缺失或错误能在上线前发现。
Cron 停止排水后不超过两个周期即可告警。
监控、日志和 issue 不包含 secret、凭据或账号标识。
活动前完成 queued、running、complete、failed、obsolete 路径演练。
依赖:#123 。关联:#120 、#124 、#126 。
优先级与责任
P0,活动前阻断项。生产环境变量、Vercel Cron 日志和告警由 owner 主责;代码侧指标、前置校验和 runbook 由工程 PR 实现。
背景
durable public scan 的主要消费者是 Vercel Cron:
事故期间该接口持续返回 401。三天后的活动会带来集中并发,因此必须证明队列持续排水,而不是只成功调用一次。
Owner 要求
Code 要求
验收标准
依赖:#123。关联:#120、#124、#126。