Skip to content

feat(research): read the bound original task in source Goal research - #8479

Merged
loopx-agent merged 2 commits into
mainfrom
codex/source-original-task-reading-20261110
Nov 10, 2026
Merged

loopx-agent merged 2 commits into
mainfrom
codex/source-original-task-reading-20261110

Conversation

@loopx-agent

@loopx-agent loopx-agent commented Nov 10, 2026 •

Copy link
Copy Markdown
Collaborator

研究页可以读原 Goal 的历史和分析,但此前无法直接查看该 Goal 登记的原始任务全文。此 PR 增加按需展开的「原始任务」,保留完整正文、来源版本及明确的读取失败与重试。

选择和完整性检查复用 TypeScript presentation.goal_sources owner;现有源读取器负责 native registry、local/SSH/container 传输及有界文件 IO。只接受原 Goal 唯一登记的 primary_goal_document。原路径不可达时,可由已有连接管理入口明确提供捕获文件及固定 SHA-256,界面标明捕获副本。它不推断或改写 goal_objective,不改变物理 namespace、原始状态、历史与分析身份,也不执行文档里的命令。

验证:42 项 Python 测试、15 项 TypeScript 测试、control-plane typecheck、dashboard/Chat 构建通过;现有 packaged browser smoke 覆盖长文、390px、中英文、无 HTML 执行、来源切换、503 后保留旧文及重试、Escape 焦点恢复。真实 native source 的 API、CLI 和打包界面读取完整原文,来源文件保持不变。原生 App 安装与更新未纳入本次验证。

完整 premerge 曾发现新增反向依赖,已将 IO 收回现有读取器消除。其余遗留告警在 base 6cd55ce 与当前 head 相同:未改动的 loopx/chat_agent.py 为 2047 行,既有 ceiling 为 2045。保留失败记录且不提高 ceiling。最终标准 premerge 已通过,现有 checker 将这项相同的未改动主干失败标记为 advisory_inherited_failure;变更文件的 module ceiling 检查通过。合并资格另行核对。按当前配置未查询或等待 CI。

Visual evidence

主问题是「原任务到底要求什么」。正文按需展开,研究时间线保持默认内容;长文用 16px、80ch 阅读宽度,版本和原始文本置于可展开的来源详情。

以下均为 disposable backend 的公开合成数据,使用真实打包 frontend 和现有来源读取器;before 为 01b8871,after 为 fdade14(UI 与重新运行的 c055941 相同)。不是 installed App 截图,也不包含真实任务或轨迹。图片仅保留在 revision-pinned artifact 分支,不进入本 PR 代码树。

桌面 before 桌面展开原文 after
Before desktop Original task desktop
390px before 390px after 刷新失败保留正文 English
Before phone Original task phone Read recovery English original task

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
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

Approval conclusion (author-owned PR; GitHub blocks formal self-approval)

动机 / Motivation

研究者在原 Goal 的研究页核对原任务、约束和后续策略。 此前需离开研究页查找文件;现在展开「原始任务」即可读完整原文,并可刷新或查看版本。 已验证原文逐字读取、来源隔离和读取失败后的恢复。 本次不改写原 Goal,不运行文档命令或模型,也不升级已安装 App。 installed App 更新和更完整的领域分析仍由原研究交付继续跟进。

这是一个有用的读取增量:原任务、后来保存的策略和分析结论可以各自核对。保留标题或手动打开文件仍会留下原问题;从标题推断任务正文也无法证明原始要求。当前 head 为 fdade14,评审覆盖整个 base-to-head 差异。

改动思路 / Approach

文件选择和完整性归于现有 TypeScript presentation owner,native registry 与有界 IO 留在现有源读取器;没有新增平行 registry decoder 或执行 authority。 当前边界是原来源研究页的按需完整文件读取、版本检查和失败恢复;捕获绑定复用已有 Agent 连接管理权限。

触发 原有路径 当前路径与失败归属
阅读研究历程 原生历史读取器 保持同一 Goal、namespace 和历史;默认不读取文档
展开原始任务 需要自行找文件 native registry 定位登记文档,完整读取并复核声明和 SHA
捕获文件变化或来源切换 没有文档读入口 503/409 或同步清空旧正文;恢复来源后显式重试

该表是源码说明,不代替运行证据。捕获绑定属于无法从文件名推导的显式信息;已有权限内由 Agent 准备,用户无需再填路径、复制命令或确认一次。现有源链接写入接口在保存前核验,namespace 不随附件更换而改变,缓存读取器则会替换。最初的反向依赖 helper 已删除,避免为此建立新分层或第二个 registry decoder。

具体改动 / Changes

独立验收依据为 docs/development/frontend-delivery.md,spec_revision 6cd55ce5d069c59712fae23bb7413ac0f9d7ac20 的既有 Native App source Goals 与 Task-first delivery;本 PR 新增说明没有作为独立验收来源。C1-task-journey:按需入口、操作反馈和完整正文回读已实现。C2-source-identity:原 Goal、物理来源和原生历史身份保持,并拒绝错 namespace。C3-unavailable-recovery:缺失/变化的原文显式失败,旧文可保留并重试,切换来源不会沿用其他 Goal 的内容。

关键代码讲解

  • planGoalSourceDocument(loopx/control_plane/presentation/goal_source_links.ts:8)从原 registry 的唯一 primary_goal_document 选取文档,核对显式捕获绑定;projectGoalSourceDocument 复核登记版本和完整文本 SHA。既不取标题作为任务,也不截断长文后假装完整。
  • GoalSourceReader.document(loopx/control_plane/status/goal_source.py:388)沿原 local/SSH/container transport 调用 native registry owner。读取前后核验成员和登记,文件相对路径须有原 repo,128 KiB 超限失败;Python 承担有界 IO,语义判断留在 TypeScript。
  • GoalSourceDocument(apps/presentation/dashboard/src/features/personal-workspace/goal-source-document.tsx:13)只在展开/刷新时请求,核对原 Goal 和 namespace,采用 scope/key/AbortController 隔离异步返回;正文复用 Markdown,版本与原始字节文本在详情中。

14 个文件共 474 增、18 删,其中 193 行验证、26 行说明,其余为一个完整读取路径。App alias 与 prepared API/CLI 共用读取器;没有新增另一套 Goal 状态或并行业务规则。捕获副本在界面明确标注,固定 hash 只证明绑定版本,不独立证明来源谱系。

对主干的风险 / Risks

最强反例是文件已改变或用户切到另一来源,却看到错误正文。真实 SQLite/native CLI/Chat HTTP 测试覆盖 alias、完整 CRLF 文本、错 namespace、改变捕获文件后的 503、恢复,以及同 namespace 附件更新后缓存替换。另一个有意缺陷实验只移除 hash guard、保留捕获标记:公开 HTTP 回读在文件改变后错误成功,独立的 HTTPError 断言按预期失败;当前 head 的同一断言通过。

PASS:42 项 Python 测试,15 项 TypeScript 测试,typecheck、dashboard/Chat 构建,已有 packaged runtime-source 浏览器场景,以及真实原来源的 API/CLI/界面完整读取。相同 native history fixture 在 immutable base 与 head 各 2 项通过,指纹相同,覆盖 23 个原始版本和不可用恢复。日常页面在展开前 document GET 为零;source switches、390px、中英文、Escape、HTML 不执行和读失败保留旧文均已验证。generic goal-showcase 混合状态页面也已检查。

标准本地 premerge PASS,16 项选择中无阻断失败;保留 1 个 advisory_inherited_failure。独立 ratchet 的 FAIL 在 base/head 均为未改动 loopx/chat_agent.py 的 2047 行超过旧 ceiling 2045;具体 finding 完全一致,变更模块 ceiling 通过,没有抬高预算或隐藏原失败。最早新增的反向依赖告警已通过删除该依赖消除。两次从仓库根误调用不存在的 npm build 脚本属于命令入口错误,改从 dashboard 的既有 build 运行后通过,没有把失败记成成功。按配置没有查询或等待 CI。

语义与 CI 对齐

复用 goal_doc/primary_goal_document 与原源读取契约,新增 document operation 是明确的可用性增量。原输入、省略附件、物理 namespace 和历史义务保持;精确 hash/身份检查属于硬读取条件,说明文字不会强制 Agent 工作或触发模型。未修改 continuation、quota、settlement 或自动装载指令。SSH/container 仅命令组合受测,live 连接不在验证结论中。

我的整体评价 / Verdict

没有阻断性 finding。problem_context 为 justified_increment;long_horizon 保持,user_experience 改善。已查看完整来源研究页、展开长文和窄屏错误恢复:默认时间线保留,原文使用 16px 正文与独立阅读宽度,来源版本在详情中,刷新错误紧邻重试并保留正文。 未验证 installed native WebView、真人理解效果或 live SSH/container 连接。

文件选择和完整性归于现有 TypeScript presentation owner,native registry 与有界 IO 留在现有源读取器;没有新增平行 registry decoder 或执行 authority。 当前边界是原来源研究页的按需完整文件读取、版本检查和失败恢复;捕获绑定复用已有 Agent 连接管理权限。 这一边界可以独立使用和回退,新增生产机制与原问题相称。保留原来源身份的兼容性有真实历史/分析消费者支撑;未为兼容性保留第二套请求或 registry 解码。installed App 和领域洞见仍是原交付剩余工作,本 PR 的通过不代表它们已完成,也不证明 Agent 已采用原任务或实验效果提高。评审与本地验证通过后,合并还需当前 head、threads/readiness 和既有维护者授权。

English verdict: APPROVE — fdade14; no blocking findings; local validation and exact-source readback passed, one independently verified inherited advisory remains, installed App adoption unverified.

@loopx-agent
loopx-agent merged commit d42388a into main Nov 10, 2026
29 of 34 checks passed
@loopx-agent
loopx-agent deleted the codex/source-original-task-reading-20261110 branch November 10, 2026 05:39
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