Files
Genarrative/apps
lhk229 ded9f13f02
Project CI / AI game creator shell Rust crates (push) Successful in 2m16s
Project CI / AI game creator shell Rust smoke (push) Successful in 2m39s
Project CI / Backend tests (push) Successful in 5m39s
Project CI / Native shell tests (push) Successful in 6m3s
Project CI / Frontend tests (push) Successful in 1m49s
Project CI / AI game creator shell Rust lane 2/2 (push) Successful in 9m50s
Project CI / Repository checks (push) Successful in 2m15s
Project CI / AI game creator shell web tests (push) Successful in 1m40s
Project CI / AI game creator shell Rust lane 1/2 (push) Successful in 6m18s
Fix Issue 549 (#573)
账户素材超过 500 项时,AGC 曾在筛选和分页前直接拒绝整个素材库,导致查询、预览和指定 ID 导入不可用。本 PR 移除账户素材总量及账户分页 offset=500 的客户端限制,允许大库继续使用现有客户端筛选分页。

Closes #549

## 实现范围

- 移除账户素材库原始条数超过 500 的拒绝,以及 MCP schema、桥接、Runtime 执行层和原生函数 strict schema 的账户分页 offset 上限。
- 保留单页最多 100 项、导入批次数量与下载体积、媒体类型、账号归属、权限及会话校验。项目文件查询的 offset 上限和绑定项目画布资源的数量上限保持原有契约。
- 账户素材 UI 列表、预览及指定 ID 导入同步恢复可用。
- 修复真实账户导入时,在持有身份租约期间重复读取会话互斥锁造成的自锁;写入前校验和覆盖写入过程的身份租约继续保留。
- 同步工具说明、技术方案与排障记录。服务端仍返回全库,传输和解析开销另由 #574 跟进,不作为本 PR 的验收前置条件。

## 验收

以下已完成项表示本地自动化与代码核查通过,不代表线上真实账号验收。

- [x] 覆盖 500/501 项素材库解析;503 张静态图片及 1 项不支持媒体的模拟素材库可正常工作。
- [x] MCP 查询支持 limit=1、folderId、query 和 offset>500;nextOffset、末页、越界空页及默认每页 100 项符合现有契约。
- [x] 直接调用 Runtime 执行层时 offset=501 可查询;MCP schema 与参数校验一致,仍拒绝负数、非整数 offset 和 limit>100。这项不覆盖 Runtime 下发给模型的原生函数 schema。
- [x] Runtime 原生函数 asset.library.list 的 strict schema 允许 offset>500;实际下发的完整函数参数已验证 offset=501/600/10000、null 可用,负数/非整数偏移及超界页长拒绝。补丁已提交并推送:41e2cc0b5。
- [x] 共用读取链路的 UI 素材列表和预览在大库场景可用。
- [x] 指定有效 assetId 完成实际下载、本地文件写入及 manifest/revision 更新;重复导入保持幂等。
- [x] 模拟素材库中的不存在 ID 和不支持媒体被拒绝,且不改变 manifest;返回 Agent 的当前页元数据不泄露媒体地址、对象键或凭据。
- [x] 会话退出、账号切换、凭据刷新、身份租约和取消写入相关定向测试通过。
- [x] 工具说明、技术方案和共享排障文档已同步;项目文件与画布资源原有独立边界已核对保留。
- [ ] 真实平台账号联调:超过 500 项素材时查询、预览和导入,以及实际删除、跨账号、无权限素材的拒绝行为。

## 验证证据

- 账户素材、导入、参数校验、项目文件、取消写入与平台会话定向 Rust 测试:33 项通过。
- runtime_prompt_bundle_build:17 项通过;prompt_source_boundaries:6 项通过。合计 56 项通过。
- Rust 格式检查、npm run check:encoding、npm run check:doc-index、git diff --check 通过。
- 以上 Rust 测试在快进 master 前运行;快进至 44f415d05 后已核对本次代码及工具文本与已测试版本一致,并再次通过编码、文档索引、差异检查和提交时 Rust 格式检查。
- 未运行全量测试,未做真实线上账号或付费操作验证。

初次修复提交:697f421e570606d0519f952a0a5689b5f639f902;原生函数 schema 审查补丁:41e2cc0b57b7f9f5faf06546c1f6108e88380ac3(已推送)。
- 审查补丁验证:24 项定向 Rust 测试通过,覆盖全部 agent_native_tools 测试、大库查询/导入和修正后的旧流式结果测试;格式、编码、文档索引、差异检查、提交及推送检查通过。本轮未重复全量测试,未做真实模型或线上账号调用。

Reviewed-on: #573
2026-10-01 20:55:28 +08:00
..