用户明确授权“直接上线更新”。已发布源提交 9953989ed6e757de23bb9379bc19697e2882a48f。
只更新应用网关 xiaoshu.app.gateway 的 updateLearningWords,以及数据库函数 xs_mobile_teaching_write(text,text,text,text,jsonb)。网关其余函数逐一比较保持不变;SQL 使用当前正式函数的定义,仅替换已审函数体并保留其他属性。没有执行整套迁移、清理重复数据或重新部署前端。
a8f27027e749f44b9ba28b9e3b7a4eebbe09026f19a797536562c9b2b97d29a9be6d3fa134ce400600be9ef245c53a8f5d9c151955f30c8e406ac4716b3393a89a24362b5ee24f7aced29bcf258f3a9391f4a923b43f33f511749d92fa4d6cdd2ef95cc5c2959dc3d10d16a198ed06e551afcaa5289767b305db3c3924d051b6备份当前正式网关及 SQL 定义,发布前确认函数未被其他任务修改。先事务更新 SQL 并回读,再选择性更新网关并回读,migration_status 正常。两处正式哈希均与待发布版本一致。
handler:调用 e_add_words 保存学员 1719、单元 158 的 73 个词,包含引发来源键冲突的 game / 586395,返回 HTTP 200。首次核验脚本把成功 retcode 错当作必须为 1,而正式网关成功为 0;该次保存已经正常返回,核验断言失败后写入由保存点回滚。修正核验为接受现有协议的 0/1 成功值后,完整保存、重试和还原检查全部通过,没有修改业务协议。
证据及回滚基线:/Users/mac/.local/state/xiaoshu/cloud-releases/2026-11-03-selection-save-release/,包含 preflight-result.json、sql-before.json、gateway-before.json、sql-published.json、cloud-published.json、production-verification.json 及前端版本基线。
原页面保存失败后的待确认状态与请求标识保留,可直接点击“重试保存”继续。上述验证证明正式保存入口可处理这批重复历史记录,不等于已永久提交老师当前待保存的识词结果。