🔒 fix(sidecar): 编排记忆批——routine 本地日期键/提取丢轮回放/evidence 密钥过滤/cron 永假拒绝 - #445
Conversation
- routine 三处 today() 统一走 localDateKey(本地时区):UTC 键使 UTC-5 时区 19:00 后当日 routine 失联、晨间生成落昨日键(#408) - 后台记忆提取 trailing 单槽改 FIFO 队列,覆盖不再丢中间轮;失败批次 items 暂存并入下次提取,cursor 不再静默跳过失败轮(#408) - 记忆 evidence quote 过 containsSecret 再落盘——statement 滤了但整条 源消息 quote 曾明文进 frontmatter 并注入 prompt;密钥正则补 GitHub/ AWS/PEM/JWT/Slack 形态(#408) - cronDateFeasible:dom/month 受限组合无可命中日期时 getNextCronRunAt 短路返 null、validateAutomationSchedule 创建即拒——永假表达式 (如 0 9 31 2 *)不再逐分钟空转满年卡事件循环(#408) Closes #408 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Code Review(事后补录——本 PR 已合并,问题转为 follow-up)五项声称修复方向均属实(本地日期键/FIFO 提取/evidence 过滤/cron 可行性短路),但逐项深查发现 4 个 P1,随合并已进入 main: [P1-1] 日期键分裂 → 同一天重复创建整套 automation jobPR 只改了 [P1-2] carriedBatches 连续失败丢批次
[P1-3] 密钥过滤修错字段,实际落盘通道未堵
[P1-4] 存量永假 cron job 毒化整轮调度刷新(升级回归)已有持久化的永假 job(旧版放行、nextRunAt=null)升级后命中新的 feasibility throw: 其他
建议立即以 follow-up PR 修复上述 4 个 P1(P1-3 涉密钥明文落盘优先级最高)。 |
概要
#408 五项:
today()的 UTC 键使 UTC-5 时区 19:00 后当日 routine 失联、晨间生成落昨日键。抽localDateKey共享。cronDateFeasible检查 dom/month 受限组合是否存在可命中日期(dow 受限时 OR 语义直接可行);getNextCronRunAt短路返 null、validateAutomationSchedule创建/改期即抛错——0 9 31 2 *类表达式不再逐分钟空转满年卡事件循环数秒。验证
Closes #408
🤖 Generated with Claude Code