fix(web): keep unrectified birth data usable without inventing a minute

Rectification stays optional. Reported minutes can consult and generate reports; date-plus-period uses a declared window instead of a midpoint or 00:00. Updates BUG-341.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Jesse_Chen
2026-08-21 15:29:58 +08:00
parent e7f4030e3f
commit 9958e00abc
34 changed files with 1441 additions and 169 deletions
+16
View File
@@ -5146,3 +5146,19 @@
- 相关记录:BUG-039、BUG-067
- 复发自:BUG-039(当时为了 attempt 隔离把增量攒到结算后,V9 流式合同被一起推迟)
- 修复版本:994f0583
## BUG-341 | 无准确出生分钟时普通咨询被整题拒绝并叉到生时校正
- 状态:resolved(本地修复,待提交与发布)
- 首次发现:2026-08-21
- 最近更新:2026-08-21
- 影响面:无具体出生分钟用户的普通 session、`POST /api/consult` 一般咨询与声明窗口咨询、首页「每日运势」与主题卡、General Agent / Window Agent、个人报告入口、无分钟输出 guard
- 用户现象:初始化只填了日期/地点或大致时段、没有准确到分钟的出生时间后,在普通咨询里问「今天的运势」会被回复「当前一般咨询模式不能生成个人星盘结论」,并要求在一般知识和生时校正里二选一。用户再点「出生时间校正」仍留在普通 session,模型把服务端当前时间误认为用户提供了出生时间,然后改口给公共日盘。时段用户也无法进入事业/婚恋等主题咨询。未校正但已填报到分钟的用户无法生成个人报告。
- 触发条件:`birth_time_source``period_only` / `unknown` 等无具体分钟状态;或已有 `reported_birth_time` 但状态仍是 `reported`/`candidate`;从首页「每日运势」或普通 session 发出今日运势或主题问题;或在同一普通 session 里发送「出生时间校正 / 生时校正」类标签。
- 根因:产品把生时校正当成功能门,而不是可选增强。无分钟用户被压进 `general_no_birth_time`General Agent 对任何本命预测整题拒绝并给出「百科 / 生时校正」二选一;首页无分钟日运还把 `daily_starlanguage` 入口丢掉。报告入口只认 `accepted`/`confirmed`,把未校正填报分钟也拦掉。这是 BUG-202 的回归叠加产品能力分层缺失。
- 修复:校正改为可选。未校正填报分钟走 `unverified_birth_time`,可用咨询、今日星语和完整报告(标明未校正)。只有日期+时段或未知时刻走 `declared_birth_window`:约 4 个探针比较稳定层/变动层,禁止把中点、`00:00`、中午或探针写成出生分钟;主题咨询用窗口工具,每日运势仍走公共 Panchanga。无分钟百科咨询保留给真正没有日期/地点的情况。报告使用 `reported_birth_time` 且不把 reported 映射成 accepted。普通 session 的生时校正标签打开校正会话。
- 验证:`frontend/tests/consultation-entrypoint.test.ts``frontend/tests/consultation-birth-time-mode.test.ts``frontend/tests/consultation-route-service.test.ts``frontend/tests/declared-birth-window.test.ts``frontend/tests/starter-questions.test.ts``frontend/tests/personal-report-api.test.ts``frontend/tests/timing-output-guard.test.ts``tests/test_declared_window_chart.py`
- 防复发:`period_only` / `unknown` 不得再进无盘死胡同。窗口探针不得用时段中点、`00:00` 或任意单一分钟冒充出生时间。窗口请求不得携带 `hour`/`minute`。未校正填报分钟可出报告,窗口用户仍不得出完整本命报告。无分钟「每日运势」不得把 `daily_starlanguage` 丢掉。普通 session 不得把生时校正标签当一般咨询原文。General Agent 不得再写「exactly two safe next steps」。
- 相关记录:BUG-009、BUG-073、BUG-202、BUG-273
- 复发自:BUG-202(服务端公共日盘已修好,首页无分钟入口后来又把 entrypoint 丢掉,普通 session 仍走整题拒绝;校正还被当成功能门)
- 修复版本:待提交