diff --git a/apps/ai-game-creator-shell/src-tauri/src/agent/tool/arguments.rs b/apps/ai-game-creator-shell/src-tauri/src/agent/tool/arguments.rs index 2ab9fdf38..961fee811 100644 --- a/apps/ai-game-creator-shell/src-tauri/src/agent/tool/arguments.rs +++ b/apps/ai-game-creator-shell/src-tauri/src/agent/tool/arguments.rs @@ -58,12 +58,16 @@ pub(crate) struct ToolPage { } /// 解析 `offset`/`limit`。分页规则在三个列表工具之间一致,只有默认值与上限不同。 +/// +/// 调用点必须保证 `default_limit <= max_limit`:否则省略 `limit` 的请求会拿一个本身就越界的 +/// 默认值去撞上限、每次都失败。这里用 `debug_assert` 让配错在测试期就炸出来。 pub(crate) fn page( arguments: &Value, default_limit: usize, max_limit: usize, max_offset: Option, ) -> Result { + debug_assert!(default_limit <= max_limit); let offset = arguments .get("offset") .filter(|value| !value.is_null())