From f723806eaed2f610f274eeb50422ed3a48056737 Mon Sep 17 00:00:00 2001 From: damocles Date: Wed, 17 Jun 2026 11:06:29 +0200 Subject: [PATCH] list: reject --page 0 and --limit 0 (1-based; clap range parser, per review) --- hive-forge/src/verbs/list.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/hive-forge/src/verbs/list.rs b/hive-forge/src/verbs/list.rs index 01197652..81db0f0e 100644 --- a/hive-forge/src/verbs/list.rs +++ b/hive-forge/src/verbs/list.rs @@ -86,15 +86,16 @@ pub struct Args { #[arg(long = "label")] labels: Vec, /// Page size — items per page (default: 30; forge's per-page cap, - /// ~50, applies). - #[arg(long, default_value_t = 30)] + /// ~50, applies). Must be >= 1. + #[arg(long, default_value_t = 30, value_parser = clap::value_parser!(u64).range(1..))] limit: u64, /// Page number to fetch (1-based; default 1). Combine with `--limit` /// to walk a large result set incrementally — fetch page 1, process, /// fetch page 2, … until a short/empty page. This keeps each call /// token-bounded (one page at a time) instead of pulling a whole - /// repo's population into a single response. - #[arg(long, default_value_t = 1)] + /// repo's population into a single response. Must be >= 1 (the forge + /// pages are 1-based; page 0 is rejected). + #[arg(long, default_value_t = 1, value_parser = clap::value_parser!(u64).range(1..))] page: u64, }