Skip to content

fix(chat): restore manager progress in the original private reply - #7927

Merged
huangruiteng merged 3 commits into
mainfrom
codex/steward-public-progress-20261103
Nov 2, 2026
Merged

huangruiteng merged 3 commits into
mainfrom
codex/steward-public-progress-20261103

Conversation

@loopx-agent

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

Copy link
Copy Markdown
Collaborator

管家的原生执行已经有活动,飞书私聊却只显示生成回答或空等:Antigravity 仅发送粗粒度标签,Lark 投影还主动丢弃公开 reasoning summary。

本次沿现有活动契约修复两段路径。Antigravity 的实际思考区段、工具调用及命令状态进入结构化活动;原私聊受众看到公开摘要和最近四个脱敏步骤,最终答案继续更新同一原消息。群聊仍保持原有粗粒度展示。原始 hidden reasoning、工具参数和输出均不转发,planner 完成不会被冒充为工具完成。

生产协议、Core store、原消息投递与读回回归覆盖了回答前可见、重复观察去重、群聊边界及终态替换。同一个公开摘要 fixture 在未修改的主干失败;本分支 83 项活动与投影测试通过;最终展示顺序另有 32 项测试、两项真实准入的私聊/群聊反例通过,六项 direct checks 与十一项 selected premerge checks 通过。长摘要与最近步骤的桌面/窄屏预览已检查;外部飞书皮肤与真实安装后回传单独保留验收。双语 RFC 同步更新。本次不启动第二个真实消息消费者,不重放原业务。

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

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

动机 / Motivation

用户在原飞书私聊交办后,需要知道管家实际在做什么。 原来即使宿主正在读取文件、执行命令或已发出公开思考摘要,私聊仍只显示等待或生成回答;现在原消息能先显示最近步骤,再显示合格公开摘要与答案片段。 等待中缺少实际活动会诱发重复交办,也使“确实在执行”和“已经卡住”难以区分。同一原生请求只执行一次,过程中更新原消息,结束后同一消息替换为完整答复。 此改动不新增消息消费者,不重放业务,不改变工具权限或把步骤完成改称业务完成。 真实飞书客户端的皮肤、安装后新请求的持续回传和历史积压的业务完成仍需分别核验。

改动思路 / Approach

最小路径继续使用原生执行器、Core 事件与原消息的发送 owner。供应商步骤翻译属于现有 native-chat 边界,脱敏与活动词汇复用共享 owner,私聊披露只由已核验的原始来源派生。 只补粗标签无法给出文件、工具与公开摘要;直接转发原始 thinking 又越过已有公开摘要边界。因此本次没有搬入大型宿主接入或重试实现,也没有为展示建立另一个消费者。本 PR 交付原请求中的过程可见性,保留原有准入、执行、恢复和最终回传 owner。 私聊需要零额外设置、确认或重输,群聊保持既有披露层级。

原生步骤先经过共享脱敏与生命周期投影,之后由已核验的人类 p2p 来源决定是否显示公开摘要和最近四条标题。原消息的发送、失联读回、重试与终态替换继续走已有 owner。最近步骤放在长摘要之前;这来自长重复内容的实际 QA,避免修复后的过程再次埋到屏幕下方。保留 coarse labels 是为了已持久化事件及既有消费者,不是增加第二套执行规则。

具体改动 / Changes

已读变更前的 docs/architecture/rfcs/app-conversation-and-async-inbox-v0.zh-CN.md,规范版本固定为 58a85d0aae8d35fdcbb75f5c93a25d38d5f5a8e9。按原文未编号条目 只显示上游报告的信息、不模拟阶段或暴露隐藏推理、在原处读到答案 判断,分别由原生观察、公开摘要边界与原消息终态回归验证,不用本次新增文字反证实现。此次私聊摘要披露的有意变化同步了双语 RFC。整个 PR 为九个文件,新增 287 行、删除 35 行;生产增量限于 provider 翻译与既有投影,测试和文档承担其余部分。结构化活动是输入事实,展示缓存不是另一份工作队列或准入 authority。

关键代码讲解

AntigravityActivity.observe 从当前 Turn 已过滤的原生步骤读取类型与状态,复用 CodexActivitySteps 的 token、路径脱敏和 step vocabulary。真实轨迹中的文件读取使用 VIEW_FILE 与文件 URI,命令使用 RUN_COMMAND;读取内容与 stdout 不写入活动事件。raw thinking 只产生观察到的思考区段,不伪装为公开摘要。planner 结束只说明发出了工具请求,不能据此把工具标为完成。相同步骤再次被轮询时只复用既有 ID,避免重复生命周期。

project_progress 折叠持久化 Core 事件。只有明确标为 public summary 的事件进入摘要,原始 reasoning delta 始终跳过;只保留 1,200 字符摘要和四条最近标题,答案仍使用原有 6,000 字符窗口。已完成、失败及进行中步骤分别保留,最终答案仍由原终态路径替换草稿。_progress 从原记录的人类 p2p 来源派生披露选择;这个布尔投影不是发送或执行许可,真正的 provider 来源与 grant 检查没有改变。

对主干的风险 / Risks

最强反例是私聊细节进入群聊、原始推理被误当摘要,或者 serializer 测试通过但原消息根本没有更新。实际准入的 private/group 反例使用同样原生协议输入,只有私聊展示摘要与文件标题;原始推理均未出现。真实协议进程、Core store 和生产 sender/provider 边界验证生成前可见、重复 reconcile 不追加消息、最终答复更新原 post;外部模型与 Lark endpoint 是合成边界,不能据此宣称真实业务已经执行。原生 HTTP 用例也验证只有一次原始提交,并检查隐藏推理、参数、文件内容与输出都未进入事件。

83 项活动/适配器/投影测试通过;最终展示顺序另有 32 项测试与真实准入的私聊/群聊两项反例通过;相邻 423 项回归通过。 83 项结果来自 50d8bee,最终 native、provider、transport blobs 没变;随后只有展示顺序变化,最终全部 32 项 Lark 测试、两项原来源反例和视觉复核覆盖该变化。最终 premerge 的六个 direct checks 与十一项 selected checks、Ruff、双语 RFC 均通过。原历史 81/82 用例中的旧 coarse-title 预期已随明确的新披露契约调整,输出不可见的断言保留;新增文件读取测试的编辑错误也保留在历史日志,之后最终 owner 全套与路径用例通过。严格 mypy 对既有 projector 的三处诊断在不可变基线和最终源中身份与内容相同,属未改表达式的既有诊断;新 activity owner 的类型检查通过。按 wait_for_ci=false 未查询、轮询或等待 CI。

语义与 CI 对齐

新的 step、summary 和 private cache 都是观察投影,不改变实际 Actor 生命周期、工作承诺、调度、额度或业务完成条件。缺少公开摘要时只显示实际思考状态,不编造内容;缺少新事件时也不合成进度。源码中的精确 native discriminant 和共享状态负责分类。回滚只需撤销该 PR,原 Turn、失败与投递回执均保留。当前没有必须拆分或简化的机制,也不要求本展示修复完成整个宿主重构和历史积压。

我的整体评价 / Verdict

这是 justified_increment,long_horizon 和 user_experience 均有明确的可观察改善:原请求不需要用户重复输入就能看到实际执行过程,且后续仍由原 owner 完整回传。供应商步骤翻译属于现有 native-chat 边界,脱敏与活动词汇复用共享 owner,私聊披露只由已核验的原始来源派生。 本 PR 交付原请求中的过程可见性,保留原有准入、执行、恢复和最终回传 owner。 新的派生缓存、有界标题与现有事件相称,生产边界与测试保持一致,没有把未知副作用包装为自动成功。

已在未改动的生产 Chat 完整答复读取器中检查由最终 projector 生成的合成长消息,覆盖长重复摘要、四条步骤、失败状态、答案片段与页面下部;1200px 和 430px 的最终截图中步骤位于摘要之前。外部模型、消息来源是合成边界,不能据此宣称真实 Bot 已完成业务。 外部飞书客户端自身皮肤未做像素验收;真实原消息的安装后独立读回仍保留。 视觉检查覆盖来源派生的长消息预览,不把合成已保存消息的“完整答复”页面标题当成运行中 Core 状态的证据;运行中与终态分别由真实协议/原消息回归验证。先前长摘要挤走近期步骤的问题已经在最终 head 修正,桌面和窄屏都能先读到步骤与失败标记,详细摘要和正文仍在后方可达。这个安装前的质量结论不代替真实原会话的采用与最终回传验收。

English verdict: APPROVE — restore observed private-owner progress through the existing source-bound reply, without granting execution or replay authority.

@huangruiteng
huangruiteng merged commit 4bfcfcc into main Nov 2, 2026
5 of 6 checks passed
@huangruiteng
huangruiteng deleted the codex/steward-public-progress-20261103 branch November 2, 2026 18:18
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