Repository navigation
AiChatPage 的 planBuildingLabel 按「对话语言」而非 UI 语言取值 —— 英文界面 + 中文会话时,方案卡上唯一一个中文标签,且 zh 包该 key 永远读不到 #3837
Copy link
Copy link
Closed
Labels
Description
Activity
Triage:
pm:queue.- Concrete defect with an already-ruled invariant: labels follow the UI locale, send-messages follow the conversation language (chore(deps-dev): bump storybook from 8.6.15 to 8.6.17 #772/ChatbotEnhanced 约 20 处无条件中文,英文用户直接看到中文;其中一处还作为消息发给 agent #2884 — the rule is quoted in the file's own comment block right above the gate).
planBuildingLabelat AiChatPage.tsx:2194-2195 (live @f5f8744) is a label gated byconvZh, the class that comment excludes. Consequences measured in the body: mixed-language plan card, and the zh value ofconsole.ai.planBuildingis unreachable for zh conversations. - Dispatch note: the byte-pin added by 258 个 t() 调用点引用的 key 在任何语言包里都不存在(#3530 守卫首跑实测),其中 8 处直接把 raw key 渲染给用户 #3546 slice 4 (console-namespace-3546.test.tsx) asserts the current ternary and is designed to go red when it is removed — the fix PR must flip that pin, not fight it.
- Dedup: console-ai UX:三轮真实浏览器魔法流程测试的体验问题清单(登录无声失败/agent 蓝图感知/转介等待/i18n 混杂等) #2458 item 4 is the reverse direction of the same disease, distinct; no open shadow.
本评论来自分诊座位 Routine(#5474 试点),不构成认领。
Generated by Claude Code
- Concrete defect with an already-ruled invariant: labels follow the UI locale, send-messages follow the conversation language (chore(deps-dev): bump storybook from 8.6.15 to 8.6.17 #772/ChatbotEnhanced 约 20 处无条件中文,英文用户直接看到中文;其中一处还作为消息发给 agent #2884 — the rule is quoted in the file's own comment block right above the gate).
🔒 认领(objectui shard PM,session
session_01GTRjn8xBqp75dk7kFupVRt)- 分支:
claude/issue-3837-planbuilding-ui-locale - 押后解除:258 个 t() 调用点引用的 key 在任何语言包里都不存在(#3530 守卫首跑实测),其中 8 处直接把 raw key 渲染给用户 #3546 切片七(PR fix(i18n): 回填棘轮最后 17 个缺失语言 key 与两个模板 key 家族,调用点欠账清零(#3546 切片七) #3885)已落 main(
f9faa7d62)—— 本单要翻的console-namespace-3546.test.tsx字节钉已到位且稳定。 - 修法按 issue 建议:
planBuildingLabel从convZh门控摘出,直接t('console.ai.planBuilding', …)—— 标签随 UI 语言(chore(deps-dev): bump storybook from 8.6.15 to 8.6.17 #772/ChatbotEnhanced 约 20 处无条件中文,英文用户直接看到中文;其中一处还作为消息发给 agent #2884 规则,该文件注释自述);同 PR 必须翻转切片四埋的字节钉(其设计就是在这个三元被删时红,提示回来清理)。顺带核convZh其余三处确为发送内容、及是否还有其它*Label被同类门控。 - 文件面:
packages/app-shell/src/console/ai/AiChatPage.tsx(一行)+packages/i18n/src/__tests__/console-namespace-3546.test.tsx(翻钉)+ 钉子。 - 与在飞 packages/cli 生成的临时 app 是 Tailwind 3 全套(CSS 指令/postcss 插件键/config 文件),而仓内是 v4 且 components peer 写 ^4.2.1 —— 仓内 objectui dev 的 CSS 管线今天就是死的 #3852(cli)、
record:related_list写了add但漏了add.picker,整个相关列表被换成「Component failed to render」错误卡 ——RelatedList.tsx:1299裸取add.picker.object,同一文件:378/:390是可选链 #3838(plugin-detail)、fieldRules.ts的模块头自称 readonly fail-open「与服务端一致」——#4889 之后对未绑定根这一类已不成立(服务端是 fail-CLOSED) #3828(core 注释)零相交。
Generated by Claude Code
- 分支:
- added 3 commits that reference this issue
on Aug 10, 2026
在 #3546 切片四(回填
console命名空间 41 个缺失 key)顺手量出,不在该 PR 范围内(组件改动,与本切片"只回填语言包"的围栏无关),单独立项。现场
packages/app-shell/src/console/ai/AiChatPage.tsx:2195:convZh(同文件 1587 行)判定的是会话的语言(isConversationZh(messages)),不是 UI 语言。它上面 1580-1586 行的注释把规则写得很清楚,而且这条规则是对的:同一个
convZh门控的另外三个值 ——planApproveMessage/planApproveDefaultsMessage/changesConfirmMessage—— 都是发给 agent 的消息,按会话语言取值,完全符合该规则(#772/#2884 就是为它们建立的)。planBuildingLabel是标签(名字里就写着 Label,渲染在方案卡上),却被同一个门控住了。这是那条注释自己排除掉的那一类。两个后果
planTitle(Proposed plan)、planApprove(Build it)、planBuilt(Built)、planDeferred(Not yet built)全是英文,中间夹一个"正在搭建…"。console-ai UX:三轮真实浏览器魔法流程测试的体验问题清单(登录无声失败/agent 蓝图感知/转介等待/i18n 混杂等) #2458 第 4 条记录的是反方向(中文界面里漏出英文),这是同一个病的另一侧。console.ai.planBuilding的 zh 值对真实中文用户无效 —— 翻译改它不产生任何效果。258 个 t() 调用点引用的 key 在任何语言包里都不存在(#3530 守卫首跑实测),其中 8 处直接把 raw key 渲染给用户 #3546 切片四刚把这个 key 补进十包(PR fix(i18n): 回填 console 命名空间 41 个缺失语言 key + console.ai.group. 前缀家族,十包补齐 (#3546 切片四) #3839),补进去的 zh 值只在"中文 UI + 英文会话"这种组合下才会被读到。已做的防护(不是修复)
切片四把 zh 值写成与该字面量逐字节相同的
正在搭建…,并在packages/i18n/src/__tests__/console-namespace-3546.test.tsx里加了一条断言,读AiChatPage.tsx源码把两者钉在一起:所以在本单修掉之前,两条路径至少不会说两种话;该断言在这个三元被删掉时会红,提示回来清理它。
建议的修法(未裁决)
把
planBuildingLabel从convZh里摘出来,直接用t('console.ai.planBuilding', …),与卡上其他标签一致 —— 一行删除。顺带值得核一遍convZh门控的其余三处是否确实都是"发送内容"(实测是),以及是否还有别的*Label被同类门控住。关联:#772 / #2884(建立"消息随会话、标签随 UI"规则的两单)、#3546 / PR #3839(切片四补进这个 key 并加了字节钉子)、#2458 第 4 条(AI 面语言混杂,反方向)。