Fix Issue 549 #573
Reference in New Issue
Block a user
Delete Branch "fix/issue-549"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
账户素材超过 500 项时,AGC 曾在筛选和分页前直接拒绝整个素材库,导致查询、预览和指定 ID 导入不可用。本 PR 移除账户素材总量及账户分页 offset=500 的客户端限制,允许大库继续使用现有客户端筛选分页。
Closes #549
实现范围
验收
以下已完成项表示本地自动化与代码核查通过,不代表线上真实账号验收。
验证证据
44f415d05后已核对本次代码及工具文本与已测试版本一致,并再次通过编码、文档索引、差异检查和提交时 Rust 格式检查。初次修复提交:697f421e570606d0519f952a0a5689b5f639f902;原生函数 schema 审查补丁:41e2cc0b57b7f9f5faf06546c1f6108e88380ac3(已推送)。
Close #549
修复及本地验收结果已补充到本 PR 描述,当前远端提交为 697f421e570606d0519f952a0a5689b5f639f902。
已移除账户素材总量超过 500 和账户分页 offset>500 的客户端拒绝;大库查询、UI 预览、指定 ID 实际导入与重复导入幂等已有本地模拟平台链路验证。验证过程中发现并修复了账户导入持有身份租约时重复加锁导致的自锁,原有会话校验和写入期间身份保护保留。
56 项相关 Rust 测试通过,格式、编码、文档索引和差异检查通过。Rust 测试在快进 master 前执行;快进后核对本次代码与已测版本一致,并通过提交检查。
验收清单已区分本地验证与真实账号联调:线上大库操作,以及实际删除、跨账号和无权限场景仍待实测,未将这些项目标记完成。后端全库读取和服务端分页优化继续由低优先级 #574 跟进,不阻塞本次客户端修复。
审查意见成立:agent_native_tools.rs 中 asset.library.list 的 offset 仍带 maximum=500,且生成的原生函数使用 strict=true。此前直接调用 Runtime observation 的 offset=501 用例绕过了模型可见 schema,不能证明 Runtime 模型可以翻到 offset>500。已更正 PR 验收描述,区分执行层验证与原生函数 schema 验证。
本地已移除该 maximum,并增加 account_asset_native_function_schema_accepts_later_pages:从 build_agent_runtime_native_function_tools 取得实际下发的完整参数 schema,校验 null、offset=501/600/10000 与 limit=1/100 可用,负数/非整数 offset 和 limit=0/101 拒绝。
24 项定向 Rust 测试通过,包含全部 agent_native_tools 测试及大库查询/导入链路;格式、编码、文档索引及差异检查通过。测试编译时另发现 master 原有 preserves_direct_stream_terminal_error_detail 仍向两参数函数传三个参数,已仅删除该测试的多余参数,并验证该测试通过。技术方案和排障记录已同步。
以上审查补丁目前仅在本地,尚未提交或推送,因此 PR 对应验收项保持未勾选。未做真实模型/线上账号调用验证。
审查补丁已提交并推送:41e2cc0b5「修复账户素材原生工具分页参数上限」。
24 项定向 Rust 测试通过,提交及推送检查通过,工作树干净。原生函数 strict schema 的验收项已勾选;真实模型/线上账号验证仍未执行,真实账号联调项继续保留待验收。