Skip to content

fix(research): clarify tentative findings and explicit status selection - #7368

Merged
huangruiteng merged 2 commits into
mainfrom
codex/research-finding-status
Oct 26, 2026
Merged

huangruiteng merged 2 commits into
mainfrom
codex/research-finding-status

Conversation

@huangruiteng

Copy link
Copy Markdown
Collaborator

Tentative findings currently read as “待检查”, suggesting a verification queue even when evidence and decisions already exist. This change uses “暂定结论” across the timeline, history and saved-finding reader, with on-demand explanation of source judgment, question closure and decision state.

The existing Explore TypeScript owner now leaves status blank in all three writeback templates. Callers must deliberately choose tentative/confirmed/refuted using the existing validator; guidance separates scoped observations from unresolved broader claims and reuses optional question closure. This changes enabled template authoring, not the persisted vocabulary, CLI finding default, stored history, feature-off behavior, settlement or execution authority. No automatic reclassification or new verification queue is introduced.

Delivery boundary: S11 / the existing Research Exploration Control Plane RFC. The UI and ordinary writeback entrypoints share existing owners; Lark transport is unchanged. The bounded refactor centralizes duplicated finding copy in the nearest frontend owner (three active readers). Model adoption, scientific correctness and historical state cleanup remain unqualified; this PR addresses misleading reading and preselected authoring.

Validation:

  • Python writeback/real CLI suite: 62 passed; new blank-status rejection: 1 passed. Covers enabled delivery, off/invalid capture, primary-write rejection, replay and retained question state.
  • TypeScript writeback/history/measurement tests: 39 passed; control-plane typecheck passed.
  • Dashboard production + packaged Chat build passed (existing bundle-size warning).
  • Packaged research-route-reading browser smoke passed: English/Chinese, desktop/tablet/phone, mixed states, help focus/Escape/return and analysis unavailable states.
  • Real isolated HTTP readback with 60 all-tentative synthetic findings: zero mutation attempts, original source bytes unchanged; resolved question and tentative findings remain distinct at 390px.
  • Semantic vocabulary drift, RFC bilingual diff, Ruff and diff checks passed. Public text boundary scan passed against an isolated registry; PNGs were inspected visually (the text scanner cannot read PNGs).

Visual evidence (proposed packaged build, not an installed App upgrade; head 1e14056):

Before After
Before After

Explanation on demand

Phone reader: resolved question with tentative findings

The default view preserves counts, colors and full source evidence; only the status name and a contextual help entry change. No horizontal overflow was observed in the phone reader. No live model or production Goal was mutated. Author work is complete; CI and maintainer review/merge remain pending.

Signed-off-by: huangruiteng <huangrt01@163.com>
Signed-off-by: huangruiteng <huangrt01@163.com>

@loopx-agent loopx-agent left a comment

Copy link
Copy Markdown
Collaborator

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

动机

在研究页阅读来源判断,或通过现有 Explore 写回记录观察与解释的调用方。

旧界面把60条已有证据显示成待检查;新界面显示暂定结论,并解释来源判断、问题收束与继续决策各自独立。

读者能够区分暂定判断与排队任务;作者必须明确选择结论状态,既有有效写回与问题状态保持独立。

本次不自动重分类历史、不证明科研正确性或模型采用,也不改变 CLI finding 默认值、结算与执行权限。

“暂定”描述的是来源尚未确认或反驳的判断,不等于没人做过观察。旧中文文案和模板预选把这两件事混在一起,读者容易误判仍有验证任务排队,记录者也可能没有明确作出判断。这次修复把语义放回原来的阅读与填写入口,不另建检查队列。

改动思路

A copy-only fix would leave preselection. Existing decoder already rejects missing judgment, so only its generated templates and shared frontend wording need change. 当前边界:读者能够区分暂定判断与排队任务;作者必须明确选择结论状态,既有有效写回与问题状态保持独立。

现有 Explore typed affordance 仍是模板与指导的唯一生产者,现有 normalizer 仍只验证允许的状态和输入。前端用一个13行纯函数共享来源状态名称与解释,三处真实读者复用现有 ContextHelp;读取帮助不启动模型、修改问题或写入结论。

路径 基线 本 head
暂定来源判断 中文显示待检查 显示暂定结论,按需解释来源判断边界
直接填写事实模板 已带 tentative status 留空,调用方明确选择原有三值之一
问题已回答、结论仍暂定 两种原始状态独立 仍独立,既不自动关闭也不自动确认
普通未启用或拒绝路径 原行为 完整 CLI 响应相同

最值得质疑的是模板留空给已有复制式调用带来的拒绝,以及指导是否把“科学正确”变成新的硬门。本实现明确披露前者;机器仍只验证既有三值,不会依据分数、文字或证据数量推断真值。添加的解释是可选捕获内的指导,未变成 must-attempt、结算或配额义务。

具体改动

评审前读取的接受依据为 https://github.com/loopx-project/loopx/blob/0e47330fe57ce5ea1101dae67ee19b836869ef4e/docs/architecture/rfcs/research-exploration-control-plane-v0.md ,固定版本 0e47330fe57ce5ea1101dae67ee19b836869ef4e;也读取原 design 与 task-first 约束。RFC 新增的状态说明作为本次澄清审查,不能反过来充当接受依据。

  • 3. Goals — implemented:使用类型化来源身份,保留负面证据,不从置信度自动制造真值。 本轮通过实际原始记录、恢复/返回和对应状态的验证;不把局部交付计作整个路线图完成。
  • 10. Ownership and Effect Boundaries — implemented:Explore 保留研究记录,展示层只渲染,结算/执行 owner 不变。 本轮通过实际原始记录、恢复/返回和对应状态的验证;不把局部交付计作整个路线图完成。
  • 13.2 Authority rules — implemented:默认关闭与普通权限保留,启用上下文不授予执行权。 本轮通过实际原始记录、恢复/返回和对应状态的验证;不把局部交付计作整个路线图完成。

关键代码讲解

  • exploreResultWritebackAffordance 将 full、path-delta、linked-question 三个模板的状态由预填 tentative 改为空,并补两条关于范围内判断与问题收束的指导。底层既有字面量校验没有改变;显式提交不完整材料仍在主提交前拒绝。
  • exploreFindingCopy 集中来源状态名称和中英完整解释;只返回展示文案,不新建词汇、真值分类器或持久化状态。
  • GoalResearchTimeline 复用同一标签并把解释放在图例的现有帮助模式;原来颜色、计数、时间与决策保持。
  • GoalResearchHistory 和 Saved findings 复用相同文案。问题收束、结论状态、后续继续/转向分列,不用来源确认冒充独立验收或 Goal 完成。

其余路径包括两份能力说明、现有设计文案、英中 RFC 镜像、现有 Python/TS/浏览器回归及四张公开合成截图。中英新增 RFC 语义一致。没有更改 CLI finding 命令的默认值、已保存历史、Lark 传输或通用工作流;历史阅读即使未启用执行也会得到新标签,这是明确的显示变化。

对主干的风险

本轮独立完成63项真实写回 Python 测试、38项 turn-context 测试和39项 TS 测试,以及生产构建与完整 packaged research-route-reading(11.110秒)。覆盖原始有效材料、空/无效状态的提交前拒绝、主写失败、重放、问题状态保留,以及中英、桌面/平板/窄屏、帮助关闭返焦点和来源不可用。真实 HTTP/SQLite 另以60条暂定记录验证:已收束的问题仍可同时有20条暂定结论,读取后原字节不变、业务写为零。

对不可变基线与本 head,额外执行7组完整公共 CLI 响应比较:未启用、其它 Agent 拒绝和缺失 Goal 三组逐字一致;四组启用/分页/选定/缺失节点输出仅三个模板状态及两条新增指导不同。移除准确两条新增指导后,原指导逐字保留,所有 before-work 条款直接逐字一致。22组完整 normalize 正常/错误结果也相同,包括状态与可选问题收束的独立性;只有把模板默认值直接带入事实材料时,基线自动接受暂定、head 要求明确选择,符合声明的默认改变。

标准 premerge 的5项直接检查及19项选中检查全部执行通过,含双语、语义、热路径预算与公共文本边界;整体仍退出1、manual_review_required,保留四张图片人工门。我逐张查看了四图和元数据,且以实际源码构建做了基线、桌面和390px中英帮助/原文观察。初次 Ego 对已聚焦控件做 focus 未打开帮助的超时被保留;实际点击以及 Tab/Shift+Tab 重新聚焦、Escape 和触屏入口随后验证,不改源代码或断言。没有查询或等待 CI。

新义务没有从 Explore 泄漏到通用 quota、Todo 或结算。捕获仍为 required=false,省略合法;已显式提交的状态必须通过原校验,而解释与科研结论的正确性不会自动获证。没有按散文、置信度或评分自动分类。原始失败和未知保留;现有已填合法材料无需迁移,模板消费者要按已披露的新默认作判断。

我的整体评价

APPROVE,限 1e14056be60d771ff3645d0bd72c58831b91d802。 当前 head 完成了来源状态的可理解阅读和显式模板选择。长程工作维度为 preserved:原观察、未知、合法继续和问题状态仍独立,用户体验维度为 improved;这不推导为模型判断能力或科学收益提升。

实际检查了60条暂定记录和混合状态的整页、桌面及390px帮助/阅读器:默认保留数量和来源状态,完整解释按需展开,已收束问题与暂定结论分别呈现;正文未缩小。

未验证安装版 App、真实模型对新指导的采用、科研判断正确率或完整成本收益;合成读取和模板拒绝不证明这些结果。

实际帮助在宽屏和390px均可完整读取、关闭并返回;默认主结果未被解释文字挤走。复用已有三值和 shared typed owner,不新造协议;13行共享文案消除三个活跃读者的重复,边界适当。原生图片留置和维护者合并/安装权限仍是独立门,批准不会清除它们。

English verdict: APPROVE at 1e14056. Source-status wording and all three blank authoring templates reuse existing owners; valid input, disabled paths, failures and question closure retain their semantics. Independent 101 Python and39 TS tests,7 complete CLI pairs,22 normalization/error pairs and packaged real-backend reading passed. Manual image, installed adoption and actual model-benefit qualifications remain separate.

@huangruiteng
huangruiteng merged commit 31ec2f5 into main Oct 26, 2026
29 of 43 checks passed
@loopx-agent

Copy link
Copy Markdown
Collaborator

质量核验补充(head 1e14056be60d771ff3645d0bd72c58831b91d802;既有独立评审结论保留)

发布评审后,补跑仓库要求的 npm run smoke:demo-readiness,严格质量资格仍未通过:

  • 两次独立端口、串行 base/head 对照均在首页断言 Missing dashboard home text: Codex 失败。固定基线 0e47330fe57ce5ea1101dae67ee19b836869ef4e 与该 head 的完整错误输出逐字相同,相关五个首页/命令源文件也相同;这支持既有首页路径失败的归因,未发现本 PR 引入的研究页缺陷。
  • 最初并发尝试共用默认端口,分别出现首页获取超时或缺少 Codex;原失败保留,端口冲突只是已确认的环境隐患,不能断言是唯一原因。后续串行对照没有把这些运行改记为通过。后续未抵达的完整 demo 阶段保持未验证。
  • 原独立研究页专项、编译、完整语义对照及已执行 premerge 自动子检查通过。带 Goal 的 premerge 再次读回严格质量凭证 invalid_receipt,并保留 4 张图片的原生 manual_review_required;人工查看图片不消除该原生标记。
  • 精确差异质量凭证 cqr_0c7ca10babece846d038,fingerprint 0c7ca10babece846d038323d5fe05f70c46d3718b6d150588b0e419f82a3d10a,结论 FAIL。未改代码、断言或所需检查;该失败不授予绕过质量门、合并或完整交付资格。

English: The scoped approval remains evidence-backed, but required broad demo validation fails identically on the immutable baseline and this head. Strict quality remains FAIL; no merge or full-demo qualification is claimed.

huangruiteng pushed a commit that referenced this pull request Oct 27, 2026
#7368 renamed the tentative finding state from 待检查 to 暂定结论 so the
reader no longer calls a tentative finding a queued check. The packaged
research-finding-reader acceptance scenario still pinned the retired label
in three assertions, so dashboard-browser (2) and chat-bundle-browser (2)
aborted there and the required checks job failed for every PR.

Follow the shipped label and keep the Chinese/English assertions paired.

Closes #7480

Signed-off-by: JasonBuildAI <jasonbuildai@gmail.com>
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.

2 participants