概要
pagination responseが has_more=true なのに next_cursor が欠落、または前回と同じ値の場合、cursorの進行を検証せず同じrequestを繰り返します。
該当箇所
src/client/pagination.rs:71-84(POST)
src/client/pagination.rs:125-137(GET)
影響
API異常、schema変更、proxy/cache不具合などでCLIが終了せず、request送信とメモリ消費を続ける可能性があります。明示的なtimeoutや最大page数もありません。
修正案
has_more=true かつ next_cursor=None をtyped errorにする
- 新cursorが直前cursorと同じ場合もerrorにする
- 重複cursorをHashSetで検出する
- 防御的な最大page数またはrequest budgetを追加する
完了条件
- cursor欠落・同一・循環時に有限時間でerror終了する
- 正常paginationは従来どおり完走する
- GET/POST双方に異常responseのテストがある
概要
pagination responseが
has_more=trueなのにnext_cursorが欠落、または前回と同じ値の場合、cursorの進行を検証せず同じrequestを繰り返します。該当箇所
src/client/pagination.rs:71-84(POST)src/client/pagination.rs:125-137(GET)影響
API異常、schema変更、proxy/cache不具合などでCLIが終了せず、request送信とメモリ消費を続ける可能性があります。明示的なtimeoutや最大page数もありません。
修正案
has_more=trueかつnext_cursor=Noneをtyped errorにする完了条件