Skip to content

Commit a0661df

Browse files
authored
feat: 4.1.0 pr-review improvements (#37)
## Summary Prepares the v4.1.0 `pr-review` improvements: - adds PR-set manifest validation and neutral examples - adds coordinated multi-PR review execution with dependency ordering, partial failure reporting, and cross-PR contract drift - adds GitHub search based PR-set generation and direct `--from-gh` execution - supports reviewing child repos with a parent workspace config - exposes the new PR-set and config/cache controls in CLI help, MCP schemas, and docs - adds the v4.1.0 docs changelog entry ## Context / Motivation `pr-review` previously handled one base/head pair at a time. Related PRs, stacks, and cross-repo feature sets needed a manifest-level workflow so the review can preserve dependency order and report set-level contract drift. The MCP wrapper also needed to expose the same controls as the CLI so assistant consumers can discover parent config, cache root, baseline-check, GitHub-query, set id, and parallelism options from the tool schema. ## Key Decisions - Keep PR-set examples neutral and reusable. - Require exactly one PR-set source for MCP `pr_review_set`: `pr_set` or `from_gh`. - Resolve MCP path inputs relative to the configured workspace root. - Keep v4.1.0 marked as unreleased in the docs changelog; version stamps are not bumped in this branch. ## Verification - `cargo test -p gather-step-mcp pr_review -- --nocapture` - `cargo test -p gather-step pr_review::multi_pr:: -- --nocapture` - `cargo clippy -p gather-step -p gather-step-mcp --all-targets -- -D warnings` - `target/debug/gather-step pr-review --help` - `npm run build` in `website` - `git diff --check` - changed-line scan for workspace-specific terms ## Follow-ups - Mark v4.1.0 as released and bump version stamps when cutting the release.
2 parents 0c379c6 + bdf91ef commit a0661df

22 files changed

Lines changed: 3001 additions & 46 deletions

File tree

crates/gather-step-cli/src/commands/mod.rs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -396,6 +396,26 @@ mod tests {
396396
}
397397
}
398398

399+
#[test]
400+
fn rejects_zero_pr_review_parallelism_during_parse() {
401+
let error = Cli::try_parse_from([
402+
"gather-step",
403+
"pr-review",
404+
"--pr-set",
405+
"examples/pr-set/cross-repo-feature.yaml",
406+
"--parallelism",
407+
"0",
408+
])
409+
.expect_err("zero parallelism should be rejected by clap");
410+
411+
assert!(
412+
error
413+
.to_string()
414+
.contains("--parallelism must be an integer greater than or equal to 1"),
415+
"unexpected error for zero parallelism: {error}"
416+
);
417+
}
418+
399419
#[test]
400420
fn parses_top_level_serve_args() {
401421
let cli = Cli::parse_from([

0 commit comments

Comments
 (0)