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 +4 -4
- data/.ace-defaults/review/config.yml +4 -5
- data/.ace-defaults/review/presets/code-fit.yml +3 -2
- data/.ace-defaults/review/presets/code-shine.yml +2 -2
- data/.ace-defaults/review/presets/code-valid.yml +3 -2
- data/.ace-defaults/review/presets/docs.yml +1 -1
- data/.ace-defaults/review/presets/spec.yml +1 -1
- data/CHANGELOG.md +13 -0
- data/handbook/workflow-instructions/review/run.wf.md +2 -1
- data/lib/ace/review/molecules/subject_extractor.rb +25 -1
- data/lib/ace/review/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e6e9694e9a121f9b6b18479d7be2be32511483940cd667f842493b35b8c9d359
|
|
4
|
+
data.tar.gz: e973c776a7b792365c3974fca973c31337529734f5eb0eda424da53c796e9cd6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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: "
|
|
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: "
|
|
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:
|
|
75
|
-
|
|
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
|
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" =>
|
|
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
|
data/lib/ace/review/version.rb
CHANGED
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
|
+
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-
|
|
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.
|
|
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.
|
|
81
|
+
version: '0.41'
|
|
82
82
|
- !ruby/object:Gem::Dependency
|
|
83
83
|
name: ace-git
|
|
84
84
|
requirement: !ruby/object:Gem::Requirement
|