Repository navigation
fix(source-read): reuse the canonical digest binding - #6958
Conversation
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: model_agent | gpt-6.1-sol | OpenAI | runtime_reported | effort=max
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
动机
使用隔离 Chat 阅读长篇公开资料的用户和维护该入口的开发者。旧版续读校验另写一份摘要格式,架构检查会拒绝;本次在保持隔离 worker 可运行的前提下改为读取发布自带的统一规则。同一来源摘要的分页读取与无效输入拒绝保持,摘要规则统一归属原生成绑定。本次不扩展阅读权限、网络目标、响应上限或默认启用范围。 基线的失败已实际出现,直接保留重复字面量会让统一摘要规则继续存在两个维护点。
改动思路
加载本发布自带的生成绑定比引入新的校验器或给隔离 worker 注入模块路径更小,也保持了唯一规则 owner。当前改动仅合并摘要规则的读取来源,并保留隔离进程、现有续读语义和默认关闭门。 这里的 worker 是只做匿名网络观察的隔离 Python 进程。普通包导入无法满足“宿主没有安装 LoopX”的现有运行方式;把发布目录加入模块搜索路径又会扩大搜索面。本实现只从当前可信文件的位置取得旁边已经生成的绑定,不改 HTTP 获取、进程参数或环境变量,也没有新增桥接服务、状态层或迁移协议。
具体改动
规范依据是 docs/integrations/public-source-reader.md,按不可变版本 b9389edc28cf5b787f387ef426d1bafd0c118cfb 阅读;另核对 loopx/control_plane/content_digest.ts 及其生成 Python 文件。source-only-current-release:已实现并用实际无 LoopX 包的子解释器验证;pinned-text-continuation:已实现并保留同摘要续读和来源变化拒绝;operator-default-off-isolation:保持默认关闭与原操作员门。community-golden-pack:本次不作 Bot 启用或推广验收,原文单列的原生 Session/模型、图像与完整来源资格继续由其原门约束。
关键代码讲解
_text_page_parameters,第 229 行:偏移、类型和摘要要求仍在 IO 之前校验,只把重复正则换成统一绑定的 fullmatch;大写、长度错误、缺失摘要及非法偏移仍拒绝。_observation,第 318 行:继续以当前文件和-I启动,保留最小环境、30 秒期限及既有错误收束。第 29 行的绑定加载不依赖站点包,未加入工作区搜索路径。
在不可变基线,完整 reader 模块 82 项通过;候选的 reader 与两个摘要架构模块合计 351 项通过。真实无站点 LoopX 的 worker 在 base/head 都读取 RFC9110 的 0–100000、100000–200000 字符段,完整返回对象逐项相等,来源摘要相同;只验证了 502907 字符中的前 200000 字符,未声称整篇覆盖。
对主干的风险
主要风险是加载到另一个安装版本,或让没有站点 LoopX 包的隔离宿主无法启动。可信兄弟文件路径、实际空解释器、恶意工作区/PYTHONPATH 标记不执行的反例共同覆盖这个风险;没有靠 mock 提供“启动成功”。默认关闭和操作员显式开启的成对用例在基线、候选完整 reader 模块中均通过,原生配置入口本身未变。匿名 HTTPS、地址约束、来源改变错误、响应范围和权限边界保留。Ruff、公开边界扫描、4 项直接 premerge、编译、2 项 catalog 与 8 项风险检查全部通过。CI 按当前策略未查询;旧全量基线 1 失败/4342 通过/575 跳过/1903 子例通过、剩余未测的记录保留,新候选全量仍单独运行,未计为通过。
语义与 CI 对齐
本次复用既有词汇和值 owner,没有新建或放宽摘要语义,也没有改变默认能力范围。共享规则的改变以后仍只编辑原 TS owner 并生成绑定。完整全仓测试与社区 Bot 的资格,不由这份局部通过记录替代。
我的整体评价
APPROVE,精确 head 为 726ea910315f6a51ff234348f662116a8f6df065。long_horizon:preserved,同一来源的后续页保持原摘要与覆盖信息;user_experience:preserved,既有开启方式、隔离调用、拒绝与恢复方式保持。8 行新增和 1 行替换解决了可复现的规则归属失败,并保留源部署兼容性,没有引入兼容分支或第二套框架。当前改动仅合并摘要规则的读取来源,并保留隔离进程、现有续读语义和默认关闭门。 本 PR 的修复边界已完成;更大范围的全仓资格仍按其真实终态单列。
English verdict: APPROVE — 726ea91. Reuse the same-release canonical digest binding while preserving isolated source-only workers and existing pagination/authority semantics. The complete owning modules (351 tests), immutable-base reader module (82 tests), paired real source-only HTTPS reads, and standard local premerge passed. CI was not consulted; the separate whole-candidate run is still in progress.
Public source continuation introduced a second bare SHA-256 pattern, causing the digest ownership architecture check to fail. Reuse the existing generated TypeScript-owned binding from the same release without adding a workspace to the isolated worker’s module path or requiring a site-installed LoopX package.
Pagination, lowercase digest validation, changed-source rejection, anonymous HTTPS restrictions and default-off configuration retain their existing behavior. No UI, credentials, account scope or model calls change.
Validation: 351 tests passed across the complete public-source-reader and both content-digest architecture modules, including the real isolated source-only worker rejection case; Ruff and the public/private scan passed. The original main-wide Python attempt stopped at this architecture failure (1 failed, 4,342 passed, 575 skipped, 1,903 subtests passed); the remaining tests were unexecuted. A new full candidate attempt is tracked separately.
中文:修复来源续读新引入的摘要规则重复定义,复用同一发布源码的生成绑定;保留隔离 worker 无需安装 LoopX、严格输入校验和原有权限边界。