v1.21.2 事故后续——让静默失败变响 + 照片比例修复
v1.21.2 事故后续——让静默失败变响 + 照片比例修复
#263 静默断供事故的体系化后续(四连 PR)+ 一个肉眼半月没发现的照片 bug。全程贯彻三条纪律:先复现定位再动手、静默失败必须变响、新门禁做红色验证。
让静默失败变响(三层防线)
- ESLint 进 CI:no-const-assign 级"运行时 TypeError"问题编译期抓死(红色验证:对 #263 坏版本精确报出事故行);存量 74 条清零,零风格审美与现有代码零摩擦
- arc:digest 错误签名段:近 N 天 [ERROR] 按归一化签名归并(计数/环比/首现,新签名 🆕 置顶尖叫)——上线即首杀:抓出 Reflection 反思批静默炸了 8 天的现行 bug(getMemoriesV2 返回对象被当数组,"返回对象当数组/布尔"第二次踩同款)并修复
- proactive 死人开关:每小时心跳——近 6h 活跃用户 >0 但主动消息成功 =0 连续 2 周期 → CRITICAL + 运维邮件(复用 Resend 通道)。纯报警零自愈,夜间不误报,fail-open 有吞错 smoke。红色验证:沙箱精确模拟 #263 形态必须叫
照片比例修复("谁家好人自拍 1:1")
复现先行:总根因不是猜想的 v1.19 裁脸——是 v1.10.0 起所有照片落地必经的转码无条件 crop 1024×1024(请求侧还写死 size 1:1 双保险)。真跑实测:gemini 文本比例声明完全无效,但 3:4 画布参考图 → 输出原生 3:4。
修复三管齐下:机位路由(自拍/POV→3:4 竖、风景→4:3 横)+ provider 逐家 best-fit 原生参数 + i2i 参考裁 3:4 竖窗(锁脸不锁方)+ 落地按比例转码兜底。端到端验收三机位全部正确落地。防回归:photo_aspect_smoke(红色验证过)进 CI + 尺寸落库 + digest 比例分布段。
门禁
CI 22→25 项(+ESLint / 死人开关 / 照片比例)。观察周纪律:零 arc/emotion 阈值与转移逻辑改动。