分页助手加 debug_assert,默认 limit 配到上限之上会在测试期炸出来

- arguments::page 增加 debug_assert!(default_limit <= max_limit):默认值本身越界时不再让省略 limit 的请求静默地每次都报 LimitOutOfRange
- 文档注释写清这条调用点契约;三个列表工具当前都满足(50/100 对 100)

验证:cargo test --bin genarrative-ai-game-creator-shell -- agent::direct_tool_bridge:: agent::direct_tools_mcp:: 72 passed / 0 failed;cargo fmt --check 通过
This commit is contained in:
2026-10-01 16:47:32 +08:00
parent 9bdeed13a0
commit 8834f844e6
@@ -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<usize>,
) -> Result<ToolPage, ToolPageRejection> {
debug_assert!(default_limit <= max_limit);
let offset = arguments
.get("offset")
.filter(|value| !value.is_null())