fix(rectification): surface pricing failures and persist opening question
Independent Staging Quality Gate / validate (push) Successful in 12m42s
Independent Staging Quality Gate / publish (push) Successful in 22m34s

This commit is contained in:
Jesse_Chen
2026-08-31 15:16:23 +08:00
parent 29e331bc0d
commit 47b4b06bfb
10 changed files with 139 additions and 15 deletions
+10
View File
@@ -1060,3 +1060,13 @@
- holdout 遍历断言补上 `choice_frame` 非空。
- 引擎 `varga.d9` / `varga.d10``style_options` 时,断言打分 `choice_kind` 等于渲染 effective kind。断言先红(打分 `varga_style`、渲染 `existence`),已让 `conflictProbesFromContrast` 改用 `effectiveContrastChoiceKind`
- `varga_style` 的 B 选项 `weak_yes` 计入 `strong_conflict_count`,连答 3 次可淘汰对面分组;存在题 `weak_yes` 仍不计入强冲突(BUG-419)。
## 2026-08-31 - TASK-rectification-billing opening 问题槽决策
- 选择方案 1:成功的 `opening``message` 一样,在 Agent turn 完成后执行服务端确定性的 `persistNextInterviewIfIdle`。这复用现有问题槽持久化边界,不修改 Skill 版本或 sha256 绑定,也不依赖模型主动调用工具。
- `ensureNonTerminalTurnExit` 同样覆盖成功的 `opening`,但不覆盖 `read_only`opening 是新 Case 的非终态交互入口,必须满足 BUG-452 已建立的“存在 `current_question` 或真实可采用承载”不变量;该函数已自行跳过已有问题、已确认/已采用、用户停止和可采用区间,因此用于 opening 不会覆盖已有状态,只在前一步仍未形成承载时执行确定性兜底。`read_only` 不应产生新问题或改变会话状态。
- 任务 C 本轮只给交付建议,不实现 readiness 脚本、应用启动检查、seed migration 或定价数据写入。
- 建议在数据库 migration 成功后运行独立的环境 readiness 脚本,不放在应用启动期,避免每个实例重复探测或因业务配置缺失阻止无关只读能力启动。
- readiness 应枚举当前环境所有已发布模型的 `model_tier`,逐一检查 `rectification``chat.standard``report.full` 三个 feature 是否存在 `status='published' AND enabled=true` 的定价;任何组合缺失即以脱敏、可行动的运维错误 fail closed。
- readiness 只负责验证,不写入或 seed 价格;部署后仍必须通过 admin flow 为实际 tier 发布定价,随后再重跑 readiness。
- 本地验证:TypeScript、改动文件 ESLint、rectification `705/705`、consult/report 聚焦 `262/262` 通过;全量 `2368/2369`,唯一失败是默认 `python3` 缺少 PyYAML,改用已安装 PyYAML 的 `/opt/homebrew/bin/python3` 后对应文件 `39/39` 通过。