Repository navigation
Preserve the project registry for Antigravity scheduled wakes - #8768
Conversation
Signed-off-by: LoopX Agent <[email protected]>
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)
评审提交 47fbd432ecc6255579d89407f094c1de13121b4c,对照目标基线 8d7d234c6f55fa45fa5db0ad5a156dcaaf726d32。
动机 / Motivation
把 LoopX Goal 创建在项目内、由 Antigravity App 在后台唤醒的操作者。 后台工作目录切到另一项目,两个项目各有一个 ID 相同但配额不同的 Goal。 原 bootstrap 从后台目录读到另一份 registry。它拿到同名 Goal 的准入结果,后续读哪个项目会随当前目录改变。 两个生成入口的安装 wheel 在同一个后台目录都使用注册原项目。sidecar 和会话内 wake 的下游 CLI 仍绑定所选可执行文件,scheduler observation 与 gate capture 都回读原项目。 证据覆盖隔离项目的安装 wheel、生成入口、scheduler reader 与合成 Stop 取消。真实登录状态下的后台定时启动、桌面发出的失败事件与托管 CI 仍未核验。
改动思路 / Approach
项目注册在 Core 解析。Antigravity activation 和 Stop hook 只传递已解析的身份,Core quota 继续判断准入和实际结算。 由两种已有 onboarding 入口提供已解析的 registry,并用 Core 现有可执行文件参数生成器贯穿各入口。 复用 render_cli_command_prefix、loopx_cli_argv 与已有的 registry、quota、Stop owners。无新增选择器、存储状态或调度入口。
具体改动 / Changes
关键代码讲解
bootstrap-command-pack 和 agent-onboard 将解析后的 registry 传入已有 Antigravity 激活。新 registry 参数从两个入口进入同一 builder。bootstrap 入口 · onboarding 入口
sidecar bootstrap 与 gate 使用同一 CLI 前缀。独立运行实际生成命令后,回读了下游 guard 所选 registry 和 gate capture 的原项目资格。sidecar 模板
Stop hook 把既有 registry 和 CLI 参数带入 Core。向生成的 Stop 命令输入用户取消,两个精确版本都保持停止。Stop 的 Core 调用
8 个文件,+99/-28。7 个实现文件沿现有入口和 helper 传递参数,1 个测试文件查两个生成入口和 Stop 绑定。 独立核验了项目和 Goal 的归属、各入口传递同一注册身份,以及显式无效来源与停止。项目内 Goal 契约
对主干的风险 / Risks
将任何入口的显式 registry 改成不存在的路径,执行均拒绝,且不回退到工作目录。Stop hook 持有同一 registry,用户取消仍结束;legacy agy 在相同默认 runtime 冲突下两版都拒绝。
语义与 CI 对齐
候选的 34 项 host 和 runtime 检查,以及本地 standard premerge 的 6 项直接检查和 4 项选定检查通过。 初次 standard 中既有 CLI output budget 检查超时,精确基线的独立检查以及候选的 standard 重跑通过。首次超时的原因仍未确证。 对照两个相同 ID 的 Goal 证明了路由变化。候选容纳带空格的路径,Core 仍决定准入和结算。
我的整体评价 / Verdict
通过。后台唤醒跨工作目录时,Agent 仍根据原 Goal 的配额和任务状态继续。 本改动交付生成命令的路由。已安装旧配置的更新和真实登录会话的定时唤醒还需以实际采用版本验收。
English verdict: APPROVE at 47fbd43. The installed CLI keeps the selected project, executable and quota scope across the generated Antigravity App wake routes.
Goal And Delivered Outcome
Antigravity App can start a background wake from outside the project directory. The generated sidecar bootstrap then looks for the Goal in the ambient registry. A Goal registered only in its project fails to start. A different project using the same Goal ID can also send that bootstrap to the wrong registry.
The activation packet now carries the project registry selected by onboarding. The generated activation, scheduler gate, sidecar, in-session wake, and Stop hook use that registry and preserve the selected LoopX executable. This fixes the host handoff for #8266 and targets
mainindependently.Author Declaration
Validation
Tested revision
47fbd432e. Tests used isolated synthetic Goals and an installed wheel.loopx checkandgit diff --check.The separate C1 candidate was also exercised through the installed Antigravity scheduler binary with a deterministic driver on File and SQLite. This PR covers generated routing. A live signed-in model session and the desktop-managed Stop error path remain separate qualification work.
Frontend / Visual Evidence
UI impact: none. The existing Antigravity activation flow consumes the corrected commands. No layout or control changed.
Boundary Checklist