MB task-actions default-on / strict audit / 2026-05-25

这轮到底干了什么

结论先说人话:我们把 test 上的“新接口默认启用”查完了,也做了端到端验证; prod 还没有切,线上最新部署仍是 9D-E 关窗后的稳定版本。

test 现在
99f886e
default-on 已部署测试
prod 现在
2229a89
未切这批改动
prod CI
26365198762
stage 部署成功
工作树
clean
仅 .omc 未跟踪

一张图看现状

现在不是“线上已经全切新接口”。准确状态是:test 已经跑完 default-on,prod 还停在旧稳定路径。

test / sozai-test 已验证

代码点
origin/test@99f886e
行为
任务创建默认走 /api/task-actions/new;改方案、改成片默认走 /api/task-actions/continue
旧开关
删除 MB_TASK_ACTIONS_API_ENABLEDMB_TASK_ACTIONS_API_PROD_ENABLEDMB_TURN_CONTINUATION_ENABLED 这类回退分叉。
测试结果
Continue、Branch、Preview New、Daily New、Creative New、Delivery New 全部到终态成功。

prod / stage 未切

代码点
origin/stage@2229a89
线上行为
仍是 9D-E 关窗后的稳定态;这批 default-on 六个提交没有进入 prod。
最近部署
deploy-prod.yml#26365198762,成功,时间 2026-05-24 15:27Z。
风险边界
这轮严查没有改 prod worker、没有推 stage、没有动 prod 数据。

改动范围

这次查的是 MB 侧“怎么把任务发给 Tobatsu”,不是在 prod 直接改模板文本。

准备进 stage 的 6 个提交

  • 1e60f37 UE handoff meta 透传到 delivery payload。
  • 03c9f6f retry 自动推断 Tobatsu source run。
  • 039931e task-actions 成为默认派发路径。
  • 15f7774 测试脚本删除旧 flag 断言。
  • 8785ee3 删除 legacy continue dispatch client。
  • 99f886e 删除 turn-continuation fallback。

没有动的东西

  • 没有直接把 test 覆盖到 stage
  • 没有推 prod。
  • 没有改 prod 数据。
  • 没有把 Tobatsu 模板文本混进这批 MB 默认新接口审计里。
  • 没有删除 stage 上的 Performance Engine SSO。

为什么不能直接 merge

  • stage 有 stage-only 的 PE SSO。
  • 直接用 test 覆盖会碰 src/routes/auth.tssrc/index.tsxsrc/lib/env.ts
  • 正确做法是从 stage@2229a89 cherry-pick 6 个提交。

按钮和接口怎么走

我们把用户会触发 Tobatsu 的入口都查了,目标是没有隐形旧路径继续混着跑。

新任务入口 create / cron / preview / delivery generate
POST /api/runs
POST /api/crawl/slots
campaign revise / confirm / generate delivery
scheduled cron / test cron
New path /api/task-actions/new
改方案 / 改成片 / Branch retry / continue from source
POST /api/creative/:id/retry
POST /api/delivery/:id/retry
Branch:从历史输出再开一个 sibling continue
Continue path /api/task-actions/continue
prod 当前实际路径 before promotion
线上仍在 stage@2229a89
这批 default-on commit 不在 prod
Legacy-stable 旧线上稳定路径

我们怎么证明它能跑

不是只看单测;这轮把 test runtime、Tobatsu 终态、prod 只读影响、stage dry-run 都串起来查了。

CI / deploy-test
26402579951 success

99f886e 已部署到 test。

runtime E2E
Continue + Branch 成功

creative continue、delivery continue、branch/two-hop continue 都到 done

runtime E2E
New paths 成功

preview、daily、creative new、delivery new 下游 4/4 done/success

unit / type / build
33/0 + 24/0 + 61/0

task-actions、platform-terminal、v54、delivery payload、typecheck、build 都通过。

prod read-only SQL
0 个新灰按钮

当前 prod 可重试卡片不会因为缺 Tobatsu task lineage 新增灰掉。

stage dry-run
PE SSO 保留

origin/stage cherry-pick 六提交,冲突只在 wrangler.jsonc

prod 现状补充

这是最容易混乱的地方:test 已经是新接口默认态,prod 还不是。

线上最新代码

prod 跟 origin/stage@2229a89,不是 origin/test@99f886e

线上最新 CI

deploy-prod.yml#26365198762 成功,提交是 9D-E 关窗 commit。

线上没切 default-on

六个 default-on 提交还没进入 stage,所以 prod 不是这次 test 验证的新接口默认态。

下一步才是切换

如果授权,就按 runbook cherry-pick 到 stage,等 prod CI,再做线上 readback。

现在的决策点

这轮严查结束后,不应该再猜。只有两个清楚选择。

如果要上线

走 stage 安全提升,不直接覆盖。

  • 切到 stage@2229a89
  • cherry-pick 六个 test 提交。
  • 保留 PE SSO,解决 wrangler.jsonc 冲突。
  • 重跑测试、push stage、等 prod CI。
  • 上线后做 prod readback。

如果先不动

prod 保持现在的旧稳定态。

  • stage 不变。
  • prod 不切 default-on。
  • test 的验证结果保留作上线依据。
  • 模板修复线继续单独处理,不混进这次切换。