fix(consult): keep career type off significators and warm off the compute cap

The career checklist now says significators are only for strength and affliction. Chart-save warm no longer takes a heavy-compute slot.

Biography severe conflicts fell from 3 to 1. One career answer still names a direction from a planet nature, so this is not accepted for merge. Not pushed.
This commit is contained in:
jesse-ux
2026-10-09 10:28:44 +08:00
parent 3ad8e80077
commit fc3a2e680d
8 changed files with 195 additions and 3 deletions
+32
View File
@@ -17455,3 +17455,35 @@
- 相关记录:BUG-1251、BUG-1296。
- 复发自:无。
- 修复版本:本分支提交。未部署。
## BUG-1301 | 事业判断表的代表星被读成职业类型
- 状态:investigating(分支 `codex/consult-card-full-source-20261007`,清单已加一条,回测仍有 1 次;未推送、未合入、未部署)
- 首次发现 / 最近更新:2026-10-09 / 2026-10-09
- 来源:修复单 G1。前一轮生平回测严重冲突 1 → 3,新增的两次都是同一位公开球星的事业题。
- 影响面:普通咨询的事业回答。判断表仍保留代表星、旺弱和功能吉凶,没有删行,也没有改取值。
- 现象:模型把入庙、功能吉、又是当前小运主星的水星,读成说、写、算或知识、表达、信息这一类工作,并压低外面认不认你。
- 触发条件:事业题,判断表同时点出自然代表星、Jaimini 代表星或大运主星的星性。
- 根因:既有「不猜行业、问用户」没有写明这些代表星只能看力量和受冲。模型用星的本性补上了职业类型。
- 修复:事业清单加一条,不进系统提示。本轮回测严重冲突 3 → 1,对照组误报仍是 0。齐达内事业两次里仍有一次按星性写方向,所以这条不标 resolved。
- 验证:`frontend/tests/consult-condensed-checklist-20260927.test.ts` 锁住这句,并锁住系统提示源码切片仍是 15,291 字符。生平回测 72 份、失败 0。阅读评分见 `docs/tasks/PROGRESS-consult-card-full-source-fix2-20261009.md`。
- 防复发:上述测试。合入仍要求严重冲突 ≤ 1,且齐达内事业两次都不再按星性写职业类型。
- 相关记录:BUG-1176。
- 复发自:无。产品 2026-10-03「不猜行业、问用户」没有拦住判断表上的星性。
- 修复版本:清单已写进本分支。回测未达标。未部署。
## BUG-1302 | 保存后的预热占用重计算名额
- 状态:resolved(分支 `codex/consult-card-full-source-20261007`,本地未推送、未合入、未部署;有针对性回归测试)
- 首次发现 / 最近更新:2026-10-09 / 2026-10-09
- 来源:修复单 G2。
- 影响面:星盘保存成功后的后台预热,以及紧接着的用户提问。保存响应本身仍然不等待预热。
- 现象:预热走完整的 `/api/consultation_workflow`,会先占一个重计算名额。名额默认 2,占满返回 429。用户保存后立刻提问,可能撞上自己的预热。
- 触发条件:请求体 `consult_card_warm_only` 为 true。名额在读完 JSON 之后、进入预热分支之前就申请。
- 根因:预热标志只让计算提前返回,没有跳过名额申请。
- 修复:仅当路径是 `/api/consultation_workflow` 且 `consult_card_warm_only` 为 true 时不申请名额。不新增 API 类方法。预热失败仍不影响保存。
- 验证:`tests/test_api_heavy_compute_gate.py` 把上限设为 1,预热进行中时用户请求能进入计算,同时再来的用户请求仍因名额返回 429。`tests/test_api_server_growth_contract.py` 通过。`jyotish_api_server.py` 10,970 行,粗护栏上限 11,224。
- 防复发:上述并发测试。
- 相关记录:BUG-1300。
- 复发自:无。
- 修复版本:本分支提交。未部署。
@@ -0,0 +1,53 @@
# PROGRESS · 对话卡同源第二轮修复(2026-10-09)
分支 `codex/consult-card-full-source-20261007`。已 rebase 到 `origin/staging` `8bb7ff93`。状态:执行中。G3 未通过。未推送,未合入,未上线。
## 结论
事业清单加了「代表星只看力量和受冲」,预热不再占重计算名额。生平回测严重冲突从 3 降到 1,对照组误报仍是 0。齐达内事业两次里还有一次按星性写方向,不合入,不让步。
## 修复
| 项 | 做法 | 结果 |
| --- | --- | --- |
| G1 事业清单 | 规则写在 `consultation-condensed-checklist.ts` 的事业列表,不进系统提示。不删判断表的行,不改取值。 | 测试锁住这句。系统提示源码切片仍是 15,291 字符。回测未过,见下表。BUG-1301,仍 investigating。 |
| G2 预热名额 | `consult_card_warm_only` 为 true 时不申请重计算名额。不新增 API 类方法。保存仍不等待预热。 | 上限设为 1 时,预热进行中用户请求能进入计算,另一条用户请求仍 429。BUG-1302。 |
| G3 回测 | 9 人 × 4 领域 × 2 次。改前用上一轮已挂事实卡的 72 份。改后用同一份事实、同一把临时 key,只多了这一条清单。 | 严重冲突 3 → 1。齐达内事业第 2 次仍按星性写方向。 |
其他领域清单里,按星性推断能力的只有学业:「4、9 宫受冲而 5 宫、水星有力,常见学历这条路不顺,本事不靠学历」。本轮只列出,没有改。婚恋、父母、健康里的「两个及以上」是受冲范围,不是按星性猜职业。
`scripts/jyotish_api_server.py` 10,970 行,粗护栏 11,224。类方法数没有增加。`page.tsx` 没有改。系统提示文件没有改。
## 生平回测
模型 `deepseek-flash`。key 只在当次命令的环境变量里,没有写入仓库、日志正文或本文。引擎仍是 golden 桩,参照日 2026-09-27,岁差 raman,交点 mean。判断靠阅读,脚本只写确定性检查。
| 项 | 改前(上一轮事实卡) | 改后(加了这条规则) |
| --- | --- | --- |
| 份数 / 失败 / 空答 | 72 / 0 / 0 | 72 / 0 / 0 |
| 墙钟 | 920.9 秒 | 958.5 秒 |
| 严重冲突 | 3 | 1 |
| 对照组误报 | 0 | 0 |
| 行业类型冲突 | 3 | 1 |
| 事业题请问一句 | — | 18 / 18 |
| 禁句 / 性别代词 / must_not 原文 | 0 / 0 / 4 | 0 / 0 / 3 |
| 平均秒 / 平均卡字符 / 最大卡 | 49.9 / 14,129.8 / 16,281 | 50.0 / 14,139.4 / 16,281 |
| 平均输入 / 输出 / 推理 / 缓存输入 | 28,655.8 / 9,328.0 / 8,736.1 / 21,240.9 | 29,472.2 / 9,566.8 / 9,003.8 / 21,968.0 |
改前的 3 条严重冲突是泰勒事业第 2 次,加齐达内事业两次。改后泰勒两次和齐达内第 1 次不再把行业写成另一类,也不再压低「外面认不认你」。齐达内第 2 次仍把方向写成知识、表达、信息和资源,并写名声不是一次亮相。其余 17 份事业题没有写成分析、顾问、技术,也没有写成幕后或不靠曝光。
对照组里「不常在 / 不在身边」出现在布什父母两次和齐达内父母第 2 次,都是「可能这样,也可能人在、只是话少」的两头范围,不算误报。其余领域没有把对照盘写成终身重病、多段婚姻或父母缺席的定论。
用量合计:输入 2,122,001,输出 688,813,推理 648,271,缓存输入 1,581,696。
## 本机检查
| 项 | 结果 |
| --- | --- |
| 事业清单测试 | 6 条通过。含新句子和系统提示长度。单领域含清单仍 ≤ 20,000。 |
| 预热名额、增长合同、对话卡测试 | 通过。 |
| tsc | 0 |
| lint | 0 error,125 条原有 warning,没有清理。 |
| 快速门、Python 全量、npm test 全量、next build、Linux | 本轮没跑。不把上一轮 Windows 快速门当成通过。 |
G4 未完成。G3 未过,状态保持执行中。
+2 -1
View File
@@ -130,7 +130,8 @@
| 任务书 | 进度 | 主题 | 状态 | 落点 |
| --- | --- | --- | --- | --- |
| `TASK-consult-card-full-source-20261007.md` | `PROGRESS-consult-card-full-source-20261007.md` | **对话数据卡与报告同源 + 领域综合判断表**:事业卡只有约 7,600 字符、无自然代表星、无大运主星关系、D10 联动只能补取、补取上限 1;全 12 领域;综合判断表、参与清单(不止 D1/D9,含精度闸)、补取 3 次、资料目录均已确认;KP 不上卡、不联网、不接书籍语料;排在 sync6 与报告单之后 | 验收未通过(`35dafd1e`,见 fix-20261009) | `codex/consult-card-full-source-20261007` |
| `TASK-consult-card-full-source-fix-20261009.md` | `PROGRESS-consult-card-full-source-fix-20261009.md` | **对话卡同源修复**:缓存键无日期致当前大运冻结、整卡 37.5K(每格带内部路径)、星照整列 blocked(资料库其实有出处)、前端测试手写数据、无预热;合入前用临时 key 跑模型 A/B 与生平回测 | 执行中(F6 严重冲突 1→3,未让步) | `codex/consult-card-full-source-20261007` |
| `TASK-consult-card-full-source-fix-20261009.md` | `PROGRESS-consult-card-full-source-fix-20261009.md` | **对话卡同源修复**:缓存键无日期致当前大运冻结、整卡 37.5K(每格带内部路径)、星照整列 blocked(资料库其实有出处)、前端测试手写数据、无预热;合入前用临时 key 跑模型 A/B 与生平回测 | F1–F5 已验收,F6 未过(见 fix2) | `codex/consult-card-full-source-20261007` |
| `TASK-consult-card-full-source-fix2-20261009.md` | `PROGRESS-consult-card-full-source-fix2-20261009.md` | **对话卡同源第二轮**:齐达内事业被「水星=说写算」带偏致严重冲突 1→3;事业清单加「代表星只看力量受冲、不按星性猜职业」后重跑回测(≤1 才合入);预热改为不占重计算名额 | 执行中(G3:齐达内事业仍有 1 次按星性写方向,未让步) | `codex/consult-card-full-source-20261007` |
| — (产品 09-27 拍板 D1–D4,直接执行) | [PROGRESS](PROGRESS-home-landing-blank-20260927.md) | **登录后 / 裸 `/` 落空白首页**:真机登录后在「首页」提问其实问进了上一次生时校正。删登录返回存根(401 / 次级页链接写、登录后写回 `?c=` 打开),裸 `/` 不再落最近会话,一律当前人物的空白首页(复用空草稿);`?c=` / `?new=1` / 对话内刷新不变;推翻 BUG-1038 存根与 BUG-599 默认落点 | 已验收(真机欠) | `codex/home-landing-blank-20260927`(BUG-1052,本地未推) |
| — (产品 09-26 口头拍板 D1–D3,直接执行) | `PROGRESS-consult-answer-truncation-20260926.md` | **普通咨询回答写到一半被掐断仍扣点(BUG-1051,复发自 BUG-305)**:工具循环与写回答共用 110 秒 signal;Mastra 1.50 超时不抛错(`abort` 块 + `finish(tripwire)` 后正常关流),结算只认抛错与 `length`。D1 写回答自有 70 秒时钟(首用起算,续写 / 回答重试共用,最坏 180 秒,`maxDuration` 240);D2 写回答的最后一个流不是 `stop` 且有正文 → `answer_truncated`、不扣点、记 abort 步、不冲半句,`length` 续写不变;D3 观测加 `composeFinishReason` / `composeAborted` / `answerVisibleChars` | 已验收(真机欠) | `codex/consult-answer-truncation-20260926`(本地,未推送);新回归 15 条用真实 Mastra `Agent`(修复前 11 条红);全量失败名单 0 新增;Python 948/1;`/` ○、gzip 0%;真机清单 `docs/testing/consult-answer-truncation-20260926.md` |
| `TASK-consult-evidence-card-research-20260927.md` | `PROGRESS-consult-evidence-card-research-20260927.md` | **普通对话数据卡调研**:引擎输出逐项分五类计量(现约 4 万 token、父母问题相关约 3.5%);四处领域→技法来源对账并起草各领域数据卡(家庭拆父母/子女);卡体量与逐字一致性;按卡算的提速空间;反馈迭代埋点方案。只调研不改线上 | 已验收(待产品拍板 7 项) | `codex/consult-evidence-card-research-20260927` 快进 staging;报告 `docs/research/consult_evidence_card_research_2026_09_27.md`;投影缺口记 BUG-1054 investigating |