ace-git-commit 0.26.5 → 0.26.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:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b923bd1c9c55112988b6d4660cb438272ae14fec40032e2133a1c1f9d756262b
|
|
4
|
+
data.tar.gz: ab305eeca970773a27973b5bef25e57fc45b9c9eea9037967f5e8769b708e4ee
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c627282622edcad7f63fe2d44380fa806069e30d98e781bd3036b1901c3bbbd029a12a473a4a8fea19d5b9fdf0b22f7f46597893759de04a5de0e496e357dd9f
|
|
7
|
+
data.tar.gz: 9e8faa8297cd6cec30a1b21b7f90c11d2ea313eda446386ddd16572959b18eb94c304db5c050905bbb17ef99c0fa3623c61b4df998bd2c14a00ab3386c36b491
|
data/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.26.7] - 2026-10-06
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- Refuse commit preparation during active native Git operations before changing the index, including scoped, staged-only, split and dry-run modes; preserve operation state and report native continuation guidance.
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
## [0.26.6] - 2026-09-02
|
|
18
|
+
|
|
19
|
+
### Technical
|
|
20
|
+
- Included in the coordinated all-package patch release preparation for ACE monorepo review.
|
|
10
21
|
## [0.26.5] - 2026-08-12
|
|
11
22
|
|
|
12
23
|
### Technical
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Ace
|
|
4
|
+
module GitCommit
|
|
5
|
+
module Molecules
|
|
6
|
+
# Read-only inspection of the current worktree's native Git operation state.
|
|
7
|
+
class GitOperationDetector
|
|
8
|
+
MARKERS = {
|
|
9
|
+
"rebase-merge" => ["rebase", "git rebase --continue"],
|
|
10
|
+
"rebase-apply" => ["rebase", "git rebase --continue"],
|
|
11
|
+
"MERGE_HEAD" => ["merge", "git commit"],
|
|
12
|
+
"CHERRY_PICK_HEAD" => ["cherry-pick", "git cherry-pick --continue"],
|
|
13
|
+
"REVERT_HEAD" => ["revert", "git revert --continue"],
|
|
14
|
+
"sequencer" => ["sequencer", "git status and follow its native continuation guidance"]
|
|
15
|
+
}.freeze
|
|
16
|
+
|
|
17
|
+
def initialize(git_executor)
|
|
18
|
+
@git = git_executor
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def detect
|
|
22
|
+
MARKERS.each do |marker, operation|
|
|
23
|
+
path = @git.execute("rev-parse", "--git-path", marker).delete_suffix("\n")
|
|
24
|
+
raise GitError, "Git returned an empty metadata path for #{marker}" if path.empty?
|
|
25
|
+
next unless present?(path)
|
|
26
|
+
|
|
27
|
+
return ["git-am", "git am --continue"] if marker == "rebase-apply" && present?(File.join(path, "applying"))
|
|
28
|
+
|
|
29
|
+
return operation
|
|
30
|
+
rescue GitError, SystemCallError => e
|
|
31
|
+
raise GitError, "Cannot inspect Git operation state (#{marker}): #{e.message}. " \
|
|
32
|
+
"Check metadata access and run git status before retrying."
|
|
33
|
+
end
|
|
34
|
+
nil
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
private
|
|
38
|
+
|
|
39
|
+
def present?(path)
|
|
40
|
+
File.stat(path)
|
|
41
|
+
true
|
|
42
|
+
rescue Errno::ENOENT
|
|
43
|
+
false
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
@@ -28,6 +28,10 @@ module Ace
|
|
|
28
28
|
# @return [Boolean] True if successful
|
|
29
29
|
def execute(options)
|
|
30
30
|
validate_repository!
|
|
31
|
+
operation = Molecules::GitOperationDetector.new(@git).detect
|
|
32
|
+
if operation
|
|
33
|
+
raise GitError, "Cannot commit during active #{operation.first}. Finish with #{operation.last}."
|
|
34
|
+
end
|
|
31
35
|
|
|
32
36
|
if options.debug
|
|
33
37
|
puts "Debug: Commit options:"
|
data/lib/ace/git_commit.rb
CHANGED
|
@@ -9,6 +9,7 @@ require "ace/llm"
|
|
|
9
9
|
# Require all components
|
|
10
10
|
require_relative "git_commit/atoms/git_executor"
|
|
11
11
|
require_relative "git_commit/atoms/gitignore_checker"
|
|
12
|
+
require_relative "git_commit/molecules/git_operation_detector"
|
|
12
13
|
require_relative "git_commit/molecules/diff_analyzer"
|
|
13
14
|
require_relative "git_commit/molecules/message_generator"
|
|
14
15
|
require_relative "git_commit/molecules/file_stager"
|
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.26.
|
|
4
|
+
version: 0.26.7
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Michal Czyz
|
|
8
8
|
bindir: exe
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date: 2026-08
|
|
10
|
+
date: 2026-10-08 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: ace-support-cli
|
|
@@ -43,42 +43,42 @@ dependencies:
|
|
|
43
43
|
requirements:
|
|
44
44
|
- - "~>"
|
|
45
45
|
- !ruby/object:Gem::Version
|
|
46
|
-
version: '0.
|
|
46
|
+
version: '0.18'
|
|
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.18'
|
|
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.23'
|
|
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.23'
|
|
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.39'
|
|
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.39'
|
|
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.
|
|
@@ -118,6 +118,7 @@ files:
|
|
|
118
118
|
- lib/ace/git_commit/molecules/commit_summarizer.rb
|
|
119
119
|
- lib/ace/git_commit/molecules/diff_analyzer.rb
|
|
120
120
|
- lib/ace/git_commit/molecules/file_stager.rb
|
|
121
|
+
- lib/ace/git_commit/molecules/git_operation_detector.rb
|
|
121
122
|
- lib/ace/git_commit/molecules/message_generator.rb
|
|
122
123
|
- lib/ace/git_commit/molecules/path_resolver.rb
|
|
123
124
|
- lib/ace/git_commit/molecules/split_commit_executor.rb
|