ace-git-commit 0.25.4 → 0.26.5
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:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f885d93ed2e4e32170a81a06574d6f3a1c9a1b173d8ff7d55efaccab04e13fc9
|
|
4
|
+
data.tar.gz: c90dae819ca8dcbb592d911ba2c0d54eb912d02729bb400e63971a4c604f2018
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: acc870fe2f2070bd14430912443fbba3fd65cd70b13e3c1c2c71f29bf68384144709e6ca4b735b34a1353dd91d76ddfe4da39c1ae883796e2066fea5a5dad718
|
|
7
|
+
data.tar.gz: 5e1f3247a8b2119bbb6bc9e46be4a8f88705edc9ebe731089aab07048cc11d30e050804584b20d38adfdd1173c25b4b12dee6c23d226af5914d90a4857b4892d
|
data/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,41 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.26.5] - 2026-08-12
|
|
11
|
+
|
|
12
|
+
### Technical
|
|
13
|
+
- Raised the `ace-support-core` dependency floor to `~> 0.31` after the principles-first bootstrap guidance release.
|
|
14
|
+
## [0.26.4] - 2026-08-12
|
|
15
|
+
|
|
16
|
+
### Technical
|
|
17
|
+
- Aligned gemspec dependency floors with current ACE package minor release lines and safe external minor dependency bumps (no major version jumps).
|
|
18
|
+
|
|
19
|
+
## [0.26.3] - 2026-04-24
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
- Clarified first-setup commit recovery across quick-start, package docs, and workflow guidance so users can inspect staged setup files, use the deterministic `--only-staged --no-split -m` path, and treat LLM-backed generation as optional after readiness checks.
|
|
23
|
+
|
|
24
|
+
## [0.26.2] - 2026-04-23
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
### Changed
|
|
28
|
+
- Clarified staged-only and setup-failure commit workflows, including explicit path-scoped command contracts for single-package commits and recovery guidance.
|
|
29
|
+
- Added commit contract coverage for staged-first and fallback paths so split/no-split behavior is deterministic before automatic path-scoped commit flow.
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
## [0.26.1] - 2026-04-22
|
|
33
|
+
|
|
34
|
+
### Technical
|
|
35
|
+
- Tightened `TS-COMMIT-001` Goal 7/8 staging contracts to require explicit-path staging and prove `results/` artifacts are excluded from the cached staged set before `--only-staged` execution.
|
|
36
|
+
|
|
37
|
+
## [0.26.0] - 2026-04-22
|
|
38
|
+
|
|
39
|
+
### Changed
|
|
40
|
+
- Improved setup-time LLM failure diagnostics to include failed role/model context, provider/setup remediation commands, and a deterministic `--only-staged --no-split -m` fallback commit path.
|
|
41
|
+
|
|
42
|
+
### Technical
|
|
43
|
+
- Extended `TS-COMMIT-001` with goal 8 setup-failure guidance coverage and added fast tests for role/model failure guidance and explicit CLI error routing.
|
|
44
|
+
|
|
10
45
|
## [0.25.4] - 2026-04-16
|
|
11
46
|
|
|
12
47
|
### Technical
|
|
@@ -59,6 +59,7 @@ ace-git-commit automatically:
|
|
|
59
59
|
- Specific files: `ace-git-commit file1 file2`
|
|
60
60
|
- Only staged: `ace-git-commit --only-staged`
|
|
61
61
|
- Dry run first: `ace-git-commit --dry-run -i "$intention"`
|
|
62
|
+
- First setup snapshot after provider-readiness issues: `ace-git-commit --only-staged --no-split -m "chore: set up ace tooling"`
|
|
62
63
|
|
|
63
64
|
3. **Verify result**:
|
|
64
65
|
```bash
|
|
@@ -71,6 +72,7 @@ ace-git-commit automatically:
|
|
|
71
72
|
- `-m, --message`: Use direct message (bypass LLM)
|
|
72
73
|
- `--model MODEL`: Override LLM model (e.g., gflash)
|
|
73
74
|
- `-s, --only-staged`: Commit only staged changes
|
|
75
|
+
- `--no-split`: Force one commit across detected scopes
|
|
74
76
|
- `-n, --dry-run`: Preview without committing
|
|
75
77
|
- `-d, --debug`: Enable debug output
|
|
76
78
|
|
|
@@ -83,6 +83,8 @@ module Ace
|
|
|
83
83
|
raise Ace::Support::Cli::Error.new("Commit failed") unless success
|
|
84
84
|
rescue GitError => e
|
|
85
85
|
raise Ace::Support::Cli::Error.new(e.message)
|
|
86
|
+
rescue Ace::GitCommit::Error => e
|
|
87
|
+
raise Ace::Support::Cli::Error.new(e.message)
|
|
86
88
|
rescue Interrupt
|
|
87
89
|
raise Ace::Support::Cli::Error.new("Commit cancelled", exit_code: 130)
|
|
88
90
|
end
|
|
@@ -29,10 +29,11 @@ module Ace
|
|
|
29
29
|
def generate(diff, intention: nil, files: [], config: nil)
|
|
30
30
|
system_prompt = load_system_prompt
|
|
31
31
|
user_prompt = build_user_prompt(diff, intention, files)
|
|
32
|
+
model = resolve_model(config)
|
|
32
33
|
|
|
33
34
|
# Use QueryInterface with named parameters matching CLI
|
|
34
35
|
response = Ace::LLM::QueryInterface.query(
|
|
35
|
-
|
|
36
|
+
model,
|
|
36
37
|
user_prompt,
|
|
37
38
|
system: system_prompt,
|
|
38
39
|
temperature: 0.7,
|
|
@@ -42,7 +43,7 @@ module Ace
|
|
|
42
43
|
|
|
43
44
|
clean_commit_message(response[:text])
|
|
44
45
|
rescue Ace::LLM::Error => e
|
|
45
|
-
raise Error, "Failed to generate commit message
|
|
46
|
+
raise Error, llm_failure_message("Failed to generate commit message", model, e)
|
|
46
47
|
end
|
|
47
48
|
|
|
48
49
|
# Generate commit messages for multiple groups in one LLM call
|
|
@@ -60,9 +61,10 @@ module Ace
|
|
|
60
61
|
|
|
61
62
|
system_prompt = load_batch_system_prompt
|
|
62
63
|
user_prompt = build_batch_user_prompt(groups_context, intention)
|
|
64
|
+
model = resolve_model(config)
|
|
63
65
|
|
|
64
66
|
response = Ace::LLM::QueryInterface.query(
|
|
65
|
-
|
|
67
|
+
model,
|
|
66
68
|
user_prompt,
|
|
67
69
|
system: system_prompt,
|
|
68
70
|
temperature: 0.7,
|
|
@@ -77,7 +79,7 @@ module Ace
|
|
|
77
79
|
|
|
78
80
|
raise Error, "Failed to generate batch commit messages: #{e.message}"
|
|
79
81
|
rescue Ace::LLM::Error => e
|
|
80
|
-
raise Error, "Failed to generate batch commit messages
|
|
82
|
+
raise Error, llm_failure_message("Failed to generate batch commit messages", model, e)
|
|
81
83
|
end
|
|
82
84
|
|
|
83
85
|
private
|
|
@@ -260,10 +262,11 @@ module Ace
|
|
|
260
262
|
|
|
261
263
|
def retry_batch_parse(groups_context, intention, previous_response, reason, config)
|
|
262
264
|
warn "[ace-git-commit] Batch parse failed, retrying with strict JSON repair: #{reason}"
|
|
265
|
+
model = resolve_model(config)
|
|
263
266
|
|
|
264
267
|
repair_prompt = build_batch_repair_user_prompt(groups_context, intention, previous_response, reason)
|
|
265
268
|
repair_response = Ace::LLM::QueryInterface.query(
|
|
266
|
-
|
|
269
|
+
model,
|
|
267
270
|
repair_prompt,
|
|
268
271
|
system: load_batch_system_prompt,
|
|
269
272
|
temperature: 0.2,
|
|
@@ -275,6 +278,8 @@ module Ace
|
|
|
275
278
|
rescue BatchParseError => e
|
|
276
279
|
warn "[ace-git-commit] Batch parse retry failed: #{e.message}"
|
|
277
280
|
nil
|
|
281
|
+
rescue Ace::LLM::Error => e
|
|
282
|
+
raise Error, llm_failure_message("Failed to generate batch commit messages", model, e)
|
|
278
283
|
end
|
|
279
284
|
|
|
280
285
|
def build_batch_repair_user_prompt(groups_context, intention, bad_response, reason)
|
|
@@ -299,6 +304,25 @@ module Ace
|
|
|
299
304
|
config_override.fetch("model", @model)
|
|
300
305
|
end
|
|
301
306
|
|
|
307
|
+
def llm_failure_message(prefix, model, error)
|
|
308
|
+
effective_model = model.to_s.empty? ? DEFAULT_MODEL : model
|
|
309
|
+
surface = setup_surface_label(effective_model)
|
|
310
|
+
lines = []
|
|
311
|
+
lines << "#{prefix} with #{surface} '#{effective_model}': #{error.message}"
|
|
312
|
+
lines << ""
|
|
313
|
+
lines << "LLM setup checks:"
|
|
314
|
+
lines << " ace-llm --list-providers"
|
|
315
|
+
lines << " ace-config doctor"
|
|
316
|
+
lines << ""
|
|
317
|
+
lines << "Fallback commit command:"
|
|
318
|
+
lines << ' ace-git-commit --only-staged --no-split -m "chore: set up ace tooling"'
|
|
319
|
+
lines.join("\n")
|
|
320
|
+
end
|
|
321
|
+
|
|
322
|
+
def setup_surface_label(model)
|
|
323
|
+
model.start_with?("role:") ? "ACE role" : "LLM model"
|
|
324
|
+
end
|
|
325
|
+
|
|
302
326
|
# Load system prompt from template
|
|
303
327
|
# @return [String] System prompt content
|
|
304
328
|
def load_system_prompt
|
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ace-git-commit
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.26.5
|
|
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-08-12 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: ace-support-cli
|
|
@@ -29,56 +29,56 @@ dependencies:
|
|
|
29
29
|
requirements:
|
|
30
30
|
- - "~>"
|
|
31
31
|
- !ruby/object:Gem::Version
|
|
32
|
-
version: '0.
|
|
32
|
+
version: '0.31'
|
|
33
33
|
type: :runtime
|
|
34
34
|
prerelease: false
|
|
35
35
|
version_requirements: !ruby/object:Gem::Requirement
|
|
36
36
|
requirements:
|
|
37
37
|
- - "~>"
|
|
38
38
|
- !ruby/object:Gem::Version
|
|
39
|
-
version: '0.
|
|
39
|
+
version: '0.31'
|
|
40
40
|
- !ruby/object:Gem::Dependency
|
|
41
41
|
name: ace-support-config
|
|
42
42
|
requirement: !ruby/object:Gem::Requirement
|
|
43
43
|
requirements:
|
|
44
44
|
- - "~>"
|
|
45
45
|
- !ruby/object:Gem::Version
|
|
46
|
-
version: '0.
|
|
46
|
+
version: '0.17'
|
|
47
47
|
type: :runtime
|
|
48
48
|
prerelease: false
|
|
49
49
|
version_requirements: !ruby/object:Gem::Requirement
|
|
50
50
|
requirements:
|
|
51
51
|
- - "~>"
|
|
52
52
|
- !ruby/object:Gem::Version
|
|
53
|
-
version: '0.
|
|
53
|
+
version: '0.17'
|
|
54
54
|
- !ruby/object:Gem::Dependency
|
|
55
55
|
name: ace-git
|
|
56
56
|
requirement: !ruby/object:Gem::Requirement
|
|
57
57
|
requirements:
|
|
58
58
|
- - "~>"
|
|
59
59
|
- !ruby/object:Gem::Version
|
|
60
|
-
version: '0.
|
|
60
|
+
version: '0.22'
|
|
61
61
|
type: :runtime
|
|
62
62
|
prerelease: false
|
|
63
63
|
version_requirements: !ruby/object:Gem::Requirement
|
|
64
64
|
requirements:
|
|
65
65
|
- - "~>"
|
|
66
66
|
- !ruby/object:Gem::Version
|
|
67
|
-
version: '0.
|
|
67
|
+
version: '0.22'
|
|
68
68
|
- !ruby/object:Gem::Dependency
|
|
69
69
|
name: ace-llm
|
|
70
70
|
requirement: !ruby/object:Gem::Requirement
|
|
71
71
|
requirements:
|
|
72
72
|
- - "~>"
|
|
73
73
|
- !ruby/object:Gem::Version
|
|
74
|
-
version: '0.
|
|
74
|
+
version: '0.38'
|
|
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.38'
|
|
82
82
|
description: Analyzes diffs and developer intent to generate conventional commit messages
|
|
83
83
|
using LLM. Handles monorepo scoping automatically — split commits across packages
|
|
84
84
|
with one command.
|