Skip to content

fix(chat): share endpoint observations within capability responses - #7951

Merged
loopx-agent merged 1 commit into
mainfrom
codex/steward-capability-observation-20261103
Nov 3, 2026
Merged

loopx-agent merged 1 commit into
mainfrom
codex/steward-capability-observation-20261103

Conversation

@loopx-agent

Copy link
Copy Markdown
Collaborator

一次能力读取会重复探测同一端点;端点在两次探测之间变化时,执行器选择与适配器状态还可能互相矛盾。现在一次 HTTP 响应共享一次新鲜观测,后续请求及实际执行继续独立探测。

Antigravity 的只读就绪探测同时把进程枚举纳入原有 4 秒总预算,避免枚举耗时后重新获得完整探测预算。慢发现会更早返回不可用;实际执行的发现路径保持原有阶段时限。没有跨请求缓存或权限放宽。

验证:真实 HTTP 入口与两种 provider 组合、状态变化、空观测以及执行时重新探测等针对性测试共 92 项通过;premerge 的 6 项直接检查与 2 项选择检查通过。扩大回归 95 项通过、2 项配置断言失败;相同测试在原基线也失败,保留为既有问题。隔离的受控延迟观测确认探测次数从两次降到一次,完整响应内容保持一致。

这里验证的是响应一致性与有界的就绪观察。安装后服务、原会话与界面验收仍待执行;隔离测量没有证明所有现场间歇超时都来自该缺陷。

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; model=GPT-6 (Codex); provider=OpenAI; self_reported (host execution observation unavailable).

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

动机 / Motivation

没有发现阻塞问题。读取管家能力与执行器状态的 Chat 用户。端点在一次读取期间变动时,旧响应可能选中一个同时被标为不可用的执行器;新响应在同一次读取中使用同一份观测。真实 HTTP 入口的连续三次读取保持选择与状态一致,并且每次只探测一次。本次不修改会话权限、持久化格式、模型请求、消息重放或前端布局。本 PR 尚未验证已安装服务的间歇超时和完整原消息闭环。

旧实现每次读取都会重复执行端点探测,即使端点稳定,也平白承担两次 provider IO。只缩短超时不能消除同一响应的矛盾;引入全局缓存又会把过期状态带到后续操作。因此,这次修复是已有故障的一段可独立使用、测试和回退的改进,不代表所有管家问题已经解决。

改动思路 / Approach

复用既有端点目录和分配 owner,在 HTTP 组合处传递短生命周期观测,避免新增缓存、状态表或另一套选择规则。当前 PR 只交付单次能力响应的一致性,以及包含进程枚举的有界只读探测;实际执行继续独立发现。能力读取继续调用现有端点目录,选择策略仍由 manager allocation 决定;只读响应不会建立 Session、提交模型请求或授予权限。省略观测参数的真实分配调用仍会重新读取,传入空列表则明确保持未知,避免隐式再试一次。状态展示与执行的生命期在这里有明确区别,不能将展示结果缓存为执行许可。

Antigravity 的探测把进程枚举与随后发现放到同一观察时限中。实际执行及结果读取不传此新参数,保留原阶段时限;这是有意保留的不同用途,而非第二套选择规则。

具体改动 / Changes

按 docs/reference/operator-model-credential.md 的现有约定判断,spec_revision 为 d94202c55f3f80f0939e4e953bfeee0d3a079655。原文没有编号,下列是评审标识:same-readback 已实现,同一能力响应的选择和状态使用相同观测;persisted-allocation 已实现,本次不改写当前会话的端点、模型、effort、pool 或来源,后续操作仍走现有分配与权限检查。

关键代码讲解

  • ChatRequestHandler.do_GET 在一次请求中取得 adapters,再交给管家投影并直接返回这份列表。真实 HTTP 测试覆盖安装 provider 和普通组合两种入口,连续可用、消失、恢复时都要求选择与返回状态一致。
  • manager_capabilities_projection 沿现有凭据和模型 owner 传递观测;_controller_endpoint_availability 用 is None 区分未提供与明确空观测。空列表不会悄悄触发重新探测。
  • manager_executor_allocation 保留既有 preferred、pinned、flexible 规则。真实打开会话及模型采用调用不传 HTTP 观测,测试确认下一次仍分别读到 False、True,既有 Session 未改变。
  • discover_antigravity_language_server 接收可选 deadline;仅就绪探测传入它。慢 ps/lsof 的回归在原基线上失败,在当前提交停止观察后,下一次正常发现仍成功。

六个文件共增加 138 行、删除 20 行,其中生产代码 +45/-20、测试 +93;未增加模块、CLI、后台服务或持久化状态。现有大模块的规模问题留作既有 advisory,本次没有靠扩大门槛获得通过。

对主干的风险 / Risks

最强反例是端点在展示之后变化,旧观测错误地支配后续执行。实际调用搜索与无缓存回归证明快照仅在当前 HTTP 组合中使用;原生模型、忙碌会话、撤销 transport、超时保留部分响应等负路径也在当前套件内。慢发现现在可能更早显示不可用,随后候选选择仍受原机器 pool 约束;操作本身会重新发现。4 秒指共享发现 allowance,并非涵盖操作系统调度或子进程清理的硬墙钟承诺。

PASS:当前提交的三个针对性模块 92 项通过;premerge 的 6 项直接检查与 2 项选择检查通过,保留一项既有 maintainability advisory。真实 HTTP 入口使用隔离 store 与受控 provider,未运行生产消费者或付费模型。相同当前测试在不可变基线重现三个缺陷失败。扩大回归 95 项通过、2 项 FAIL:配置目录对 stride_strategy 和端点选项的旧断言,在同一基线分别以相同字段详情失败;本次不改变它们的因果路径,不把这些失败改称通过。

语义与 CI 对齐

复用现有能力 schema、分配理由和术语,没有新增权限或义务词汇。稳定输入下完整响应 SHA 均为 a0869c72fc0056dddb08e60ffae0befc18df54af858d8a5c498f3a17b24c2000;有意差异仅为一次请求共享观测和只读发现的时间分配。按当前 Goal 的 wait_for_ci=false,未查询、轮询或等待远端 CI;结论依据本地当前提交证据。

我的整体评价 / Verdict

本次属于 justified_increment:long_horizon improved,重复读取的成本下降且没有跨请求缓存;user_experience improved,同一读取的显示与选择更可信,原有意图和授权下无需新增交互。检查 chat_server.py 的能力响应、chat_manager.py 投影与现有客户端消费路径;没有布局、文案、样式或字段结构改动,故视觉审查不适用。unverified_scope:none for rendered changes;已安装服务和完整消息回传仍待独立验收。

现有 owner 的复用与一次性观测相称,保留可选参数是为了真实操作重新发现,未引入版本分叉或数据迁移。在受控 120ms provider 的三次样本中,handler 从约 0.250–0.255 秒、两次探测变为 0.121–0.131 秒、一次探测;这不是浏览器/网络或生产 p95 测量。该改进可合入,再由普通安装流程验证原服务;不能仅凭这些数字宣告现场全部间歇超时或未回复消息已经闭环。

English verdict: APPROVE — head 3626eb5; no blocking finding. Real HTTP coherence, fresh subsequent allocation and bounded advisory discovery are covered; 92 focused tests and required premerge checks pass. Two inherited configuration assertion failures and pending installed-service qualification remain disclosed.

@loopx-agent
loopx-agent merged commit 3af951a into main Nov 3, 2026
6 of 8 checks passed
@loopx-agent
loopx-agent deleted the codex/steward-capability-observation-20261103 branch November 3, 2026 01:32
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