claude-git-hooks 2.51.2 → 2.66.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.
- package/CHANGELOG.md +513 -30
- package/lib/commands/back-merge.js +91 -11
- package/lib/commands/bump-version.js +72 -76
- package/lib/commands/create-pr.js +124 -44
- package/lib/commands/create-release.js +198 -52
- package/lib/commands/help.js +13 -3
- package/lib/messages/library-warnings.js +147 -0
- package/lib/utils/claude-client.js +6 -1
- package/lib/utils/git-tag-manager.js +104 -0
- package/lib/utils/github-api.js +30 -0
- package/lib/utils/judge.js +2 -1
- package/lib/utils/linter-runner.js +6 -0
- package/lib/utils/version-manager.js +30 -17
- package/package.json +85 -83
package/CHANGELOG.md
CHANGED
|
@@ -5,31 +5,475 @@ Todos los cambios notables en este proyecto se documentarán en este archivo.
|
|
|
5
5
|
El formato está basado en [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [2.66.1] - 2026-06-10
|
|
9
|
+
|
|
10
|
+
### 🐛 Fixed
|
|
11
|
+
- Normalized path separators to forward slashes in staleness checker for cross-platform compatibility
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## [2.66.0] - 2026-06-10
|
|
15
|
+
|
|
16
|
+
### ✨ Added
|
|
17
|
+
- Multi-language extractor registry with pluggable per-language architecture [AUT-3742]
|
|
18
|
+
- End-to-end SDLC stability check test suite
|
|
19
|
+
- Version alignment validation now scoped to base branch tags (#185)
|
|
20
|
+
- Extractor notes template for documenting per-language extractors
|
|
21
|
+
|
|
22
|
+
### 🔧 Changed
|
|
23
|
+
- Moved arrow-function extraction from monolithic extractor to pluggable extractor module [AUT-3742]
|
|
24
|
+
- Decoupled `lib/` from `.library/` static imports with ESLint enforcement rule [AUT-3742]
|
|
25
|
+
- Library maintenance pipeline now runs before tag push in `create-pr`, ensuring library books are included in tagged commits
|
|
26
|
+
- Simplified `bump-version` interactive file selection to direct toggle list, removing multi-choice menu
|
|
27
|
+
- Tags are force-repointed to HEAD after library commit so tagged version includes regenerated books
|
|
28
|
+
|
|
29
|
+
### 🐛 Fixed
|
|
30
|
+
- Fixed `create-pr` gotcha solicitation receiving empty file paths instead of actual book content (#190)
|
|
31
|
+
- Fixed `create-pr` tag comparison using global tag list instead of base branch scope
|
|
32
|
+
- Fixed `create-pr` library pipeline leaking host-repo paths into foreign repositories (#186)
|
|
33
|
+
- Fixed `bump-version` crashing on non-semver version files such as Maven `${revision}` placeholders (#187)
|
|
34
|
+
- Fixed version tag lookup scanning all branches instead of only the HEAD branch (#185)
|
|
35
|
+
- Fixed stale git worktree leftovers causing integration test failures
|
|
36
|
+
|
|
37
|
+
### 🗑️ Removed
|
|
38
|
+
- Removed per-file custom version entry option (`promptEditField`) from `bump-version` interactive selection
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
## [2.65.0] - 2026-06-08
|
|
42
|
+
|
|
43
|
+
### ✨ Added
|
|
44
|
+
- Multi-language extractor registry with pluggable per-language extractors (AUT-3742)
|
|
45
|
+
- Extractor interface contract and runtime validator for language extractor plugins (AUT-3742)
|
|
46
|
+
- JS extractor notes template for documenting new extractors (AUT-3742)
|
|
47
|
+
- Test harness with JS fixtures for extractor validation (AUT-3742)
|
|
48
|
+
- Version alignment now scoped to base branch tags instead of global tag lookup
|
|
49
|
+
|
|
50
|
+
### 🔧 Changed
|
|
51
|
+
- Arrow-function extraction moved from monolithic extract.js to pluggable JS extractor module (AUT-3742)
|
|
52
|
+
- Decoupled lib/ from .library/ static imports with ESLint enforcement — lib/ must use dynamic import() for Library integration (AUT-3742)
|
|
53
|
+
- Library maintenance pipeline in create-pr now runs before tag push so tags include regenerated books
|
|
54
|
+
- Unpushed tags are force-repointed to HEAD after library commit to include book changes
|
|
55
|
+
- Gotcha solicitation now receives full book content instead of just file paths
|
|
56
|
+
- bump-version interactive file selection simplified — goes directly to toggle list, non-semver files pre-deselected
|
|
57
|
+
|
|
58
|
+
### 🐛 Fixed
|
|
59
|
+
- Fixed create-pr library pipeline running incorrectly in foreign repos by deriving paths from resolver config (#186)
|
|
60
|
+
- Fixed bump-version crash when non-semver files (e.g., Maven `${revision}`) reached version parser (#187)
|
|
61
|
+
- Fixed create-pr comparing tags against global scope instead of base branch (#185, #189)
|
|
62
|
+
- Fixed create-pr using stale tag reference after library pipeline commit
|
|
63
|
+
- Fixed local tag lookup not scoped to HEAD branch, causing cross-branch version mismatches
|
|
64
|
+
|
|
65
|
+
### 🗑️ Removed
|
|
66
|
+
- Removed per-file custom version editing (option `e`) from bump-version interactive selection
|
|
67
|
+
- Removed `promptMenu` and `promptEditField` usage from bump-version flow
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
## [2.64.4] - 2026-06-08
|
|
71
|
+
|
|
72
|
+
### ✨ Added
|
|
73
|
+
- Added multi-language extractor registry with pluggable architecture and runtime interface validation (AUT-3742, #184)
|
|
74
|
+
- Added JS extractor as first pluggable extractor with dedicated test harness and fixtures (AUT-3742)
|
|
75
|
+
- Added extractor notes template for documenting per-language extractors (AUT-3742)
|
|
76
|
+
- Added branch-scoped tag lookup functions `getLatestLocalTagOnBranch()` and `getLatestRemoteTagOnBranch()` to git-tag-manager (#185)
|
|
77
|
+
- Added branch-scoped version alignment validation in `create-pr` (#185)
|
|
78
|
+
|
|
79
|
+
### 🔧 Changed
|
|
80
|
+
- Decoupled `lib/` from `.library/` static imports with ESLint restricted-imports guard (AUT-3742)
|
|
81
|
+
- Moved arrow-function extraction from monolithic extractor into pluggable JS extractor module (AUT-3742)
|
|
82
|
+
- Simplified `bump-version` interactive file selection — removed menu, goes directly to toggle list with non-semver files pre-deselected (#187)
|
|
83
|
+
- Library pipeline in `create-pr` now derives paths from resolver config, preventing git-hooks paths from leaking into foreign repos (#186)
|
|
84
|
+
- Reordered `create-pr` steps so library pipeline runs before tag push, then re-points unpushed tags to HEAD to include library commits
|
|
85
|
+
|
|
86
|
+
### 🐛 Fixed
|
|
87
|
+
- Fixed `bump-version` crash when non-semver files (e.g., Maven `${revision}`) were included in version resolution (#187)
|
|
88
|
+
- Fixed `create-pr` library pipeline using hardcoded paths that broke in foreign repositories (#186)
|
|
89
|
+
- Fixed version alignment and tag lookup returning results from unrelated branches instead of scoping to base branch (#185)
|
|
90
|
+
- Fixed `create-pr` tag becoming stale after library book regeneration by running the pipeline before tag push and re-pointing tags
|
|
91
|
+
|
|
92
|
+
### 🗑️ Removed
|
|
93
|
+
- Removed `promptMenu` and `promptEditField` options from `bump-version` interactive file selection (#187)
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
## [2.64.3] - 2026-06-08
|
|
97
|
+
|
|
98
|
+
### ✨ Added
|
|
99
|
+
- Added multi-language extractor registry with pluggable interface, including JS extractor and notes template (AUT-3742)
|
|
100
|
+
- Added library maintenance pipeline step in create-pr that regenerates books before tag push
|
|
101
|
+
- Added branch-scoped tag lookup functions (`getLatestLocalTagOnBranch`, `getLatestRemoteTagOnBranch`) to git-tag-manager
|
|
102
|
+
- Added ESLint rule preventing `lib/` from statically importing `.library/` modules (AUT-3742)
|
|
103
|
+
- Added extractor test harness with JS fixtures (AUT-3742)
|
|
104
|
+
|
|
105
|
+
### 🔧 Changed
|
|
106
|
+
- Moved arrow-function extraction from monolithic `extract.js` into pluggable extractor under `librarian/extractors/registered/js/` (AUT-3742)
|
|
107
|
+
- Scoped version alignment validation to base branch tags instead of global tag lookup
|
|
108
|
+
- Simplified bump-version interactive file selection — goes directly to toggle list, non-semver files pre-deselected
|
|
109
|
+
- Library pipeline now derives booksDir/sourceDir from resolver config when repoRoot is overridden, preventing path leakage into foreign repos
|
|
110
|
+
- Unpushed tags are force-repointed to HEAD after library commit so tags include regenerated books
|
|
111
|
+
|
|
112
|
+
### 🐛 Fixed
|
|
113
|
+
- Fixed create-pr using stale tag for comparison after library regeneration created a new commit
|
|
114
|
+
- Fixed create-pr running library pipeline in foreign repos where `.library/` paths were invalid (#186)
|
|
115
|
+
- Fixed bump-version crashing on non-semver version files (e.g., Maven `${revision}`) by excluding them from version resolution (#187)
|
|
116
|
+
- Fixed local tag lookup scanning tags from all branches instead of only the current HEAD branch (#185)
|
|
117
|
+
|
|
118
|
+
### 🗑️ Removed
|
|
119
|
+
- Removed per-file custom version editing (`promptEditField` option) from bump-version interactive selection
|
|
120
|
+
- Removed `promptMenu` four-option flow from bump-version in favor of direct toggle list
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
## [2.64.2] - 2026-06-08
|
|
124
|
+
|
|
125
|
+
### ✨ Added
|
|
126
|
+
- Multi-language extractor registry with pluggable extractor interface and JS extractor (AUT-3742, #184)
|
|
127
|
+
- Extractor notes template and per-extractor documentation standard (AUT-3742)
|
|
128
|
+
- Test harness for extractors with JS fixtures (AUT-3742)
|
|
129
|
+
- ESLint rule preventing lib/ from statically importing .library/ modules (AUT-3742)
|
|
130
|
+
- Version alignment now scoped to base branch tags for accurate cross-branch comparisons (#185)
|
|
131
|
+
- Library maintenance pipeline step in create-pr to regenerate books before tagging (#187)
|
|
132
|
+
|
|
133
|
+
### 🔧 Changed
|
|
134
|
+
- Moved arrow-function extraction from monolithic extractor to pluggable JS extractor module (AUT-3742)
|
|
135
|
+
- Decoupled lib/ from .library/ imports — library integration now uses dynamic import with graceful degradation (AUT-3742)
|
|
136
|
+
- Library pipeline in create-pr derives paths from resolver.yaml config instead of hardcoded values (#186)
|
|
137
|
+
- Simplified bump-version interactive file selection to use toggle list directly, removing menu options (a/s/e/c) (#187)
|
|
138
|
+
- Tags are re-pointed to HEAD after library commit so tagged releases include regenerated books (#187)
|
|
139
|
+
|
|
140
|
+
### 🐛 Fixed
|
|
141
|
+
- Fixed bump-version crashing on non-semver version files (e.g., Maven `${revision}`) by excluding them from version resolution (#187)
|
|
142
|
+
- Fixed create-pr library pipeline leaking git-hooks paths into foreign repos (#186)
|
|
143
|
+
- Fixed local tag lookup scanning all branches instead of scoping to HEAD branch (#185)
|
|
144
|
+
- Fixed stale tags in create-pr when library pipeline generates a new commit after tag creation (#187)
|
|
145
|
+
|
|
146
|
+
### 🗑️ Removed
|
|
147
|
+
- Removed per-file custom version editing (option `e`) from bump-version interactive selection (#187)
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
## [2.64.1] - 2026-06-08
|
|
151
|
+
|
|
152
|
+
### ✨ Added
|
|
153
|
+
- Multi-language extractor registry with pluggable architecture for Library book generation [AUT-3742] (#184)
|
|
154
|
+
- JS extractor as first pluggable extractor with Tree-sitter parsing, extractor notes template, and test harness [AUT-3742] (#184)
|
|
155
|
+
- ESLint rule preventing `lib/` from statically importing `.library/` modules [AUT-3742] (#184)
|
|
156
|
+
- Branch-scoped tag lookup functions `getLatestLocalTagOnBranch()` and `getLatestRemoteTagOnBranch()` in git-tag-manager (#185)
|
|
157
|
+
|
|
158
|
+
### 🔧 Changed
|
|
159
|
+
- Library pipeline (`createPrPipeline`) now derives `booksDir`/`sourceDir` from overridden `repoRoot`, preventing git-hooks paths from leaking into foreign repos (#186)
|
|
160
|
+
- Version alignment scoped to base branch tags instead of global tag list (#185)
|
|
161
|
+
- Bump-version interactive file selection simplified to direct toggle list with non-semver files pre-deselected
|
|
162
|
+
- Moved arrow-function extraction from monolithic `extract.js` to pluggable extractor module [AUT-3742]
|
|
163
|
+
|
|
164
|
+
### 🐛 Fixed
|
|
165
|
+
- Excluded non-semver files (e.g., Maven `${revision}`) from version resolution in bump-version command, preventing `parseVersion()` failures
|
|
166
|
+
- Fixed library pipeline using hardcoded git-hooks paths when running in foreign repos (#186)
|
|
167
|
+
- Scoped local tag lookup to HEAD branch to avoid cross-branch version pollution (#185)
|
|
168
|
+
|
|
169
|
+
### 🗑️ Removed
|
|
170
|
+
- Removed menu-based file selection (all/select/edit/cancel) from bump-version in favor of direct toggle list
|
|
171
|
+
- Removed per-file custom version entry (`targetVersion`) from interactive file selection
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
## [2.64.0] - 2026-06-08
|
|
175
|
+
|
|
176
|
+
### ✨ Added
|
|
177
|
+
- Multi-language extractor registry with pluggable interface and JS extractor (AUT-3742)
|
|
178
|
+
- Extractor notes template for documenting per-language extractors (AUT-3742)
|
|
179
|
+
- Test harness with JS fixtures for extractor validation (AUT-3742)
|
|
180
|
+
- Branch-scoped tag lookup methods `getLatestLocalTagOnBranch()` and `getLatestRemoteTagOnBranch()` in git-tag-manager
|
|
181
|
+
- ESLint `no-restricted-imports` rule preventing `lib/` from statically importing `.library/` modules (AUT-3742)
|
|
182
|
+
|
|
183
|
+
### 🔧 Changed
|
|
184
|
+
- Moved arrow-function extraction from monolithic `extract.js` to pluggable extractor module under `librarian/extractors/registered/js/` (AUT-3742)
|
|
185
|
+
- `validateVersionAlignment()` now accepts a `baseBranch` parameter, scoping version checks to the relevant branch tags instead of all tags
|
|
186
|
+
- Library pipeline (`createPrPipeline`) now derives `booksDir`/`sourceDir` from resolver config when `repoRoot` is overridden, preventing path leakage into foreign repos
|
|
187
|
+
|
|
188
|
+
### 🐛 Fixed
|
|
189
|
+
- Fixed local tag lookup returning tags from unrelated branches instead of scoping to HEAD branch
|
|
190
|
+
- Fixed library pipeline leaking git-hooks internal paths into foreign repos during PR creation (#185)
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
## [2.63.1] - 2026-06-03
|
|
194
|
+
|
|
195
|
+
### ✨ Added
|
|
196
|
+
|
|
197
|
+
- Multi-language extractor registry with pluggable interface and runtime validation (AUT-3742, #184)
|
|
198
|
+
- JS extractor as first pluggable extractor with full EXTRACTOR_NOTES documentation (AUT-3742)
|
|
199
|
+
- Extractor notes template for documenting new language extractors (AUT-3742)
|
|
200
|
+
- Test harness with JS fixtures for extractor validation (AUT-3742)
|
|
201
|
+
- Version alignment scoped to base branch tags for accurate cross-branch versioning
|
|
202
|
+
|
|
203
|
+
### 🔧 Changed
|
|
204
|
+
|
|
205
|
+
- Decoupled lib/ from .library/ imports with ESLint no-restricted-imports rule to enforce package boundary (AUT-3742)
|
|
206
|
+
- Refactored arrow-function extraction from monolithic extract.js into pluggable JS extractor module (AUT-3742)
|
|
207
|
+
|
|
208
|
+
### 🐛 Fixed
|
|
209
|
+
|
|
210
|
+
- Scoped local tag lookup to HEAD branch to prevent cross-branch version conflicts
|
|
211
|
+
|
|
212
|
+
## [2.63.0] - 2026-06-03
|
|
213
|
+
|
|
214
|
+
### ✨ Added
|
|
215
|
+
|
|
216
|
+
- Added multi-language extractor registry with convention-driven loader, priority-based lookup, and warn-and-skip error handling (AUT-3742)
|
|
217
|
+
- Added Extractor interface definition with JSDoc types and runtime validator for pluggable per-language extractors (AUT-3742)
|
|
218
|
+
- Added JS/ESM pluggable extractor conforming to the new Extractor interface (AUT-3742)
|
|
219
|
+
- Added extractor notes template and canonical JS extractor documentation covering supported constructs, known limitations, and test fixtures (AUT-3742)
|
|
220
|
+
- Added ESLint `no-restricted-imports` rule preventing `lib/` from statically importing `.library/` modules (AUT-3742)
|
|
221
|
+
- Added extractor test harness with JS fixtures for eight construct categories (AUT-3742)
|
|
222
|
+
|
|
223
|
+
### 🔧 Changed
|
|
224
|
+
|
|
225
|
+
- Refactored arrow-function extraction from monolithic `extract.js` into standalone pluggable extractor module under `librarian/extractors/registered/js/` (AUT-3742)
|
|
226
|
+
- Decoupled `lib/` source code from `.library/` imports — runtime integration now requires dynamic `import()` with graceful degradation (AUT-3742)
|
|
227
|
+
|
|
228
|
+
## [2.62.0] - 2026-06-02
|
|
229
|
+
|
|
230
|
+
### ✨ Added
|
|
231
|
+
|
|
232
|
+
- Added structure detector pipeline for Library bootstrap — 3-stage detection (filesystem scan → Haiku inference → interactive console) that generates `.library/structure.yaml` config (AUT-3741)
|
|
233
|
+
- Added deterministic filesystem scanner with configurable depth/child limits, BOM file detection, and language-by-layer counting (AUT-3741)
|
|
234
|
+
- Added Haiku-based structure inference with exponential-backoff retry, scanner-detected language reconciliation, and graceful degradation to stub config on API failure (AUT-3741)
|
|
235
|
+
- Added interactive 3-option console flow (Accept / Reject / Retry) with re-run safety supporting Keep / Overwrite / Merge of existing configs (AUT-3741)
|
|
236
|
+
- Added structure detector documentation to Library README including sequence diagram, consumer contract, config format, and worked example (AUT-3741)
|
|
237
|
+
|
|
238
|
+
### 🐛 Fixed
|
|
239
|
+
|
|
240
|
+
- Fixed tag staleness during Library regeneration (#179)
|
|
241
|
+
|
|
242
|
+
## [2.61.2] - 2026-06-01
|
|
243
|
+
|
|
244
|
+
### 🐛 Fixed
|
|
245
|
+
|
|
246
|
+
- Fixed incorrect import path for gotcha solicitation in PR pipeline
|
|
247
|
+
|
|
248
|
+
## [2.61.1] - 2026-06-01
|
|
249
|
+
|
|
250
|
+
### ✨ Added
|
|
251
|
+
|
|
252
|
+
- Auto-regeneration of stale Library books during `create-release` — stale books are now regenerated before the release is tagged, keeping the tag accurate (#178, AUT-3738)
|
|
253
|
+
|
|
254
|
+
### 🔧 Changed
|
|
255
|
+
|
|
256
|
+
- Staleness warning templates are now context-aware: `CONSOLE_WARNING_TEMPLATE` and `PR_BODY_SECTION_TEMPLATE` accept an `autoRegen` option to tailor messaging per consumer (`will-run` for create-release, `deferred` for bump-version, `completed`/`failed` in PR body)
|
|
257
|
+
- PR body staleness section now reflects the actual auto-regeneration outcome instead of always listing remediation scripts
|
|
258
|
+
- Console staleness warning in `bump-version` now tells the user that Library will be auto-regenerated when they run `create-pr`
|
|
259
|
+
|
|
260
|
+
### 🗑️ Removed
|
|
261
|
+
|
|
262
|
+
- Removed static recommended-scripts list from console staleness warnings (replaced by context-aware auto-regeneration messages)
|
|
263
|
+
|
|
264
|
+
## [2.61.0] - 2026-06-01
|
|
265
|
+
|
|
266
|
+
### ✨ Added
|
|
267
|
+
|
|
268
|
+
- Added canonical staleness-warning templates (`CONSOLE_WARNING_TEMPLATE`, `PR_BODY_SECTION_TEMPLATE`, `PR_TAG_VALUE`) for consistent Library staleness messaging across all consumer commands (AUT-3738)
|
|
269
|
+
- Added non-blocking Library staleness verification gate to the `create-release` workflow — warns operators when Library books are out of date without blocking the release (AUT-3738)
|
|
270
|
+
- Added automatic release PR creation step in `create-release` with idempotency check, staleness section in PR body wrapped in marker comments, and `library-stale` label when applicable (AUT-3738)
|
|
271
|
+
- Added `LIBRARY_VERIFY_SKIPPED_WARNING_RELEASE` constant for release-specific Library verification skip messaging (AUT-3738)
|
|
272
|
+
|
|
273
|
+
### 🔧 Changed
|
|
274
|
+
|
|
275
|
+
- Refactored `bump-version` Library warning to use the canonical `CONSOLE_WARNING_TEMPLATE` instead of inline formatting (AUT-3738)
|
|
276
|
+
- Changed `create-release` Library staleness gate from blocking (exit on stale) to non-blocking (warn and continue), using the librarian `verify()` API instead of raw staleness tools (AUT-3738)
|
|
277
|
+
- Refactored `library-warnings.js` to re-export canonical wording from the librarian messages module instead of defining constants inline (AUT-3738)
|
|
278
|
+
- Updated Library books for `create-release`, `bump-version`, and `library-warnings` to reflect new dependencies and exports (AUT-3738)
|
|
279
|
+
|
|
280
|
+
### 🗑️ Removed
|
|
281
|
+
|
|
282
|
+
- Removed blocking Library staleness check from `create-release` that imported `.library/tools/staleness.js` directly and aborted on drift (AUT-3738)
|
|
283
|
+
- Removed `LIBRARY_STALE_WARNING` constant from `library-warnings.js`, replaced by canonical `CONSOLE_WARNING_TEMPLATE` (AUT-3738)
|
|
284
|
+
|
|
285
|
+
## [2.61.0] - 2026-05-29
|
|
286
|
+
|
|
287
|
+
### ✨ Added
|
|
288
|
+
|
|
289
|
+
- Added gotcha solicitation orchestrator for the Library system, enabling interactive developer prompts to capture known gotchas per book during the create-pr pipeline (AUT-3735)
|
|
290
|
+
- Added end-to-end cross-cutting tests for the gotcha solicitation flow covering manual-additions preservation and API-down graceful degradation (AUT-3735)
|
|
291
|
+
- Added Library verification gate for the bump-version workflow with warning constants in `library-warnings.js` (#176, AUT-3737)
|
|
292
|
+
|
|
293
|
+
### 🔧 Changed
|
|
294
|
+
|
|
295
|
+
- Updated bump-version book to reference the new `library-warnings.js` dependency (AUT-3737)
|
|
296
|
+
|
|
297
|
+
## [2.60.0] - 2026-06-01
|
|
298
|
+
|
|
299
|
+
### ✨ Added
|
|
300
|
+
|
|
301
|
+
- Added canonical staleness-warning templates (`CONSOLE_WARNING_TEMPLATE`, `PR_BODY_SECTION_TEMPLATE`, `PR_TAG_VALUE`) for consistent Library staleness messaging across all consumer commands (AUT-3738)
|
|
302
|
+
- Added non-blocking Library staleness verification gate to the `create-release` workflow — warns operators when Library books are out of date without blocking the release (AUT-3738)
|
|
303
|
+
- Added staleness section to release PR body when Library is stale, wrapped in marker comments for downstream tooling (AUT-3738)
|
|
304
|
+
|
|
305
|
+
### 🔧 Changed
|
|
306
|
+
|
|
307
|
+
- Refactored `bump-version` Library warning to use the canonical `CONSOLE_WARNING_TEMPLATE` instead of inline formatting (AUT-3738)
|
|
308
|
+
- Updated Library books for `create-release`, `bump-version`, and `library-warnings` to reflect new dependencies and exports (AUT-3738)
|
|
309
|
+
|
|
310
|
+
### 🗑️ Removed
|
|
311
|
+
|
|
312
|
+
- Removed gotcha solicitation orchestrator (`gotcha-solicitation.js`) from the Library system (AUT-3738)
|
|
313
|
+
|
|
314
|
+
## [2.59.0] - 2026-05-29
|
|
315
|
+
|
|
316
|
+
### ✨ Added
|
|
317
|
+
|
|
318
|
+
- Library verification gate in `bump-version` command — warns about stale or missing Library books before proceeding with version bump (AUT-3737)
|
|
319
|
+
- Read-only `verify()` staleness check to librarian module with never-throws guarantee (AUT-3737)
|
|
320
|
+
- Warning wording constants for Library verification gates in `lib/messages/library-warnings.js` (AUT-3737)
|
|
321
|
+
- `updatePullRequestBody()` method to GitHub API utility (#175)
|
|
322
|
+
|
|
323
|
+
### 🔧 Changed
|
|
324
|
+
|
|
325
|
+
- Back-merge co-change pipeline "skipped" message now uses `logger.warning` instead of raw stderr write (#175)
|
|
326
|
+
- Library books synced for back-merge and github-api modules (#175)
|
|
327
|
+
|
|
328
|
+
## [2.58.0] - 2026-05-29
|
|
329
|
+
|
|
330
|
+
### ✨ Added
|
|
331
|
+
|
|
332
|
+
- Integrated co-change correlation pipeline into back-merge workflow — runs 6-step detection, mode resolution, sidecar write, injection, and report generation after merge commit (AUT-3777)
|
|
333
|
+
- Added `updatePullRequestBody()` to GitHub API module for updating PR body content
|
|
334
|
+
- Auto-attach co-change analysis report to back-merge PR body with idempotent marker comments for safe re-runs (AUT-3777)
|
|
335
|
+
- Added comprehensive smoke tests for back-merge co-change pipeline glue
|
|
336
|
+
|
|
337
|
+
### 🔧 Changed
|
|
338
|
+
|
|
339
|
+
- Back-merge co-change step now uses `coChangePipeline()` orchestrator instead of the standalone `inject-co-change.js` tool — stages and commits Library changes as a separate `chore(library)` commit
|
|
340
|
+
- Updated Library README with full `coChangePipeline()` documentation including sequence diagram, consumer contract, mode reference, and limitations
|
|
341
|
+
|
|
342
|
+
### 🐛 Fixed
|
|
343
|
+
|
|
344
|
+
- Fixed false-positive linter warnings (#174)
|
|
345
|
+
|
|
346
|
+
### 🗑️ Removed
|
|
347
|
+
|
|
348
|
+
- Removed legacy `inject-co-change.js` tool invocation from back-merge post-push step, replaced by integrated pipeline
|
|
349
|
+
|
|
350
|
+
## [2.57.1] - 2026-05-29
|
|
351
|
+
|
|
352
|
+
### 🐛 Fixed
|
|
353
|
+
|
|
354
|
+
- Filtered ESLint meta-warnings for ignored files that produced false-positive linter output
|
|
355
|
+
- Fixed co-change pipeline injection result not being captured when running in inject mode
|
|
356
|
+
|
|
357
|
+
### 🗑️ Removed
|
|
358
|
+
|
|
359
|
+
- Removed `createPrPipeline()` Library maintenance orchestrator and associated M6 documentation
|
|
360
|
+
|
|
361
|
+
## [2.57.0] - 2026-05-28
|
|
362
|
+
|
|
363
|
+
### ✨ Added
|
|
364
|
+
|
|
365
|
+
- Added `createPrPipeline()` 5-step Library maintenance orchestrator for the `create-pr` command — runs staleness detection, auto-section regeneration, book add/remove/rename, frontmatter sync, and gotcha solicitation sequentially (AUT-3736)
|
|
366
|
+
- Added comprehensive pipeline documentation to Library README including sequence diagram, consumer contract, and return shape
|
|
367
|
+
|
|
368
|
+
### 🔧 Changed
|
|
369
|
+
|
|
370
|
+
- Integrated Library maintenance pipeline into `create-pr` command — now triggers full book sync instead of only reporting staleness (AUT-3736)
|
|
371
|
+
- Updated Library milestone status: M5 (core hypothesis validation) marked as shipped, M6 (lifecycle automation) added as in-progress
|
|
372
|
+
- Removed unused variables in `co-change-pipeline.js` (`injectionResult`), `cross-ref-injector.js` (`fileContents`), and renamed unused parameter in `gotcha-persistence.js` (`opts` → `_opts`)
|
|
373
|
+
- Replaced string concatenation with template literals in `gotcha-persistence.js`
|
|
374
|
+
|
|
375
|
+
## [2.56.0] - 2026-05-28
|
|
376
|
+
|
|
377
|
+
### ✨ Added
|
|
378
|
+
|
|
379
|
+
- Added candidate gotcha text generator for librarian books — calls Claude API to propose non-obvious tribal knowledge from PR descriptions, commit messages, and source comments (AUT-3735)
|
|
380
|
+
- Added gotcha persistence module for appending accepted gotchas below the manual-additions separator in book files, with idempotency and frontmatter flagging when the API is unreachable (AUT-3735)
|
|
381
|
+
- Added co-change analysis pipeline (#170)
|
|
382
|
+
|
|
383
|
+
## [2.55.0] - 2026-05-27
|
|
384
|
+
|
|
385
|
+
### ✨ Added
|
|
386
|
+
|
|
387
|
+
- Added co-change detector that parses git history within a configurable window, computes co-occurrence weighted edges between file pairs, and filters by confidence thresholds (AUT-3740)
|
|
388
|
+
- Added cross-reference injector that updates book frontmatter with co-change cross-references, supporting bidirectional refs for regular books and directional used_by refs for utility books (AUT-3740)
|
|
389
|
+
- Added co-change pipeline orchestrator that runs the full 5-step sequence: detection, mode resolution, sidecar write, optional injection, and markdown analysis report generation (AUT-3740)
|
|
390
|
+
- Added comprehensive unit and idempotency tests for co-change pipeline and cross-ref injector (AUT-3740)
|
|
391
|
+
|
|
392
|
+
### 🔧 Changed
|
|
393
|
+
|
|
394
|
+
- Replaced string concatenation with template literal in co-change-mode sidecar writer (lint fix)
|
|
395
|
+
|
|
396
|
+
## [2.54.1] - 2026-05-27
|
|
397
|
+
|
|
398
|
+
### ✨ Added
|
|
399
|
+
|
|
400
|
+
- Added comprehensive test suite for librarian console API covering isTTY, selectOne, selectMany, confirm, and freeText functions (AUT-3756)
|
|
401
|
+
- Added gotcha solicitation usage example demonstrating the console API interactive workflow (AUT-3756)
|
|
402
|
+
|
|
403
|
+
## [2.54.0] - 2026-05-27
|
|
404
|
+
|
|
405
|
+
### ✨ Added
|
|
406
|
+
|
|
407
|
+
- Co-change mode dispatcher for the back-merge pipeline with two modes: `collect-only` (edge accumulation) and `inject` (cross-reference writing), with automatic transition after a configurable threshold of 5 back-merges (AUT-3772)
|
|
408
|
+
- Sidecar state file (`.library/maps/co-change-state.json`) for persisting co-change edges, back-merge counts, and transition configuration across pipeline runs
|
|
409
|
+
- CLI override support (`--co-change-mode=collect-only|inject`) for per-invocation mode control without mutating sidecar state
|
|
410
|
+
- Schema validation, append-only edge merging, and alphabetical edge normalization for deterministic sidecar diffs
|
|
411
|
+
- Comprehensive unit tests for co-change mode dispatcher covering constants, validation, I/O, edge operations, mode resolution, and cold-start behavior
|
|
412
|
+
|
|
413
|
+
### 🔧 Changed
|
|
414
|
+
|
|
415
|
+
- Updated back-merge documentation to reflect co-change edge collection and conditional injection via mode dispatcher (#167)
|
|
416
|
+
|
|
417
|
+
## [2.53.0] - 2026-05-27
|
|
418
|
+
|
|
419
|
+
### ✨ Added
|
|
420
|
+
|
|
421
|
+
- Added post-regen review pass that uses Claude CLI to suggest manual-section improvements based on auto-section changes (#166)
|
|
422
|
+
- Added `--no-review` flag to `regenerate` and `report` commands to skip the Claude review step
|
|
423
|
+
- Added `line-diff.js` — pure-function line-based diff utility for LLM consumption (no shell dependencies)
|
|
424
|
+
- Added `llm.js` — thin Claude CLI wrapper with availability check and graceful degradation
|
|
425
|
+
- Added `review-pass.js` — interactive review workflow: Accept / Edit / Skip / Skip-all per suggestion
|
|
426
|
+
|
|
427
|
+
### 🔧 Changed
|
|
428
|
+
|
|
429
|
+
- Enriched `regenerate()` output with `diff_context` (old/new auto-section, manual section, source file) for changed books
|
|
430
|
+
- Updated `report` command to include the review pass as Step 2b in the full maintenance cycle
|
|
431
|
+
- Renumbered execution prompt steps (overflow check → Step 4, gotcha solicitation → Step 5, report → Step 6) to accommodate the new review step
|
|
432
|
+
|
|
433
|
+
## [2.52.0] - 2026-05-27
|
|
434
|
+
|
|
435
|
+
### ✨ Added
|
|
436
|
+
|
|
437
|
+
- Interactive console primitive for the librarian, enabling programmatic library access (AUT-3734)
|
|
438
|
+
- Comprehensive I/O documentation, execution flows, cross-references, and gotchas for library books: analysis-engine, analyze-diff, analyze-pr, authorization, bump-version (AUT-3734)
|
|
439
|
+
|
|
440
|
+
### 🔧 Changed
|
|
441
|
+
|
|
442
|
+
- ESLint configuration now includes `.library/librarian/**` in linting scope
|
|
443
|
+
|
|
444
|
+
### 🐛 Fixed
|
|
445
|
+
|
|
446
|
+
- Fixed bump-version issue (#165)
|
|
447
|
+
- Fixed inaccuracies in library book documentation (AUT-3734)
|
|
448
|
+
|
|
8
449
|
## [2.51.2] - 2026-05-26
|
|
9
450
|
|
|
10
451
|
### 🔧 Changed
|
|
452
|
+
|
|
11
453
|
- Made library integration visible in CLI (#164)
|
|
12
454
|
|
|
13
455
|
### 🐛 Fixed
|
|
14
|
-
- Fixed partial file selection during version bump — `updateVersionFiles` no longer silently skips unselected files; callers now filter before calling, ensuring only user-selected files are bumped (AUT-3733)
|
|
15
456
|
|
|
457
|
+
- Fixed partial file selection during version bump — `updateVersionFiles` no longer silently skips unselected files; callers now filter before calling, ensuring only user-selected files are bumped (AUT-3733)
|
|
16
458
|
|
|
17
459
|
## [2.51.1] - 2026-05-25
|
|
18
460
|
|
|
19
461
|
### ✨ Added
|
|
462
|
+
|
|
20
463
|
- Specification guide (SPEC_GUIDE.md) — a practitioner's guide to building a Code Knowledge Library, covering setup, schema, taxonomy, maintenance, and worked examples (AUT-3722)
|
|
21
464
|
- Overlap-check tool for detecting book content overlap, closing Library milestone M4 (AUT-3722, #162)
|
|
22
465
|
- Maps/ artifacts (dependency graph, co-change seeds) surfaced via librarian module for programmatic access (AUT-3722)
|
|
23
466
|
|
|
24
467
|
### 🔧 Changed
|
|
468
|
+
|
|
25
469
|
- Rewrote Library README as a specification-oriented guide with clearer structure, worked examples, milestone status tracking, and getting-started table (AUT-3722)
|
|
26
470
|
- Rewrote CLAUDE.md Library section to align with specification guide format and reference SPEC_GUIDE.md (AUT-3722)
|
|
27
471
|
- Made Library integration visible in CLI output so users can discover library-powered features (#163)
|
|
28
472
|
|
|
29
|
-
|
|
30
473
|
## [2.51.0] - 2026-05-25
|
|
31
474
|
|
|
32
475
|
### ✨ Added
|
|
476
|
+
|
|
33
477
|
- Added unified Library CLI at `.library/bin/library` with commands: check, regenerate, extract, tokens, graph, inject, validate, report (AUT-3272)
|
|
34
478
|
- Added centralized path resolution module (`.library/paths.js`) with resolver.yaml parser for repository-agnostic Library adoption
|
|
35
479
|
- Added Library CLI command registry (`.library/cli.js`) following the same pattern as `lib/cli-metadata.js`
|
|
@@ -44,6 +488,7 @@ y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.h
|
|
|
44
488
|
- Added co-change references to books via PR #161 (AUT-3315)
|
|
45
489
|
|
|
46
490
|
### 🔧 Changed
|
|
491
|
+
|
|
47
492
|
- Refactored all Library tools (`staleness.js`, `generate-graph.js`, `inject-co-change.js`, `measure-tokens.js`, `extract.js`, `librarian/index.js`) to use centralized `paths.js` instead of per-tool `__dirname` arithmetic (AUT-3272)
|
|
48
493
|
- Rewrote `.library/README.md` with adoption guide, command reference, book schema documentation, and automated maintenance via git hooks section
|
|
49
494
|
- Replaced legacy npm scripts (`library:tokens`, `library:graph`, `library:extract-poc`, `library:inject-co-change`) with unified CLI-routed equivalents
|
|
@@ -53,112 +498,122 @@ y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.h
|
|
|
53
498
|
- Rewrote CLAUDE.md Library section to reference the Specification Guide instead of duplicating Library documentation (AUT-3722)
|
|
54
499
|
- Closed M4 milestone — resolved OPEN items 1–5 in SPEC_GUIDE § 13 with evidence and deferral justifications (AUT-3722)
|
|
55
500
|
|
|
56
|
-
|
|
57
501
|
## [2.50.0] - 2026-05-20
|
|
58
502
|
|
|
59
503
|
### ✨ Added
|
|
504
|
+
|
|
60
505
|
- Added co-change reference tracking to library books — frontmatter now includes `co_change_references` with commit counts, confidence scores, and trigger descriptions for files that historically change together (AUT-3315)
|
|
61
506
|
- Added `CO_CHANGE_SEEDS.md` co-change seed patterns document with 4 architectural coupling patterns mined from 6 months of git history (AUT-3315)
|
|
62
507
|
- Added `inject-co-change.js` CLI tool to inject co-change references from seed patterns into book frontmatter, with `--dry-run`, `--json`, and `--seeds` options (AUT-3315)
|
|
63
508
|
- Added librarian module for automated library maintenance pipeline (#160)
|
|
64
509
|
|
|
65
510
|
### 🔧 Changed
|
|
511
|
+
|
|
66
512
|
- Moved staleness detection scripts from `.library/maintenance/` to `.library/tools/` directory (AUT-3315)
|
|
67
513
|
- Updated `.library/maps/` directory scope to include co-change seeds and token reports (AUT-3315)
|
|
68
514
|
- Updated `.library/tools/` directory scope to cover all standalone CLI utilities — staleness, graph, tokens, and co-change injection (AUT-3315)
|
|
69
515
|
|
|
70
|
-
|
|
71
516
|
## [2.49.0] - 2026-05-19
|
|
72
517
|
|
|
73
518
|
### ✨ Added
|
|
519
|
+
|
|
74
520
|
- Librarian module for Library maintenance pipeline with five core functions: fetch, regenerate, checkOverflow, solicitGotchas, and buildReport (AUT-3309)
|
|
75
521
|
- Execution prompt for running full regeneration cycles via Sonnet sessions (AUT-3309)
|
|
76
522
|
- Report template for structured maintenance cycle output (AUT-3309)
|
|
77
523
|
- Staleness detector for tracking book drift via AST hash comparison (#159, AUT-3307)
|
|
78
524
|
|
|
79
525
|
### 🔧 Changed
|
|
526
|
+
|
|
80
527
|
- Renamed librarian `fetch` export to `fetchLibraryContent` for clarity (AUT-3309)
|
|
81
528
|
- Updated Library README with comprehensive documentation covering auto-generation, staleness detection, librarian module, and maintenance workflow
|
|
82
529
|
- Book schema `generated_from` field now supports AST hash format (`ast:sha256:<hex>`) for staleness tracking
|
|
83
530
|
- Library book count updated from 26 to 70 reflecting auto-generated coverage
|
|
84
531
|
|
|
85
|
-
|
|
86
532
|
## [2.48.0] - 2026-05-19
|
|
87
533
|
|
|
88
534
|
### ✨ Added
|
|
535
|
+
|
|
89
536
|
- Added staleness detector for library books to identify outdated documentation (AUT-3307)
|
|
90
537
|
|
|
91
538
|
### 🗑️ Removed
|
|
92
|
-
- Removed extractor evaluation artifacts (PARSER_DECISION.md, QUALITY_GAP.md) after library auto-update evaluation completed (#158, AUT-3305)
|
|
93
539
|
|
|
540
|
+
- Removed extractor evaluation artifacts (PARSER_DECISION.md, QUALITY_GAP.md) after library auto-update evaluation completed (#158, AUT-3305)
|
|
94
541
|
|
|
95
542
|
## [2.47.1] - 2026-05-19
|
|
96
543
|
|
|
97
544
|
### 🐛 Fixed
|
|
545
|
+
|
|
98
546
|
- Fixed path normalization in AST extractor for Windows compatibility by using `fileURLToPath()` instead of raw URL pathname and normalizing backslashes in relative paths (AUT-3305)
|
|
99
547
|
- Fixed cross-platform book file detection in help catalog by using regex path separator matching instead of literal forward slash
|
|
100
548
|
|
|
101
|
-
|
|
102
549
|
## [2.47.0] - 2026-05-19
|
|
103
550
|
|
|
104
551
|
### ✨ Added
|
|
552
|
+
|
|
105
553
|
- Quality gap report and batch runner for the AST documentation extractor (AUT-3305)
|
|
106
554
|
- "preserve-if-filled" strategy for the AST extractor to retain manually-written book sections during regeneration (AUT-3305)
|
|
107
555
|
|
|
108
556
|
### 🔧 Changed
|
|
109
|
-
- Regenerated all library book documentation from AST extractor output, replacing manually-maintained books with accurate cross-references and call signatures (AUT-3305, PR #157)
|
|
110
557
|
|
|
558
|
+
- Regenerated all library book documentation from AST extractor output, replacing manually-maintained books with accurate cross-references and call signatures (AUT-3305, PR #157)
|
|
111
559
|
|
|
112
560
|
## [2.46.0] - 2026-05-18
|
|
113
561
|
|
|
114
562
|
### ✨ Added
|
|
563
|
+
|
|
115
564
|
- Added AST extractor POC with JavaScript and Python language adapters (AUT-3273)
|
|
116
565
|
- Added source-to-book auto-section generator for automated library documentation (AUT-3273)
|
|
117
566
|
- Generated book stubs for 40 source modules in `.library/books/` (AUT-3273)
|
|
118
567
|
- Added centralized configuration registry (`config-registry.js` + `defaults.json`) with remote override support (#156, ISSUE-138)
|
|
119
568
|
|
|
120
569
|
### 🔧 Changed
|
|
570
|
+
|
|
121
571
|
- Configuration merge priority expanded from 4 to 5 layers, adding remote `settings.json` team-policy overrides (#156)
|
|
122
572
|
- Orchestrator model, threshold, and timeout are now configurable via remote `settings.json` instead of hardcoded values (#156)
|
|
123
573
|
- Judge timeout now configurable via remote `settings.json` (#156)
|
|
124
574
|
- Updated library README and shelf indexes to reflect new book count (AUT-3273)
|
|
125
575
|
- ESLint config updated to include `.library/extractor/` files (AUT-3273)
|
|
126
576
|
|
|
127
|
-
|
|
128
577
|
## [2.45.0] - 2026-05-13
|
|
129
578
|
|
|
130
579
|
### ✨ Added
|
|
580
|
+
|
|
131
581
|
- Added centralized config-registry module with local defaults and remote override support (SUE-138)
|
|
132
582
|
- Added lib/defaults.json as the single source of truth for all package default values (SUE-138)
|
|
133
583
|
|
|
134
584
|
### 🔧 Changed
|
|
585
|
+
|
|
135
586
|
- Replaced inline hardcoded constants across modules with config-registry lookups — judge, orchestrator, Linear connector, model aliases, linter tools, and PR analysis categories now read from defaults.json with remote override capability (SUE-138)
|
|
136
587
|
- Updated config merge priority to HARDCODED < remote settings.json < defaults < preset < user overrides (SUE-138)
|
|
137
588
|
- Added config-registry mocks to unit tests for modules consuming centralized defaults (SUE-138)
|
|
138
589
|
|
|
139
590
|
### 🐛 Fixed
|
|
140
|
-
- Fixed Linear ticket fetch issue (#155)
|
|
141
591
|
|
|
592
|
+
- Fixed Linear ticket fetch issue (#155)
|
|
142
593
|
|
|
143
594
|
## [2.44.1] - 2026-05-13
|
|
144
595
|
|
|
145
596
|
### ✨ Added
|
|
597
|
+
|
|
146
598
|
- Added unit tests for linear-connector module covering ticket extraction, parsing, token loading, connection testing, and ticket fetching (SUE-154)
|
|
147
599
|
|
|
148
600
|
### 🐛 Fixed
|
|
601
|
+
|
|
149
602
|
- Fixed help command to cap book reads at 5 in Pass 2, preventing oversized prompts when the LLM requests too many library books (SUE-154)
|
|
150
603
|
|
|
151
604
|
### 🗑️ Removed
|
|
152
|
-
- Removed CLAUDE-MIGRATION.md — migration map no longer needed after library stabilization
|
|
153
605
|
|
|
606
|
+
- Removed CLAUDE-MIGRATION.md — migration map no longer needed after library stabilization
|
|
154
607
|
|
|
155
608
|
## [2.44.0] - 2026-05-04
|
|
156
609
|
|
|
157
610
|
### ✨ Added
|
|
611
|
+
|
|
158
612
|
- New `HELP_NAVIGATE.md` prompt template for the first-pass catalog navigation (SUE-152)
|
|
159
613
|
- Auto-discovery of `.library/` catalog files (by-code, by-domain, by-task-type shelves) for AI help context
|
|
160
614
|
|
|
161
615
|
### 🔧 Changed
|
|
616
|
+
|
|
162
617
|
- Rewrote AI help command to use a two-pass librarian approach navigating local `.library/` instead of single-pass CLAUDE.md lookup (SUE-152)
|
|
163
618
|
- Pass 1 sends project catalog to Claude; if deeper detail is needed, Pass 2 reads specific book files from local disk — no GitHub API calls
|
|
164
619
|
- Updated `HELP_QUERY.md` template to accept catalog + book content instead of flat documentation
|
|
@@ -167,56 +622,63 @@ y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.h
|
|
|
167
622
|
- Updated unit tests to cover two-pass librarian flow, catalog mocking, and book-read scenarios
|
|
168
623
|
|
|
169
624
|
### 🔒 Security
|
|
625
|
+
|
|
170
626
|
- Added path traversal protection when reading LLM-requested book paths — resolved paths are verified against the package root before disk access
|
|
171
627
|
|
|
172
628
|
### 🗑️ Removed
|
|
629
|
+
|
|
173
630
|
- Removed GitHub API dependency (`fetchFileContent`, `parseGitHubRepo`) from AI help flow — all context is now read from local disk
|
|
174
631
|
- Removed `readClaudeMd()` single-file reader in favor of `readLibraryCatalog()` multi-file catalog builder
|
|
175
632
|
|
|
176
|
-
|
|
177
633
|
## [2.43.0] - 2026-04-30
|
|
178
634
|
|
|
179
635
|
### ✨ Added
|
|
636
|
+
|
|
180
637
|
- Headless mode for git hooks via CLAUDE_HOOKS_HEADLESS=1 environment variable, routing all LLM calls through the Anthropic SDK instead of the Claude CLI for CI/ECS environments (CT-805)
|
|
181
638
|
- Unit tests for pre-commit and prepare-commit-msg hooks covering headless mode propagation and error messaging (CT-805)
|
|
182
639
|
|
|
183
640
|
### 🔧 Changed
|
|
641
|
+
|
|
184
642
|
- Hook error messages now show SDK-specific guidance ("Check that ANTHROPIC_API_KEY is set") in headless mode and CLI-specific guidance otherwise (CT-805)
|
|
185
643
|
- Headless flag propagated through full analysis chain: runAnalysis, orchestrateBatches, judgeAndFix, and analyzeCode all accept and forward the headless option (CT-805)
|
|
186
644
|
|
|
187
645
|
### 🐛 Fixed
|
|
646
|
+
|
|
188
647
|
- Cross-platform path separator handling in hooks-verified marker test (#150)
|
|
189
648
|
- Contract documentation test updated to match current CLAUDE.md section heading (#150)
|
|
190
649
|
|
|
191
|
-
|
|
192
650
|
## [2.42.0] - 2026-04-30
|
|
193
651
|
|
|
194
652
|
### ✨ Added
|
|
653
|
+
|
|
195
654
|
- Added `Hooks-Verified: true` Git trailer to commits that pass pre-commit analysis, coordinated via a tree-SHA marker file in `.git/` (CT-802)
|
|
196
655
|
- Added `hooks-verified-marker.js` utility for marker file CRUD between pre-commit (writes) and prepare-commit-msg (reads/validates/consumes)
|
|
197
656
|
- Added `getStagedTreeSha()`, `hasHooksVerifiedTrailer()`, and `appendTrailer()` to git-operations for tree fingerprinting and canonical trailer formatting via `git interpret-trailers`
|
|
198
657
|
- Added hooks-verified marker writing to the `analyze` command when staged-scope analysis completes without critical/blocker issues (CT-802)
|
|
199
658
|
|
|
200
659
|
### 🔧 Changed
|
|
660
|
+
|
|
201
661
|
- Reorganized CLAUDE.md project documentation into `.library/` structure with indexed books, shelves, and domain reading lists (#149)
|
|
202
662
|
- Updated commit-workflow domain reading list and hook books to document the new Hooks-Verified trailer pipeline
|
|
203
663
|
|
|
204
664
|
### 🐛 Fixed
|
|
205
|
-
- Deferred trailer append in prepare-commit-msg until the final message is written, preventing the auto-generated message flow from overwriting the `Hooks-Verified` trailer (CT-802)
|
|
206
665
|
|
|
666
|
+
- Deferred trailer append in prepare-commit-msg until the final message is written, preventing the auto-generated message flow from overwriting the `Hooks-Verified` trailer (CT-802)
|
|
207
667
|
|
|
208
668
|
## [2.41.1] - 2026-04-30
|
|
209
669
|
|
|
210
670
|
### ✨ Added
|
|
671
|
+
|
|
211
672
|
- Added headless mode and JSON output support for `analyze`, `create-pr`, and `lint` commands (#148, CT-799)
|
|
212
673
|
|
|
213
674
|
### 🔧 Changed
|
|
214
|
-
- Redistributed CLAUDE.md content into `.library/` — new `conventions.md` coding standards reference, enriched book indexes with key exports, and expanded domain quick-reference tables
|
|
215
675
|
|
|
676
|
+
- Redistributed CLAUDE.md content into `.library/` — new `conventions.md` coding standards reference, enriched book indexes with key exports, and expanded domain quick-reference tables
|
|
216
677
|
|
|
217
678
|
## [2.41.0] - 2026-04-30
|
|
218
679
|
|
|
219
680
|
### ✨ Added
|
|
681
|
+
|
|
220
682
|
- Added `--headless` flag to `analyze`, `create-pr`, and `lint` commands for non-interactive CI execution (CT-799)
|
|
221
683
|
- Added `--format json` output mode that emits a single structured JSON line to stdout, routing all other output to stderr (CT-799)
|
|
222
684
|
- Added `CostTracker` integration in headless mode for `analyze` and `create-pr` to report Claude API costs in JSON output (CT-799)
|
|
@@ -224,42 +686,46 @@ y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.h
|
|
|
224
686
|
- Added early fatal guard for detached HEAD state in `create-pr` with actionable fix instructions (CT-804, #147)
|
|
225
687
|
|
|
226
688
|
### 🔧 Changed
|
|
689
|
+
|
|
227
690
|
- Updated `interactive-ui.js` display helpers (`showSuccess`, `showError`, `showWarning`, `showInfo`) to delegate to `logger.js`, enabling JSON mode output routing to stderr
|
|
228
691
|
- Updated `displayLintResults` to accept a `{ silent }` option that suppresses decorative output in JSON mode
|
|
229
692
|
- Updated `create-pr` headless mode to resolve all 11 interactive decision points with documented defaults (auto-push, squash for unknown strategy, skip tag prompts)
|
|
230
693
|
|
|
231
|
-
|
|
232
694
|
## [2.40.0] - 2026-04-30
|
|
233
695
|
|
|
234
696
|
### ✨ Added
|
|
697
|
+
|
|
235
698
|
- Added early detached HEAD detection in `create-pr` command with actionable error message and remediation steps (CT-804)
|
|
236
699
|
- Added Operational Contract documentation in CLAUDE.md defining runtime environment requirements for CI/container orchestrators
|
|
237
700
|
- Added CWD & Branch Contract reference book (`.library/books/cwd-contract.md`) with command-level HEAD tolerance matrix
|
|
238
701
|
- Added smoke tests to prevent accidental deletion of contract documentation
|
|
239
702
|
|
|
240
703
|
### 🔧 Changed
|
|
704
|
+
|
|
241
705
|
- Moved branch detection earlier in `create-pr` flow (before interactive prompts) to fail fast on detached HEAD
|
|
242
706
|
- Replaced `error()` + `return` with `fatal()` for detached HEAD guard in `create-pr`, ensuring consistent process termination
|
|
243
707
|
|
|
244
|
-
|
|
245
708
|
## [2.39.0] - 2026-04-29
|
|
246
709
|
|
|
247
710
|
### ✨ Added
|
|
711
|
+
|
|
248
712
|
- Added `--headless` flag to `install` command for CI/container environments — skips all side effects: dependency checks, git config, `.gitignore` updates, shell completions, linter availability check, and GitHub token setup (CT-803)
|
|
249
713
|
- Added `--verify-sdk` flag to `install` command — opt-in 1-token SDK ping (haiku, 10s timeout) to validate `ANTHROPIC_API_KEY` after installation; exits 1 in headless mode on failure, warns in interactive mode (CT-803)
|
|
250
714
|
- Added `verifySDKConnection()` to `claude-client.js` — minimal SDK connectivity check that delegates to `_executeSDK('ping')` and never throws (CT-803)
|
|
251
715
|
- Added `--headless` bypass for authorization guard in CLI router — CI runners skip RBAC checks entirely; governance enforced at branch-protection level (CT-803)
|
|
252
716
|
|
|
253
717
|
### 🔧 Changed
|
|
718
|
+
|
|
254
719
|
- Install orchestration expanded from 20 to 21 steps to accommodate the new SDK verification step
|
|
255
720
|
|
|
256
721
|
### ⚠️ Deprecated
|
|
257
|
-
- Deprecated `--skip-auth` flag on `install` command — use `--headless` instead for full CI/container mode; logs a deprecation warning when used
|
|
258
722
|
|
|
723
|
+
- Deprecated `--skip-auth` flag on `install` command — use `--headless` instead for full CI/container mode; logs a deprecation warning when used
|
|
259
724
|
|
|
260
725
|
## [2.38.0] - 2026-04-29
|
|
261
726
|
|
|
262
727
|
### ✨ Added
|
|
728
|
+
|
|
263
729
|
- Added headless mode (`--headless`) for `analyze-pr` command — skips all interactive prompts for CI/automation pipelines
|
|
264
730
|
- Added JSON output mode (`--format json`) for `analyze-pr` — emits a single structured JSON document to stdout with verdict, severity counts, comments, and cost data (requires `--headless`)
|
|
265
731
|
- Added cost tracking for headless `analyze-pr` runs via `CostTracker` integration (#144)
|
|
@@ -268,28 +734,30 @@ y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.h
|
|
|
268
734
|
- Added JSON mode to logger (`setJSONMode`) — routes `info`/`success`/`warning`/`debug` to stderr, reserving stdout for structured output
|
|
269
735
|
|
|
270
736
|
### 🔧 Changed
|
|
737
|
+
|
|
271
738
|
- Changed `error()` in helpers.js to log-only (no longer calls `process.exit`) — callers needing termination should use `fatal()` instead
|
|
272
739
|
- Changed `bin/claude-hooks` to use `fatal()` for unknown command errors
|
|
273
740
|
- Changed `helpers.info()`, `helpers.success()`, and `helpers.warning()` to delegate to logger equivalents, respecting JSON mode routing
|
|
274
741
|
|
|
275
|
-
|
|
276
742
|
## [2.37.0] - 2026-04-29
|
|
277
743
|
|
|
278
744
|
### ✨ Added
|
|
745
|
+
|
|
279
746
|
- Added cost tracking for headless SDK calls — per-call USD cost calculation with cache token multipliers, hardcoded Anthropic pricing table, and CloudWatch-friendly structured JSON logs (`cost-tracker.js`)
|
|
280
747
|
- Added optional Langfuse tracing integration for headless SDK calls — records LLM generations (model, tokens, cost, prompt/response) as traces; disabled by default, activated via `LANGFUSE_ENABLED` env var (`langfuse-tracer.js`)
|
|
281
748
|
- Added `costTracker` option to `analyzeCode()`, `executeClaudeWithRetry()`, and `executeClaude()` for external cost accumulation across multiple calls
|
|
282
749
|
- Added `._costs` field to `analyzeCode()` results in headless mode — contains per-call token usage and USD cost snapshot
|
|
283
750
|
|
|
284
751
|
### 🔧 Changed
|
|
752
|
+
|
|
285
753
|
- Changed `_executeSDK()` return type from plain text string to `{ text, usage, model }` — callers now receive normalized token usage and resolved model ID
|
|
286
754
|
- Normalized SDK usage fields with defaults (0 for missing cache token counts) to ensure consistent downstream processing
|
|
287
755
|
- Updated library documentation with new books for `cost-tracker.js` and `langfuse-tracer.js`, updated `claude-client.js` book with observability details
|
|
288
756
|
|
|
289
|
-
|
|
290
757
|
## [2.36.0] - 2026-04-28
|
|
291
758
|
|
|
292
759
|
### ✨ Added
|
|
760
|
+
|
|
293
761
|
- Added SDK adapter for headless mode in claude-client — dual execution backend: CLI spawn for local/interactive use, or Anthropic SDK direct calls for headless/ECS environments (#141)
|
|
294
762
|
- Added `_executeSDK()` function for direct Anthropic SDK calls with lazy-loaded `@anthropic-ai/sdk` dependency
|
|
295
763
|
- Added `resolveModelAlias()` and `MODEL_ALIASES` constant with environment variable overrides (`CLAUDE_MODEL_SONNET`, `CLAUDE_MODEL_OPUS`, `CLAUDE_MODEL_HAIKU`)
|
|
@@ -297,21 +765,24 @@ y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.h
|
|
|
297
765
|
- Added `claude.defaultModel` to hardcoded config as fallback model for SDK headless mode
|
|
298
766
|
|
|
299
767
|
### 🔧 Changed
|
|
768
|
+
|
|
300
769
|
- Changed `analyzeCode()` to return parsed JSON object instead of raw response text
|
|
301
770
|
- Changed `executeClaude()` to branch between SDK path (when `headless: true`) and CLI spawn path
|
|
302
771
|
- SDK errors marked with `fromSDK: true` are no longer retried by `withRetry` — the Anthropic SDK already retries internally (2 attempts for rate limits, timeouts, and 5xx)
|
|
303
772
|
- Updated claude-client library book to document dual-backend architecture, SDK gotchas, and new exports
|
|
304
773
|
|
|
305
774
|
### 🐛 Fixed
|
|
775
|
+
|
|
306
776
|
- Fixed Spotless timeouts and cmd.exe per-file mode (#141)
|
|
307
777
|
|
|
308
778
|
### 🗑️ Removed
|
|
309
|
-
- Removed `.library/CATEGORY_COMPLETENESS_REPORT.md` and `.library/CLASSIFICATION_REPORT.md` reports
|
|
310
779
|
|
|
780
|
+
- Removed `.library/CATEGORY_COMPLETENESS_REPORT.md` and `.library/CLASSIFICATION_REPORT.md` reports
|
|
311
781
|
|
|
312
782
|
## [2.35.3] - 2026-04-22
|
|
313
783
|
|
|
314
784
|
### ✨ Added
|
|
785
|
+
|
|
315
786
|
- Code Knowledge Library (`.library/`) with 25 reference books covering source modules — structured documentation with call signatures, I/O behavior, cross-references, and gotchas per module (#125-#131)
|
|
316
787
|
- By-code index for navigating from source file paths to their reference books (`by-code/utils.md`, `by-code/commands.md`, `by-code/hooks.md`)
|
|
317
788
|
- By-domain index with curated reading lists for four business workflows: commit pipeline, release management, PR analysis, and GitHub integration (`by-domain/`)
|
|
@@ -321,24 +792,26 @@ y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.h
|
|
|
321
792
|
- Classification report and category completeness report validating all 66 source modules against the 8-category taxonomy
|
|
322
793
|
|
|
323
794
|
### 🐛 Fixed
|
|
324
|
-
- Spotless linting timeouts and cmd.exe per-file mode on Windows — resolves batch-mode failures when Spotless wrapper is a `.cmd`/`.bat` file (#124, #125)
|
|
325
795
|
|
|
796
|
+
- Spotless linting timeouts and cmd.exe per-file mode on Windows — resolves batch-mode failures when Spotless wrapper is a `.cmd`/`.bat` file (#124, #125)
|
|
326
797
|
|
|
327
798
|
## [2.35.2] - 2026-04-13
|
|
328
799
|
|
|
329
800
|
### ✨ Added
|
|
801
|
+
|
|
330
802
|
- Added Maven Wrapper (mvnw/mvnw.cmd) auto-detection for Spotless — bypasses cmd.exe metacharacter issues on Windows/WSL2
|
|
331
803
|
- Added per-file execution mode for Spotless to avoid pipe (`|`) metacharacter in regex arguments on Windows
|
|
332
804
|
- Added `env` option to `runTool`, `runToolFix`, and `runToolWithAutoFix` for passing extra environment variables to tool invocations
|
|
333
805
|
- Added `configDir` to `_detectInProjectFiles` return value for downstream Maven Wrapper resolution
|
|
334
806
|
|
|
335
807
|
### 🐛 Fixed
|
|
336
|
-
- Fixed Spotless linter failing on Windows/WSL2 when multiple Java files are staged — `|` (pipe) in the `DspotlessFiles` regex was interpreted as a shell pipe by cmd.exe during batch script expansion
|
|
337
808
|
|
|
809
|
+
- Fixed Spotless linter failing on Windows/WSL2 when multiple Java files are staged — `|` (pipe) in the `DspotlessFiles` regex was interpreted as a shell pipe by cmd.exe during batch script expansion
|
|
338
810
|
|
|
339
811
|
## [2.35.1] - 2026-04-08
|
|
340
812
|
|
|
341
813
|
### ✨ Added
|
|
814
|
+
|
|
342
815
|
- Local binary resolution for linter tools — walks up from config directory to repo root, preferring project-installed binaries over npx to prevent version mismatches (#123)
|
|
343
816
|
- Array-form `detectInProjectFile` for tool detection — Prettier and ESLint now recognized via config files (.prettierrc, .eslintrc.json, eslint.config.js, etc.) in addition to package.json dependencies
|
|
344
817
|
- WSL2/Windows interop support for .cmd/.bat tool binaries, with proper cmd.exe metacharacter escaping
|
|
@@ -346,39 +819,43 @@ y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.h
|
|
|
346
819
|
- New `localBin` and `toolCwd` options for `runTool`/`runToolFix`/`runToolWithAutoFix` enabling direct binary execution and correct plugin resolution in monorepos
|
|
347
820
|
|
|
348
821
|
### 🔧 Changed
|
|
822
|
+
|
|
349
823
|
- Replaced `execSync` with `execFileSync` in tool-runner — args passed directly to process, preventing shell interpretation of regex metacharacters (e.g., `|` in Spotless patterns) and file path injection
|
|
350
824
|
- Tool detection now requires project-level configuration when `detectInProjectFile` is defined — PATH-only presence no longer sufficient, preventing false positives (e.g., mvn in PATH treated as Spotless available)
|
|
351
825
|
- Project file scanning starts from repo root instead of cwd, fixing detection when git hooks run from subdirectories
|
|
352
826
|
- Increased judge timeout from 120s to 180s
|
|
353
827
|
|
|
354
828
|
### 🐛 Fixed
|
|
829
|
+
|
|
355
830
|
- Fixed tool auto-fix being attempted after execution failures (ENOENT, EACCES) by tracking `executionFailed` flag and skipping fix step
|
|
356
831
|
- Fixed ENOENT handling in `runToolFix` — missing command binary now returns gracefully instead of being misinterpreted as a partial fix
|
|
357
832
|
- Fixed `git add` in restage step to use `execFileSync` with proper argument array instead of shell string interpolation
|
|
358
833
|
|
|
359
834
|
### 🔒 Security
|
|
835
|
+
|
|
360
836
|
- Eliminated shell injection risk in tool execution by switching from `execSync` (shell-based) to `execFileSync` (direct process spawn)
|
|
361
837
|
- Added `_escapeCmdMeta()` and `_prepareExec()` for safe cmd.exe argument passing when executing .cmd/.bat files on Windows/WSL
|
|
362
838
|
|
|
363
|
-
|
|
364
839
|
## [2.35.0] - 2026-03-27
|
|
365
840
|
|
|
366
841
|
### ✨ Added
|
|
842
|
+
|
|
367
843
|
- Prettier formatting support — auto-formats JS/TS/CSS/HTML/JSON/YAML/MD files before linting (format first, then lint)
|
|
368
844
|
- Remote formatter configuration — preset-to-tools mapping fetched from centralized git-hooks-config repo, allowing team-wide control without releasing new versions
|
|
369
845
|
- New `parsePrettierOutput()` function for parsing Prettier --check output into structured issues
|
|
370
846
|
|
|
371
847
|
### 🔧 Changed
|
|
848
|
+
|
|
372
849
|
- Linting pipeline now runs formatters (Prettier) before linters (ESLint) for consistent code style
|
|
373
850
|
- Updated preset-to-tools mapping: frontend, fullstack, ai, and default presets now include Prettier
|
|
374
851
|
- `getLinterToolsForPreset()` now fetches remote config with local fallback instead of using hardcoded mapping only
|
|
375
852
|
- `runLinters()` and `checkLinterAvailability()` converted to async functions to support remote config fetching
|
|
376
853
|
- Unfixable linting issues are now forwarded to the Claude judge for semantic resolution instead of blocking directly
|
|
377
854
|
|
|
378
|
-
|
|
379
855
|
## [2.34.0] - 2026-03-27
|
|
380
856
|
|
|
381
857
|
### ✨ Added
|
|
858
|
+
|
|
382
859
|
- Pre-commit linting with ESLint, Spotless, and sqlfluff - runs before Claude analysis with auto-fix and re-stage
|
|
383
860
|
- `lint` command - run linters on staged files, directories, or specific files (`claude-hooks lint [paths...]`)
|
|
384
861
|
- Linter availability check during installation - verifies linter presence per preset and shows install instructions
|
|
@@ -387,30 +864,33 @@ y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.h
|
|
|
387
864
|
- Maven availability check during installation with install instructions for backend/fullstack presets
|
|
388
865
|
|
|
389
866
|
### 🔧 Changed
|
|
867
|
+
|
|
390
868
|
- Pre-commit flow now runs linting before Claude analysis - fast, deterministic checks first
|
|
391
869
|
- Unfixable lint issues are forwarded to the judge for semantic resolution
|
|
392
870
|
- Updated documentation to reflect new linting workflow and command usage
|
|
393
871
|
|
|
394
872
|
### 🐛 Fixed
|
|
395
|
-
- WSL Claude CLI detection in non-default distros (#120, #121)
|
|
396
873
|
|
|
874
|
+
- WSL Claude CLI detection in non-default distros (#120, #121)
|
|
397
875
|
|
|
398
876
|
## [2.33.1] - 2026-03-26
|
|
399
877
|
|
|
400
878
|
### 🔧 Changed
|
|
879
|
+
|
|
401
880
|
- Improved WSL Claude CLI detection to resolve Claude's path via login shell when installed via nvm or user-scoped npm prefix
|
|
402
881
|
- Added support for detecting Claude CLI in non-default WSL distros when the default distro is docker-desktop or similar
|
|
403
882
|
- Switched to execFileSync for WSL distro listing to avoid cmd.exe quote mangling issues
|
|
404
883
|
- Updated README-NPM with release workflow commands documentation and WSL troubleshooting guide
|
|
405
884
|
|
|
406
885
|
### 🐛 Fixed
|
|
886
|
+
|
|
407
887
|
- Fixed Claude CLI not being detected on Windows when running from Git Bash with Claude installed inside WSL via nvm (#120)
|
|
408
888
|
- Fixed WSL distro detection failing due to UTF-16LE encoding from wsl.exe output
|
|
409
889
|
|
|
410
|
-
|
|
411
890
|
## [2.33.0] - 2026-03-20
|
|
412
891
|
|
|
413
892
|
### ✨ Added
|
|
893
|
+
|
|
414
894
|
- Always-on metrics system for code quality observability (#41) - collects structured JSONL events locally with 90-day retention for trend analysis
|
|
415
895
|
- Team-based reviewer selection via GitHub Teams API (#115, #36) - automatically resolves team members and excludes PR author when selecting reviewers
|
|
416
896
|
- New metrics module (`lib/utils/metrics.js`) with fire-and-forget event recording that never blocks callers
|
|
@@ -418,19 +898,21 @@ y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.h
|
|
|
418
898
|
- Documented proven implementation patterns in CLAUDE.md covering testability, git operations, and architecture best practices
|
|
419
899
|
|
|
420
900
|
### 🔧 Changed
|
|
901
|
+
|
|
421
902
|
- Telemetry system now always enabled - removed opt-out toggle for consistent observability
|
|
422
903
|
- Existing telemetry events dual-write to unified metrics system for consolidated analysis
|
|
423
904
|
- PR statistics module now records to both legacy JSONL and new metrics system
|
|
424
905
|
- Judge module switched from telemetry to metrics recording with richer event data including false positives and unresolved issues
|
|
425
906
|
|
|
426
907
|
### 🗑️ Removed
|
|
908
|
+
|
|
427
909
|
- Removed `system.telemetry` configuration option - metrics are now always collected locally
|
|
428
910
|
- Removed telemetry disabled warnings from `batch-info` and `telemetry-cmd` commands
|
|
429
911
|
|
|
430
|
-
|
|
431
912
|
## [2.32.0] - 2026-03-19
|
|
432
913
|
|
|
433
914
|
### ✨ Added
|
|
915
|
+
|
|
434
916
|
- Team-based reviewer selection using GitHub Teams API for Pull Requests (#36)
|
|
435
917
|
- New `reviewer-selector.js` module for intelligent team member resolution with PR author exclusion
|
|
436
918
|
- Support for `teamSlug` configuration in `config.github.pr` (defaults to 'automation')
|
|
@@ -438,6 +920,7 @@ y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.h
|
|
|
438
920
|
- New GitHub API methods: `listRepoTeams()` and `listTeamMembers()` for team resolution
|
|
439
921
|
|
|
440
922
|
### 🔧 Changed
|
|
923
|
+
|
|
441
924
|
- PR reviewer selection now prioritizes GitHub Teams API over CODEOWNERS file
|
|
442
925
|
- Updated `createPullRequest()` to accept `teamReviewers` parameter for team-based review requests
|
|
443
926
|
- Refactored `github-client.js` to focus on config-based fallback reviewers only
|
|
@@ -445,18 +928,18 @@ y este proyecto adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.h
|
|
|
445
928
|
- Updated documentation to reflect team-based reviewer workflow in CLAUDE.md and README files
|
|
446
929
|
|
|
447
930
|
### 🗑️ Removed
|
|
931
|
+
|
|
448
932
|
- CODEOWNERS file parsing and resolution logic from reviewer selection workflow
|
|
449
933
|
- Methods `readCodeowners()` and `parseCodeownersReviewers()` from `github-client.js`
|
|
450
934
|
|
|
451
|
-
|
|
452
935
|
## [2.31.1] - 2026-03-19
|
|
453
936
|
|
|
454
937
|
### 🔧 Changed
|
|
938
|
+
|
|
455
939
|
- Migrated authorization config repository from `claude-hooks-config` to `git-hooks-config` as the definitive source for permissions and labels
|
|
456
940
|
- Centralized existing permissions and labels configuration in the definitive repository
|
|
457
941
|
- Updated documentation in CLAUDE.md to reference the new `git-hooks-config` repository and document team-wide remote config pattern
|
|
458
942
|
|
|
459
|
-
|
|
460
943
|
## [2.31.0] - 2026-03-19
|
|
461
944
|
|
|
462
945
|
### ✨ Added
|