docs(bugs): BUG-1049/1050/1051 deployed to staging e8195783

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
This commit is contained in:
Jesse_Chen
2026-09-26 22:49:35 +08:00
co-authored by Claude Opus 5.5
parent e8195783f8
commit 5f2e007f64
+6 -6
View File
@@ -14077,7 +14077,7 @@
## BUG-1049 | 生时校正开场没有例子、满是行话,用户不知道该答什么 ## BUG-1049 | 生时校正开场没有例子、满是行话,用户不知道该答什么
- 状态:resolved(代码与回归测试已完成,分支 `codex/rectification-opening-plain-20260926` 未推;部署与真机清单待验收) - 状态:resolved(已部署 staging:门禁 run 2952(前端 4081 / 0 fail / 0 skip,Python 948 passed)、deploy run 2954,`/api/health` gitCommit = `e8195783`;真机清单待产品走)
- 首次发现 / 最近更新:2026-09-26 / 2026-09-26 - 首次发现 / 最近更新:2026-09-26 / 2026-09-26
- 影响面:`frontend/src/lib/rectification-agentic/user-copy.ts`(`GENERIC_COLLECT_QUESTION`、`OPENING_COLLECT_DOMAINS`、`openingSpokenBody`、`isAcceptableOpeningBody`)、`v9/collect-prompt.ts`(`stripQuestionSentences` / `isQuestionSentence`)、`v9/agent-run-messages.ts`(`buildOpeningBrief`)、`v9/agent-run-attempt.ts`(开场正文验收)、`v9/method-followup.ts`(`spokenFollowupForUser`)、`mastra/rectification-v9-tools.ts`(`rectification-set-focus`)、`mastra/agentic-rectification.ts`(开场说明)、Skill `jyotish-birth-time-rectification` §4 OpeningPolicy 与 `references/conversation-strategy.md` §2。 - 影响面:`frontend/src/lib/rectification-agentic/user-copy.ts`(`GENERIC_COLLECT_QUESTION`、`OPENING_COLLECT_DOMAINS`、`openingSpokenBody`、`isAcceptableOpeningBody`)、`v9/collect-prompt.ts`(`stripQuestionSentences` / `isQuestionSentence`)、`v9/agent-run-messages.ts`(`buildOpeningBrief`)、`v9/agent-run-attempt.ts`(开场正文验收)、`v9/method-followup.ts`(`spokenFollowupForUser`)、`mastra/rectification-v9-tools.ts`(`rectification-set-focus`)、`mastra/agentic-rectification.ts`(开场说明)、Skill `jyotish-birth-time-rectification` §4 OpeningPolicy 与 `references/conversation-strategy.md` §2。
- 用户现象:产品 09-26 staging(`e53052a2`)真机:新建生时校正,开场只有「眼下按 04:45–05:15 来核对,用你记得的经历对照大运和盘面变化。最后给区间和代表分钟,不给精确到秒。」和题干「先说你最容易想起的一两件,年月大概就行。」——没有任何例子,不知道「一两件」指什么,还有大运、盘面、代表分钟、精确到秒这些没解释过的词。 - 用户现象:产品 09-26 staging(`e53052a2`)真机:新建生时校正,开场只有「眼下按 04:45–05:15 来核对,用你记得的经历对照大运和盘面变化。最后给区间和代表分钟,不给精确到秒。」和题干「先说你最容易想起的一两件,年月大概就行。」——没有任何例子,不知道「一两件」指什么,还有大运、盘面、代表分钟、精确到秒这些没解释过的词。
@@ -14088,11 +14088,11 @@
- 验证:`frontend/tests/rectification-opening-plain-20260926.test.ts`(零证据开场题干含「比如」「例如」与六个例子、唯一年份是示例里的 2015;有带日期经历或重问时不用该题干;模型改写 `spokenPrompt` 时 set-focus 仍存服务端题干;服务端拼接、GET 组装、客户端合并三条路径正文两句都在、题干只出现一次;09-26 staging 实际存下的旧正文例子句在新去重下保留;逐句复述题干仍被去掉;近似改写一两个词仍算复述;正文无行话、旧兜底正文与一句招呼不被接受)、`frontend/tests/rectification-opening-plain-20260926.test.tsx`(挂真实 `RectificationAgenticChat`,自动发开场、流式结算、快照合并后:正文两句在、题干与六个例子各 1 次、开场这一轮无行话)。三条旧断言按三栏注释恢复为 BUG-504 口径。截图:`docs/testing/rectification-opening-plain-20260926/`。 - 验证:`frontend/tests/rectification-opening-plain-20260926.test.ts`(零证据开场题干含「比如」「例如」与六个例子、唯一年份是示例里的 2015;有带日期经历或重问时不用该题干;模型改写 `spokenPrompt` 时 set-focus 仍存服务端题干;服务端拼接、GET 组装、客户端合并三条路径正文两句都在、题干只出现一次;09-26 staging 实际存下的旧正文例子句在新去重下保留;逐句复述题干仍被去掉;近似改写一两个词仍算复述;正文无行话、旧兜底正文与一句招呼不被接受)、`frontend/tests/rectification-opening-plain-20260926.test.tsx`(挂真实 `RectificationAgenticChat`,自动发开场、流式结算、快照合并后:正文两句在、题干与六个例子各 1 次、开场这一轮无行话)。三条旧断言按三栏注释恢复为 BUG-504 口径。截图:`docs/testing/rectification-opening-plain-20260926/`。
- 防复发:开场题干必须带例子(BUG-504 口径恢复),且由服务端固定,不由模型改写。任何改开场正文或题干的提交,必须同时有「正文 + 题干走过 GET 组装与客户端合并后用户看到什么」的断言,不能只测单个字符串。去重不得再按前缀判定。 - 防复发:开场题干必须带例子(BUG-504 口径恢复),且由服务端固定,不由模型改写。任何改开场正文或题干的提交,必须同时有「正文 + 题干走过 GET 组装与客户端合并后用户看到什么」的断言,不能只测单个字符串。去重不得再按前缀判定。
- 相关记录:BUG-504、BUG-604、BUG-646、BUG-648、BUG-585、BUG-1045、BUG-969、BUG-621。 - 相关记录:BUG-504、BUG-604、BUG-646、BUG-648、BUG-585、BUG-1045、BUG-969、BUG-621。
- 修复版本:分支 `codex/rectification-opening-plain-20260926`(本地提交,未推)。 - 修复版本:`8fc1a5bd`,随 `e8195783` 部署 staging(run 2954)。
## BUG-1050 | 生时校正步骤回执写内部名,同一步显示两次 ## BUG-1050 | 生时校正步骤回执写内部名,同一步显示两次
- 状态:resolved(代码与回归测试已完成,分支未推;真机清单待验收) - 状态:resolved(已部署 staging:门禁 run 2952(前端 4081 / 0 fail / 0 skip,Python 948 passed)、deploy run 2954,`/api/health` gitCommit = `e8195783`;真机清单待产品走)
- 首次发现 / 最近更新:2026-09-26 / 2026-09-26 - 首次发现 / 最近更新:2026-09-26 / 2026-09-26
- 影响面:`frontend/src/lib/rectification-activity-labels.ts`(完成名、进行中句、点选活动句、慢步骤句、完成列表)、`frontend/src/lib/rectification-timeline-adapter.ts`(`rectificationTimelineRows`)。 - 影响面:`frontend/src/lib/rectification-activity-labels.ts`(完成名、进行中句、点选活动句、慢步骤句、完成列表)、`frontend/src/lib/rectification-timeline-adapter.ts`(`rectificationTimelineRows`)。
- 用户现象:同一次开场,回答上方写「已完成 3 步 / 读取校正记录 / 设置对话焦点 / 设置对话焦点」:步骤名是内部说法,「设置对话焦点」出现两次。 - 用户现象:同一次开场,回答上方写「已完成 3 步 / 读取校正记录 / 设置对话焦点 / 设置对话焦点」:步骤名是内部说法,「设置对话焦点」出现两次。
@@ -14103,11 +14103,11 @@
- 防复发:步骤名面向用户,改名先对照 VOICE;时间线任何按调用次数追加的地方,展示前都走同一个去重投影。 - 防复发:步骤名面向用户,改名先对照 VOICE;时间线任何按调用次数追加的地方,展示前都走同一个去重投影。
- 相关记录:BUG-1047、BUG-1049、BUG-725。 - 相关记录:BUG-1047、BUG-1049、BUG-725。
- 复发自:无。 - 复发自:无。
- 修复版本:分支 `codex/rectification-opening-plain-20260926`(本地提交,未推)。 - 修复版本:`8fc1a5bd`,随 `e8195783` 部署 staging(run 2954)。
## BUG-1051 | 普通咨询回答写到一半被掐断,仍按完成扣点、不提示未完成 ## BUG-1051 | 普通咨询回答写到一半被掐断,仍按完成扣点、不提示未完成
- 状态:resolved(本地修复,真实 Mastra 流回归测试通过;未推送、未部署,真机清单 `docs/testing/consult-answer-truncation-20260926.md` 待走) - 状态:resolved(已部署 staging:门禁 run 2952(前端 4081 / 0 fail / 0 skip,Python 948 passed)、deploy run 2954,`/api/health` gitCommit = `e8195783`;真机清单待产品走)
- 首次发现 / 最近更新:2026-09-26 / 2026-09-26 - 首次发现 / 最近更新:2026-09-26 / 2026-09-26
- 影响面:`POST /api/consult` 的三条 agentic 路径(本命、申报时段、无出生分钟);`frontend/src/lib/stream-agent-response.ts` 的 `consumeAttempt` / `continueCurrentAnswer` / `finishPass4` / 结算段;`frontend/src/mastra/consultation-tools.ts` 时间常数;`frontend/src/lib/agent-observability.ts`;`frontend/src/app/api/consult/route.ts` 的 `composeAnswer` / `continueAfterLength` / `retryForAnswer`。 - 影响面:`POST /api/consult` 的三条 agentic 路径(本命、申报时段、无出生分钟);`frontend/src/lib/stream-agent-response.ts` 的 `consumeAttempt` / `continueCurrentAnswer` / `finishPass4` / 结算段;`frontend/src/mastra/consultation-tools.ts` 时间常数;`frontend/src/lib/agent-observability.ts`;`frontend/src/app/api/consult/route.ts` 的 `composeAnswer` / `continueAfterLength` / `retryForAnswer`。
- 用户现象:staging `e53052a2`(2026-09-26 21:24 CST)一次普通咨询,回答停在一个二级标题之后的半句上;活动区写「已完成 7 步」,没有出现「回答未完成,已保留现有内容;本次不会扣点。」,会话按完成保存并扣点。 - 用户现象:staging `e53052a2`(2026-09-26 21:24 CST)一次普通咨询,回答停在一个二级标题之后的半句上;活动区写「已完成 7 步」,没有出现「回答未完成,已保留现有内容;本次不会扣点。」,会话按完成保存并扣点。
@@ -14126,4 +14126,4 @@
- 防复发:结算只认 `finish = stop`,任何新的写回答流都要经过同一判定。流的超时 / 中止回归一律用真实 Mastra `Agent` + 假模型产生的流(abort 块 + `finish(tripwire)`),不得手工 `throw`。每个新加的模型流要有自己的时间预算,并用源码合同锁住它不与工具循环共用 signal。 - 防复发:结算只认 `finish = stop`,任何新的写回答流都要经过同一判定。流的超时 / 中止回归一律用真实 Mastra `Agent` + 假模型产生的流(abort 块 + `finish(tripwire)`),不得手工 `throw`。每个新加的模型流要有自己的时间预算,并用源码合同锁住它不与工具循环共用 signal。
- 相关记录:BUG-305(原记录)、BUG-944(「每个 stream 自己的预算」未落到 compose)、BUG-612(同一 tripwire / 110 秒形状)、BUG-280(回答重试没有独立时间预算,本单一并挂到答案时钟上)。 - 相关记录:BUG-305(原记录)、BUG-944(「每个 stream 自己的预算」未落到 compose)、BUG-612(同一 tripwire / 110 秒形状)、BUG-280(回答重试没有独立时间预算,本单一并挂到答案时钟上)。
- 复发自:BUG-305(半截回答被当成功并扣点;原防线只拦「抛出的超时」与 `length`,没拦 Mastra 不抛错的 abort)。 - 复发自:BUG-305(半截回答被当成功并扣点;原防线只拦「抛出的超时」与 `length`,没拦 Mastra 不抛错的 abort)。
- 修复版本:分支 `codex/consult-answer-truncation-20260926`(本地提交,未推送)。 - 修复版本:`1530a0dd`,随 `e8195783` 部署 staging(run 2954)。