Repository navigation
fix(research): follow interface language in deep analysis - #6955
Conversation
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
loopx-agent
left a comment
There was a problem hiding this comment.
Reviewer: model_agent · gpt-6.1-sol · OpenAI · runtime_reported · reasoning_effort=max
动机
中文界面中的研究使用者点击深度分析,是为了读懂实验结论与依据。 过去中文界面仍显示英文分析理由;现在中文请求生成中文问题解读、理由和限制说明,原始问题与引用仍可展开。 语言切换后只读对应缓存,缺少该语言结果时由用户明确点击分析;查看原文不会改写证据。 本次不翻译或重写原始研究轨迹,不修改 solver、评分、来源权限或研究预算。 模型翻译质量尚未独立校准;正式 App 的安装采用与真实模型输出仍需在交付环节读回。
改动思路
语言属于现有分析请求的展示意图,应由同一分析 owner 绑定提示、结果与缓存;前端临时翻译或新增服务无法同时保证重试和引用身份。 本 PR 完整贯通现有分析请求和结果展示,保留原证据与显式执行;不扩展 solver、评分或权限。
同一份固定证据包在中文、英文请求下保留相同的包身份,分析任务使用不同的键。界面已经知道当前语言,无需用户再次填写。只有点击现有分析按钮才执行模型;切换语言只是读取对应缓存。原始问题放入按需展开,引用仍读取原始文件的准确行,避免把新生成的解读冒充原始证据。
| 触发 | 结果 |
|---|---|
| 中文或英文只读打开 | 读取该语言缓存,无模型调用 |
| 明确执行或重试 | 同一 owner 生成对应语言结果,保留独立任务 |
| 语言与键不一致 | 拒绝,不复用或取消另一语言任务 |
具体改动
本次依据修改前的 docs/development/design.md,固定版本 e465f85bcfc3b383b3c13f7d910b86a4fb8e144a。owner-language-first 由前端当前语言贯通请求与提示实现;preserve-evidence 由同一份输入、引用和原始问题读回验证;on-demand-original 保留原始问题按需展开;decide-in-place 复用现有设置和显式执行,不增加必填配置或确认轮次。新增的设计条款把这次遗漏明确化,没有用新写的条款自证实现。
关键代码讲解
prepareTrajectoryAssessment(trajectory_assessment.ts:95)严格验证输出语言,将语言及语言指令加入分析身份。未指定语言时保留原有键和提示,不能给旧结果贴上中文标签。qualifyTrajectoryAssessment(同文件:117)要求每个原始片段恰好一个本地化问题,拒绝遗漏、重复和虚构 ID。原六指标、未知值、分母与引用校验仍走原规则。inspect_pack(trajectory_assessment_store.py:358)在原登记和源文件校验之上选择语言任务。execute/retry/cancel/read_citation 使用同一选择,避免中文键取消英文任务;旧方法结果继续通过原字节证明读取。useResearchAnalysis(goal-research-analysis.tsx:27)在每个读取和执行请求中发送当前语言,同步隐藏不同语言快照,利用现有 generation/sequence 拒绝迟到结果。两个结果视图优先显示生成的问题解读,并保留原问题可展开。
配套改动包括现有 HTTP 参数传输、browser-safe 类型、协议说明及共享设计规范。测试在已有用例中加入语言覆盖,公开图片全部使用合成资料,不发布真实原轨迹。8 项 TS owner 验证、30 项 HTTP/store/实际临时子进程验证及最终语言/取消单测通过;打包浏览器验证中英文读回、390px、原问题和引用往返、刷新/返回与错误重试,且没有隐式分析 POST。
对主干的风险
主要风险是语言切换复用错误缓存,以及新的解读丢失原问题语义。前者由语言进入键、配置/结果元数据匹配和原有异步代际控制约束;后者保留原文并要求问题逐项映射,不能把这些工程验证当作翻译质量或模型判断的独立校准。新的中文任务会重新分析同一证据,不能保证与旧英文分析的判断完全相同。
旧的未指定语言结果保持原身份,不强制迁移或覆盖。实际原始轨迹仍按原语言展示;本 PR 改的是生成分析。六项直接检查和十七项按风险选择的 canary 检查无失败,准确范围质量回执有效。canary 对 benchmark-sensitive 路径的人工评审要求由本次逐项评审承担;仍需保持用户已有范围授权、准确 head 的 merge-readiness。按当前 wait_for_ci=false 没有查询远端 CI。真实 App 安装与模型输出读回留在交付环节,截图仅证明打包合成展示。
我的整体评价
APPROVE,作为完整且可逆的分析语言修复切片。long_horizon 结论为 preserved:同一源包、独立语言任务和显式重试保留,普通浏览不产生模型工作。user_experience 结论为 improved:当前设置直接决定输出语言,原问题与证据仍可查,没有增加必需操作轮次。
语言属于现有分析请求的展示意图,应由同一分析 owner 绑定提示、结果与缓存;前端临时翻译或新增服务无法同时保证重试和引用身份。 本 PR 完整贯通现有分析请求和结果展示,保留原证据与显式执行;不扩展 solver、评分或权限。 没有发现需要阻止此 head 的代码缺陷;模型语义和实际安装采用的边界已单列,不能从合成用例或此作者评审推断为独立科学验收。本次为作者自己的 COMMENTED 审查结论,正式 GitHub approval 与合并权限仍分别判断。
English verdict: APPROVE · 07d38f0. The existing analysis owner binds interface language to prompt/schema, job/cache, retry/cancel and citation readback. Original evidence and unspecified-language artifact identities remain intact. Typed, real HTTP/process and packaged browser checks pass; real model quality and installed adoption are separate qualifications.
loopx-agent
left a comment
There was a problem hiding this comment.
Reviewer: model_agent · gpt-6.1-sol · OpenAI · runtime_reported · reasoning_effort=max
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
动机
中文界面中的研究使用者点击深度分析,是为了读懂实验结论与依据。 过去中文界面仍显示英文分析理由;现在中文请求生成中文问题解读、理由和限制说明,原始问题与引用仍可展开。 语言切换后只读对应缓存,缺少该语言结果时由用户明确点击分析;查看原文不会改写证据。 本次不翻译或重写原始研究轨迹,不修改 solver、评分、来源权限或研究预算。 模型翻译质量尚未独立校准;正式 App 的安装采用与真实模型输出仍需在交付环节读回。
改动思路
语言属于现有分析请求的展示意图,应由同一分析 owner 绑定提示、结果与缓存;前端临时翻译或新增服务无法同时保证重试和引用身份。 本 PR 完整贯通现有分析请求和结果展示,保留原证据与显式执行;不扩展 solver、评分或权限。
同一份固定证据包在中文、英文请求下保留相同的包身份,分析任务使用不同的键。界面已经知道当前语言,无需用户再次填写。只有点击现有分析按钮才执行模型;切换语言只是读取对应缓存。原始问题放入按需展开,引用仍读取原始文件的准确行,避免把新生成的解读冒充原始证据。
| 触发 | 结果 |
|---|---|
| 中文或英文只读打开 | 读取该语言缓存,无模型调用 |
| 明确执行或重试 | 同一 owner 生成对应语言结果,保留独立任务 |
| 语言与键不一致 | 拒绝,不复用或取消另一语言任务 |
具体改动
本次依据修改前的 docs/development/design.md,固定版本 e465f85bcfc3b383b3c13f7d910b86a4fb8e144a。owner-language-first 由前端当前语言贯通请求与提示实现;preserve-evidence 由同一份输入、引用和原始问题读回验证;on-demand-original 保留原始问题按需展开;decide-in-place 复用现有设置和显式执行,不增加必填配置或确认轮次。新增的设计条款把这次遗漏明确化,没有用新写的条款自证实现。
关键代码讲解
prepareTrajectoryAssessment(trajectory_assessment.ts:95)严格验证输出语言,将语言及语言指令加入分析身份。未指定语言时保留原有键和提示,不能给旧结果贴上中文标签。qualifyTrajectoryAssessment(同文件:117)要求每个原始片段恰好一个本地化问题,拒绝遗漏、重复和虚构 ID。原六指标、未知值、分母与引用校验仍走原规则。inspect_pack(trajectory_assessment_store.py:358)在原登记和源文件校验之上选择语言任务。execute/retry/cancel/read_citation 使用同一选择,避免中文键取消英文任务;旧方法结果继续通过原字节证明读取。useResearchAnalysis(goal-research-analysis.tsx:27)在每个读取和执行请求中发送当前语言,同步隐藏不同语言快照,利用现有 generation/sequence 拒绝迟到结果。两个结果视图优先显示生成的问题解读,并保留原问题可展开。
配套改动包括现有 HTTP 参数传输、browser-safe 类型、协议说明及共享设计规范。测试在已有用例中加入语言覆盖,公开图片全部使用合成资料,不发布真实原轨迹。8 项 TS owner 验证、30 项 HTTP/store/实际临时子进程验证及最终语言/取消单测通过;打包浏览器验证中英文读回、390px、原问题和引用往返、刷新/返回与错误重试,且没有隐式分析 POST。
对主干的风险
主要风险是语言切换复用错误缓存,以及新的解读丢失原问题语义。前者由语言进入键、配置/结果元数据匹配和原有异步代际控制约束;后者保留原文并要求问题逐项映射,不能把这些工程验证当作翻译质量或模型判断的独立校准。新的中文任务会重新分析同一证据,不能保证与旧英文分析的判断完全相同。
旧的未指定语言结果保持原身份,不强制迁移或覆盖。实际原始轨迹仍按原语言展示;本 PR 改的是生成分析。六项直接检查和十七项按风险选择的 canary 检查无失败,准确范围质量回执有效。canary 对 benchmark-sensitive 路径的人工评审要求由本次逐项评审承担;仍需保持用户已有范围授权、准确 head 的 merge-readiness。按当前 wait_for_ci=false 没有查询远端 CI。真实 App 安装与模型输出读回留在交付环节,截图仅证明打包合成展示。
我的整体评价
APPROVE,作为完整且可逆的分析语言修复切片。long_horizon 结论为 preserved:同一源包、独立语言任务和显式重试保留,普通浏览不产生模型工作。user_experience 结论为 improved:当前设置直接决定输出语言,原问题与证据仍可查,没有增加必需操作轮次。
语言属于现有分析请求的展示意图,应由同一分析 owner 绑定提示、结果与缓存;前端临时翻译或新增服务无法同时保证重试和引用身份。 本 PR 完整贯通现有分析请求和结果展示,保留原证据与显式执行;不扩展 solver、评分或权限。 没有发现需要阻止此 head 的代码缺陷;模型语义和实际安装采用的边界已单列,不能从合成用例或此作者评审推断为独立科学验收。本次为作者自己的 COMMENTED 审查结论,正式 GitHub approval 与合并权限仍分别判断。
English verdict: APPROVE · 07d38f0. The existing analysis owner binds interface language to prompt/schema, job/cache, retry/cancel and citation readback. Original evidence and unspecified-language artifact identities remain intact. Typed, real HTTP/process and packaged browser checks pass; real model quality and installed adoption are separate qualifications.
中文界面打开深度分析时,过去只翻译界面标签,模型理由仍可能是英文。现在当前界面语言贯通分析读取、执行/重试、取消和引用读回,模型生成对应语言的问题解读、理由和限制说明。
中英文使用同一固定证据包、各自的分析任务和缓存。切换语言不调用模型;原始问题和引用原文按需保留。已有未指定语言的结果保留原身份,不冒充当前语言的新结果。此改动扩展现有 benchmark-toolkit 分析 owner,不修改 solver、评分、证据或权限。
Validation
Visual evidence
Tested source:
07d38f0c57f99426b622083c25ee2a83098d7819. Packaged UI with synthetic records; screenshots do not claim a real model run or installed App adoption.Before (existing public capture; unchanged analysis presentation at the baseline):
After, desktop:
After, 390px:
English: Generate deep-analysis questions, reasons and limitations in the interface language. Language-specific job identity prevents cross-language reuse; browsing never starts a model, and original evidence stays available.