Expand description
共享分页 / 边界 validator (v1.4.106 codex 0635 整体重构, ζ36)
历史背景: codex 0635 audit (5 P2) 揭示 QOT 分析 / 参考类查询的分页 / 边界 校验四处不一致:
- F1 [P2]: warrant MCP/CLI wrapper 没暴露 begin (硬编码 0), 用户拿不到分页
- F2 [P2]: GetWarrantHandler 直透 begin/num 不校验, REST/raw caller 可发非法值
- F3 [P2]: warrant + stock-filter MCP/CLI wrapper 静默 clamp num (1, 200)
- F4 [P2]: stock-filter num=0 跨 surface 行为不一致 (MCP clamp 1 / REST silent empty)
- F5 [P2]: history-kline schema 写 default 1000 实际不限制
audit 自己建议抽 PageBounds / validate_begin_num / validate_optional_max_count
共享分页契约. 本模块实装该契约, 落点:
- MCP wrapper: tool 入参先校验, 错走
Err - CLI wrapper: 越界返
Err, 不静默改写 - gateway handler: 最终边界再校验, 防 REST/raw/gRPC/WS 直 proto caller
- schema/help: 只写真实运行契约
C++ 对照: 各 handler 校验在
NNBiz/Src/Qot/StockScreener/NNBiz_Qot_StockScreener.cpp (CMD 9010 begin/num
validation) 及 NNBiz_Qot_Warrant.cpp (CMD 6513 data_from / data_max_count
validation). C++ backend 拒非法值 (loud reject), Rust daemon 提前到入口拦截
减少 backend 往返 + 给用户清晰中文错误.
Structs§
- Page
Bounds - 分页参数校验结果. 越界 / 非法返
PageBoundsError, 校验通过返PageBounds. - Page
Bounds Error - 校验失败原因.
Enums§
Functions§
- validate_
begin_ num - 校验 (begin, num) 分页参数. C++ 对应做法是 backend 收到非法值返
result_code != 0, daemon 提前 loud reject 减少 backend 往返. - validate_
optional_ max_ count - 校验
Option<i32>max_count (history-kline 类) 参数.