ace-git 0.18.0
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 +7 -0
- data/.ace-defaults/git/config.yml +83 -0
- data/.ace-defaults/nav/protocols/guide-sources/ace-git.yml +10 -0
- data/.ace-defaults/nav/protocols/tmpl-sources/ace-git.yml +19 -0
- data/.ace-defaults/nav/protocols/wfi-sources/ace-git.yml +19 -0
- data/CHANGELOG.md +762 -0
- data/LICENSE +21 -0
- data/README.md +48 -0
- data/Rakefile +14 -0
- data/docs/demo/ace-git-getting-started.gif +0 -0
- data/docs/demo/ace-git-getting-started.tape.yml +18 -0
- data/docs/demo/fixtures/README.md +3 -0
- data/docs/demo/fixtures/sample.txt +1 -0
- data/docs/getting-started.md +87 -0
- data/docs/handbook.md +50 -0
- data/docs/usage.md +259 -0
- data/exe/ace-git +37 -0
- data/handbook/guides/version-control/ruby.md +41 -0
- data/handbook/guides/version-control/rust.md +49 -0
- data/handbook/guides/version-control/typescript.md +47 -0
- data/handbook/guides/version-control-system-git.g.md +829 -0
- data/handbook/skills/as-git-rebase/SKILL.md +43 -0
- data/handbook/skills/as-git-reorganize-commits/SKILL.md +41 -0
- data/handbook/skills/as-github-pr-create/SKILL.md +60 -0
- data/handbook/skills/as-github-pr-update/SKILL.md +41 -0
- data/handbook/skills/as-github-release-publish/SKILL.md +58 -0
- data/handbook/templates/commit/squash.template.md +59 -0
- data/handbook/templates/pr/bugfix.template.md +103 -0
- data/handbook/templates/pr/default.template.md +40 -0
- data/handbook/templates/pr/feature.template.md +41 -0
- data/handbook/workflow-instructions/git/rebase.wf.md +402 -0
- data/handbook/workflow-instructions/git/reorganize-commits.wf.md +158 -0
- data/handbook/workflow-instructions/github/pr/create.wf.md +282 -0
- data/handbook/workflow-instructions/github/pr/update.wf.md +199 -0
- data/handbook/workflow-instructions/github/release-publish.wf.md +162 -0
- data/lib/ace/git/atoms/command_executor.rb +253 -0
- data/lib/ace/git/atoms/date_resolver.rb +129 -0
- data/lib/ace/git/atoms/diff_numstat_parser.rb +82 -0
- data/lib/ace/git/atoms/diff_parser.rb +110 -0
- data/lib/ace/git/atoms/file_grouper.rb +152 -0
- data/lib/ace/git/atoms/git_scope_filter.rb +86 -0
- data/lib/ace/git/atoms/git_status_fetcher.rb +29 -0
- data/lib/ace/git/atoms/grouped_stats_formatter.rb +233 -0
- data/lib/ace/git/atoms/lock_error_detector.rb +79 -0
- data/lib/ace/git/atoms/pattern_filter.rb +156 -0
- data/lib/ace/git/atoms/pr_identifier_parser.rb +88 -0
- data/lib/ace/git/atoms/repository_checker.rb +97 -0
- data/lib/ace/git/atoms/repository_state_detector.rb +92 -0
- data/lib/ace/git/atoms/stale_lock_cleaner.rb +247 -0
- data/lib/ace/git/atoms/status_formatter.rb +180 -0
- data/lib/ace/git/atoms/task_pattern_extractor.rb +57 -0
- data/lib/ace/git/atoms/time_formatter.rb +84 -0
- data/lib/ace/git/cli/commands/branch.rb +62 -0
- data/lib/ace/git/cli/commands/diff.rb +252 -0
- data/lib/ace/git/cli/commands/pr.rb +119 -0
- data/lib/ace/git/cli/commands/status.rb +84 -0
- data/lib/ace/git/cli.rb +87 -0
- data/lib/ace/git/models/diff_config.rb +185 -0
- data/lib/ace/git/models/diff_result.rb +94 -0
- data/lib/ace/git/models/repo_status.rb +202 -0
- data/lib/ace/git/molecules/branch_reader.rb +92 -0
- data/lib/ace/git/molecules/config_loader.rb +108 -0
- data/lib/ace/git/molecules/diff_filter.rb +102 -0
- data/lib/ace/git/molecules/diff_generator.rb +160 -0
- data/lib/ace/git/molecules/git_status_fetcher.rb +32 -0
- data/lib/ace/git/molecules/pr_metadata_fetcher.rb +286 -0
- data/lib/ace/git/molecules/recent_commits_fetcher.rb +53 -0
- data/lib/ace/git/organisms/diff_orchestrator.rb +178 -0
- data/lib/ace/git/organisms/repo_status_loader.rb +264 -0
- data/lib/ace/git/version.rb +7 -0
- data/lib/ace/git.rb +230 -0
- metadata +201 -0
data/CHANGELOG.md
ADDED
|
@@ -0,0 +1,762 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to ace-git will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
## [0.18.0] - 2026-03-23
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
- Installation section in README for quick onboarding.
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
- Aligned gemspec description with README intro messaging.
|
|
17
|
+
- Clarified agent workflow references in Use Cases (removed raw `/as-` prefix, linked to Handbook catalog).
|
|
18
|
+
- Expanded template paths in handbook catalog to use full `handbook/templates/pr/` prefix.
|
|
19
|
+
- Re-recorded getting-started demo GIF against live repo (removed sandbox/fixture setup from tape).
|
|
20
|
+
|
|
21
|
+
## [0.17.2] - 2026-03-23
|
|
22
|
+
|
|
23
|
+
### Changed
|
|
24
|
+
- Refreshed package README structure, quick-link navigation, and section flow to align with the current package layout pattern.
|
|
25
|
+
|
|
26
|
+
## [0.17.1] - 2026-03-22
|
|
27
|
+
|
|
28
|
+
### Fixed
|
|
29
|
+
- Added `docs/**/*` to the gemspec file manifest so the packaged gem ships the documentation files linked from the README.
|
|
30
|
+
|
|
31
|
+
## [0.17.0] - 2026-03-22
|
|
32
|
+
|
|
33
|
+
### Changed
|
|
34
|
+
- Rewrote the README as a landing page, added getting-started and handbook docs, refreshed the usage reference, added committed demo artifacts, and aligned gemspec metadata with the new package messaging.
|
|
35
|
+
|
|
36
|
+
## [0.16.1] - 2026-03-21
|
|
37
|
+
|
|
38
|
+
### Added
|
|
39
|
+
- Add GitHub release publish workflow (`wfi://github/release-publish`) for creating GitHub releases from unpublished CHANGELOG entries with daily grouping, commit targeting, and dry-run support.
|
|
40
|
+
- Add `as-github-release-publish` skill for invoking the GitHub release publish workflow.
|
|
41
|
+
|
|
42
|
+
## [0.16.0] - 2026-03-20
|
|
43
|
+
|
|
44
|
+
### Changed
|
|
45
|
+
- Expanded `TS-GIT-001` E2E coverage with new goal-level checks for diff output-path security and deterministic status JSON/no-PR behavior.
|
|
46
|
+
- Tightened PR summary runner/verifier contracts to require explicit fallback evidence when PR context is unavailable.
|
|
47
|
+
|
|
48
|
+
## [0.15.1] - 2026-03-18
|
|
49
|
+
|
|
50
|
+
### Changed
|
|
51
|
+
- Migrated CLI namespace from `Ace::Core::CLI::*` to `Ace::Support::Cli::*` (ace-support-cli is now the canonical home for CLI infrastructure).
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
## [0.15.0] - 2026-03-18
|
|
55
|
+
|
|
56
|
+
### Changed
|
|
57
|
+
- Removed legacy backward-compatibility behavior as part of the 0.10 cleanup release.
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
## [0.14.6] - 2026-03-17
|
|
61
|
+
|
|
62
|
+
### Fixed
|
|
63
|
+
- Updated CLI routing tests to match the shared `ace-support-cli` help output headers and short-help behavior.
|
|
64
|
+
|
|
65
|
+
## [0.14.5] - 2026-03-15
|
|
66
|
+
|
|
67
|
+
### Changed
|
|
68
|
+
- Migrated CLI framework from dry-cli to ace-support-cli
|
|
69
|
+
|
|
70
|
+
## [0.14.4] - 2026-03-13
|
|
71
|
+
|
|
72
|
+
### Technical
|
|
73
|
+
- Updated canonical Git workflow skills for workflow-first execution compatibility.
|
|
74
|
+
|
|
75
|
+
## [0.14.3] - 2026-03-13
|
|
76
|
+
|
|
77
|
+
### Changed
|
|
78
|
+
- Updated canonical git workflow skills to explicitly run bundled workflows in the current project and execute them end-to-end.
|
|
79
|
+
|
|
80
|
+
## [0.14.2] - 2026-03-13
|
|
81
|
+
|
|
82
|
+
### Changed
|
|
83
|
+
- Replaced provider-specific Codex execution metadata on the canonical `as-github-pr-create` skill with a unified canonical skill body that declares arguments, variables, and explicit workflow-execution guidance.
|
|
84
|
+
- Removed the Codex-specific delegated execution metadata from the canonical `as-github-pr-update` skill so provider projections now inherit the canonical skill body unchanged.
|
|
85
|
+
- Limited provider-specific forking for `as-github-pr-create` to Claude frontmatter only.
|
|
86
|
+
|
|
87
|
+
## [0.14.1] - 2026-03-12
|
|
88
|
+
|
|
89
|
+
### Changed
|
|
90
|
+
- Updated README and handbook guide examples to load workflows through `ace-bundle` and removed legacy shared-handbook path assumptions.
|
|
91
|
+
|
|
92
|
+
## [0.14.0] - 2026-03-12
|
|
93
|
+
|
|
94
|
+
### Added
|
|
95
|
+
- Added Codex-specific delegated execution metadata to the canonical `as-github-pr-create` and `as-github-pr-update` skills so the generated Codex skills run in fork context on `gpt-5.3-codex-spark`.
|
|
96
|
+
|
|
97
|
+
## [0.13.0] - 2026-03-10
|
|
98
|
+
|
|
99
|
+
### Added
|
|
100
|
+
- Added canonical handbook-owned git and GitHub PR skills for rebase, commit reorganization, and PR create/update workflows.
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
## [0.12.0] - 2026-03-09
|
|
104
|
+
|
|
105
|
+
### Changed
|
|
106
|
+
- Rebase workflow now treats localized conflicts as continue-first instead of automatically aborting into cherry-pick fallback.
|
|
107
|
+
- Cherry-pick fallback is now documented as an escalation path for repeated, large, or explicitly requested conflict handling.
|
|
108
|
+
|
|
109
|
+
### Fixed
|
|
110
|
+
- Cherry-pick replay progress now uses session-local applied SHA tracking instead of commit-subject matching, making resumed replay more reliable.
|
|
111
|
+
|
|
112
|
+
## [0.11.18] - 2026-03-05
|
|
113
|
+
|
|
114
|
+
### Fixed
|
|
115
|
+
- Rebase workflow cherry-pick skip detection now uses commit subject matching instead of SHA comparison (cherry-pick produces new SHAs, so SHA-based skip never fired on resume).
|
|
116
|
+
- Rebase workflow Phase 3.3 now restores upstream tracking after `git branch -m` rename, which silently drops the upstream config.
|
|
117
|
+
- Rebase workflow Phase 5 push now uses `-u` flag to guarantee tracking is set after force-push.
|
|
118
|
+
|
|
119
|
+
## [0.11.17] - 2026-03-05
|
|
120
|
+
|
|
121
|
+
### Changed
|
|
122
|
+
- Diff generation now falls back safely when default git refs are unavailable, using tracking branch, `origin/main`, then `HEAD~1`.
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
## [0.11.16] - 2026-03-04
|
|
126
|
+
|
|
127
|
+
### Changed
|
|
128
|
+
- Default diff ignore artifacts now use `.ace-local/**/*`.
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
## [0.11.15] - 2026-03-04
|
|
132
|
+
|
|
133
|
+
### Fixed
|
|
134
|
+
- Rebase workflow cleanup `find` command corrected to `.ace-local/git/` (missed one occurrence in previous fix)
|
|
135
|
+
|
|
136
|
+
## [0.11.14] - 2026-03-04
|
|
137
|
+
|
|
138
|
+
### Fixed
|
|
139
|
+
- Rebase workflow session path corrected to short-name convention (`.ace-local/git/` not `.ace-local/ace-git/`)
|
|
140
|
+
|
|
141
|
+
## [0.11.13] - 2026-03-04
|
|
142
|
+
|
|
143
|
+
### Changed
|
|
144
|
+
- Rename PR workflows to domain-namespaced URIs and paths:
|
|
145
|
+
- `wfi://git/create-pr` -> `wfi://github/pr/create`
|
|
146
|
+
- `wfi://git/update-pr-desc` -> `wfi://github/pr/update`
|
|
147
|
+
- `handbook/workflow-instructions/git/{create-pr,update-pr-desc}.wf.md` -> `handbook/workflow-instructions/github/pr/{create,update}.wf.md`
|
|
148
|
+
- Update PR workflow frontmatter names to `github-pr-create` and `github-pr-update`
|
|
149
|
+
- Update README workflow references to the new `wfi://github/pr/create` URI
|
|
150
|
+
|
|
151
|
+
## [0.11.12] - 2026-02-27
|
|
152
|
+
|
|
153
|
+
### Changed
|
|
154
|
+
- Add explicit code-block formatting rule and correct/incorrect example for grouped-stats output in PR creation and update workflows
|
|
155
|
+
- Update embedded PR templates (feature, bugfix, default) to instruct verbatim code-block pasting of grouped-stats output
|
|
156
|
+
|
|
157
|
+
## [0.11.11] - 2026-02-26
|
|
158
|
+
|
|
159
|
+
### Fixed
|
|
160
|
+
- Add untracked-file detection helper in command execution so callers can correctly treat untracked-only repositories as having changes.
|
|
161
|
+
|
|
162
|
+
### Technical
|
|
163
|
+
- Add regression tests for untracked change detection helper behavior.
|
|
164
|
+
|
|
165
|
+
## [0.11.10] - 2026-02-26
|
|
166
|
+
|
|
167
|
+
### Changed
|
|
168
|
+
- Refine grouped-stats header rendering so icon and label are displayed as separate columns with consistent spacing and no extra icon-side padding
|
|
169
|
+
- Keep file rows aligned to the same name column as package/layer headers while preserving explicit icon-column separation
|
|
170
|
+
|
|
171
|
+
## [0.11.9] - 2026-02-26
|
|
172
|
+
|
|
173
|
+
### Fixed
|
|
174
|
+
- Parse brace renames with an empty side (for example `{ => _archive}`) in numstat output so grouped-stats keeps move entries in the correct group
|
|
175
|
+
|
|
176
|
+
### Changed
|
|
177
|
+
- Compact shared rename prefixes in grouped-stats file lines to surface only the changed destination tail on the first rename line
|
|
178
|
+
- Normalize project-root group labeling to `./`, hide redundant layer headers when layer totals match the group totals, and suppress anonymous `other/` summary rows
|
|
179
|
+
- Switch repeated path-prefix squashing from space padding to explicit `.../basename` formatting for clearer relative context
|
|
180
|
+
|
|
181
|
+
## [0.11.8] - 2026-02-26
|
|
182
|
+
|
|
183
|
+
### Added
|
|
184
|
+
- Add emoji-prefixed grouped-stats layer headers for faster visual scanning: `🧱 lib/`, `🧪 test/`, and `📚 handbook/`
|
|
185
|
+
|
|
186
|
+
## [0.11.7] - 2026-02-25
|
|
187
|
+
|
|
188
|
+
### Changed
|
|
189
|
+
- Update `create-pr` and `update-pr-desc` workflows to use emoji section headers (`📋 Summary`, `✏️ Changes`, `📁 File Changes`, `🧪 Test Evidence`, `📦 Releases`) for visual section separation
|
|
190
|
+
- Add bullet formatting rules requiring the first key term (feature name, class name, CLI flag) to be bolded in Changes, Test Evidence, and Releases bullets
|
|
191
|
+
|
|
192
|
+
## [0.11.6] - 2026-02-25
|
|
193
|
+
|
|
194
|
+
### Added
|
|
195
|
+
- Squash repeated directory prefixes in `grouped-stats` file lines — consecutive files in the same directory show the shared prefix once, subsequent files show only the basename indented to align
|
|
196
|
+
- Squash consecutive renames sharing the same from-dir and to-dir — second and later renames show only the indented basenames on each side of the arrow
|
|
197
|
+
- Non-rename file following a rename always shows its full path (rename dir is not a real filesystem directory for comparison purposes)
|
|
198
|
+
|
|
199
|
+
### Changed
|
|
200
|
+
- Update `update-pr-desc` workflow: `## File Changes` must use the complete, untruncated `grouped-stats` output — trimming or abbreviating is explicitly forbidden
|
|
201
|
+
|
|
202
|
+
## [0.11.5] - 2026-02-25
|
|
203
|
+
|
|
204
|
+
### Fixed
|
|
205
|
+
- Remove blank lines within groups in `grouped-stats` plain output (between group header and first layer, and between layers)
|
|
206
|
+
- Wire positional `range` argument in `ace-git diff` so `ace-git diff origin/main..HEAD` correctly passes the range to the diff generator instead of silently falling back to working-tree state
|
|
207
|
+
|
|
208
|
+
### Changed
|
|
209
|
+
- Align stats and name columns in `grouped-stats` output: stats use `%5s, %5s` (12 chars, handles ±9999) and file-count field is right-padded so names start at a consistent column across package, layer, and file lines
|
|
210
|
+
- Update `update-pr-desc` workflow to use `ace-git diff $(git merge-base HEAD origin/main)..HEAD --format grouped-stats` for correct PR diff coverage
|
|
211
|
+
|
|
212
|
+
## [0.11.4] - 2026-02-25
|
|
213
|
+
|
|
214
|
+
### Fixed
|
|
215
|
+
- Classify single-segment dotfiles (e.g. `.gitignore`) as "Project root" instead of creating per-file groups
|
|
216
|
+
|
|
217
|
+
### Technical
|
|
218
|
+
- Add inline comment for unbraced exact rename fallback in `DiffNumstatParser`
|
|
219
|
+
|
|
220
|
+
## [0.11.3] - 2026-02-25
|
|
221
|
+
|
|
222
|
+
### Fixed
|
|
223
|
+
- Filter numstat entries by `rename_from` path in addition to `rename_to` so renames from excluded locations are correctly suppressed
|
|
224
|
+
- Consolidate duplicate `ace-` and dot-prefix classification branches in `FileGrouper#classify`
|
|
225
|
+
|
|
226
|
+
## [0.11.2] - 2026-02-25
|
|
227
|
+
|
|
228
|
+
### Fixed
|
|
229
|
+
- Short-circuit full diff generation for `grouped-stats` format to avoid redundant git subprocess
|
|
230
|
+
- Standardize zero-value display in grouped stats — file-level stats now show `+0`/`-0` consistently with group totals
|
|
231
|
+
|
|
232
|
+
## [0.11.1] - 2026-02-25
|
|
233
|
+
|
|
234
|
+
### Changed
|
|
235
|
+
- Rewrite PR description workflows to require evidence-based sections and sourcing rules (`Summary`, `Changes`, `File Changes`, `Test Evidence`, `Releases`) derived from diff, commit, test, and changelog evidence.
|
|
236
|
+
- Align PR creation workflow guidance with grouped-stats-first file change reporting, user-impact-first summary writing, and explicit omission/fallback rules for missing evidence.
|
|
237
|
+
|
|
238
|
+
### Technical
|
|
239
|
+
- Replace feature/default PR template scaffolds with concise evidence-oriented placeholders and update embedded workflow template blocks accordingly.
|
|
240
|
+
|
|
241
|
+
## [0.11.0] - 2026-02-25
|
|
242
|
+
|
|
243
|
+
### Added
|
|
244
|
+
- Add `ace-git diff --format grouped-stats` with package/layer grouped and aligned diff statistics output.
|
|
245
|
+
- Add grouped stats configuration defaults (`layers`, `collapse_above`, `show_full_tree`, `dotfile_groups`) and numstat-based grouping/formatting internals.
|
|
246
|
+
|
|
247
|
+
### Changed
|
|
248
|
+
- Normalize `--format grouped-stats` handling to internal `:grouped_stats` format dispatch and support markdown-oriented grouped rendering for file output.
|
|
249
|
+
|
|
250
|
+
### Technical
|
|
251
|
+
- Add grouped-stats unit coverage for parser, grouper, formatter, diff config, diff generator, orchestrator, and diff command integration points.
|
|
252
|
+
|
|
253
|
+
## [0.10.18] - 2026-02-23
|
|
254
|
+
|
|
255
|
+
### Technical
|
|
256
|
+
- Updated internal dependency version constraints to current releases
|
|
257
|
+
|
|
258
|
+
## [0.10.17] - 2026-02-22
|
|
259
|
+
|
|
260
|
+
### Changed
|
|
261
|
+
- Migrate `ace-git` CLI to standard multi-command help pattern with registered `help`, `--help`, and `-h` commands.
|
|
262
|
+
- Move shorthand git range routing (`ace-git HEAD~5..HEAD`) to the executable wrapper while preserving `diff` shorthand behavior.
|
|
263
|
+
|
|
264
|
+
### Technical
|
|
265
|
+
- Rewrite CLI routing integration tests to executable-level assertions for help/version/default routing behavior.
|
|
266
|
+
- Update usage documentation to reflect explicit help invocation and shorthand diff examples.
|
|
267
|
+
|
|
268
|
+
## [0.10.15] - 2026-02-22
|
|
269
|
+
|
|
270
|
+
### Changed
|
|
271
|
+
- Migrate skill naming and invocation references to hyphenated `ace-*` format (no underscores).
|
|
272
|
+
|
|
273
|
+
## [0.10.14] - 2026-02-19
|
|
274
|
+
|
|
275
|
+
### Technical
|
|
276
|
+
- Namespace workflow instructions into git/ subdirectory with updated wfi:// URIs
|
|
277
|
+
|
|
278
|
+
## [0.10.13] - 2026-02-17
|
|
279
|
+
|
|
280
|
+
### Added
|
|
281
|
+
|
|
282
|
+
- `dirty_file_count` method to RepoStatus for counting uncommitted files from git status output
|
|
283
|
+
- `dirty_files` key in RepoStatus#to_h for downstream consumers
|
|
284
|
+
|
|
285
|
+
## [0.10.12] - 2026-02-17
|
|
286
|
+
|
|
287
|
+
### Fixed
|
|
288
|
+
|
|
289
|
+
- `fetch_pr_data_parallel` now matches PRs in any state (OPEN, MERGED, CLOSED) for the current branch, preferring OPEN over MERGED over CLOSED, so branches with merged PRs show PR metadata in status views
|
|
290
|
+
|
|
291
|
+
## [0.10.11] - 2026-02-04
|
|
292
|
+
|
|
293
|
+
### Changed
|
|
294
|
+
- Add scope determination guidance to reorganize-commits workflow for handling user-provided vs embedded status scope
|
|
295
|
+
|
|
296
|
+
## [0.10.10] - 2026-02-01
|
|
297
|
+
|
|
298
|
+
### Changed
|
|
299
|
+
- Use progressive retry delays (1s, 2s, 3s, 4s) for lock handling instead of fixed 500ms
|
|
300
|
+
- Lower stale lock threshold from 60s to 10s for faster orphan detection
|
|
301
|
+
- Always show lock wait messages (not just in debug mode)
|
|
302
|
+
|
|
303
|
+
## [0.10.9] - 2026-01-31
|
|
304
|
+
|
|
305
|
+
### Fixed
|
|
306
|
+
- `load_for_pr` no longer fetches unnecessary PR activity (saves ~1s per call)
|
|
307
|
+
|
|
308
|
+
### Technical
|
|
309
|
+
- Add missing stubs for `fetch_recently_merged`/`fetch_open_prs` in test helper (2.3s → 16ms)
|
|
310
|
+
|
|
311
|
+
## [0.10.8] - 2026-01-31
|
|
312
|
+
|
|
313
|
+
### Technical
|
|
314
|
+
- Stub Kernel.sleep in lock retry tests for 98% speedup (2.5s → 32ms)
|
|
315
|
+
|
|
316
|
+
## [0.10.7] - 2026-01-30
|
|
317
|
+
|
|
318
|
+
### Changed
|
|
319
|
+
- Simplify rebase workflow from 677 to 373 lines (45% reduction)
|
|
320
|
+
|
|
321
|
+
## [0.10.6] - 2026-01-30
|
|
322
|
+
|
|
323
|
+
### Added
|
|
324
|
+
- Improve rebase workflow with state capture and verification
|
|
325
|
+
|
|
326
|
+
### Technical
|
|
327
|
+
- Apply review feedback to rebase workflow documentation
|
|
328
|
+
- Clarify ace-git-commit usage for automatic scope grouping
|
|
329
|
+
|
|
330
|
+
## [0.10.5] - 2026-01-29
|
|
331
|
+
|
|
332
|
+
### Added
|
|
333
|
+
- Integrate exception-based CLI error handling
|
|
334
|
+
- Enhance commit reorganization workflow with bundle integration
|
|
335
|
+
|
|
336
|
+
### Technical
|
|
337
|
+
- Clarify reorganize-commits workflow: reorganize means reorder, not squash
|
|
338
|
+
|
|
339
|
+
## [0.10.4] - 2026-01-28
|
|
340
|
+
|
|
341
|
+
### Added
|
|
342
|
+
- Add bundle section to reorganize-commits workflow for context loading via ace-bundle
|
|
343
|
+
|
|
344
|
+
## [0.10.3] - 2026-01-27
|
|
345
|
+
|
|
346
|
+
### Changed
|
|
347
|
+
- Lock retry now detects active lock PID and increases wait time on active locks
|
|
348
|
+
- Lock cleanup reports lock status metadata (pid/age) for better diagnostics
|
|
349
|
+
- CLI now shows error for unknown commands instead of routing to diff
|
|
350
|
+
|
|
351
|
+
## [0.10.2] - 2026-01-27
|
|
352
|
+
|
|
353
|
+
### Technical
|
|
354
|
+
- Simplified reorganize-commits workflow documentation
|
|
355
|
+
|
|
356
|
+
## [0.10.1] - 2026-01-27
|
|
357
|
+
|
|
358
|
+
### Changed
|
|
359
|
+
- Renamed squash-commits workflow and skill to reorganize-commits
|
|
360
|
+
- Workflow: `squash-commits.wf.md` → `reorganize-commits.wf.md`
|
|
361
|
+
- Skill: `ace:squash-commits` → `ace:reorganize-commits`
|
|
362
|
+
- Better reflects the workflow purpose: organizing commits into logical groups
|
|
363
|
+
|
|
364
|
+
## [0.10.0] - 2026-01-26
|
|
365
|
+
|
|
366
|
+
### Added
|
|
367
|
+
- **Reset-split rebase strategy** as default in rebase workflow
|
|
368
|
+
- Uses `ace-git-commit` path-based splitting for zero-conflict rebases
|
|
369
|
+
- Automatically groups files by scope and generates distinct messages
|
|
370
|
+
- Orders commits logically: feat → fix → chore → docs
|
|
371
|
+
- Eliminates manual CHANGELOG conflict resolution for most rebases
|
|
372
|
+
|
|
373
|
+
### Changed
|
|
374
|
+
- Rebase workflow redesigned with three named strategies:
|
|
375
|
+
- `reset-split` (DEFAULT): Soft reset + ace-git-commit for clean history
|
|
376
|
+
- `manual`: Traditional rebase for preserving exact commit history
|
|
377
|
+
- `interactive`: For commit squashing/reordering
|
|
378
|
+
- Simplified default rebase to 3 steps: fetch, reset --soft, ace-git-commit
|
|
379
|
+
|
|
380
|
+
## [0.9.0] - 2026-01-19
|
|
381
|
+
|
|
382
|
+
### Added
|
|
383
|
+
- Package-based commit squashing strategy (default for monorepo)
|
|
384
|
+
- Documents one commit per package/module approach
|
|
385
|
+
- Includes package-prefixed commit message format (e.g., `feat(ace-lint): ...`)
|
|
386
|
+
- Added Strategy 1: Package-Based as default monorepo approach
|
|
387
|
+
- Renumbered existing strategies (Logical Grouping, Commit Per Feature, One Commit Per Version)
|
|
388
|
+
|
|
389
|
+
### Changed
|
|
390
|
+
- Renamed squash-pr workflow and skill to squash-commits
|
|
391
|
+
- Workflow: `squash-pr.wf.md` → `squash-commits.wf.md`
|
|
392
|
+
- Skill: `ace:squash-pr` → `ace:squash-commits`
|
|
393
|
+
- Updated ace-git-commit path handling documentation
|
|
394
|
+
- Removed incorrect `git add` + `ace-git-commit paths` pattern
|
|
395
|
+
- Documented correct pattern: `ace-git-commit <path1> <path2> --intention "..."`
|
|
396
|
+
- Added warning about passing paths directly to ace-git-commit
|
|
397
|
+
- Clarified PR-based vs commit-range-based workflow usage methods
|
|
398
|
+
- Updated for ace-bundle integration
|
|
399
|
+
- Workflow integration via wfi:// protocol
|
|
400
|
+
- Improved workflow discovery and loading
|
|
401
|
+
|
|
402
|
+
## [0.8.2] - 2026-01-16
|
|
403
|
+
|
|
404
|
+
### Changed
|
|
405
|
+
- Updated README.md workflow examples from /ace:load-context to /ace:bundle (task 206)
|
|
406
|
+
|
|
407
|
+
## [0.8.1] - 2026-01-13
|
|
408
|
+
|
|
409
|
+
### Added
|
|
410
|
+
- PID-based orphan detection for git lock files
|
|
411
|
+
- New `orphaned?` method checks if lock-owning process still exists
|
|
412
|
+
- Instant cleanup of orphaned locks (dead PID) regardless of age
|
|
413
|
+
- Age-based stale detection remains as fallback for edge cases
|
|
414
|
+
|
|
415
|
+
### Changed
|
|
416
|
+
- Lock retry now uses fixed 500ms delay (was exponential 50→100→200→400ms)
|
|
417
|
+
- Lock cleanup attempted on every retry (was only first retry)
|
|
418
|
+
- Updated `initial_delay_ms` default from 50 to 500 in config
|
|
419
|
+
- Updated create-pr workflow to use worktree metadata for target_branch detection
|
|
420
|
+
- Added `yq` command to read `target_branch` from `.ace-taskflow/task.yml`
|
|
421
|
+
- Worktree metadata is now the preferred method for determining PR target branch
|
|
422
|
+
- Falls back to legacy parent task detection when metadata unavailable
|
|
423
|
+
- Updated rebase workflow with auto-detection from worktree metadata
|
|
424
|
+
- Added example for rebasing subtasks against parent branch
|
|
425
|
+
- `target_branch` now auto-detects from worktree metadata → origin/main fallback
|
|
426
|
+
|
|
427
|
+
## [0.8.0] - 2026-01-12
|
|
428
|
+
|
|
429
|
+
### Added
|
|
430
|
+
- Git index lock retry with stale lock cleanup (task 210)
|
|
431
|
+
- `LockErrorDetector` atom to detect git index lock errors from stderr
|
|
432
|
+
- `StaleLockCleaner` atom to detect and remove stale lock files (>60s old)
|
|
433
|
+
- Automatic retry with exponential backoff (50ms → 100ms → 200ms → 400ms)
|
|
434
|
+
- `lock_retry` configuration section in `.ace-defaults/git/config.yml`
|
|
435
|
+
- Configurable retry behavior: `enabled`, `max_retries`, `initial_delay_ms`, `stale_cleanup`, `stale_threshold_seconds`
|
|
436
|
+
|
|
437
|
+
### Changed
|
|
438
|
+
- Modified `CommandExecutor.execute()` to wrap git commands with lock retry logic
|
|
439
|
+
- Updated `CommandExecutor.repo_root()` to use `execute_once()` directly to prevent recursion
|
|
440
|
+
- All 459 tests pass including 30 new tests for lock retry behavior
|
|
441
|
+
|
|
442
|
+
## [0.7.1] - 2026-01-09
|
|
443
|
+
|
|
444
|
+
### Changed
|
|
445
|
+
- **BREAKING**: Eliminate wrapper pattern in dry-cli commands
|
|
446
|
+
- Merged business logic directly into `Branch`, `Diff`, `PR`, and `Status` dry-cli command classes
|
|
447
|
+
- Deleted `branch_command.rb`, `diff_command.rb`, `pr_command.rb`, and `status_command.rb` wrapper files
|
|
448
|
+
- Simplified architecture by removing unnecessary delegation layer
|
|
449
|
+
|
|
450
|
+
## [0.7.0] - 2026-01-07
|
|
451
|
+
|
|
452
|
+
### Changed
|
|
453
|
+
- **BREAKING**: Migrated CLI framework from Thor to dry-cli (task 179.06)
|
|
454
|
+
- Replaced `thor` dependency with `dry-cli ~> 1.0`
|
|
455
|
+
- Created dry-cli command wrappers for all commands (diff, status, branch, pr)
|
|
456
|
+
- Maintained magic git range routing (HEAD~5..HEAD -> diff)
|
|
457
|
+
- All 423 tests pass with complete feature parity
|
|
458
|
+
|
|
459
|
+
## [0.6.1] - 2026-01-05
|
|
460
|
+
|
|
461
|
+
### Changed
|
|
462
|
+
- Adopted Ace::Core::CLI::Base for standardized options (--quiet, --verbose, --debug)
|
|
463
|
+
- Added method_missing for default subcommand support
|
|
464
|
+
|
|
465
|
+
### Fixed
|
|
466
|
+
- Resolved -v flag conflict between --verbose and --version
|
|
467
|
+
- Addressed PR #123 review findings for Medium and higher priority issues
|
|
468
|
+
|
|
469
|
+
## [0.6.0] - 2026-01-03
|
|
470
|
+
|
|
471
|
+
### Changed
|
|
472
|
+
- **BREAKING**: Minimum Ruby version raised to 3.3.0 (was 3.2.0)
|
|
473
|
+
- Standardized gemspec file patterns with deterministic Dir.glob
|
|
474
|
+
- Added MIT LICENSE file
|
|
475
|
+
|
|
476
|
+
## [0.5.2] - 2026-01-03
|
|
477
|
+
|
|
478
|
+
### Changed
|
|
479
|
+
|
|
480
|
+
- Optimize test execution time from 6.54s to 4.37s (33% reduction)
|
|
481
|
+
- Created `with_mock_repo_load` helper to replace 6-7 levels of nested stubs
|
|
482
|
+
- Created `with_mock_diff_orchestrator` helper for consolidated stub management
|
|
483
|
+
- Extracted `build_mock_prs` to test_helper.rb for reuse
|
|
484
|
+
- Reused single temp directory instead of per-test Dir.mktmpdir calls
|
|
485
|
+
- Organisms layer: 4.82s → 2.72s (44% faster)
|
|
486
|
+
|
|
487
|
+
### Technical
|
|
488
|
+
|
|
489
|
+
- Add `setup_repo_status_loader_defaults` helper for cleaner test setup
|
|
490
|
+
- Add comprehensive YARD documentation for test helpers
|
|
491
|
+
- Improve test hermeticity with proper stub defaults for `find_pr_for_branch` and `fetch_metadata`
|
|
492
|
+
|
|
493
|
+
## [0.5.1] - 2025-12-30
|
|
494
|
+
|
|
495
|
+
### Changed
|
|
496
|
+
|
|
497
|
+
- Replace ace-support-core dependency with ace-config for configuration cascade
|
|
498
|
+
- Migrate from Ace::Core to Ace::Config.create() API
|
|
499
|
+
- Migrate from `resolve_for` to `resolve_namespace` for cleaner config loading
|
|
500
|
+
|
|
501
|
+
## [0.5.0] - 2025-12-30
|
|
502
|
+
|
|
503
|
+
### Changed
|
|
504
|
+
|
|
505
|
+
* Rename `.ace.example/` to `.ace-defaults/` for gem defaults directory
|
|
506
|
+
|
|
507
|
+
|
|
508
|
+
## [0.4.0] - 2025-12-27
|
|
509
|
+
|
|
510
|
+
### Changed
|
|
511
|
+
|
|
512
|
+
- **PrMetadataFetcher**: Extracted `PR_FIELDS` constant for maintainability
|
|
513
|
+
- Field list now defined as frozen constant array
|
|
514
|
+
- Easier to review and modify PR metadata fields
|
|
515
|
+
- **BREAKING**: Renamed `context` to `status` throughout
|
|
516
|
+
- CLI: `ace-git status` (no `context` alias)
|
|
517
|
+
- Config: `git.status.*` (not `git.context.*`)
|
|
518
|
+
- Classes: `StatusCommand`, `StatusFormatter`, `RepoStatus`, `RepoStatusLoader`
|
|
519
|
+
- Files: `status_command.rb`, `status_formatter.rb`, `repo_status.rb`, `repo_status_loader.rb`
|
|
520
|
+
- Output header: "# Repository Status" (was "# Repository Context")
|
|
521
|
+
- Output format and JSON structure unchanged
|
|
522
|
+
|
|
523
|
+
### Removed
|
|
524
|
+
|
|
525
|
+
- **TimeFormatter.add_relative_times**: Removed unused method (YAGNI cleanup)
|
|
526
|
+
- Method was marked "kept for potential future use" but never used in production
|
|
527
|
+
- StatusFormatter.format_merged_time_compact is the actual method used
|
|
528
|
+
- Related tests removed: test_add_relative_times_adds_merged_ago_field, test_add_relative_times_handles_missing_merged_at
|
|
529
|
+
|
|
530
|
+
## [0.3.6] - 2025-12-26
|
|
531
|
+
|
|
532
|
+
### Added
|
|
533
|
+
|
|
534
|
+
- **PrMetadataFetcher**: Expanded PR metadata with fork detection fields
|
|
535
|
+
- `isCrossRepository`: Boolean indicating if PR is from a fork
|
|
536
|
+
- `headRepositoryOwner`: Object with fork owner's `login` field
|
|
537
|
+
- Enables ace-git-worktree to detect and handle forked PR workflows
|
|
538
|
+
|
|
539
|
+
- **BranchReader.detached?**: New method to explicitly check if HEAD is detached
|
|
540
|
+
- Returns true when in detached HEAD state
|
|
541
|
+
- Separate from current_branch for clearer API
|
|
542
|
+
|
|
543
|
+
### Changed
|
|
544
|
+
|
|
545
|
+
- **CommandExecutor.current_branch**: Now returns commit SHA when in detached HEAD state
|
|
546
|
+
- Previously returned literal string "HEAD" for detached state
|
|
547
|
+
- Consumers no longer need workarounds to get the SHA
|
|
548
|
+
- Use `BranchReader.detached?` instead for explicit detached state detection
|
|
549
|
+
|
|
550
|
+
## [0.3.5] - 2025-12-24
|
|
551
|
+
|
|
552
|
+
### Fixed
|
|
553
|
+
|
|
554
|
+
- **TimeFormatter "0y ago" Bug**: Fixed relative time display for 11-12 month intervals
|
|
555
|
+
- Previously showed "0y ago" for 360-364 day intervals due to rounding error
|
|
556
|
+
- Now correctly shows "12mo ago" for intervals less than 365 days
|
|
557
|
+
- Added regression tests for month/year boundary cases
|
|
558
|
+
|
|
559
|
+
- **Nil Title Handling**: ContextFormatter now handles missing PR titles gracefully
|
|
560
|
+
- Shows "(no title)" instead of empty string when PR title is nil
|
|
561
|
+
|
|
562
|
+
- **Git Color Output**: GitStatusFetcher now disables colors with `-c color.status=false`
|
|
563
|
+
- Ensures clean output for LLM context regardless of user's git configuration
|
|
564
|
+
|
|
565
|
+
### Added
|
|
566
|
+
|
|
567
|
+
- **CLI Alias**: Added `-n` alias for `--no-pr` option in `ace-git status`
|
|
568
|
+
- **Open PR Limit**: `fetch_open_prs` now accepts `limit` parameter (default: 10)
|
|
569
|
+
- Keeps latency predictable on repositories with many open PRs
|
|
570
|
+
|
|
571
|
+
### Changed
|
|
572
|
+
|
|
573
|
+
- **Constants**: Extracted `DEFAULT_COMMITS_LIMIT` constant for consistency
|
|
574
|
+
- Referenced by both CLI options and RepoContextLoader defaults
|
|
575
|
+
- **Hash Key Normalization**: ContextFormatter now expects symbol keys for pr_activity
|
|
576
|
+
- Documented expected key types in method comments
|
|
577
|
+
|
|
578
|
+
## [0.3.4] - 2025-12-24
|
|
579
|
+
|
|
580
|
+
### Changed
|
|
581
|
+
|
|
582
|
+
- **PR Workflow Improvements**: Enhanced create-pr and update-pr-description workflows
|
|
583
|
+
- Added target branch detection based on task hierarchy from `ace-taskflow status`
|
|
584
|
+
- Subtasks now correctly target parent task branch instead of main
|
|
585
|
+
- PR title format: `<task-id>: <description>` when task ID present (e.g., `140.10: Add feature`)
|
|
586
|
+
- Auto-fix for PRs incorrectly targeting main when parent branch exists
|
|
587
|
+
|
|
588
|
+
## [0.3.3] - 2025-12-24
|
|
589
|
+
|
|
590
|
+
### Added
|
|
591
|
+
|
|
592
|
+
- **PR Activity Awareness**: `ace-git status` now shows recent PR activity
|
|
593
|
+
- Recently merged PRs (last 3) with relative timestamps (e.g., "1d ago")
|
|
594
|
+
- Open PRs from other team members (excluding current branch)
|
|
595
|
+
- New `--no-pr` flag to skip PR lookups for faster output
|
|
596
|
+
- TimeFormatter atom for relative time display
|
|
597
|
+
|
|
598
|
+
- **Enhanced Context Output**: Improved UX and readability
|
|
599
|
+
- Git status (`git status -sb`) displayed in Position section
|
|
600
|
+
- Recent commits section (configurable via `--commits N`, default: 3)
|
|
601
|
+
- Task ID shown in Position header: `## Position (task: 140.10)`
|
|
602
|
+
|
|
603
|
+
### Changed
|
|
604
|
+
|
|
605
|
+
- **Simplified Position Section**: Combined Position and Working Tree into single section
|
|
606
|
+
- Raw `git status -sb` output used directly (no custom formatting)
|
|
607
|
+
- Cleaner, more compact output matching git conventions
|
|
608
|
+
|
|
609
|
+
### Fixed
|
|
610
|
+
|
|
611
|
+
- Removed code fences from status output that confused display
|
|
612
|
+
- Added proper spacing after section headers for readability
|
|
613
|
+
|
|
614
|
+
## [0.3.2] - 2025-12-22
|
|
615
|
+
|
|
616
|
+
### Fixed
|
|
617
|
+
|
|
618
|
+
- **Error Propagation**: `ace-git diff` now properly reports git errors for invalid ranges
|
|
619
|
+
- Previously returned "(no changes)" silently when git failed
|
|
620
|
+
- Now shows actual git error message and exits with code 1
|
|
621
|
+
- Added `handle_result` helper in DiffGenerator for consistent error handling
|
|
622
|
+
|
|
623
|
+
## [0.3.1] - 2025-12-22
|
|
624
|
+
|
|
625
|
+
### Added
|
|
626
|
+
|
|
627
|
+
- **Examples in Main Help**: `ace-git --help` now shows common usage examples
|
|
628
|
+
- **Explicit Diff Command**: `ace-git diff --help` shows full help with options
|
|
629
|
+
- **SYNTAX Section**: Clear `[RANGE] [OPTIONS]` documentation in diff help
|
|
630
|
+
|
|
631
|
+
### Changed
|
|
632
|
+
|
|
633
|
+
- **Compact PR Output**: Reduced PR section from ~11 lines to ~4 lines
|
|
634
|
+
- Header line with PR #, title, and status in brackets
|
|
635
|
+
- Key-value lines for branch, author, URL
|
|
636
|
+
- Applies to both `ace-git context` and `ace-git pr` commands
|
|
637
|
+
|
|
638
|
+
## [0.3.0] - 2025-12-22
|
|
639
|
+
|
|
640
|
+
### Added
|
|
641
|
+
|
|
642
|
+
- **CLI Executable** (`ace-git`): Full CLI with Thor for all git operations
|
|
643
|
+
- `ace-git diff [RANGE]` - Generate git diff with filtering (migrated from ace-git-diff)
|
|
644
|
+
- `ace-git context` - Show repository context (branch, PR, task pattern)
|
|
645
|
+
- `ace-git branch` - Show current branch information with tracking status
|
|
646
|
+
- `ace-git pr [NUMBER]` - Fetch and display PR metadata via GitHub CLI
|
|
647
|
+
- All commands support `--format json` for machine-readable output
|
|
648
|
+
|
|
649
|
+
- **Migrated Components** (from ace-git-diff):
|
|
650
|
+
- Atoms: CommandExecutor, DateResolver, DiffParser, PatternFilter
|
|
651
|
+
- Molecules: ConfigLoader, DiffFilter, DiffGenerator
|
|
652
|
+
- Organisms: DiffOrchestrator
|
|
653
|
+
- Models: DiffConfig, DiffResult
|
|
654
|
+
- Full backward compatibility with ace-git-diff functionality
|
|
655
|
+
|
|
656
|
+
- **New Components**:
|
|
657
|
+
- `TaskPatternExtractor` atom: Extract task IDs from branch names (e.g., "140-feature" -> "140")
|
|
658
|
+
- `PrIdentifierParser` atom: Parse PR identifiers (number, owner/repo#number, GitHub URLs)
|
|
659
|
+
- `RepositoryStateDetector` atom: Detect repository state (:clean, :dirty, :rebasing, :merging)
|
|
660
|
+
- `RepositoryChecker` atom: Check repository type (normal, detached, bare, worktree)
|
|
661
|
+
- `GitScopeFilter` atom: Filter files by git scope (staged, tracked, changed)
|
|
662
|
+
- `BranchReader` molecule: Read branch info with tracking status
|
|
663
|
+
- `PrMetadataFetcher` molecule: Fetch PR metadata via gh CLI
|
|
664
|
+
- `RepoContextLoader` organism: Orchestrate complete context loading
|
|
665
|
+
- `RepoContext` model: Structured repository context with markdown/JSON output
|
|
666
|
+
|
|
667
|
+
- **Dependencies**:
|
|
668
|
+
- Added `thor` (~> 1.3) for CLI framework
|
|
669
|
+
- Updated `ace-support-core` to ~> 0.11
|
|
670
|
+
|
|
671
|
+
### Changed
|
|
672
|
+
|
|
673
|
+
- Package now includes CLI executable (previously workflow-only)
|
|
674
|
+
- Updated gemspec to include exe directory and thor dependency
|
|
675
|
+
- Summary updated to reflect unified git operations
|
|
676
|
+
|
|
677
|
+
### Migration Notes
|
|
678
|
+
|
|
679
|
+
- This version consolidates functionality from ace-git-diff
|
|
680
|
+
- ace-git-diff will be deprecated in favor of ace-git
|
|
681
|
+
- Use `ace-git diff` instead of `ace-git-diff` for equivalent functionality
|
|
682
|
+
- Existing ace-git workflows (wfi://rebase, wfi://create-pr, wfi://squash-pr) remain unchanged
|
|
683
|
+
|
|
684
|
+
## [0.2.2] - 2025-12-13
|
|
685
|
+
|
|
686
|
+
### Changed
|
|
687
|
+
|
|
688
|
+
- **Squash Workflow Enhancement**: Updated `wfi://squash-pr` to recommend logical grouping over single-commit squashing
|
|
689
|
+
- Reframed purpose: "cohesive, logical commits" instead of "one commit per version"
|
|
690
|
+
- Added RECOMMENDED banner for Logical Grouping strategy
|
|
691
|
+
- Reordered strategies: Logical Grouping (1st), Commit Per Feature (2nd), One Commit (3rd)
|
|
692
|
+
- Added real-world example: PR #72 squashed 16 → 3 logical commits
|
|
693
|
+
- Rationale: Single-commit squashing loses valuable context; logical grouping preserves separation of concerns
|
|
694
|
+
|
|
695
|
+
## [0.2.1] - 2025-11-16
|
|
696
|
+
|
|
697
|
+
### Changed
|
|
698
|
+
|
|
699
|
+
- **Dependency Update**: Updated ace-support-core dependency from `~> 0.9` to `~> 0.11`
|
|
700
|
+
- Provides access to latest PromptCacheManager features and infrastructure improvements
|
|
701
|
+
- Maintains compatibility with standardized ACE ecosystem patterns
|
|
702
|
+
|
|
703
|
+
## [0.2.0] - 2025-11-15
|
|
704
|
+
|
|
705
|
+
### Added
|
|
706
|
+
|
|
707
|
+
- **PR Description Workflow** (`wfi://update-pr-description`): Automated PR title and description generation
|
|
708
|
+
- New `/ace:update-pr-desc` command for easy invocation from Claude Code
|
|
709
|
+
- Extracts metadata from CHANGELOG.md entries and task files
|
|
710
|
+
- Analyzes commit messages to identify change patterns and types
|
|
711
|
+
- Generates structured PR descriptions with summary, changes breakdown, breaking changes, and related tasks
|
|
712
|
+
- Auto-detects PR number from current branch or accepts explicit PR number argument
|
|
713
|
+
- Uses conventional commits format for PR titles (e.g., `feat(scope): description`)
|
|
714
|
+
- GitHub CLI integration for updating PR titles and descriptions
|
|
715
|
+
- Comprehensive documentation with examples and best practices
|
|
716
|
+
- Supports multi-line body formatting with heredoc for clean PR updates
|
|
717
|
+
|
|
718
|
+
## [0.1.0] - 2025-11-11
|
|
719
|
+
|
|
720
|
+
### Added
|
|
721
|
+
|
|
722
|
+
- Initial release of ace-git workflow package
|
|
723
|
+
- **Rebase Workflow** (`wfi://rebase`): Changelog-preserving rebase operations
|
|
724
|
+
- CHANGELOG.md conflict resolution strategies
|
|
725
|
+
- Version file preservation patterns
|
|
726
|
+
- Recovery procedures for failed rebases
|
|
727
|
+
- **PR Creation Workflow** (`wfi://create-pr`): Pull request creation with templates
|
|
728
|
+
- GitHub CLI integration examples
|
|
729
|
+
- Three PR templates: default, feature, bugfix
|
|
730
|
+
- Draft PR workflow support
|
|
731
|
+
- Alternative platform instructions (GitLab, Bitbucket)
|
|
732
|
+
- **Squash Workflow** (`wfi://squash-pr`): Version-based commit squashing
|
|
733
|
+
- Automatic version boundary detection
|
|
734
|
+
- Multiple squashing strategies (version, interactive, manual)
|
|
735
|
+
- CHANGELOG preservation during squash
|
|
736
|
+
- Comprehensive commit message templates
|
|
737
|
+
- **Templates**: Structured templates for consistent documentation
|
|
738
|
+
- PR templates: default, feature, bugfix
|
|
739
|
+
- Commit squash template with structured format
|
|
740
|
+
- **Protocol Integration**: ace-nav protocol support
|
|
741
|
+
- wfi:// protocol for workflow discovery
|
|
742
|
+
- template:// protocol for template access
|
|
743
|
+
- **Configuration**: Minimal, preference-based configuration
|
|
744
|
+
- Optional user preferences in `.ace/git/config.yml`
|
|
745
|
+
- Sensible defaults inline in workflows
|
|
746
|
+
- Comprehensive README with usage examples
|
|
747
|
+
- MIT License
|
|
748
|
+
|
|
749
|
+
### Design Decisions
|
|
750
|
+
|
|
751
|
+
- Workflow-first architecture (no CLI executables)
|
|
752
|
+
- Self-contained workflows following ADR-001 principles
|
|
753
|
+
- Minimal configuration (preferences only, not behavior control)
|
|
754
|
+
- GitHub CLI as primary PR creation method with alternatives documented
|
|
755
|
+
|
|
756
|
+
[0.1.0]: https://github.com/cs3b/ace/releases/tag/ace-git-v0.1.0
|
|
757
|
+
|
|
758
|
+
|
|
759
|
+
## [0.10.16] - 2026-02-22
|
|
760
|
+
|
|
761
|
+
### Fixed
|
|
762
|
+
- Standardized quiet, verbose, debug option descriptions to canonical strings
|