Repository navigation
Reuse shared digest checks for Chat images and native child results - #8758
loopx-agent wants to merge 1 commit into
Conversation
Signed-off-by: LoopX Agent <[email protected]>
Apply the TypeScript portion of #8758 (fd229e7). The native receipt parser uses the same expression through its owner; the independent audit now also covers this caller. The chat image changes stay with #8758. 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)
评审提交 fd229e7db14f188dbf3c1d142b897d3ae238b544,对照目标基线 859a23ee9534539536343206e23452253528dd07。
动机 / Motivation
维护摘要格式的贡献者,以及从 Chat 读取原会话图片或从 Manager Inbox 消费原生子任务回执的人。 这两个现有读取入口分别手写了裸摘要和带前缀摘要的完整匹配,基线因此在两套单一格式所有者检查中失败。 精确基线的 Python 检查报告 Chat 图片的裸摘要字面量,TypeScript 检查报告 native child inbox 的带前缀正则。 现在两条原调用都依赖其语言的既有格式定义。基线和候选的同组 HTTP、Inbox 和 CLI 用例均通过,候选的两项所有者检查恢复通过。 本地对照使用真实入口和隔离数据。全量套件、Windows 和已安装版本没有纳入本次资格验证。
改动思路 / Approach
Python 与 TypeScript 的 content_digest 是已有的格式所有者。Chat 与 native child result 分别拥有来源、完整性和实际交付。 直接复用两个现有格式常量,保留 HTTP 解析、原图读回、回执绑定、内容完整性和后续确认入口。
具体改动 / Changes
关键代码讲解
Chat 继续用 fullmatch 检查原图链接的槽位和裸摘要,随后读回原 Session 的当前字节。Chat HTTP 入口
native child inbox 使用共享 envelope 模式,随后仍核验字节数、原任务范围和已提交终态。子任务读回
4 个文件,+6/-2。两个生产调用点换用已有常量,两套现有防漂移测试增加对应消费者。 已逐项核验格式所有权、图片 HTTP 的授权和字节,以及子任务回执的作用域。现有摘要格式定义
对主干的风险 / Risks
两版都拒绝陌生 Session、摘要不匹配、字节变化后的旧链接与跨源请求。子任务收件箱仍拒绝损坏内容和跨 Goal/Agent 来源,只在原宿主终态已提交时交付。
语义与 CI 对齐
基线和候选各通过 58 项请求链路用例。候选通过 244 项 Python ownership 检查、25 项 Node 用例以及本地 standard premerge 的 16 项执行。 作者报告全量 Node 曾遇到 SQLite 磁盘预留门槛,同时停止了广范围 Python 运行。本次独立运行覆盖这两个具体调用入口和摘要所有权。
我的整体评价 / Verdict
通过。精确目标基线的对照已给出两处重复规则的诊断。当前提交独立修复这两条调用,可以沿已有架构检查复核后续的摘要格式变更。原图片读取与子结果交付以各自的真实入口回归为据。
English verdict: APPROVE at fd229e7. Both readers reuse the established digest matcher while preserving the tested data and authority boundaries.
Goal And Delivered Outcome
Two production readers independently restated the SHA-256 format and broke the repository's Python and TypeScript digest ownership checks. The bound Chat history image route now uses the shared bare digest matcher; the native child result inbox uses the shared
sha256:envelope matcher. The existing consumer checks now pin both imports. Stored digests, image URLs, inbox admission, and invalid-input behavior are unchanged.This addresses the digest failures reproduced during #8751. The intended base is
main. The two patches apply cleanly together; the separate browser and Windows failures observed on #8751 still need their own qualification.Author Declaration
Scope And Continuation
Complete for these two duplicate matchers. Existing compound cursor and result ID rules retain their respective owners. No data migration, provider change, or frontend change.
Validation
fd229e7db14f188dbf3c1d142b897d3ae238b544real_entrypointpassedregression_paritypassedintegrationpassedstaticpassedintegrationpassedintegrationfaileddisk reserve exhausted.integrationnot_run(full completion)The affected stores were real isolated local files, with synthetic inputs. The full local qualification remains held. Remote Windows, browser qualification, and installed rollout are separate.
Frontend / Visual Evidence
Type of Change
LoopX Area
Shared-authority RFC fixture impact
N/A. No authority store or wire format changed.
Boundary Checklist