ace-review 0.51.4 → 0.51.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 78773489249dbc3812986dcc10b14bbccb643dfcd81bf500aa875cb274a827f3
4
- data.tar.gz: ff822482b7b712b9c59c8911bc878a2396753c2d513197946d7596c4ec7c5fbd
3
+ metadata.gz: e6e9694e9a121f9b6b18479d7be2be32511483940cd667f842493b35b8c9d359
4
+ data.tar.gz: e973c776a7b792365c3974fca973c31337529734f5eb0eda424da53c796e9cd6
5
5
  SHA512:
6
- metadata.gz: a7e99e1cb1ba51db67b9b0f95649c80dedc99272ffb5989d36207723e656921d0cacf2eef7ee2041550757f821c5f0ecb873e6f25582dddb3f81ce3d20e42d1f
7
- data.tar.gz: d5005fcd3e9e6af2f99eb3a8c6fd86d1e1a4099a5f4e9666946980b56d5c7ece97940b9314fb0e9d54c941ff469ec241c0db396fdd71cb9be382d78fd38e2d81
6
+ metadata.gz: 9cb47a01bb00b68312c42c57b8fe694434818bcb813e1630711b5302fbf8b8caf0181239ce9b1932fdc9ade415de055fbee71f3a94b8ad01f61d9366d605de70
7
+ data.tar.gz: f399541bbdd6d3ff98fddcb8d9c1305fb9ac73aff6a6f87058cbbeb0766a32ffc6498808a743e8052860e55724400fcf268ffaae6a4740baa44a0b3632f73190
@@ -4,7 +4,7 @@
4
4
  # Configuration Options:
5
5
  # ---------------------
6
6
  # preset - Default preset when --preset not specified (default: "code-valid")
7
- # model - Default LLM model for reviews (default: "codex:codex@ro")
7
+ # model - Default LLM model for reviews (default: "role:review-default")
8
8
  # output_format - Output format for reviews (default: "markdown")
9
9
  # context - Default context preset (default: "project")
10
10
  # max_concurrent_models - Max parallel LLM queries for multi-model execution (default: 3)
@@ -32,7 +32,7 @@ project_docs:
32
32
  # Default settings applied to all reviews unless overridden
33
33
  defaults:
34
34
  preset: "code-valid" # Default preset when --preset not specified
35
- model: "codex:codex@ro"
35
+ model: "role:review-default"
36
36
  output_format: "markdown"
37
37
  bundle: "project"
38
38
  max_concurrent_models: 3 # Max parallel LLM queries for multi-model execution
@@ -71,9 +71,8 @@ defaults:
71
71
  # Feedback items are extracted from review reports for tracking and verification
72
72
  feedback:
73
73
  enabled: true # Enable feedback extraction (default: true)
74
- synthesis_model: gemini:flash-latest@ro # Model for synthesizing feedback items
75
- fallback_models: # Fallback models if primary synthesis fails
76
- - claude:sonnet
74
+ synthesis_model: role:review-synthesizer # Model for synthesizing feedback items
75
+ # fallback_models not needed role:review-synthesizer has built-in multi-provider fallback
77
76
 
78
77
  # Review presets - load from .ace/review/presets/*.yml
79
78
  # Individual preset files provide better organization and shareability
@@ -60,5 +60,6 @@ instructions:
60
60
  bundle: "project"
61
61
 
62
62
  models:
63
- - claude:opus@ro
64
- - codex:gpt@ro
63
+ - role:review-claude
64
+ - role:review-codex
65
+ - role:review-gemini
@@ -40,5 +40,5 @@ instructions:
40
40
  bundle: "project"
41
41
 
42
42
  models:
43
- - claude:opus@ro
44
- - codex:gpt@ro
43
+ - role:review-claude
44
+ - role:review-codex
@@ -35,5 +35,6 @@ instructions:
35
35
  bundle: "project"
36
36
 
37
37
  models:
38
- - claude:opus@ro
39
- - codex:gpt@ro
38
+ - role:review-claude
39
+ - role:review-codex
40
+ - role:review-gemini
@@ -30,7 +30,7 @@ instructions:
30
30
  bundle: "project"
31
31
 
32
32
  models:
33
- - codex:codex@ro
33
+ - role:review-codex
34
34
 
35
35
  subject:
36
36
  bundle:
@@ -25,7 +25,7 @@ instructions:
25
25
  bundle: "project"
26
26
 
27
27
  models:
28
- - codex:codex@ro
28
+ - role:review-codex
29
29
 
30
30
  subject:
31
31
  bundle:
data/CHANGELOG.md CHANGED
@@ -7,6 +7,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ### Fixed
11
+ - Added `diff:RANGE -- path` subject parsing so reviews can scope git diffs to specific files or directories with git-style path filters.
12
+
13
+ ## [0.51.6] - 2026-03-31
14
+
15
+ ### Changed
16
+ - Role-based review model, synthesis, and preset defaults.
17
+
18
+ ## [0.51.5] - 2026-03-29
19
+
20
+ ### Fixed
21
+ - Bumped the `ace-bundle` runtime dependency constraint to `~> 0.41` to follow the new bundle minor release line.
22
+
10
23
  ## [0.51.4] - 2026-03-29
11
24
 
12
25
  ### Technical
@@ -22,6 +22,7 @@ Review code using ace-review, verify feedback items, and create a plan for apply
22
22
 
23
23
  - `staged`, `working` - keywords (no prefix needed)
24
24
  - `diff:origin/main..HEAD` - git range (prefix required)
25
+ - `diff:origin/main...HEAD -- ace-test-runner-e2e` - git range filtered to paths
25
26
  - `pr:123` - PR diff (prefix required)
26
27
  - `files:lib/**/*.rb` - file pattern (prefix required)
27
28
  - `task:145` - task context (prefix required)
@@ -259,4 +260,4 @@ The type prefix (`files:`, `pr:`, `diff:`, `task:`) is **required** for all subj
259
260
  - [ ] Feedback items verified (Critical/High priority)
260
261
  - [ ] False positives marked as invalid
261
262
  - [ ] Confirmed items implemented with commits
262
- - [ ] Items marked as resolved with commit references
263
+ - [ ] Items marked as resolved with commit references
@@ -177,7 +177,7 @@ module Ace
177
177
  def parse_typed_subject(input)
178
178
  case input
179
179
  when /^diff:(.+)$/
180
- {"bundle" => {"diffs" => [::Regexp.last_match(1)]}}
180
+ {"bundle" => parse_diff_subject(::Regexp.last_match(1))}
181
181
  when /^diff:$/
182
182
  raise ArgumentError, "Empty value for diff: subject. Usage: diff:RANGE (e.g., diff:HEAD~3...HEAD)"
183
183
  when /^pr:(.+)$/
@@ -224,6 +224,30 @@ module Ace
224
224
  end
225
225
  end
226
226
 
227
+ def parse_diff_subject(value)
228
+ subject_value = value.to_s.strip
229
+ raise ArgumentError, "Empty value for diff: subject. Usage: diff:RANGE (e.g., diff:HEAD~3...HEAD)" if subject_value.empty?
230
+
231
+ if (match = subject_value.match(/\A(.+?)\s+--(?:\s+(.*))?\z/))
232
+ diff_range = match[1].to_s.strip
233
+ path_string = match[2].to_s
234
+ else
235
+ diff_range = subject_value
236
+ path_string = nil
237
+ end
238
+
239
+ raise ArgumentError, "Empty value for diff: subject. Usage: diff:RANGE (e.g., diff:HEAD~3...HEAD)" if diff_range.empty?
240
+
241
+ config = {"diffs" => [diff_range]}
242
+ return config if path_string.nil?
243
+
244
+ paths = path_string.split(/[,\s]+/).map(&:strip).reject(&:empty?).uniq
245
+ raise ArgumentError, "No valid paths specified after -- for diff: subject" if paths.empty?
246
+
247
+ config["paths"] = paths
248
+ config
249
+ end
250
+
227
251
  # Default timeout for ace-task subprocess (in seconds)
228
252
  # Can be overridden via options for environments with slow I/O
229
253
  TASKFLOW_TIMEOUT = 10
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Ace
4
4
  module Review
5
- VERSION = '0.51.4'
5
+ VERSION = '0.51.7'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ace-review
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.51.4
4
+ version: 0.51.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michal Czyz
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2026-03-29 00:00:00.000000000 Z
10
+ date: 2026-04-01 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: ace-support-cli
@@ -71,14 +71,14 @@ dependencies:
71
71
  requirements:
72
72
  - - "~>"
73
73
  - !ruby/object:Gem::Version
74
- version: '0.40'
74
+ version: '0.41'
75
75
  type: :runtime
76
76
  prerelease: false
77
77
  version_requirements: !ruby/object:Gem::Requirement
78
78
  requirements:
79
79
  - - "~>"
80
80
  - !ruby/object:Gem::Version
81
- version: '0.40'
81
+ version: '0.41'
82
82
  - !ruby/object:Gem::Dependency
83
83
  name: ace-git
84
84
  requirement: !ruby/object:Gem::Requirement