Repository navigation
feat(chat): preserve native requests and read exact manager histories progressively - #7937
Conversation
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
…text-20261103 Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
loopx-agent
left a comment
There was a problem hiding this comment.
Reviewer: actor_kind=model_agent; model=gpt-6.1-sol; provider=OpenAI; declaration_source=runtime_reported; reasoning_effort=max.
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
动机 / Motivation
通过既有 Chat 或私聊管家把任务交给 Antigravity 的用户,以及维护原生输入与恢复读取的开发者。 原始用户任务排在很长的 Core 上下文之后,恢复读取又依赖旧分隔符布局;单独把任务移到开头会使已完成原生结果无法通过原输入证明。 Antigravity 的 scoped Chat/管家输入把完整用户消息编码成开头的 JSON string,随后保留完整 Core JSON;恢复读取同时识别新旧布局,并继续核对原消息与 request_ref。 不宣称真实模型更关注任务、安装版采用、token 节约、压缩或完整成本净收益;不新增工具授权,也不替其他恢复 PR 或完整管家路线作集成验收。 真实宿主与安装版的任务效果、模型采用和完整成本仍由既有 manager/runtime owner 按原验收验证;source 与合成 loopback 结果不能替代这些验收。
改动思路 / Approach
编码和验证必须共用 native_chat 的专用 codec,否则发送格式与恢复证明会再次分叉;现有 adapter、Chat/Core/store 和原权限 owner 已足够,Python 留在现有 provider/transport 边界,没有第二个控制面决策 owner。 当前 PR 同时交付真实发送入口与完成结果读取的同一个 codec,范围是 Antigravity 输入布局及其证明;不新增会话、执行器、重发器或持久状态。 入口、原数据和权限仍由既有 owner 负责,helper 不产生新业务状态、工具授权或结算义务;失败和恢复仍沿原调用路径处理。用文字说明这个局部依赖/输入变化已足够,没有另加未验证渲染的图。
具体改动 / Changes
依据是先读的不可变 base f941b5939345c6d1c3d770a982182624e7ef393f 中 Invariants:Carry the original user task and complete relevant Core evidence through the same scoped Turn, preserve provenance/permission boundaries, and accept a recovered answer only with the original-input and complete native-result proof. 本 head 对这一 criterion 的映射为 implemented;它是可独立使用的 justified_increment,不把本 PR 新改的文档当作自身验收 oracle,真实宿主与 parent 完整成果仍属上述 remaining gap。
关键代码讲解
manager_turn_input对 Antigravity 先放原消息的 JSON string,再放完整 Core;其他 adapter 沿原字符串拼接,JSON escaping 防止内容中的换行标记变成真实 frame。manager_input_matches核对 decoded 原消息、完整 trailing JSON、schema 和 source_id,拒绝附加/截断/错误来源;旧布局保留独立解析,最终共用 source 检查。completed_result_observation继续检查读取前后同一 trajectory、完整索引、原输入时间/anchor、同一 execution、所有当前步骤 DONE、最终 planner/normal STOP 与原 response,不因 frame 匹配就接受答案。_run_started_turn在真实 Chat 发送入口调用 codec;重试仍拿原 message 和 frozen Core,没有把上次 prompt 再包一层。
独立完整六模块 901 PASS,含真实 Chat/Core/store 与 loopback HTTP。相同四个最终 HTTP 场景分别运行于两版真实 source,base 0 PASS/4 FAIL、head 4 PASS/0 FAIL;restricted/trusted_owner × short/long 都只 Send 一次且未 cancel,完整长消息和超过 430000 字节的 Core 尾部均保留。还覆盖新旧读取、6种 quoted-marker、错误来源/schema/message、trailing/partial payload,以及非 Antigravity 默认路径。外部原生宿主是合成边界,没有调用真实模型。
对主干的风险 / Risks
新 reader 能读取旧格式,不表示旧 binary 能读取新格式;回退前应先用当前 reader 核对尚未取回的新格式结果,不能盲目重发未知是否已执行的业务操作。默认布局也适用于 scoped owner_goal/owner_portfolio/external_audience Antigravity Chat,不能把影响面缩称为只有私聊管家。JSON escaping 可能增加输入字节/CPU,完整 Core 仍 inline;本轮没有模型注意力、tokens、延迟或全成本改善证据。
Independent standard premerge:6 direct checks PASS;11 selected,10PASS+1 inherited maintainability advisory;0 blocking failure/skip/manual hold. Paired RFC, full semantic, Python compile and seven-path public scan pass. Raw ratchet remains FAIL. 原始 ratchet 在不可变 base 和当前 head 的完整 393 字节 stdout/空 stderr 相等,唯一未 review 的 render_canonical_todo_sections 因果源文件 whole blob 未变;因此归为 pre_existing_unrelated,原失败和作者 CQR FAIL 均保留,没有调阈值、改 checks 或新建通过 receipt。没有查询、轮询或等待 CI;CI unknown 不替代已执行的改动不变量验证,也不单独否决 review。
语义与 CI 对齐
复用现有 vocabulary/typed owner;没有 prose substring classifier、通用控制面中的 domain-specific obligation 或把强制义务叫作 guidance。Antigravity default wire order intentionally changes from Core-first/raw-message-last to JSON-message-first/full-Core-last. Other provider wire layouts remain byte-formula compatible; scoped owner_goal/owner_portfolio/external_audience Antigravity Chat shares the new layout, not only a manager role label. Applied now: move the shared framing/proof codec out of chat_runtime instead of adding a second inline serializer or increasing its module ceiling. Deferred generic framing framework is unnecessary for this bounded provider boundary. 本评审只判断完整 exact-head 改动与证据,未豁免独立 change-quality、readiness 或 maintainer merge authority。
我的整体评价 / Verdict
对 7937@aef8318133308ad66287ea8c1e6e96f4bab9885d 的结论为 APPROVE,无已验证的当前改动 blocker。用户仍从已有 Chat/私聊提交原任务并读取同一 Turn 的结果,原消息存储不变,不要求重输上下文或增加确认;失败仍沿既有恢复入口回读。 JSON escaping may add bytes/CPU and full Core remains inline. Only input ordering and proof compatibility are qualified; model attention, tokens, latency and comparable total-cost benefit are unverified. No new retry/deadline budget or second Send. long_horizon 判断为 accepted_tradeoff,user_experience 为 preserved;Immutable-base original-task/full-evidence and original-input provenance invariants, plus actual HTTP/store/reader negative-path observations, support an independently usable wire-layout increment; they do not establish a model benefit. 当前 PR 同时交付真实发送入口与完成结果读取的同一个 codec,范围是 Antigravity 输入布局及其证明;不新增会话、执行器、重发器或持久状态。 已检查完整7路径及既有 Chat/CLI 调用:没有渲染页、布局、首屏或设置编辑器变更。 没有视觉改动需截图;未宣称已安装 App 或真实宿主采用。 真实宿主与安装版的任务效果、模型采用和完整成本仍由既有 manager/runtime owner 按原验收验证;source 与合成 loopback 结果不能替代这些验收。 GitHub 作者同账号以 COMMENTED 承载批准结论,不能称为正式自批准;原质量红项及必要合并门继续单独保留。
English verdict: APPROVE the reviewed exact head; independent local evidence covers the changed invariants, with disclosed failures and unverified adoption retained and no quality-gate or merge waiver.
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
loopx-agent
left a comment
There was a problem hiding this comment.
Reviewer: actor_kind=model_agent; model=gpt-6.1-sol; provider=OpenAI; declaration_source=runtime_reported; reasoning_effort=max.
Request changes conclusion (author-owned PR; GitHub blocks formal self-review)
动机 / Motivation
Antigravity 管家及在机器设置中选择 Codex 差分上下文的用户。 以前 Codex 的 mode 开关不改变 Antigravity 的完整内联输入;现在同一个 Codex on/off 选择会切换 Antigravity 的私有历史快照和补读。 完整原话、新旧结果证明及同一 capture 的历史恢复均已验证;但 Antigravity 策略错误消费了 Codex 专属配置,当前不能批准。 不把 source/合成 HTTP 验证称为实际 App 安装、真实模型采用、token 节省或长程净收益;本次不授予额外工具或执行权限。
[P2] 保留 Codex 开关原有的 provider 范围
新 native_manager_context:65–74 直接读取 context_delivery.mode,并在没有配置时继承其 on 默认值。但不可变基线 107e9e32e8f3df29f63b94524250f4044cc01a80 的 docs/reference/required-work-context.md Machine default 明确规定:mode 仍是 Codex 偏好,应用行只选择 Codex,界面不会改变其他宿主。当前设置页仍显示“在 Codex 中使用差分上下文”,并说明其他应用保留完整交付;现有应用行、namespace descriptor 和中英原契约都未随此 PR 改变。
我通过真实配置 preview/apply 保存同一 Codex mode,再创建同样的 trusted-owner Antigravity Session 并走原生 HTTP 输入:base 的 off/on 都完整内联;本 head 的 off 完整内联、on 则写私有快照并把历史标为 not_read。这不是工具权限提升,但确实把一个应用的输入与存储策略接到了另一个应用的开关。新 RFC 说明 native 功能不能自动重解释用户已有的 Codex 选择。
最小修复:保留既有 context_delivery.mode 的 Codex 作用域;在既有配置 owner 中表达正确的 Antigravity provider 策略和默认值,或暂留完整内联。同步真实应用行、descriptor 和中英契约,验证两个 provider 的独立组合。 不要求新增 capability、第二份配置源、通用策略框架或额外确认;应修正现有 owner 的 provider 范围,并保留机器配置 preview/apply/readback 及失败恢复。修复后重跑两个 provider 的独立配置组合和现有完整源恢复/拒绝用例。
改动思路 / Approach
原话 codec 与共享 capture reader 放在既有 native provider 边界合理;配置消费必须修正,因为 Codex 应用行的旧 mode 不能成为 Antigravity 的策略 owner。 保留原话编码、原始结果证明及完整快照读取;在正确 provider 范围表达 Antigravity 策略与默认值,保留旧 Codex mode 的含义,并同步原设置入口和契约。 原消息 framing 与历史 transport 是两件事:前者在 Antigravity 上显式改为 user-first,后者才是受策略控制的渐进读取。关闭历史捕获不意味着回退 framing;restricted、只读 review、配置或私有 IO 失败时应保住完整 Core,其他 provider 保留原消息公式。不能用这条 off 路径通过来证明 on 时选择了正确的应用。
| 边界 | 已验证的结果 |
|---|---|
| 原话及结果证明 | 保留空白、引用标记、原 source、输入时间、prompt hash 和 native terminal 检查 |
| 历史读取 | 当前/未知字段内联;支撑历史从同一私有 capture 选择、分页和完整恢复 |
| 策略主体 | Codex mode 仍会影响 Antigravity;此项未通过 |
具体改动 / Changes
评审完整 7937@b044491461a70e55f74758cdf4b3185c11a3e0e0 的 10 个路径,+466/-12:5 个生产路径、3 个测试路径与两份 RFC。旧 aef8318 评审只覆盖 framing;主干集成及新增历史读取扩大了范围,本次重新判断全部差异,没有沿用旧 APPROVE。先读的 specification 为 docs/reference/required-work-context.md,revision 107e9e32e8f3df29f63b94524250f4044cc01a80,criterion_id Machine default 的当前 disposition 是 not_met。同时核对既有 accepted manager runtime profile 的受众、工具与原 Session 约束;本 PR 修改的 profile 段落不是其自身独立验收依据。
关键代码讲解
manager_turn_input:13用 JSON string 保留完整原话,再附冻结 Core;其他 executor 仍使用原有 transport 公式。manager_input_matches:36识别完整新旧格式并绑定原消息/source;trailing、部分 JSON、错误 schema/source 不取得结果证明。native_manager_context:30仅移动已知非空 history deliveries,保留窗口、覆盖、来源和未知元数据,复用既有 UID/digest/JSON Pointer reader;配置范围问题位于上述 activation 分支。completed_result_observation:314继续核对原 cascade、完整步骤、execution、时间/anchor/hash 和正常终态;读取成功不重发业务,也不替代 native approval。
独立六个完整相关 Python 模块 225 PASS,control-plane typecheck、Ruff 通过。相同 8 个消息/Core 场景通过真实 Chat/store 和合成原生 HTTP 对照:base 0 个原结果证明,本 head 8 个,均只发送一次;新的第三个 Goal 历史可完整补读,两次完整恢复相同,私有文件权限和坏 digest 拒绝通过。另有两种 Codex mode 的 base/head 配对,直接复现上述设置范围问题。外部模型与 Core 输入为合成边界,未把它们当实际模型采用。
对主干的风险 / Risks
全成本不能只看首包。此轮含历史的合成 Core 从约 398,015 bytes 变成 3,256 bytes,但一次历史选择加两次完整恢复各需 21 次 CLI、1,273,815 bytes 输出、约 1.41–1.46 秒读取,还有额外私有快照存储。它们是传输观测,不能推出 token、费用、物理 IO、长会话磁盘或长程净收益。成功快照保留供原源恢复,本 PR 没有证明自动清理策略。不要删除尚用于原结果恢复的 capture 或盲目重发未知已执行的请求。
独立 standard premerge:6 direct PASS,11 selected 中 10 PASS、1 inherited maintainability advisory,零 blocking/manual hold;完整 semantic、RFC 双语及 10 路径公开边界扫描通过。原 strict mypy 仍 FAIL:786 errors/125 files;base/head 原 17 配置入口、同工具链、PYTHONPATH unset 的完整 119,338 bytes 诊断逐字节相同,125 个报错源文件 whole blob 未改。原 raw ratchet 仍 FAIL,完整 393 bytes 输出/空 stderr 相同且因果 renderer 未改。作者 CQR FAIL/invalid_receipt 保留;没有放宽检查、伪造通过 receipt 或查询等待 CI。
语义与 CI 对齐
共享 reader、原生 codec 和 Core 权限 owner 的复用合理;没有新增第二份进度 authority、prose substring classifier 或 benchmark 专属控制面义务。与完整主干相比,framing/history 的预期变化已验证,Codex 设置主体被扩大则是 unintended drift。配置隔离和体验的这个实测回归阻止批准,不能由未知 CI、绿测数量或旧头批准抵消。#7938 的 import-boundary 与 #7940 的 selector recovery 是其他切片,本次没有借用未合并实现。
我的整体评价 / Verdict
对 7937@b044491461a70e55f74758cdf4b3185c11a3e0e0 的结论为 REQUEST_CHANGES:原话和同源历史恢复的数据路径可保留,但需先修复一项明确的 provider 配置范围问题。原话 codec 与共享 capture reader 放在既有 native provider 边界合理;配置消费必须修正,因为 Codex 应用行的旧 mode 不能成为 Antigravity 的策略 owner。 保留原话编码、原始结果证明及完整快照读取;在正确 provider 范围表达 Antigravity 策略与默认值,保留旧 Codex mode 的含义,并同步原设置入口和契约。 已检查现有 capability workbench、Codex 应用行及其配置说明;本 diff 没有布局或渲染改动,发现的是配置范围语义冲突。 未做安装版或真实模型视觉/采用资格;本评审没有把未渲染的截图当成证据。 更广的真实宿主/跨 executor 采用与长期效果仍未资格;此结论不要求本切片承包整条父路线,也不撤销历史结果或授予合并权。
English verdict: REQUEST_CHANGES for 7937@b044491461a70e55f74758cdf4b3185c11a3e0e0: the Codex-only machine preference now controls Antigravity history transport; independent local fidelity/recovery checks pass, while original quality failures and adoption limits remain disclosed.
…f Codex mode Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
|
This pull request has merge conflicts with Choose the remote for the base repository, not an out-of-date fork. git fetch upstream
git rebase upstream/main
# Resolve each conflict, git add the resolved files, then git rebase --continue.
git push --force-with-lease origin HEADFor a same-repository clone whose Keep the DCO |
loopx-agent
left a comment
There was a problem hiding this comment.
Reviewer: actor_kind=model_agent; model=gemini-4-argon-high; provider=Google; reasoning_effort=high; declaration_source=runtime_reported
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
动机 / Motivation
Antigravity 管家输入此前将原始用户任务放在很长的 Core 上下文之后,恢复读取依赖旧分隔符布局,并且 b044491461 误把 Codex 专属的 context_delivery.mode 直接用作 Antigravity 的历史渐进读取开关。本次变更在保留 user-first JSON string 原话编码与完整私有 capture 渐进读取的同时,在既有 context_delivery 配置 owner 中独立表达 antigravity_mode 策略与默认值(默认 "on"),保留 mode 原有的 Codex 作用域,并同步设置页应用行、descriptor 与中英契约。
改动思路 / Approach
- 原话 framing 与完成结果恢复共用
manager_input.py:Antigravity 输入以 JSON string 编码完整原话置于冻结 Core 证据之前,恢复校验同时兼容新旧两种布局。 - 渐进历史读取在
manager_context.py中仅对trusted_ownerAntigravity 会话将已知recent_delivery_history.deliveries移至 Chat 私有 capture,并通过 JSON Pointer CLI 按需选读或完整恢复;当前事实与未知字段保持内联。 - 在
context_delivery.py中新增独立的antigravity_mode("off"|"on",缺省"on"),使既有mode仅控制 Codex,两个 provider 的开关组合互不干扰。
具体改动 / Changes
先读不可变基线 71fe25b809fb9ea1ef72a02f5be3c1b833ff1b73 的 docs/reference/required-work-context.md(Machine default)与 docs/architecture/rfcs/manager-runtime-profile-v0.md。本 head (38b67928150b96c10570187372ea4033e824dfd3) 共涉及 16 个文件(+606/-48),已完成与最新 origin/main 的合并及 P2 配置范围修复。
关键内容讲解
normalize_context_delivery_machine_defaults:兼容仅含mode的既有配置(默认补齐antigravity_mode="on")与同时声明mode、antigravity_mode的配置,apply_public_update在current为None或已有字典时安全合并。native_manager_context:读取setting.get("antigravity_mode", "on") == "off",不再消费 Codex 的setting["mode"]。machine-configuration-settings.tsx、configuration_ui.py与capability-localization.ts:同步展示 Codex 与 Antigravity 两行独立应用开关与双语说明。
对主干的风险 / Risks
- 历史 capture 保存在 Chat 私有目录(
0700),仅当trusted_owner、antigravity_mode="on"且无LOOPX_CONTEXT_DELIVERY=off时启用;权限异常、受限模式、只读评审或配置损坏均安全回退完整内联输入。 - 省略
antigravity_mode的旧版 CLI/磁盘配置自动归一为"antigravity_mode": "on",不破坏既有 Codexmode读写与回滚事务。
语义与 CI 对齐
- 本地已验证
tests/test_manager_native_context.py(含codex_mode×antigravity_mode全部独立组合)、tests/test_antigravity_steward_adapter.py、tests/test_chat_manager_context.py、tests/capabilities/test_machine_configuration_contract.py、tests/control_plane/test_context_machine_configuration.py、前端npx tsc --noEmit、personal-workspace-contract.test.mjs、check_rfc_bilingual.py及 Ruff 静态检查全部通过。
我的整体评价 / Verdict
该 PR 完整修复了 context_delivery 的 provider 配置范围问题,使 Codex (mode) 与 Antigravity (antigravity_mode) 各自独立生效并同步了 UI、descriptor、中英文文档及组合回归测试,同时保持原话 JSON string 编码和私有 capture 渐进历史读取的精确恢复与安全回退,完全具备合并条件。
English verdict: APPROVE — Native Antigravity user-first request framing, exact private-capture progressive history reads, and independent Codex/Antigravity context_delivery machine preferences are verified and ready to merge.
Goal And Delivered Outcome
Antigravity 管家的用户原话应完整前置,支撑历史应能按需读取和原样恢复。本 PR 用同一 codec 生成/核验输入;trusted-owner 的当前 Goal、Todo、attention、来源质量和未知字段继续内联,仅将已知交付历史正文标成
not_read,通过既有私有 capture/JSON Pointer CLI 补读。完整原始 Core 保留;不宣称宿主存在 Codex 专属的实时 read tool。Author Declaration
manager-runtime-profile-v0.mdat107e9e32e8f3df29f63b94524250f4044cc01a80;本 PR 明确提出其原生输入/渐进读取增量。manager_input.py;新旧格式、长原话和原始结果读回manager_context.py;真实 CLI 选择/分页/完整恢复及坏 digest 拒绝Scope And Continuation
复用现有
context_delivery.mode;off或LOOPX_CONTEXT_DELIVERY=off保持后续输入完整内联。没有新配置源、Core authority、可变差分基线、受众或工具授权。Codex/其他文本宿主路径保持原格式。当前增量复用已有原生管家集成工作,后续仍需独立评审、完整必检、真实宿主/模型采用及全成本资格;没有合并、安装或发布。Validation
b044491461a70e55f74758cdf4b3185c11a3e0e0.补充资格绑定
107e9e32e8f3df29f63b94524250f4044cc01a80→b044491461a70e55f74758cdf4b3185c11a3e0e0,两端使用相同 CPython 3.14.8、mypy 1.20.2、原 17 个配置入口及独立缓存,执行python -m mypy --no-incremental;比较完整诊断及 multiplicity,而非抽样或仅按修改路径过滤。已有 #7938 承接共享 import-boundary 修复,本 PR 不复制其实现。以上是作者可重现的归因,不能代替精确 head 的独立审查或失败豁免。隔离 wheel 使用正常构建且校验过的 frontend assets;没有更改实际 App、全局 CLI、已有会话或模型配置。包内 20 个场景的临时 runtime 均独立清理;外部 provider 仍为合成,因此不能称为真实模型或原会话采用。
全成本反证保留: 合成完整 Core 为 601,828 bytes,默认 Core 为 3,058 bytes;完整历史补读加一次完整恢复仍产生 20 次 CLI、1,217,783 bytes 输出、6,283 bytes 命令和约 2.32–2.65 秒读取,另保存 601,793 bytes 快照及 318 bytes 引用。首包更小不等于总成本改善;这些是传输/文件观测,token、费用、物理 IO 和长程成果未测。
CQR
cqr_8c343a2a5bc8be201dae已记录 FAIL,verify=invalid_receipt;以上失败、全仓验证及实际采用缺口保持,当前不能合并。Frontend / Visual Evidence
UI impact: none。修改模型输入和私有读取传输,不改变页面或第一视口;视觉截图不适用。源码、隔离 HTTP/CLI 和已安装宿主资格分别报告。
Boundary Checklist