Skip to content

fix(ego): resume authorized tasks from live browser control - #7626

Merged
huangruiteng merged 2 commits into
mainfrom
codex/ego-continuation-evidence-20261029
Oct 30, 2026
Merged

huangruiteng merged 2 commits into
mainfrom
codex/ego-continuation-evidence-20261029

Conversation

@loopx-agent

Copy link
Copy Markdown
Collaborator

同一已授权的浏览器任务在控制权恢复后,CLI Agent 仍可能把历史 STOP 当成持续的确认要求。只读 Ego source provider 已经逐次检查实时控制权;这次修复它与直接 CLI 技能指导之间的衔接。

  • 后续轮次再次询问控制权前,先只读核对一次空间 ID、任务身份和实时控制状态。原任务已回到 Agent 控制时直接继续;正常交还仍只允许一次符合条件的 claim。
  • 明确 ego-browser skill 动态指南提供原生 API 用法,同时保留 LoopX 已安装的同任务接续规则。历史错误和摘要不证明发生了新的用户接管。
  • 保留显式暂停、未解决的权限/登录步骤、实时用户接管和原生拒绝;不重试绕过,不切换浏览器或新建空间逃避停止。

通过既有 workflow-skills 交付,未新增 capability、provider 或 Core 状态。配套更新安装诊断及 source-reader 路线说明;已有安装版本号不变时,原 policy digest 刷新机制仍会交付改动。

验证:技能及安装器测试 67 passed、2 skipped(本机无原生 PowerShell);最终技能测试 35 passed;既有 provider 控制测试 13 passed。新增测试执行实际安装副本中的 JS 恢复示例,覆盖 10 组正反例,包括历史 STOP、仍在用户控制、暂停、任务不符、原生拒绝和 Page 标签恢复。Ruff、diff 检查和四文件公开边界扫描通过。

另在实际 Ego Lite 0.6.0.16 中验证同一任务正常交还后接回、下一轮直接继续及最终 handback,保留用户标签页;本机共享技能副本已按现有 owner 更新并读回幂等。该验证不等于真实人机抢占的完整测试,也不证明模型普遍遵从;原生浏览器权限机制未改。没有界面布局变更。

范围复核:修复放在现有技能交付 owner,复用当前只读 provider 的实时状态语义;无需新增浏览器生命周期或另一套权限判断。

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

Request changes conclusion (author-owned PR; GitHub blocks formal self-review)

动机 / Motivation

继续已获授权浏览器任务的 Agent 与被重复询问控制权的使用者。历史停止记录可能在后续轮次持续制造无必要的确认与等待。旧 STOP 留在任务历史里,而同一任务的实时控制已回到 Agent;新指引要求先读取一次实时清单,再直接续接该任务。 同任务已经由 Ego 恢复 Agent 控制时可直接续接;明确暂停及未解决的用户步骤仍阻止操作。本次不改变 Ego 权限、不安装或升级浏览器,也不证明任意模型都会遵循指引。

改动思路 / Approach

复用 workflow-skills --install → reconcile_ego_browser_skill → _reconcile → 已安装 SKILL.md。交付器继续负责受管理副本、内容摘要和原子发布;Agent 从当前任务取得授权与暂停事实;Ego 负责原生控制检查。动态 ego-browser skill 仍提供版本匹配的 API,新增文字明确它不会覆盖已安装的同任务续接规则。一个旧 STOP 既不是新接管证据,也不是绕过新停止的理由。较小且足够的修复就在原指导语中,没有增加第二份控制权状态或后台轮询。

具体改动 / Changes

评审头:be2c23e1ac4c6daee57c714bfe7729f63f7c9b66;完整范围为 4 个文件、+136/-3。先读的既有规范是 docs/integrations/ego-source-reader.md,不可变版本 ce4c78088ea464cb31231513882bed6bb6933156;以下标签对应其原有未编号条款:same-task-continuation、current-user-stop、managed-skill-delivery 均已实现。它们分别对应同任务实时身份核对、当前用户停止仍有效,以及沿既有安装器交付并保留自定义文件。

关键代码讲解

  1. _POLICY 的实时判断与示例:先读一次清单、核对 numeric id 与 taskId,再检查明确暂停、未解决用户步骤和正常交还来源。已经 Agent-owned 时直接解析原空间,不领取;符合既有交还条件时仅允许一次原生尝试,拒绝即停止。
  2. _reconcile 的摘要刷新:新指导语通过已有 policy_sha256 生效,不依赖版本号变化。剔除 _POLICY 后的整个模块 AST,以及 workflow installer、Windows installer、可选 source reader 的 blob 与基线相同;没有另加原生权限解释器。
  3. 新测试执行真正交付的示例,覆盖历史 STOP、明确暂停、用户步骤、错误任务、拒绝后的停止及失去旧 Page 标签。两份引用文档区分直接交互 CLI 与原有只读来源 provider,不把它们合成新的控制权 owner。

对主干的风险 / Risks

未证实新增产品逻辑缺陷;当前阻塞是必需的安装 canary 超时,原因仍未归因。PASS:技能交付、workflow 安装和来源 reader 共 287 项;2 项 Windows/PowerShell 用例在本机跳过,未冒称该平台通过。Ruff、diff 检查与语义增量 advisory 通过,后者零候选仅说明支持的载体未增加,指导语已另外逐条比较。基线/当前版本的 12 次同输入示例运行保留合法调用序列,当前示例还把原本由周围文字约束的暂停/用户步骤前提显式放到 handle 之前。

实际 Ego 0.6.0.16 中,同任务实时 Agent 控制下的旧 STOP 续接成功,明确暂停只读取清单便拒绝。正常 handOff() 分支返回 agentDelegatedToUser 后,一次 claimTaskSpace 被原生拒绝;已停止,未重试、换空间或换浏览器,因此没有把它记作原生恢复成功。该 API 调用与基线相同。模拟领取成功只能验证示例分支,不能证明原生允许领取,更不能证明真人接管竞态或所有模型的遵循性。

必需本地门:canary premerge --from-git-diff --git-diff-base origin/main --tier quick 的 6 项直接检查通过,packaged install、update 与公共边界检查通过;python3 examples/install-local-smoke.py 在 120 秒窗口超时(包含清理共 125.465 秒,未返回 stdout/stderr)。随后保持同一命令和 120 秒上限,基线、当前头分别于 112.638 秒、88.859 秒通过。这个有限的绿灯组合不能说明原并发或冷启动条件中的失败原因,也不能改写原失败。最小补证是定位原窗口内尚未产出安装日志的等待点,按可比条件验证;若独立证据确认是既有或环境问题,单独保留集成门处理,不要求本 PR 修改无关代码。

我的整体评价 / Verdict

REQUEST_CHANGES,原因是当前必需验证仍有未归因的超时;指导修正本身范围明确且已验证。长期任务的原空间、停止与授权边界保持;当前 Agent 控制分支少一次重复确认,模型采用与完整成本收益仍未取得资格。它复用原生词汇和安装 owner,没有新增通用状态协议,未安装/自定义副本与可选 provider 的行为保持。当前交付边界是指导与示例的修正,原生被拒绝的交还流程仍按既有停止规则处理。本结论不授予合并、升级、安装或清除其他评审的权限。

English verdict: REQUEST_CHANGES pending attribution of the required installer-canary timeout; no new product-logic defect is asserted.

@huangruiteng
huangruiteng merged commit d9622f4 into main Oct 30, 2026
1 of 2 checks passed
@huangruiteng
huangruiteng deleted the codex/ego-continuation-evidence-20261029 branch October 30, 2026 03:58
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