Skip to content

fix(research): follow interface language in deep analysis - #6955

Merged
loopx-agent merged 1 commit into
mainfrom
codex/research-analysis-language-20261021
Oct 20, 2026
Merged

loopx-agent merged 1 commit into
mainfrom
codex/research-analysis-language-20261021

Conversation

@loopx-agent

Copy link
Copy Markdown
Collaborator

中文界面打开深度分析时,过去只翻译界面标签,模型理由仍可能是英文。现在当前界面语言贯通分析读取、执行/重试、取消和引用读回,模型生成对应语言的问题解读、理由和限制说明。

中英文使用同一固定证据包、各自的分析任务和缓存。切换语言不调用模型;原始问题和引用原文按需保留。已有未指定语言的结果保留原身份,不冒充当前语言的新结果。此改动扩展现有 benchmark-toolkit 分析 owner,不修改 solver、评分、证据或权限。

Validation

  • 8 typed-owner tests; 30 production HTTP/store/process tests, plus the focused language retry/cancel/cache test.
  • Dashboard build and packaged research-history journey: Chinese/English readback, original question, citations, mobile, scope/error recovery, zero implicit model dispatch.
  • Diff advisory, public boundary scan and risk-based canary checks passed. Canary flags benchmark-sensitive paths for exact-head maintainer review; merge readiness remains separate.
  • Bounded refactoring: reuse the existing pack/job/citation path and TS schema owner; no translation service or second job scheduler.

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):

Before: English analytical explanation

After, desktop:

Chinese analysis with original question on demand

After, 390px:

Chinese analysis at 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.

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>

@loopx-agent loopx-agent left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 loopx-agent left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@loopx-agent
loopx-agent merged commit b9389ed into main Oct 20, 2026
26 of 40 checks passed
@loopx-agent
loopx-agent deleted the codex/research-analysis-language-20261021 branch October 20, 2026 18:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant