Skip to content

fix(material): allow existing intake in authorized project conversations - #5562

Merged
huangruiteng merged 7 commits into
mainfrom
codex/material-project-source-scope-20261004
Oct 5, 2026
Merged

huangruiteng merged 7 commits into
mainfrom
codex/material-project-source-scope-20261004

Conversation

@huangruiteng

@huangruiteng huangruiteng commented Oct 4, 2026 •

Copy link
Copy Markdown
Collaborator

Ordinary project conversations could not use an existing activated material source without a Goal. This change lets existing material SDK builders select exactly one Goal or project source owner, with the source verifying current Core authorization before access and publication. It removes the managed skill’s contradictory Goal-only stop; migration, rebuild and Explore remain Goal-only.

An existing independently deployed source now loads this exact SDK canary. Its real isolated native Core/HTTP and file workflow verifies intake, separate ranking, publication/readback, replay, rollback and six invalid-authorization cases, followed by recovery on the original Turn. Current-source adoption was also checked read-only, preserving its live authority. No new Chat writer, daemon, source registry, private parser or hidden Goal is added.

Validation:112 related tests; six complete legacy Goal packet chains including hashes/rendered bytes match immutable main; managed-copy preview/install/readback; Ruff, compile, changed-module Mypy and native premerge5direct+18selected checks. Broader SDK Mypy has13 diagnostics identical to immutable main in unchanged causal paths. CI was not consulted under the managed Goal policy. Full deployed Bot upgrade and original-channel/source-reading acceptance remain separate.

Signed-off-by: huangruiteng <huangrt01@163.com>
Signed-off-by: huangruiteng <huangrt01@163.com>
Signed-off-by: huangruiteng <huangrt01@163.com>
…ement

Signed-off-by: huangruiteng <huangrt01@163.com>
…path

Signed-off-by: huangruiteng <huangrt01@163.com>
@huangruiteng huangruiteng changed the title feat(material): support authorized project source scope without a Goal fix(material): allow existing intake in authorized project conversations Oct 4, 2026
@mergify

mergify Bot commented Oct 4, 2026

Copy link
Copy Markdown

This pull request has merge conflicts with main and cannot be merged
until they are resolved. Please rebase or merge the base branch, @huangruiteng.

Choose the remote for the base repository, not an out-of-date fork.
For a fork clone, first inspect git remote -v; upstream must point
to https://github.com/loopx-project/loopx.git. If it is absent, add it
with git remote add upstream https://github.com/loopx-project/loopx.git.
Then run:

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 HEAD

For a same-repository clone whose origin points to
https://github.com/loopx-project/loopx.git, use origin instead of
upstream for fetch/rebase. If you prefer merging the base, use
git merge <base-remote>/main and push normally.

Keep the DCO Signed-off-by trailer on every commit when you rebase.
https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork

@mergify mergify Bot added the needs-rebase Mergify: the pull request has merge conflicts with its base branch label Oct 4, 2026
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
@loopx-agent
loopx-agent self-requested a review as a code owner October 4, 2026 16:05
@mergify mergify Bot removed the needs-rebase Mergify: the pull request has merge conflicts with its base branch label Oct 4, 2026

@loopx-agent loopx-agent left a comment

Copy link
Copy Markdown
Collaborator

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.1-sol | provider=OpenAI | runtime_reported | effort=xhigh

动机

已启用项目素材来源的普通对话用户,希望保存一条精读候选而无需额外建立 Goal。旧版素材 packet 必须带 goal_id;新版允许项目范围标识,既有 Goal packet 保持原样,但实际无 Goal 写入尚无接入证据。已验证公共 SDK 可生成项目 packet、缺授权 verifier 会在 provider 访问前拒绝;普通对话持久写入尚未验证。本次不要求内置私人解析器、自动初始化来源或全面关闭素材路线图;也不把配置和 SDK 测试当普通对话验收。仍缺真实 Core 项目调用者与来源授权 verifier 的接入回读;托管 skill 的停止条件还保留 Goal 前置条件。

改动思路

这次把 Goal owner 的构造集中到 material_owner_fields,允许明确的项目、来源 profile 和工作区 grant 引用进入已有素材 packet。引用只负责定位,不授予写权限;intake/rollback 仍复用现有来源 provider、阶段写入、CAS 切换和独立回读。新增 verifier 在首次 provider 访问前与切换前检查;它是来源 adapter 解析现有 Core 授权的接口,不能把字符串或测试里的 True 当许可。源码搜索覆盖 base、精确 head 与最新 main,现有 CLI 只有 architecture 和 skill 生命周期,没有普通项目 intake 消费者。

具体改动

关键代码讲解

  • ownership.py:21 material_owner_fields 强制 Goal/project 二选一,项目只保留三个紧凑引用;Goal 模式的 packet/hash/rendered bytes 在配对回放中完全相同。
  • ownership.py:60 verify_project_material_write 没有 verifier 或返回非 True 就拒绝;无 verifier 的调用确实在 provider 访问前失败。当前仓库的 verifier 实现只在测试里,真实调用者和来源写入采用未验证。
  • intake.py:463 apply_material_candidate_intake 仍按内容 digest/大小、源 revision、阶段回读、既有记录不变、二次授权、CAS、目标回读推进;intake.py:757 rollback_material_candidate_intake 保留相同来源 owner。
  • skills/loopx-material/SKILL.md 的 Activation Gate 允许 ordinary project route,但 :243 仍要求 selected goal 上已激活,形成对普通项目路径的矛盾停止条件。

独立规范:docs/reference/protocols/material-lifecycle-architecture-v0.md,revision ba443e2b9d096f5e6ec3c710ef68143ffff73448,先于本变更读取。Stage-0 Contracts:implemented,公共 metadata/来源 authority 分离;Owner-Gated Apply and Rollback:deferred,真实项目来源 adapter/Core grant 与回读未验,不能据 SDK 成功宣告已采用;Stage Boundary:implemented,规范本来允许通用契约阶段,并不要求内置私有解析器。本次阻塞来自托管指令矛盾及新接口缺 active consumer/owner-accepted coverage-only 证据,未把未来路线图当当前全量义务。

对主干的风险

[P2] 项目路径仍被 Goal-only stop 拦住。 已启用来源、已有 Core grant、没有 Goal 的合法普通对话,前文可以走 project route,末尾却必须停止。这会让 Agent 重走建 Goal 的旧体验。最小修复:停止条件按当前 execution owner 判定,明确 Goal 或已启用 project source+绑定 grant;migration/rebuild/Explore 的 Goal 限制仍保留在对应操作。实际安装到隔离项目的 managed copy 逐字包含这两条矛盾指令;安装本身不是能力激活。

[P2] 新项目接口的真实采用未证明。 rg 'apply_material_candidate_intake|verify_project_scope' loopx apps packages examples 与 latest main 搜索未找到实际调用者或 verifier 实现,只有 export/helper/test adapter。PR 已诚实记录 ordinary adoption 尚未资格化,但本次新 module/多 packet 扩展仍需 active consumer 或明确 owner 接受的 prerequisite 边界。请补实际入口与来源 owner 回读证据,adapter 可保持 private;无需提交私人 source layout 或改造全部 Core。负向应覆盖未绑定、外部/过期/撤销 scope,确认修正后回到有用入库,不能以拒绝回执代替恢复。

源码本地验证:base 51/head 67 个聚焦 Python 测试通过;相同隔离 fixture 对每个关系运行六种 Goal SDK packet,完整 packet、content/hash 和渲染 bytes 一致;head 项目 packet 无 Goal,缺 verifier 的写入全部无 provider 访问。实际 skill preview/apply/readback 与 architecture CLI 通过,feature-off architecture 保持原样。semantic advisory 后 full semantic smoke、diff check 和公共边界扫描通过。SDK/测试 provider 不证明真实 Core grant、并发撤权原子 fence 或普通对话最终成果,相关 required journey 留 unverified。未读取/等待远端 CI。

语义与 CI 对齐

复用既有 material 生命周期词表;project owner 是本能力新增 scope metadata,不新建 Core authority 或 actor lifecycle。Python 留在现有 material/provider 契约,不引入第二个 Core 决策 owner。机器校验通过不能解决 agent instruction 的 Goal/project 矛盾,也不能证明 profile/grant 的 producer 与实际消费者。

我的整体评价

REQUEST_CHANGES。方向有价值:已授权单项目任务无需虚构 Goal,既有 Goal 行为保持;但 long_horizon 和 user_experience 均为 not_yet_proven,因为授权项目路径仍可能按指令停住,且真实 source adoption 未验。新三个引用/协议和共享 builder 增长需实际消费者支持,不能从 14 文件或 67 测试推出长期收益。future-facing pass 已集中 owner 字段,下一步应接入现有 Core/source owner 并统一停止谓词,避免额外 authority 框架。未合并、未安装升级;重审需当前 exact head 与上述真实路径证据。

English findings: (P2) The managed skill advertises a no-Goal project route but still stops unless Material Lifecycle is active for a selected Goal. Make the stop condition execution-owner aware without widening Goal-only operations. (P2) The new project-scope protocol has no evidenced active project caller/source verifier; supply real consumer/adoption evidence or an explicitly owner-accepted SDK prerequisite boundary. Existing Goal packets are preserved, but SDK and fake-provider success do not prove an ordinary conversation journey.

English verdict: REQUEST_CHANGES - 5562@8f4ef8fb84fa9acd3509b0fb4b5b3d105374f751. Potentially useful reduction of Goal setup, with preserved existing SDK behavior, but the delivered project instruction and actual adoption gaps still prevent a verified user outcome.

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>

@loopx-agent loopx-agent left a comment

Copy link
Copy Markdown
Collaborator

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

Exact head: 5562@364de8be6e193b6459a8b6eb95ce4a977638efb2; immutable main base: b5fa27f870944cfc8d1c3ce7b33ef123eea1971b.

动机

普通项目助手在已有授权工作区执行素材收集和排序时,会遇到必须先建立 Goal 的阻碍。 同一已启用素材来源原本无法直接完成普通对话中的收集;现在使用现有工作区写入授权,完成入库、独立排序、投影读回和回滚,不创建隐藏 Goal。 当前 SDK 已被现有项目来源实际加载;隔离原生 Core 与真实文件来源验证执行闭环,并拒绝失效或不匹配的授权。 本 PR 不建立新素材存储、读取器、调度器或 Chat authority,也不把安装 skill 当成启用来源。 完整 Bot 升级、真实消息渠道返回与外部原文读取仍由现有 Bot 交付任务继续验收。

这里的“来源”是项目已启用的素材库;它的写入仍须由当前工作区授权和原存储 owner 验证。三个引用只定位已存在的授权,不能授予权限。

改动思路

最强反方是:为了简单素材指令,再加一个无人使用的接口就是过度设计。只靠 fake provider 返回 true 或测试能构建 packet,不能证明现有助手会使用它。本次没有添加 Chat writer、素材 registry、daemon 或新 model runner:只扩展原素材 SDK 的 owner metadata,保留原 source 的授权、文件锁、CAS、投影、receipt 与回滚。既有项目来源已实际加载本 exact head 的不可变 SDK;其真实原生绑定和当前宿主可写授权经过只读验证,真实素材 authority 未变。

上轮 review 的两个 P2 均逐项处理:安装后的 skill Stop Conditions 现在与 Activation Gate 一致,普通项目的已启用来源无需 Goal;现有来源的真实消费路径已确认。额外查出的本地来源授权漏项也修复了:旧 App binding 仍是可写、当前宿主已降为只读时,不能只看旧 binding。本次 SDK 不保存新的授权状态,source 重新读取既有 Core 的项目写入事实与精确选择器。

具体改动

完整主干差异15文件 +471/-40,其中241行是聚焦测试;production 最大块是88行 owner normalization/verifier 和 intake 60行修改。其余 builder 复用同一 owner normalization,所属双语说明、协议和 scoped skill 说明边界。用正常带 DCO merge 整合最新 main,没有重写历史、夹带已合并排名 helper 的 diff 或提交私有 source/config。

阅读先于 implementation 的规范为 docs/reference/protocols/material-lifecycle-architecture-v0.md,固定 spec_revision=b5fa27f870944cfc8d1c3ce7b33ef123eea1971b。按原标题映射:Position(默认关闭、引用生命周期不拥有原文/凭据/Core)implemented;Stage-0-Contracts(public-safe inventory、精确refs、有界排序与独立回执)implemented;Owner-Gated-Apply-and-Rollback(既有来源 gate、CAS、staging、独立读回和回滚)implemented;Migration-Boundary out_of_scope,因为项目 route 不扩大原 Goal-only migration;Stage-Boundary implemented,因为不内置私人parser/store、source初始化、自动排序或Explore provider。规范中原来的 Goal owner 定位没有被当成已接受的项目授权;本PR明确记录用户要求的普通项目扩展,同时保持原安全义务。

关键代码讲解

  • ownership.py:21 material_owner_fields 要求 Goal 与 project_scope 恰好一个;project只接收三个完整 compact refs。它返回 metadata,自己不读写来源或授予 grant。所有受影响 builder 复用该 owner,不各自新增判断。
  • ownership.py:60 verify_project_material_write 对 Goal 保留旧路径;project必须有可调用 source verifier 且返回值严格为 True。缺 verifier 在任何 source access 之前拒绝。它是 SDK 调用的授权边界,真实事实由既有 Core 和 source owner提供。
  • intake.py:463 apply_material_candidate_intake 保留正文size/digest、source revision CAS、immutable staging、原记录 reconciliation;当前项目授权在开始和发布前都重检,再由 source 在自身事务内保持 publication fence。成功回执携带同一 project owner,不创建 Goal。
  • intake.py:757 rollback_material_candidate_intake 从原 receipt 验证 owner,重新检查当前授权和精确 after revision 才恢复;归还的仍是旧 source authority,不重解释已有 Goal receipts。库存、排序、投影和 settlement builder 仅适配 owner metadata;Goal-only migration/rebuild/Explore 原路径没有放宽。

正向实测使用现有来源的 intake/rollback/publisher、当前 SDK 和真实隔离 Core/loopback HTTP,provider身份与model为合成:一个原生普通 Turn 内,新素材入库、另一authority revision排序、投影独立检查、同输入重试、精确回滚全部通过。新scope与所有receipt均无Goal;模型仅启动一个Turn。不是测试callback直接给授权true,也没有另造modelthread恢复。

对主干的风险

112项素材契约/intake/projectscope/排序/投影/skill交付/preparation/apply/Explore测试通过。六组完整旧 Goal SDK 链路在固定main与当前head的输出、packet hash及rendered bytes逐字一致,没有归一化掉语义。独立missing-verifier oracle在实际 intake路径故意移除guard时失败(DID NOT RAISE),保留guard后通过。当前 managed skill确实preview、install、按源内容读回,安装并未激活素材库。

真实隔离来源验证6种拒绝:unbound、foreign-selector、宿主降为只读、过期gate、实际staging后撤权、原生binding撤销。拒绝不推进authority;恢复原有grant后,在同一原生Turn完成有用入库与排序,不拿“拒绝成功”替代执行完成。源事务仍必须在staging/publication保持授权fence;SDK的两次precheck不是跨独立Core/source的全局原子撤权,未声称已验证那种并发保证。

Ruff、compile、6个变化production module的Mypy通过;native premerge 5direct+18selected检查全部通过,0failure/warning/advisory。全SDK Mypy还有13项既有错误:在不可变main与head运行完全同一命令,错误身份、位置和完整诊断逐条一致,来自未改变的 _validation.py:94 nonnegative_int 和 explore_execution.py:67–77/212;变化函数/规则不在其因果路径,已独立覆盖。没有删除断言或降低质量上限。两次初始测试路径错误和 python -m loopx 错误未执行检查,已换成正确当前命令,不算通过项。

语义与 CI 对齐

这是对既有 material capability vocabulary 的明确项目 owner 扩展,旧 Goal packets、持久回执与默认关闭保持;“两种owner恰好一个”的新拒绝诊断是有意变化,不宣称所有非法输入的错误字节都相同。主干已合并的 shared ranking 与 presentation 保留,未加第二个policy owner。公开差异不含私人来源实现、记录、路径、App/用户身份或聊天;未跟踪uv.lock未提交。按Goal政策没有查询、轮询或等待CI。公开roadmap仍保留完整ordinary-conversation验收缺口,实际 source adoption不被扩大成完整Bot验收。

我的整体评价

没有未解决的阻塞finding,两个原P2已在当前head独立验证。long_horizon=improved:旧Goal链路兼容,项目真实来源继续使用既有CAS、独立排序、投影、replay和rollback,不积累隐藏Goal或第二套ledger。user_experience=improved:普通请求无需额外创建Goal、重复已知信息或更换宿主,失效授权仍如实拒绝,并已演练恢复到有用工作。

这是 justified_increment:实际已有消费者的有界SDK缺口已经补齐,最终正式安装、原Bot渠道及外部文章读取仍属于既有交付任务,不能用本次测试或只读探测替代。Python仍处于既有素材provider/SDK层,Core授权owner保持typed;不新建CLI、版本分叉或sourceauthority。保留旧Goal receipts是独立消费者/持久恢复需要;一份shared owner normalization比每个provider伪造Goal或新建transportwriter更小。模型精确build观察不可用,Reviewer如实使用self_reported产品家族,不能借用另一reviewer的身份。

English verdict: APPROVE - The existing project source now consumes the bounded owner-aware SDK; current authorization, lossless readback and recovery are exercised without creating a Goal. Full deployed Bot acceptance remains separate.

@huangruiteng huangruiteng 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)

Exact head: 5562@364de8be6e193b6459a8b6eb95ce4a977638efb2; immutable main base: b5fa27f870944cfc8d1c3ce7b33ef123eea1971b.

动机

普通项目助手在已有授权工作区执行素材收集和排序时,会遇到必须先建立 Goal 的阻碍。 同一已启用素材来源原本无法直接完成普通对话中的收集;现在使用现有工作区写入授权,完成入库、独立排序、投影读回和回滚,不创建隐藏 Goal。 当前 SDK 已被现有项目来源实际加载;隔离原生 Core 与真实文件来源验证执行闭环,并拒绝失效或不匹配的授权。 本 PR 不建立新素材存储、读取器、调度器或 Chat authority,也不把安装 skill 当成启用来源。 完整 Bot 升级、真实消息渠道返回与外部原文读取仍由现有 Bot 交付任务继续验收。

这里的“来源”是项目已启用的素材库;它的写入仍须由当前工作区授权和原存储 owner 验证。三个引用只定位已存在的授权,不能授予权限。

改动思路

最强反方是:为了简单素材指令,再加一个无人使用的接口就是过度设计。只靠 fake provider 返回 true 或测试能构建 packet,不能证明现有助手会使用它。本次没有添加 Chat writer、素材 registry、daemon 或新 model runner:只扩展原素材 SDK 的 owner metadata,保留原 source 的授权、文件锁、CAS、投影、receipt 与回滚。既有项目来源已实际加载本 exact head 的不可变 SDK;其真实原生绑定和当前宿主可写授权经过只读验证,真实素材 authority 未变。

上轮 review 的两个 P2 均逐项处理:安装后的 skill Stop Conditions 现在与 Activation Gate 一致,普通项目的已启用来源无需 Goal;现有来源的真实消费路径已确认。额外查出的本地来源授权漏项也修复了:旧 App binding 仍是可写、当前宿主已降为只读时,不能只看旧 binding。本次 SDK 不保存新的授权状态,source 重新读取既有 Core 的项目写入事实与精确选择器。

具体改动

完整主干差异15文件 +471/-40,其中241行是聚焦测试;production 最大块是88行 owner normalization/verifier 和 intake 60行修改。其余 builder 复用同一 owner normalization,所属双语说明、协议和 scoped skill 说明边界。用正常带 DCO merge 整合最新 main,没有重写历史、夹带已合并排名 helper 的 diff 或提交私有 source/config。

阅读先于 implementation 的规范为 docs/reference/protocols/material-lifecycle-architecture-v0.md,固定 spec_revision=b5fa27f870944cfc8d1c3ce7b33ef123eea1971b。按原标题映射:Position(默认关闭、引用生命周期不拥有原文/凭据/Core)implemented;Stage-0-Contracts(public-safe inventory、精确refs、有界排序与独立回执)implemented;Owner-Gated-Apply-and-Rollback(既有来源 gate、CAS、staging、独立读回和回滚)implemented;Migration-Boundary out_of_scope,因为项目 route 不扩大原 Goal-only migration;Stage-Boundary implemented,因为不内置私人parser/store、source初始化、自动排序或Explore provider。规范中原来的 Goal owner 定位没有被当成已接受的项目授权;本PR明确记录用户要求的普通项目扩展,同时保持原安全义务。

关键代码讲解

  • ownership.py:21 material_owner_fields 要求 Goal 与 project_scope 恰好一个;project只接收三个完整 compact refs。它返回 metadata,自己不读写来源或授予 grant。所有受影响 builder 复用该 owner,不各自新增判断。
  • ownership.py:60 verify_project_material_write 对 Goal 保留旧路径;project必须有可调用 source verifier 且返回值严格为 True。缺 verifier 在任何 source access 之前拒绝。它是 SDK 调用的授权边界,真实事实由既有 Core 和 source owner提供。
  • intake.py:463 apply_material_candidate_intake 保留正文size/digest、source revision CAS、immutable staging、原记录 reconciliation;当前项目授权在开始和发布前都重检,再由 source 在自身事务内保持 publication fence。成功回执携带同一 project owner,不创建 Goal。
  • intake.py:757 rollback_material_candidate_intake 从原 receipt 验证 owner,重新检查当前授权和精确 after revision 才恢复;归还的仍是旧 source authority,不重解释已有 Goal receipts。库存、排序、投影和 settlement builder 仅适配 owner metadata;Goal-only migration/rebuild/Explore 原路径没有放宽。

正向实测使用现有来源的 intake/rollback/publisher、当前 SDK 和真实隔离 Core/loopback HTTP,provider身份与model为合成:一个原生普通 Turn 内,新素材入库、另一authority revision排序、投影独立检查、同输入重试、精确回滚全部通过。新scope与所有receipt均无Goal;模型仅启动一个Turn。不是测试callback直接给授权true,也没有另造modelthread恢复。

对主干的风险

112项素材契约/intake/projectscope/排序/投影/skill交付/preparation/apply/Explore测试通过。六组完整旧 Goal SDK 链路在固定main与当前head的输出、packet hash及rendered bytes逐字一致,没有归一化掉语义。独立missing-verifier oracle在实际 intake路径故意移除guard时失败(DID NOT RAISE),保留guard后通过。当前 managed skill确实preview、install、按源内容读回,安装并未激活素材库。

真实隔离来源验证6种拒绝:unbound、foreign-selector、宿主降为只读、过期gate、实际staging后撤权、原生binding撤销。拒绝不推进authority;恢复原有grant后,在同一原生Turn完成有用入库与排序,不拿“拒绝成功”替代执行完成。源事务仍必须在staging/publication保持授权fence;SDK的两次precheck不是跨独立Core/source的全局原子撤权,未声称已验证那种并发保证。

Ruff、compile、6个变化production module的Mypy通过;native premerge 5direct+18selected检查全部通过,0failure/warning/advisory。全SDK Mypy还有13项既有错误:在不可变main与head运行完全同一命令,错误身份、位置和完整诊断逐条一致,来自未改变的 _validation.py:94 nonnegative_int 和 explore_execution.py:67–77/212;变化函数/规则不在其因果路径,已独立覆盖。没有删除断言或降低质量上限。两次初始测试路径错误和 python -m loopx 错误未执行检查,已换成正确当前命令,不算通过项。

语义与 CI 对齐

这是对既有 material capability vocabulary 的明确项目 owner 扩展,旧 Goal packets、持久回执与默认关闭保持;“两种owner恰好一个”的新拒绝诊断是有意变化,不宣称所有非法输入的错误字节都相同。主干已合并的 shared ranking 与 presentation 保留,未加第二个policy owner。公开差异不含私人来源实现、记录、路径、App/用户身份或聊天;未跟踪uv.lock未提交。按Goal政策没有查询、轮询或等待CI。公开roadmap仍保留完整ordinary-conversation验收缺口,实际 source adoption不被扩大成完整Bot验收。

我的整体评价

没有未解决的阻塞finding,两个原P2已在当前head独立验证。long_horizon=improved:旧Goal链路兼容,项目真实来源继续使用既有CAS、独立排序、投影、replay和rollback,不积累隐藏Goal或第二套ledger。user_experience=improved:普通请求无需额外创建Goal、重复已知信息或更换宿主,失效授权仍如实拒绝,并已演练恢复到有用工作。

这是 justified_increment:实际已有消费者的有界SDK缺口已经补齐,最终正式安装、原Bot渠道及外部文章读取仍属于既有交付任务,不能用本次测试或只读探测替代。Python仍处于既有素材provider/SDK层,Core授权owner保持typed;不新建CLI、版本分叉或sourceauthority。保留旧Goal receipts是独立消费者/持久恢复需要;一份shared owner normalization比每个provider伪造Goal或新建transportwriter更小。模型精确build观察不可用,Reviewer如实使用self_reported产品家族,不能借用另一reviewer的身份。

English verdict: APPROVE - The existing project source now consumes the bounded owner-aware SDK; current authorization, lossless readback and recovery are exercised without creating a Goal. Full deployed Bot acceptance remains separate.

@huangruiteng
huangruiteng merged commit 3b454ab into main Oct 5, 2026
6 checks passed
@huangruiteng
huangruiteng deleted the codex/material-project-source-scope-20261004 branch October 5, 2026 21:25
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