ace-git-worktree 0.25.1 → 0.26.1

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.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/.ace-defaults/git/worktree.yml +2 -2
  3. data/.ace-defaults/nav/protocols/skill-sources/ace-git-worktree.yml +0 -0
  4. data/.ace-defaults/nav/protocols/wfi-sources/ace-git-worktree.yml +0 -0
  5. data/CHANGELOG.md +15 -0
  6. data/LICENSE +0 -0
  7. data/README.md +0 -0
  8. data/Rakefile +0 -0
  9. data/docs/demo/ace-git-worktree-getting-started.gif +0 -0
  10. data/docs/demo/ace-git-worktree-getting-started.tape.yml +0 -0
  11. data/docs/demo/fixtures/README.md +0 -0
  12. data/docs/demo/fixtures/sample.txt +0 -0
  13. data/docs/handbook.md +0 -0
  14. data/handbook/agents/worktree.ag.md +0 -0
  15. data/handbook/skills/as-git-worktree/SKILL.md +0 -0
  16. data/handbook/skills/as-git-worktree-cleanup/SKILL.md +0 -0
  17. data/handbook/skills/as-git-worktree-create/SKILL.md +0 -0
  18. data/handbook/skills/as-git-worktree-manage/SKILL.md +0 -0
  19. data/handbook/workflow-instructions/git/worktree-cleanup.wf.md +1 -1
  20. data/handbook/workflow-instructions/git/worktree-create.wf.md +0 -0
  21. data/handbook/workflow-instructions/git/worktree-manage.wf.md +0 -0
  22. data/handbook/workflow-instructions/git/worktree.wf.md +0 -0
  23. data/lib/ace/git/worktree/atoms/git_command.rb +0 -0
  24. data/lib/ace/git/worktree/atoms/path_expander.rb +0 -0
  25. data/lib/ace/git/worktree/atoms/slug_generator.rb +0 -0
  26. data/lib/ace/git/worktree/atoms/task_id_extractor.rb +0 -0
  27. data/lib/ace/git/worktree/cli/commands/bootstrap.rb +0 -0
  28. data/lib/ace/git/worktree/cli/commands/cleanup.rb +0 -0
  29. data/lib/ace/git/worktree/cli/commands/config.rb +0 -0
  30. data/lib/ace/git/worktree/cli/commands/create.rb +0 -0
  31. data/lib/ace/git/worktree/cli/commands/list.rb +0 -0
  32. data/lib/ace/git/worktree/cli/commands/prune.rb +0 -0
  33. data/lib/ace/git/worktree/cli/commands/remove.rb +0 -0
  34. data/lib/ace/git/worktree/cli/commands/shared_helpers.rb +0 -0
  35. data/lib/ace/git/worktree/cli/commands/switch.rb +0 -0
  36. data/lib/ace/git/worktree/cli.rb +0 -0
  37. data/lib/ace/git/worktree/commands/bootstrap_command.rb +0 -0
  38. data/lib/ace/git/worktree/commands/list_command.rb +0 -0
  39. data/lib/ace/git/worktree/commands/prune_command.rb +0 -0
  40. data/lib/ace/git/worktree/commands/remove_command.rb +0 -0
  41. data/lib/ace/git/worktree/commands/switch_command.rb +0 -0
  42. data/lib/ace/git/worktree/configuration.rb +0 -0
  43. data/lib/ace/git/worktree/models/worktree_info.rb +0 -0
  44. data/lib/ace/git/worktree/models/worktree_metadata.rb +0 -0
  45. data/lib/ace/git/worktree/molecules/bootstrap_executor.rb +0 -0
  46. data/lib/ace/git/worktree/molecules/cleanup_applier.rb +0 -0
  47. data/lib/ace/git/worktree/molecules/config_loader.rb +0 -0
  48. data/lib/ace/git/worktree/molecules/current_task_linker.rb +0 -0
  49. data/lib/ace/git/worktree/molecules/hook_executor.rb +0 -0
  50. data/lib/ace/git/worktree/molecules/parent_task_resolver.rb +0 -0
  51. data/lib/ace/git/worktree/molecules/task_committer.rb +31 -31
  52. data/lib/ace/git/worktree/molecules/task_fetcher.rb +0 -0
  53. data/lib/ace/git/worktree/molecules/task_pusher.rb +0 -0
  54. data/lib/ace/git/worktree/molecules/task_status_updater.rb +0 -0
  55. data/lib/ace/git/worktree/molecules/toolchain_truster.rb +0 -0
  56. data/lib/ace/git/worktree/molecules/worktree_lister.rb +0 -0
  57. data/lib/ace/git/worktree/molecules/worktree_remover.rb +0 -0
  58. data/lib/ace/git/worktree/version.rb +1 -1
  59. metadata +6 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: eb64a5202ce7714213a5790cdff67bb664eb6be3e24f8c25faaee2d58b407209
4
- data.tar.gz: 761729ea3f96ed23236cc129f52a455bdfce490a6943b0448e7656ab40005c84
3
+ metadata.gz: a51dd94ea8eeadcabd99be5d79ee88d9c536114637c58781d8ac8c8089243587
4
+ data.tar.gz: a8389cc335baa6559bf8ee4f88b167ceb90ca2c0669341f72f632f0c81968f40
5
5
  SHA512:
6
- metadata.gz: 4bd5689079203b6984ebca93c0ccec03217b3fffa81c0f6a530d55cd0d7d200b4c1ef01b6c1c62ce7ccc553bd4ad92892e6836084e9da899eeff3b8dc88dd194
7
- data.tar.gz: 420dd7f7a58e638e0ef2b06e5ed1b3fbe2708e1a7eedc9fbf2624da290c734102828c066b27961d02c4d3396727673a71c3abc923472b1843ffb5f4eb841cf13
6
+ metadata.gz: 8a65769172a854d95a44dd5d268ed14fd73a259b652978955139c7a5ac1f0653e7d78d47e5149dd17a90c9835f3281bf2fcf13111d67561e7458d5324b75f933
7
+ data.tar.gz: 7412edb73d8944f55c50b4fecb7fa8ca6e977cdcd59f2b4377fa5f823d5207bae36becfba4cc2d1a5305184d6d8acd526c530710e50fee2e507c5b114d85290c
@@ -81,8 +81,8 @@ git:
81
81
  auto_setup_upstream: false
82
82
 
83
83
  # Automatically create draft PR after pushing branch
84
- # If true, creates a draft PR via 'gh pr create --draft'
85
- # Requires: gh CLI installed and authenticated
84
+ # If true, creates a draft PR through the resolved forge provider
85
+ # Requires: provider configuration and authentication for the target repository
86
86
  # NOTE: Defaults to false - enable explicitly for automated workflows
87
87
  auto_create_pr: false
88
88
 
data/CHANGELOG.md CHANGED
@@ -7,6 +7,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.26.1] - 2026-10-10
11
+
12
+ ### Fixed
13
+
14
+ - Make `TaskCommitter#commit_scoped` public so task-aware worktree creation can commit task bookkeeping through the orchestrator.
15
+ - Describe automatic draft creation through the configured forge provider in the shipped defaults.
16
+
17
+ ## [0.26.0] - 2026-10-05
18
+
19
+ ### Changed
20
+
21
+ - Declare the required direct dependencies and minimum producer versions for this coordinated release: `ace-git ~> 0.29`, `ace-herdr ~> 0.4`.
22
+
23
+ - Describe cleanup preservation using selected-forge PR evidence rather than GitHub-specific evidence.
24
+
10
25
  ## [0.25.1] - 2026-10-04
11
26
 
12
27
  ### Changed
data/LICENSE CHANGED
File without changes
data/README.md CHANGED
File without changes
data/Rakefile CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
data/docs/handbook.md CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -21,7 +21,7 @@ ace-git-worktree cleanup --target main --remote origin
21
21
  This will:
22
22
  1. Refresh remote evidence (unless `--offline` is passed).
23
23
  2. Find all worktrees, local refs, and remote refs.
24
- 3. Classify each using GitHub PR evidence (exact merge, stable patch equivalence) or Git ancestry.
24
+ 3. Classify each using selected-forge PR evidence (exact merge, stable patch equivalence) or Git ancestry.
25
25
  4. Output an ordered plan with a **Plan Digest**.
26
26
 
27
27
  ### Report Output Interpretation
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -192,6 +192,37 @@ module Ace
192
192
  @ace_git_commit_available = result[:success]
193
193
  end
194
194
 
195
+ # Commit scoped files and return commit metadata + changed path list
196
+ #
197
+ # @param files [Array<String>] Files to commit
198
+ # @param message [String] Commit message
199
+ # @return [Hash] Result with :success, :commit_sha, :committed_paths, :error
200
+ def commit_scoped(files, message)
201
+ existing_files = Array(files).select { |file| File.exist?(file) }
202
+ return {success: false, commit_sha: nil, committed_paths: [], error: "No existing files to commit"} if existing_files.empty?
203
+
204
+ success = commit_with_message(existing_files, message)
205
+ return {success: false, commit_sha: nil, committed_paths: [], error: "Commit failed"} unless success
206
+
207
+ sha_res = execute_git_command("rev-parse", "HEAD")
208
+ sha = sha_res[:success] ? sha_res[:output].strip : nil
209
+
210
+ committed_paths = []
211
+ if sha
212
+ diff_res = execute_git_command("diff-tree", "--no-commit-id", "--name-only", "-r", sha)
213
+ if diff_res[:success]
214
+ committed_paths = diff_res[:output].to_s.lines.map(&:strip).reject(&:empty?)
215
+ end
216
+ end
217
+
218
+ {
219
+ success: true,
220
+ commit_sha: sha,
221
+ committed_paths: committed_paths,
222
+ error: nil
223
+ }
224
+ end
225
+
195
226
  private
196
227
 
197
228
  # Generate a commit message based on status and task ID
@@ -254,37 +285,6 @@ module Ace
254
285
  commit_result[:success]
255
286
  end
256
287
 
257
- # Commit scoped files and return commit metadata + changed path list
258
- #
259
- # @param files [Array<String>] Files to commit
260
- # @param message [String] Commit message
261
- # @return [Hash] Result with :success, :commit_sha, :committed_paths, :error
262
- def commit_scoped(files, message)
263
- existing_files = Array(files).select { |file| File.exist?(file) }
264
- return {success: false, commit_sha: nil, committed_paths: [], error: "No existing files to commit"} if existing_files.empty?
265
-
266
- success = commit_with_message(existing_files, message)
267
- return {success: false, commit_sha: nil, committed_paths: [], error: "Commit failed"} unless success
268
-
269
- sha_res = execute_git_command("rev-parse", "HEAD")
270
- sha = sha_res[:success] ? sha_res[:output].strip : nil
271
-
272
- committed_paths = []
273
- if sha
274
- diff_res = execute_git_command("diff-tree", "--no-commit-id", "--name-only", "-r", sha)
275
- if diff_res[:success]
276
- committed_paths = diff_res[:output].to_s.lines.map(&:strip).reject(&:empty?)
277
- end
278
- end
279
-
280
- {
281
- success: true,
282
- commit_sha: sha,
283
- committed_paths: committed_paths,
284
- error: nil
285
- }
286
- end
287
-
288
288
  # Commit all changes using direct git commands
289
289
  #
290
290
  # @param message [String] Commit message
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -3,7 +3,7 @@
3
3
  module Ace
4
4
  module Git
5
5
  module Worktree
6
- VERSION = "0.25.1"
6
+ VERSION = "0.26.1"
7
7
  end
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ace-git-worktree
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.25.1
4
+ version: 0.26.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michal Czyz
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2026-10-04 00:00:00.000000000 Z
10
+ date: 2026-10-12 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: ace-support-cli
@@ -57,14 +57,14 @@ dependencies:
57
57
  requirements:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: '0.24'
60
+ version: '0.29'
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.24'
67
+ version: '0.29'
68
68
  - !ruby/object:Gem::Dependency
69
69
  name: ace-task
70
70
  requirement: !ruby/object:Gem::Requirement
@@ -113,14 +113,14 @@ dependencies:
113
113
  requirements:
114
114
  - - "~>"
115
115
  - !ruby/object:Gem::Version
116
- version: 0.3.2
116
+ version: '0.4'
117
117
  type: :runtime
118
118
  prerelease: false
119
119
  version_requirements: !ruby/object:Gem::Requirement
120
120
  requirements:
121
121
  - - "~>"
122
122
  - !ruby/object:Gem::Version
123
- version: 0.3.2
123
+ version: '0.4'
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: rake
126
126
  requirement: !ruby/object:Gem::Requirement