smart-commit-copilot-cli 0.1.5 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +37 -0
- package/README.md +55 -7
- package/docs/configuration.md +55 -2
- package/docs/contracts.md +15 -2
- package/docs/getting-started.md +18 -4
- package/docs/publish.md +1 -1
- package/docs/releases/0.1.6-draft.md +72 -0
- package/docs/releases/0.1.7-draft.md +55 -0
- package/docs/roadmap.md +1 -1
- package/docs/verification.md +15 -0
- package/examples/config/smart-commit.json +10 -1
- package/out/cliApp.js +11 -1
- package/out/cliApp.js.map +1 -1
- package/out/commands/bridge.js +160 -17
- package/out/commands/bridge.js.map +1 -1
- package/out/commitMessage/index.js +30 -9
- package/out/commitMessage/index.js.map +1 -1
- package/out/commitMessage/prompt.js +60 -10
- package/out/commitMessage/prompt.js.map +1 -1
- package/out/commitMessage/protocol.js +283 -22
- package/out/commitMessage/protocol.js.map +1 -1
- package/out/config/cliArgs.js +33 -0
- package/out/config/cliArgs.js.map +1 -1
- package/out/config/constants.js +9 -0
- package/out/config/constants.js.map +1 -1
- package/out/config/env.js +30 -0
- package/out/config/env.js.map +1 -1
- package/out/config/file.js +36 -0
- package/out/config/file.js.map +1 -1
- package/out/config/legacySmartCommit.js +41 -1
- package/out/config/legacySmartCommit.js.map +1 -1
- package/out/config/merge.js +4 -0
- package/out/config/merge.js.map +1 -1
- package/out/config/schema.js +35 -1
- package/out/config/schema.js.map +1 -1
- package/out/contracts.js +44 -9
- package/out/contracts.js.map +1 -1
- package/out/llm/responseCorrection.js +32 -0
- package/out/llm/responseCorrection.js.map +1 -0
- package/out/passHistory/index.js +51 -22
- package/out/passHistory/index.js.map +1 -1
- package/out/passHistory/store.js +29 -1
- package/out/passHistory/store.js.map +1 -1
- package/out/passHistory/types.js +23 -1
- package/out/passHistory/types.js.map +1 -1
- package/out/promptContext.js +19 -3
- package/out/promptContext.js.map +1 -1
- package/out/pullRequestSummary/index.js +53 -0
- package/out/pullRequestSummary/index.js.map +1 -0
- package/out/pullRequestSummary/mockProvider.js +24 -0
- package/out/pullRequestSummary/mockProvider.js.map +1 -0
- package/out/pullRequestSummary/openaiProvider.js +19 -0
- package/out/pullRequestSummary/openaiProvider.js.map +1 -0
- package/out/pullRequestSummary/prompt.js +122 -0
- package/out/pullRequestSummary/prompt.js.map +1 -0
- package/out/pullRequestSummary/provider.js +3 -0
- package/out/pullRequestSummary/provider.js.map +1 -0
- package/out/pullRequestSummary/render.js +74 -0
- package/out/pullRequestSummary/render.js.map +1 -0
- package/out/renderOutput.js +8 -1
- package/out/renderOutput.js.map +1 -1
- package/out/reporting/prompt.js +13 -1
- package/out/reporting/prompt.js.map +1 -1
- package/out/reporting/timeWindow.js +7 -0
- package/out/reporting/timeWindow.js.map +1 -1
- package/out/reporting/types.js +1 -0
- package/out/reporting/types.js.map +1 -1
- package/out/review/diffClassifier.js +535 -0
- package/out/review/diffClassifier.js.map +1 -0
- package/out/review/index.js +27 -11
- package/out/review/index.js.map +1 -1
- package/out/review/mockProvider.js +157 -8
- package/out/review/mockProvider.js.map +1 -1
- package/out/review/openaiProvider.js +10 -4
- package/out/review/openaiProvider.js.map +1 -1
- package/out/review/parser.js +13 -0
- package/out/review/parser.js.map +1 -1
- package/out/review/prompt.js +76 -4
- package/out/review/prompt.js.map +1 -1
- package/out/skills/types.js +3 -0
- package/out/skills/types.js.map +1 -0
- package/package.json +2 -1
- package/src/code-review-skills/c-code-review/SKILL.md +165 -0
- package/src/code-review-skills/c-code-review/references/build-and-tooling.md +16 -0
- package/src/code-review-skills/c-code-review/references/concurrency-and-signals.md +16 -0
- package/src/code-review-skills/c-code-review/references/error-handling-and-cleanup.md +16 -0
- package/src/code-review-skills/c-code-review/references/macros-headers-and-build-boundaries.md +16 -0
- package/src/code-review-skills/c-code-review/references/performance-and-data-movement.md +16 -0
- package/src/code-review-skills/c-code-review/references/pointers-memory-and-resource-lifecycle.md +18 -0
- package/src/code-review-skills/c-code-review/references/scoring-guide.md +40 -0
- package/src/code-review-skills/c-code-review/references/undefined-behavior-and-safety.md +17 -0
- package/src/code-review-skills/code-review/SKILL.md +150 -0
- package/src/code-review-skills/code-review/references/code-quality-checklist.md +53 -0
- package/src/code-review-skills/code-review/references/removal-plan.md +45 -0
- package/src/code-review-skills/code-review/references/scoring-guide.md +38 -0
- package/src/code-review-skills/code-review/references/security-checklist.md +53 -0
- package/src/code-review-skills/code-review/references/solid-checklist.md +55 -0
- package/src/code-review-skills/cpp-code-review/SKILL.md +165 -0
- package/src/code-review-skills/cpp-code-review/references/build-and-tooling.md +12 -0
- package/src/code-review-skills/cpp-code-review/references/concurrency-and-atomics.md +14 -0
- package/src/code-review-skills/cpp-code-review/references/exceptions-and-error-model.md +16 -0
- package/src/code-review-skills/cpp-code-review/references/memory-raii-and-lifetimes.md +19 -0
- package/src/code-review-skills/cpp-code-review/references/performance-and-hot-paths.md +16 -0
- package/src/code-review-skills/cpp-code-review/references/scoring-guide.md +41 -0
- package/src/code-review-skills/cpp-code-review/references/templates-api-and-abi.md +13 -0
- package/src/code-review-skills/cpp-code-review/references/undefined-behavior-and-safety.md +18 -0
- package/src/code-review-skills/csharp-code-review/SKILL.md +159 -0
- package/src/code-review-skills/csharp-code-review/references/async-and-cancellation.md +16 -0
- package/src/code-review-skills/csharp-code-review/references/concurrency.md +15 -0
- package/src/code-review-skills/csharp-code-review/references/exceptions-and-api-contracts.md +16 -0
- package/src/code-review-skills/csharp-code-review/references/memory-resources-and-interop.md +16 -0
- package/src/code-review-skills/csharp-code-review/references/nullable-types-and-patterns.md +15 -0
- package/src/code-review-skills/csharp-code-review/references/scoring-guide.md +41 -0
- package/src/code-review-skills/csharp-code-review/references/web-data-and-security.md +15 -0
- package/src/code-review-skills/frontend-code-review/SKILL.md +143 -0
- package/src/code-review-skills/frontend-code-review/references/accessibility-and-semantic-ux.md +33 -0
- package/src/code-review-skills/frontend-code-review/references/interaction-and-state-lifecycle.md +39 -0
- package/src/code-review-skills/frontend-code-review/references/rendering-performance-and-resource-loading.md +34 -0
- package/src/code-review-skills/frontend-code-review/references/scoring-guide.md +38 -0
- package/src/code-review-skills/frontend-code-review/references/security-and-data-boundary.md +34 -0
- package/src/code-review-skills/golang-code-review/SKILL.md +153 -0
- package/src/code-review-skills/golang-code-review/references/api-contract-and-maintainability.md +25 -0
- package/src/code-review-skills/golang-code-review/references/concurrency-and-lifecycle.md +25 -0
- package/src/code-review-skills/golang-code-review/references/error-handling-and-reliability.md +24 -0
- package/src/code-review-skills/golang-code-review/references/performance-and-allocation.md +25 -0
- package/src/code-review-skills/golang-code-review/references/scoring-guide.md +40 -0
- package/src/code-review-skills/golang-code-review/references/security-and-trust-boundary.md +20 -0
- package/src/code-review-skills/java-code-review/SKILL.md +153 -0
- package/src/code-review-skills/java-code-review/references/api-contract-and-maintainability.md +22 -0
- package/src/code-review-skills/java-code-review/references/concurrency-and-lifecycle.md +27 -0
- package/src/code-review-skills/java-code-review/references/error-handling-and-reliability.md +25 -0
- package/src/code-review-skills/java-code-review/references/performance-and-resource-usage.md +23 -0
- package/src/code-review-skills/java-code-review/references/scoring-guide.md +40 -0
- package/src/code-review-skills/java-code-review/references/security-and-trust-boundary.md +20 -0
- package/src/code-review-skills/mobile-code-review/SKILL.md +171 -0
- package/src/code-review-skills/mobile-code-review/references/async-state-and-side-effects.md +19 -0
- package/src/code-review-skills/mobile-code-review/references/lifecycle-and-navigation.md +19 -0
- package/src/code-review-skills/mobile-code-review/references/performance-and-resource-management.md +19 -0
- package/src/code-review-skills/mobile-code-review/references/resilience-and-device-conditions.md +19 -0
- package/src/code-review-skills/mobile-code-review/references/scoring-guide.md +38 -0
- package/src/code-review-skills/mobile-code-review/references/storage-permissions-and-security.md +19 -0
- package/src/code-review-skills/mobile-code-review/references/testing-and-regression-coverage.md +21 -0
- package/src/code-review-skills/php-code-review/SKILL.md +159 -0
- package/src/code-review-skills/php-code-review/references/inclusion-superglobals-and-scope.md +21 -0
- package/src/code-review-skills/php-code-review/references/language-types-and-autoload.md +19 -0
- package/src/code-review-skills/php-code-review/references/oop-magic-and-errors.md +17 -0
- package/src/code-review-skills/php-code-review/references/performance-data-access-and-testing.md +16 -0
- package/src/code-review-skills/php-code-review/references/request-lifecycle-and-runtime.md +15 -0
- package/src/code-review-skills/php-code-review/references/scoring-guide.md +39 -0
- package/src/code-review-skills/php-code-review/references/security-and-io-boundary.md +24 -0
- package/src/code-review-skills/python-code-review/SKILL.md +147 -0
- package/src/code-review-skills/python-code-review/references/exception-and-lifecycle.md +15 -0
- package/src/code-review-skills/python-code-review/references/input-and-data-security.md +20 -0
- package/src/code-review-skills/python-code-review/references/maintainability-and-testing.md +21 -0
- package/src/code-review-skills/python-code-review/references/performance-and-resource-usage.md +21 -0
- package/src/code-review-skills/python-code-review/references/scoring-guide.md +38 -0
- package/src/code-review-skills/rust-code-review/SKILL.md +165 -0
- package/src/code-review-skills/rust-code-review/references/api-traits-and-evolution.md +16 -0
- package/src/code-review-skills/rust-code-review/references/cargo-features-and-test-coverage.md +16 -0
- package/src/code-review-skills/rust-code-review/references/concurrency-async-and-sync.md +17 -0
- package/src/code-review-skills/rust-code-review/references/error-handling-and-reliability.md +17 -0
- package/src/code-review-skills/rust-code-review/references/macros-ffi-and-embedded.md +19 -0
- package/src/code-review-skills/rust-code-review/references/ownership-borrowing-and-unsafe.md +20 -0
- package/src/code-review-skills/rust-code-review/references/performance-and-allocations.md +18 -0
- package/src/code-review-skills/rust-code-review/references/scoring-guide.md +41 -0
- package/src/git-commit-message-skills/conventional/SKILL.md +3 -3
- package/src/git-commit-message-skills/gitmoji/SKILL.md +3 -3
- package/src/git-commit-message-skills/semantic/SKILL.md +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,43 @@ The format is based on Keep a Changelog, and this project follows Semantic Versi
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.1.7] - 2026-04-26
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- optional AI pull request summary generation after successful `bridge` runs, writing timestamped Markdown under a configurable directory or the default `.smart-commit-cli/pr-summaries`
|
|
14
|
+
- `pullRequestSummary.*` settings (`enabled`, `language`, `outputDirPath`, `prompt`) across CLI flags, environment variables, config files, JSON schema output, and legacy `smartCommit.*` mappings
|
|
15
|
+
- structured `pullRequestSummary` in bridge output (`generated`, `outputFilePath`, `provider`, `error`) plus user-facing text render lines and non-fatal warnings when generation fails after an otherwise successful run
|
|
16
|
+
- regression coverage for pull request summary plumbing and configuration resolution
|
|
17
|
+
- a dedicated `0.1.7` draft release note for the current publish target
|
|
18
|
+
|
|
19
|
+
### Changed
|
|
20
|
+
|
|
21
|
+
- public config and bridge JSON contracts now include `pullRequestSummary` fields; `schema print --target bridge` reflects the updated shape
|
|
22
|
+
- built-in `conventional` and `semantic` commit-message skill docs now note extracting a Jira or work item id from the branch name when prepending to the subject
|
|
23
|
+
- publish guidance now points to the `0.1.7` release draft during pre-publish review
|
|
24
|
+
|
|
25
|
+
## [0.1.6] - 2026-04-18
|
|
26
|
+
|
|
27
|
+
### Added
|
|
28
|
+
|
|
29
|
+
- bundled built-in review skill assets for generic and domain-specific profiles, including `c-code-review`
|
|
30
|
+
- `report generate --period yesterday` with previous-natural-day time window handling
|
|
31
|
+
- configurable `connection.llmResponseCorrectionRetryCount` and `passHistory.writeStage` across CLI args, environment variables, config files, schema output, and legacy `smartCommit.*` mappings
|
|
32
|
+
- a dedicated `0.1.6` draft release note for the current publish target
|
|
33
|
+
|
|
34
|
+
### Changed
|
|
35
|
+
|
|
36
|
+
- review prompt augmentation now loads bundled review-skill instructions and references, and adds diff-domain guidance with generic fallback when a specialized skill does not match the staged diff
|
|
37
|
+
- review repair and commit-message regeneration now use the configurable response-correction retry budget and enforce the requested output language during retryable validation
|
|
38
|
+
- pass-history writes now upsert a single record across review, commit, and push success stages so `eventType` reflects the furthest successful stage reached by the run
|
|
39
|
+
- publish guidance now points to the `0.1.6` release draft during pre-publish review
|
|
40
|
+
|
|
41
|
+
### Fixed
|
|
42
|
+
|
|
43
|
+
- successful local commits are now preserved in pass history when a later push cannot start, is rejected, or times out, unless `passHistory.writeStage` explicitly requires push completion
|
|
44
|
+
- machine-facing contracts, docs, and regression coverage now match the new correction-retry bounds, built-in review skill exposure, and `yesterday` reporting support
|
|
45
|
+
|
|
9
46
|
## [0.1.5] - 2026-04-15
|
|
10
47
|
|
|
11
48
|
### Added
|
package/README.md
CHANGED
|
@@ -15,10 +15,12 @@ It can:
|
|
|
15
15
|
- inspect staged changes
|
|
16
16
|
- run AI review and gate on the result
|
|
17
17
|
- generate or validate commit messages
|
|
18
|
+
- retry malformed review or commit-message responses with configurable correction passes
|
|
19
|
+
- use bundled review skills, including `c-code-review`, with diff-aware generic fallback
|
|
18
20
|
- optionally create a commit
|
|
19
21
|
- optionally push the current branch
|
|
20
22
|
- persist successful run history
|
|
21
|
-
- generate Markdown work reports
|
|
23
|
+
- generate daily, yesterday, weekly, monthly, quarterly, or yearly Markdown work reports
|
|
22
24
|
|
|
23
25
|
## Who This Is For
|
|
24
26
|
|
|
@@ -276,7 +278,8 @@ Use this when you want a more realistic team default without enabling automatic
|
|
|
276
278
|
"connection": {
|
|
277
279
|
"baseUrl": "https://api.openai.com/v1",
|
|
278
280
|
"apiKey": "env:SMART_COMMIT_API_KEY",
|
|
279
|
-
"model": "gpt-5"
|
|
281
|
+
"model": "gpt-5",
|
|
282
|
+
"llmResponseCorrectionRetryCount": 1
|
|
280
283
|
},
|
|
281
284
|
"review": {
|
|
282
285
|
"threshold": 6,
|
|
@@ -289,6 +292,7 @@ Use this when you want a more realistic team default without enabling automatic
|
|
|
289
292
|
},
|
|
290
293
|
"passHistory": {
|
|
291
294
|
"enabled": true,
|
|
295
|
+
"writeStage": "review_passed",
|
|
292
296
|
"dirPath": ".smart-commit-cli",
|
|
293
297
|
"maxEntries": 3000
|
|
294
298
|
},
|
|
@@ -306,6 +310,14 @@ This is usually the best starting point for teams because it:
|
|
|
306
310
|
- allows local history for reporting
|
|
307
311
|
- stays safe for hooks and automation
|
|
308
312
|
|
|
313
|
+
### Review skills and correction retries
|
|
314
|
+
|
|
315
|
+
Built-in review skills are bundled with the CLI. The default `code-review` skill stays generic, while domain skills such as `frontend-code-review`, `python-code-review`, `c-code-review`, `cpp-code-review`, and `csharp-code-review` add domain-focused guidance. These built-in review skills share a lightweight diff classifier: if the staged diff does not match the selected domain, the CLI falls back to generic review rules automatically without changing your configured skill id.
|
|
316
|
+
|
|
317
|
+
If you set `review.skill.path`, the CLI keeps the current file-based custom-skill behavior and loads that file as custom prompt input instead of the bundled built-in skill assets.
|
|
318
|
+
|
|
319
|
+
`connection.llmResponseCorrectionRetryCount` controls how many extra repair or regeneration attempts the CLI may request when a review result or generated commit message fails protocol, JSON-shape, or language validation. The default is `1`, the supported range is `0..5`, and network, HTTP, timeout, or provider failures are not retried by this setting.
|
|
320
|
+
|
|
309
321
|
### About the example config in this repo
|
|
310
322
|
|
|
311
323
|
This repository ships a fuller example at `examples/config/smart-commit.json`.
|
|
@@ -387,12 +399,13 @@ smart-commit report generate --repo . --config ./smart-commit.json --period week
|
|
|
387
399
|
Supported `--period` values:
|
|
388
400
|
|
|
389
401
|
- `daily`
|
|
402
|
+
- `yesterday`
|
|
390
403
|
- `weekly`
|
|
391
404
|
- `monthly`
|
|
392
405
|
- `quarterly`
|
|
393
406
|
- `yearly`
|
|
394
407
|
|
|
395
|
-
If you omit `--period`, it defaults to `weekly`.
|
|
408
|
+
If you omit `--period`, it defaults to `weekly`. `yesterday` always means the previous natural local day.
|
|
396
409
|
|
|
397
410
|
If `passHistory.enabled=true`, successful bridge runs are written locally and later summarized into a Markdown report.
|
|
398
411
|
|
|
@@ -404,6 +417,14 @@ smart-commit report generate --repo . --config ./smart-commit.json --period week
|
|
|
404
417
|
|
|
405
418
|
If AI report generation fails, the CLI falls back to local Markdown generation automatically.
|
|
406
419
|
|
|
420
|
+
### I want a pull request summary after a passing review
|
|
421
|
+
|
|
422
|
+
```bash
|
|
423
|
+
smart-commit bridge --repo . --config ./smart-commit.json --no-commit --enable-pull-request-summary
|
|
424
|
+
```
|
|
425
|
+
|
|
426
|
+
When enabled, `bridge` writes a Markdown PR description after the reviewed action succeeds. It runs after review-only success, after local commit success when `--no-push` is used, or after push success when auto-push is enabled. Review blocks, dry runs, and commit/push failures do not generate a PR summary.
|
|
427
|
+
|
|
407
428
|
### I want machine-readable schemas
|
|
408
429
|
|
|
409
430
|
```bash
|
|
@@ -553,9 +574,17 @@ Most practical flags for daily use:
|
|
|
553
574
|
--api-key
|
|
554
575
|
--model
|
|
555
576
|
--threshold
|
|
577
|
+
--llm-response-correction-retry-count
|
|
556
578
|
--review-language
|
|
579
|
+
--code-review-skill-id
|
|
557
580
|
--commit-language
|
|
581
|
+
--commit-message-structure
|
|
558
582
|
--commit-message
|
|
583
|
+
--pass-history-write-stage
|
|
584
|
+
--enable-pull-request-summary
|
|
585
|
+
--pull-request-summary-language
|
|
586
|
+
--pull-request-summary-output-dir
|
|
587
|
+
--pull-request-summary-prompt
|
|
559
588
|
--no-commit
|
|
560
589
|
--no-push
|
|
561
590
|
--dry-run
|
|
@@ -579,12 +608,20 @@ SMART_COMMIT_API_KEY
|
|
|
579
608
|
SMART_COMMIT_BASE_URL
|
|
580
609
|
SMART_COMMIT_MODEL
|
|
581
610
|
SMART_COMMIT_THRESHOLD
|
|
611
|
+
SMART_COMMIT_LLM_RESPONSE_CORRECTION_RETRY_COUNT
|
|
582
612
|
SMART_COMMIT_REVIEW_LANGUAGE
|
|
613
|
+
SMART_COMMIT_CODE_REVIEW_SKILL_ID
|
|
583
614
|
SMART_COMMIT_COMMIT_LANGUAGE
|
|
615
|
+
SMART_COMMIT_COMMIT_MESSAGE_STRUCTURE
|
|
584
616
|
SMART_COMMIT_AUTO_COMMIT
|
|
585
617
|
SMART_COMMIT_AUTO_PUSH
|
|
618
|
+
SMART_COMMIT_PASS_HISTORY_WRITE_STAGE
|
|
586
619
|
SMART_COMMIT_REPORT_LANGUAGE
|
|
587
620
|
SMART_COMMIT_REPORT_OUTPUT_DIR
|
|
621
|
+
SMART_COMMIT_ENABLE_PULL_REQUEST_SUMMARY
|
|
622
|
+
SMART_COMMIT_PULL_REQUEST_SUMMARY_LANGUAGE
|
|
623
|
+
SMART_COMMIT_PULL_REQUEST_SUMMARY_OUTPUT_DIR
|
|
624
|
+
SMART_COMMIT_PULL_REQUEST_SUMMARY_PROMPT
|
|
588
625
|
```
|
|
589
626
|
|
|
590
627
|
## Reporting
|
|
@@ -595,11 +632,22 @@ If `passHistory.enabled=true`, successful bridge runs are written to local histo
|
|
|
595
632
|
smart-commit report generate --repo . --config ./smart-commit.json --period weekly
|
|
596
633
|
```
|
|
597
634
|
|
|
598
|
-
|
|
635
|
+
`passHistory.writeStage` controls the earliest successful stage that can create a record. Once a record exists, later successful stages update the same pass-history entry, so `eventType` always reflects the furthest successful stage reached by that run.
|
|
636
|
+
|
|
637
|
+
- `review_passed` writes as soon as review passes. If that same run later reaches a local commit or push, the existing record is upgraded instead of duplicated.
|
|
638
|
+
- `commit_completed` waits until the local commit succeeds. If a later push succeeds, that same record is upgraded to `commit_push_completed`.
|
|
639
|
+
- `commit_push_completed` writes only after both the local commit and the push succeed.
|
|
640
|
+
|
|
641
|
+
If a run never reaches the configured write stage, no pass-history record is written. For example:
|
|
642
|
+
|
|
643
|
+
- with `passHistory.writeStage=commit_completed`, a successful local commit is still preserved even if the later push cannot start, fails, or times out
|
|
644
|
+
- with `passHistory.writeStage=commit_push_completed`, those same push failures produce no pass-history record
|
|
645
|
+
|
|
646
|
+
Stored pass-history `eventType` values mean:
|
|
599
647
|
|
|
600
|
-
- `review_passed`: review passed,
|
|
601
|
-
- `commit_completed`: a local commit
|
|
602
|
-
- `commit_push_completed`:
|
|
648
|
+
- `review_passed`: review passed, and no later success stage was reached
|
|
649
|
+
- `commit_completed`: a local commit succeeded, and no later push success stage was reached
|
|
650
|
+
- `commit_push_completed`: both the local commit and the remote push succeeded
|
|
603
651
|
|
|
604
652
|
Report summaries use these records to show:
|
|
605
653
|
|
package/docs/configuration.md
CHANGED
|
@@ -142,7 +142,8 @@ Recommended early team setup:
|
|
|
142
142
|
"connection": {
|
|
143
143
|
"baseUrl": "https://api.openai.com/v1",
|
|
144
144
|
"apiKey": "env:SMART_COMMIT_API_KEY",
|
|
145
|
-
"model": "gpt-5"
|
|
145
|
+
"model": "gpt-5",
|
|
146
|
+
"llmResponseCorrectionRetryCount": 1
|
|
146
147
|
},
|
|
147
148
|
"review": {
|
|
148
149
|
"threshold": 6,
|
|
@@ -155,6 +156,7 @@ Recommended early team setup:
|
|
|
155
156
|
},
|
|
156
157
|
"passHistory": {
|
|
157
158
|
"enabled": true,
|
|
159
|
+
"writeStage": "review_passed",
|
|
158
160
|
"dirPath": ".smart-commit-cli",
|
|
159
161
|
"maxEntries": 3000
|
|
160
162
|
},
|
|
@@ -186,12 +188,14 @@ These settings tell the CLI how to reach your AI endpoint. `bridge` requires all
|
|
|
186
188
|
| `connection.apiKey` | empty string | `env:SMART_COMMIT_API_KEY` | Change it only if you intentionally inject secrets another way | Putting raw secrets into committed config files |
|
|
187
189
|
| `connection.model` | empty string | A model name that your chosen `baseUrl` actually serves | Change it when you switch cost, quality, or provider capabilities | Using a model name unsupported by your gateway |
|
|
188
190
|
| `connection.requestTimeoutMs` | `1000000` | Leave default first | Change it only if your provider is too slow or your requests time out unexpectedly | Setting it below `5000`, which fails validation |
|
|
191
|
+
| `connection.llmResponseCorrectionRetryCount` | `1` | `1` | Change it when you want `0..5` repair or regeneration retries for protocol, format, or language validation failures | Expecting it to retry provider, network, HTTP, or timeout failures |
|
|
189
192
|
| `connection.extraHeaders` | `{}` | Leave empty first | Add values only if your proxy or API gateway requires custom headers | Adding provider-specific headers that your endpoint does not expect |
|
|
190
193
|
|
|
191
194
|
Practical guidance:
|
|
192
195
|
|
|
193
196
|
- if you do not know what to choose, ask one question first: "What OpenAI-compatible base URL and model name does our environment support?"
|
|
194
197
|
- if you use an internal gateway, use the gateway's supported model list instead of guessing
|
|
198
|
+
- `connection.llmResponseCorrectionRetryCount` applies to review-response repair and commit-message regeneration only when the model output fails local protocol validation; it does not hide transport or provider errors
|
|
195
199
|
|
|
196
200
|
### `review.*`
|
|
197
201
|
|
|
@@ -211,6 +215,7 @@ Supported built-in review skill ids:
|
|
|
211
215
|
- `code-review`
|
|
212
216
|
- `frontend-code-review`
|
|
213
217
|
- `mobile-code-review`
|
|
218
|
+
- `c-code-review`
|
|
214
219
|
- `python-code-review`
|
|
215
220
|
- `golang-code-review`
|
|
216
221
|
- `java-code-review`
|
|
@@ -219,6 +224,8 @@ Supported built-in review skill ids:
|
|
|
219
224
|
- `rust-code-review`
|
|
220
225
|
- `php-code-review`
|
|
221
226
|
|
|
227
|
+
Built-in review skills load bundled guidance and references from the CLI package. They also share a diff-domain classifier that can fall back to generic review rules when the staged diff does not match the selected domain. If you set `review.skill.path`, the CLI keeps the current file-based custom-skill behavior and does not switch to the bundled built-in skill assets for that run.
|
|
228
|
+
|
|
222
229
|
When to choose a custom skill path:
|
|
223
230
|
|
|
224
231
|
- your team has a fixed review checklist
|
|
@@ -233,6 +240,7 @@ These settings control where the commit message comes from and how it is validat
|
|
|
233
240
|
| --- | --- | --- | --- | --- |
|
|
234
241
|
| `commitMessage.input` | empty string | Leave empty first | Set it when you already know the exact message you want | Setting it and expecting auto-generation to replace it |
|
|
235
242
|
| `commitMessage.language` | `zh` | `zh` or `en` | Change it to match your team's commit language | Mixing a team English convention with a non-English expectation |
|
|
243
|
+
| `commitMessage.structure` | `subjectOnly` | `subjectOnly` | Change it when your team wants optional commit bodies or footers | Expecting body/footer to be allowed while the default single-line mode is still active |
|
|
236
244
|
| `commitMessage.autoGenerate` | `true` | `true` | Set `false` only if users always provide a message themselves | Turning it off with no provided message, which causes a commit-message-required error |
|
|
237
245
|
| `commitMessage.hybridGenerate` | `false` | `false` | Set `true` when users provide a draft and want AI to refine it | Enabling it without understanding that it uses `commitMessage.input` as a draft |
|
|
238
246
|
| `commitMessage.validation.protocol` | `none` | `none` first, then `conventional` if your team standardizes on it | Change it when your team enforces a commit style | Enabling validation before the team is ready |
|
|
@@ -250,6 +258,14 @@ How `hybridGenerate` actually works:
|
|
|
250
258
|
- if `commitMessage.input` is empty and `autoGenerate=true`, the CLI generates from the diff
|
|
251
259
|
- if `commitMessage.input` is empty and `autoGenerate=false`, the CLI errors because no message source exists
|
|
252
260
|
|
|
261
|
+
Supported commit message structures:
|
|
262
|
+
|
|
263
|
+
- `subjectOnly`: exactly one non-empty subject line
|
|
264
|
+
- `subjectBody`: a subject plus optional body separated by one blank line
|
|
265
|
+
- `subjectBodyFooter`: a subject plus optional body and optional footer/trailer lines
|
|
266
|
+
|
|
267
|
+
Protocol, language, ticket, and regex validation apply to the subject. Ticket injection from the branch preserves any accepted body or footer.
|
|
268
|
+
|
|
253
269
|
Supported validation protocols:
|
|
254
270
|
|
|
255
271
|
- `none`
|
|
@@ -286,11 +302,18 @@ These settings control local storage for successful run history.
|
|
|
286
302
|
| Field | Built-in default | Recommended first value | When to change it | Common mistake |
|
|
287
303
|
| --- | --- | --- | --- | --- |
|
|
288
304
|
| `passHistory.enabled` | `false` | `true` if you want reporting later | Turn it on when you want local historical reporting | Forgetting to enable it and then expecting `report generate` to summarize past work |
|
|
305
|
+
| `passHistory.writeStage` | `review_passed` | `review_passed` | Change it when you want pass-history records to start only after commit or push success | Assuming it changes the stored `eventType`, when it actually changes the earliest write point |
|
|
289
306
|
| `passHistory.dirPath` | empty string | Leave empty first or set `.smart-commit-cli` explicitly | Change it only if you want a custom location | Thinking empty means broken, when it actually falls back to the repo-local default directory |
|
|
290
307
|
| `passHistory.maxEntries` | `3000` | `3000` | Change it only if you need much shorter or longer retention | Setting it to `0` or a non-integer, which fails validation |
|
|
291
308
|
|
|
292
309
|
If `passHistory.dirPath` is empty, the CLI automatically stores pass history under the repository's `.smart-commit-cli` directory.
|
|
293
310
|
|
|
311
|
+
`passHistory.writeStage` means "the earliest successful stage that is allowed to create a record." After a record exists, later successful stages update the same record instead of appending duplicates, so the stored `eventType` always shows the furthest successful stage reached by that run.
|
|
312
|
+
|
|
313
|
+
- `review_passed` writes immediately after review success and can later upgrade to `commit_completed` or `commit_push_completed`
|
|
314
|
+
- `commit_completed` waits for a successful local commit and still preserves that record if a later push cannot start, fails, or times out
|
|
315
|
+
- `commit_push_completed` waits for both commit and push success; if push never succeeds, no record is written
|
|
316
|
+
|
|
294
317
|
### `reporting.*`
|
|
295
318
|
|
|
296
319
|
These settings control report generation behavior.
|
|
@@ -305,6 +328,19 @@ These settings control report generation behavior.
|
|
|
305
328
|
|
|
306
329
|
If `reporting.outputDirPath` is empty, the CLI writes reports to `.smart-commit-cli/reports` under the repository root.
|
|
307
330
|
|
|
331
|
+
### `pullRequestSummary.*`
|
|
332
|
+
|
|
333
|
+
These settings control optional Markdown PR summary generation after a passing `bridge` run.
|
|
334
|
+
|
|
335
|
+
| Field | Built-in default | Recommended first value | When to change it | Common mistake |
|
|
336
|
+
| --- | --- | --- | --- | --- |
|
|
337
|
+
| `pullRequestSummary.enabled` | `false` | `false` first | Set `true` when you want a PR description after review success | Expecting it to run for dry-run, blocked review, or failed commit/push paths |
|
|
338
|
+
| `pullRequestSummary.language` | `zh` | Match your reviewer language | Change it independently from review and commit-message language | Assuming it changes review output language |
|
|
339
|
+
| `pullRequestSummary.outputDirPath` | empty string | Leave empty first | Set it when your automation needs a specific artifact location | Thinking empty means invalid; it writes under `.smart-commit-cli/pr-summaries` |
|
|
340
|
+
| `pullRequestSummary.prompt` | empty string | Leave empty first | Add concise team PR template guidance | Asking it to invent tests, reviewers, links, or review findings |
|
|
341
|
+
|
|
342
|
+
The generated summary uses only the reviewed staged diff, commit message, branch, changed files, and run facts. Review scores, thresholds, findings, and suggestions are treated as internal gate data and are not included in the PR description.
|
|
343
|
+
|
|
308
344
|
### `output.*`
|
|
309
345
|
|
|
310
346
|
These settings control how results are presented.
|
|
@@ -372,9 +408,17 @@ Most practical flags:
|
|
|
372
408
|
--api-key
|
|
373
409
|
--model
|
|
374
410
|
--threshold
|
|
411
|
+
--llm-response-correction-retry-count
|
|
375
412
|
--review-language
|
|
413
|
+
--code-review-skill-id
|
|
376
414
|
--commit-language
|
|
415
|
+
--commit-message-structure
|
|
377
416
|
--commit-message
|
|
417
|
+
--pass-history-write-stage
|
|
418
|
+
--enable-pull-request-summary
|
|
419
|
+
--pull-request-summary-language
|
|
420
|
+
--pull-request-summary-output-dir
|
|
421
|
+
--pull-request-summary-prompt
|
|
378
422
|
--no-commit
|
|
379
423
|
--no-push
|
|
380
424
|
--dry-run
|
|
@@ -398,12 +442,20 @@ SMART_COMMIT_API_KEY
|
|
|
398
442
|
SMART_COMMIT_BASE_URL
|
|
399
443
|
SMART_COMMIT_MODEL
|
|
400
444
|
SMART_COMMIT_THRESHOLD
|
|
445
|
+
SMART_COMMIT_LLM_RESPONSE_CORRECTION_RETRY_COUNT
|
|
401
446
|
SMART_COMMIT_REVIEW_LANGUAGE
|
|
447
|
+
SMART_COMMIT_CODE_REVIEW_SKILL_ID
|
|
402
448
|
SMART_COMMIT_COMMIT_LANGUAGE
|
|
449
|
+
SMART_COMMIT_COMMIT_MESSAGE_STRUCTURE
|
|
403
450
|
SMART_COMMIT_AUTO_COMMIT
|
|
404
451
|
SMART_COMMIT_AUTO_PUSH
|
|
452
|
+
SMART_COMMIT_PASS_HISTORY_WRITE_STAGE
|
|
405
453
|
SMART_COMMIT_REPORT_LANGUAGE
|
|
406
454
|
SMART_COMMIT_REPORT_OUTPUT_DIR
|
|
455
|
+
SMART_COMMIT_ENABLE_PULL_REQUEST_SUMMARY
|
|
456
|
+
SMART_COMMIT_PULL_REQUEST_SUMMARY_LANGUAGE
|
|
457
|
+
SMART_COMMIT_PULL_REQUEST_SUMMARY_OUTPUT_DIR
|
|
458
|
+
SMART_COMMIT_PULL_REQUEST_SUMMARY_PROMPT
|
|
407
459
|
```
|
|
408
460
|
|
|
409
461
|
Useful boolean environment variables accept:
|
|
@@ -456,12 +508,13 @@ smart-commit bridge --repo . --config ./smart-commit.json --no-commit --no-push
|
|
|
456
508
|
Supported periods:
|
|
457
509
|
|
|
458
510
|
- `daily`
|
|
511
|
+
- `yesterday`
|
|
459
512
|
- `weekly`
|
|
460
513
|
- `monthly`
|
|
461
514
|
- `quarterly`
|
|
462
515
|
- `yearly`
|
|
463
516
|
|
|
464
|
-
If `--period` is omitted, it defaults to `weekly`.
|
|
517
|
+
If `--period` is omitted, it defaults to `weekly`. `yesterday` always uses the previous natural local day.
|
|
465
518
|
|
|
466
519
|
## Validation Workflow
|
|
467
520
|
|
package/docs/contracts.md
CHANGED
|
@@ -36,6 +36,8 @@ Stable top-level fields:
|
|
|
36
36
|
|
|
37
37
|
Use it to validate merged config before wiring `bridge` or `report generate` into automation.
|
|
38
38
|
|
|
39
|
+
Contract consumers can safely read newly added resolved settings such as `config.connection.llmResponseCorrectionRetryCount`, `config.passHistory.writeStage`, `config.review.skill.id`, `config.commitMessage.structure`, and `config.pullRequestSummary.enabled` from the returned `config` object.
|
|
40
|
+
|
|
39
41
|
## `bridge`
|
|
40
42
|
|
|
41
43
|
Command:
|
|
@@ -55,6 +57,7 @@ Stable top-level fields:
|
|
|
55
57
|
- `didPush`
|
|
56
58
|
- `commitSha`
|
|
57
59
|
- `passHistory`
|
|
60
|
+
- `pullRequestSummary`
|
|
58
61
|
- `reviewDecision`
|
|
59
62
|
- `score`
|
|
60
63
|
- `summary`
|
|
@@ -63,19 +66,27 @@ Stable top-level fields:
|
|
|
63
66
|
Stable nested fields often used by automations:
|
|
64
67
|
|
|
65
68
|
- `passHistory.eventType`
|
|
69
|
+
- `pullRequestSummary.generated`
|
|
70
|
+
- `pullRequestSummary.outputFilePath`
|
|
66
71
|
- `reviewDetails`
|
|
67
72
|
|
|
73
|
+
`passHistory.writeStage` controls when a pass-history record is first allowed to exist. Once a record exists, later successful stages update that same record, so `passHistory.eventType` always reflects the furthest successful stage reached by the run.
|
|
74
|
+
|
|
68
75
|
`passHistory.eventType` semantics:
|
|
69
76
|
|
|
70
77
|
- `review_passed`
|
|
71
|
-
Review passed,
|
|
78
|
+
Review passed, and no later success stage was reached.
|
|
72
79
|
- `commit_completed`
|
|
73
|
-
Review passed and a local commit was created, but no
|
|
80
|
+
Review passed and a local commit was created, but no later push success stage was reached.
|
|
74
81
|
- `commit_push_completed`
|
|
75
82
|
Review passed, a local commit was created, and the current branch was pushed.
|
|
76
83
|
- `null`
|
|
77
84
|
Pass history is disabled or no pass-history record was written.
|
|
78
85
|
|
|
86
|
+
For example, when `passHistory.writeStage = "commit_completed"`, a successful local commit can still leave `passHistory.eventType = "commit_completed"` if the later push cannot start, fails, or times out. When `passHistory.writeStage = "commit_push_completed"`, those same push failures keep `passHistory.eventType = null` because no record is written.
|
|
87
|
+
|
|
88
|
+
`pullRequestSummary` is always present in bridge output. When `pullRequestSummary.enabled = true`, the CLI attempts generation only after the review/commit/push action for that run succeeds. Generation failures are reported in `pullRequestSummary.error` and do not change the already successful bridge exit code.
|
|
89
|
+
|
|
79
90
|
Status semantics:
|
|
80
91
|
|
|
81
92
|
- `ready`
|
|
@@ -112,6 +123,8 @@ Command:
|
|
|
112
123
|
smart-commit report generate --repo /path/to/repo --period weekly
|
|
113
124
|
```
|
|
114
125
|
|
|
126
|
+
Supported `periodType` values are `daily`, `yesterday`, `weekly`, `monthly`, `quarterly`, and `yearly`.
|
|
127
|
+
|
|
115
128
|
Stable top-level fields:
|
|
116
129
|
|
|
117
130
|
- `schemaVersion`
|
package/docs/getting-started.md
CHANGED
|
@@ -129,6 +129,8 @@ This config is intentionally conservative:
|
|
|
129
129
|
- `autoCommit=false` prevents creating a local commit
|
|
130
130
|
- `autoPush=false` prevents pushing to remote
|
|
131
131
|
|
|
132
|
+
The built-in default for `connection.llmResponseCorrectionRetryCount` is already `1`, which means the CLI will allow one extra repair or regeneration pass when a review result or generated commit message fails local protocol validation. Set it to `0` later if you want to disable that behavior.
|
|
133
|
+
|
|
132
134
|
If you want a fuller example, see `examples/config/smart-commit.json`, but do not copy its side-effect settings blindly for first use.
|
|
133
135
|
|
|
134
136
|
## Step 3: Validate The Final Config
|
|
@@ -213,6 +215,8 @@ without creating a commit or pushing to remote.
|
|
|
213
215
|
|
|
214
216
|
When the review returns a numeric score, the final pass or block result is determined by comparing that score with the configured `review.threshold`.
|
|
215
217
|
|
|
218
|
+
If your repository is mainly C code, you can switch the built-in review skill with `--code-review-skill-id c-code-review` or `review.skill.id = "c-code-review"`. Built-in `*-code-review` skills load bundled guidance and automatically fall back to generic review rules when the staged diff does not actually match the selected domain.
|
|
219
|
+
|
|
216
220
|
## Step 7: Enable Pass History When You Are Ready
|
|
217
221
|
|
|
218
222
|
If you want reporting later, enable pass history in config or with flags.
|
|
@@ -224,16 +228,25 @@ smart-commit bridge \
|
|
|
224
228
|
--repo . \
|
|
225
229
|
--config ./smart-commit.json \
|
|
226
230
|
--enable-pass-history=true \
|
|
231
|
+
--pass-history-write-stage=review_passed \
|
|
227
232
|
--no-commit \
|
|
228
233
|
--no-push
|
|
229
234
|
```
|
|
230
235
|
|
|
231
236
|
This writes local JSONL history for successful bridge runs.
|
|
232
237
|
|
|
233
|
-
|
|
238
|
+
`passHistory.writeStage` controls the earliest successful stage that is allowed to create a record. After that point, the same run updates the same record if it later reaches commit or push success, so the stored `eventType` always reflects the furthest successful stage reached by that run.
|
|
239
|
+
|
|
240
|
+
- `review_passed` writes as soon as review succeeds
|
|
241
|
+
- `commit_completed` waits until the local commit succeeds
|
|
242
|
+
- `commit_push_completed` waits until both the local commit and push succeed
|
|
243
|
+
|
|
244
|
+
If you set `commit_completed`, a successful local commit is still preserved even if a later push cannot start, fails, or times out. If you set `commit_push_completed`, those same push failures write nothing.
|
|
245
|
+
|
|
246
|
+
Stored event types mean:
|
|
234
247
|
|
|
235
|
-
- `review_passed` when review succeeds
|
|
236
|
-
- `commit_completed` when a local commit succeeds
|
|
248
|
+
- `review_passed` when review succeeds and no later success stage is reached
|
|
249
|
+
- `commit_completed` when a local commit succeeds and no later push success stage is reached
|
|
237
250
|
- `commit_push_completed` when both local commit and push succeed
|
|
238
251
|
|
|
239
252
|
## Step 8: Generate A Report
|
|
@@ -245,12 +258,13 @@ smart-commit report generate --repo . --config ./smart-commit.json --period week
|
|
|
245
258
|
Supported periods:
|
|
246
259
|
|
|
247
260
|
- `daily`
|
|
261
|
+
- `yesterday`
|
|
248
262
|
- `weekly`
|
|
249
263
|
- `monthly`
|
|
250
264
|
- `quarterly`
|
|
251
265
|
- `yearly`
|
|
252
266
|
|
|
253
|
-
If `--period` is omitted, the CLI defaults to `weekly`.
|
|
267
|
+
If `--period` is omitted, the CLI defaults to `weekly`. `yesterday` always uses the previous natural local day in local time.
|
|
254
268
|
|
|
255
269
|
Useful follow-up checks:
|
|
256
270
|
|
package/docs/publish.md
CHANGED
|
@@ -21,7 +21,7 @@ Current package name:
|
|
|
21
21
|
3. Run `npm run pack:dry-run`
|
|
22
22
|
4. Review [`CHANGELOG.md`](../CHANGELOG.md)
|
|
23
23
|
5. Review [`docs/release-checklist.md`](./release-checklist.md)
|
|
24
|
-
6. Review the matching release draft in [`docs/releases/0.1.
|
|
24
|
+
6. Review the matching release draft in [`docs/releases/0.1.7-draft.md`](./releases/0.1.7-draft.md)
|
|
25
25
|
|
|
26
26
|
## Recommended Release Order
|
|
27
27
|
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# `smart-commit-copilot-cli` 0.1.6 Draft Release Notes
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
`smart-commit-copilot-cli` 0.1.6 is a Smart Commit behavior-alignment release for the standalone CLI.
|
|
6
|
+
|
|
7
|
+
This release focuses on bringing the CLI closer to the Smart Commit plugin across review-skill loading, response-correction retries, pass-history lifecycle updates, and reporting windows.
|
|
8
|
+
|
|
9
|
+
## Highlights
|
|
10
|
+
|
|
11
|
+
- bundled built-in review skill assets now ship for generic and specialized review profiles, including `c-code-review`
|
|
12
|
+
- specialized review prompts now include diff-domain detection and generic fallback guidance when the selected skill does not match the staged diff
|
|
13
|
+
- `connection.llmResponseCorrectionRetryCount` now controls repair or regeneration retries for review and generated commit-message responses
|
|
14
|
+
- retryable validation now includes requested output-language checks for review summaries, review details, and generated commit-message subjects
|
|
15
|
+
- pass-history writes now upsert a single record across review, commit, and push milestones, gated by configurable `passHistory.writeStage`
|
|
16
|
+
- `report generate` now supports `--period yesterday`
|
|
17
|
+
|
|
18
|
+
## Why This Release Matters
|
|
19
|
+
|
|
20
|
+
This version improves real automation reliability and parity with the Smart Commit plugin:
|
|
21
|
+
|
|
22
|
+
- built-in review skills now behave like real bundled capabilities rather than config-only ids
|
|
23
|
+
- malformed or wrong-language model responses can be retried predictably with an explicit retry budget
|
|
24
|
+
- pass-history consumers now see one upgraded record per successful run instead of duplicate entries across phases
|
|
25
|
+
- local-commit success is preserved correctly even when a later push cannot complete
|
|
26
|
+
- daily reporting workflows can target the previous natural local day directly
|
|
27
|
+
|
|
28
|
+
## Notable Behavior Updates
|
|
29
|
+
|
|
30
|
+
### Review skills and prompt guidance
|
|
31
|
+
|
|
32
|
+
- built-in review skills now load bundled `SKILL.md` instructions and reference material
|
|
33
|
+
- the generic `code-review` skill is available as a bundled asset alongside domain-specific skills
|
|
34
|
+
- `c-code-review` is now part of the supported built-in review skill set
|
|
35
|
+
- specialized review skills use diff-domain classification and fall back to generic review guidance when the staged diff does not match the selected domain
|
|
36
|
+
|
|
37
|
+
### Response correction and validation
|
|
38
|
+
|
|
39
|
+
- review-response repair and generated commit-message regeneration now share the same configurable retry budget
|
|
40
|
+
- a retry is triggered only for local protocol, JSON-shape, format, or language validation failures
|
|
41
|
+
- transport, provider, HTTP, and timeout failures still surface directly instead of being retried by this setting
|
|
42
|
+
|
|
43
|
+
### Pass history and reporting
|
|
44
|
+
|
|
45
|
+
- `passHistory.writeStage` now controls the earliest successful phase allowed to create a pass-history record
|
|
46
|
+
- once created, the same pass-history record is updated in place as the run advances from review to commit to push success
|
|
47
|
+
- `eventType` now represents the furthest successful stage reached by the run
|
|
48
|
+
- `report generate --period yesterday` now uses the previous natural local day, including cross-month and cross-year boundaries
|
|
49
|
+
|
|
50
|
+
## Verification Coverage Added Or Strengthened
|
|
51
|
+
|
|
52
|
+
The project now has stronger regression protection for:
|
|
53
|
+
|
|
54
|
+
1. review-response repair when the provider returns the wrong language
|
|
55
|
+
2. generated commit-message regeneration when the summary uses the wrong language
|
|
56
|
+
3. schema output for correction retry bounds and built-in review skill exposure
|
|
57
|
+
4. pass-history upsert behavior across review, commit, push-success, push-rejected, and push-timeout branches
|
|
58
|
+
5. CLI-level `report generate --period yesterday`
|
|
59
|
+
|
|
60
|
+
## Suggested Upgrade Path
|
|
61
|
+
|
|
62
|
+
1. update to `0.1.6`
|
|
63
|
+
2. run `npm test`
|
|
64
|
+
3. run `npm run smoke:test`
|
|
65
|
+
4. run `npm run pack:dry-run`
|
|
66
|
+
5. publish only after all three checks pass
|
|
67
|
+
|
|
68
|
+
## Known Follow-Up Areas
|
|
69
|
+
|
|
70
|
+
- schema-versioning or compatibility strategy if later releases need to evolve the pass-history contract again
|
|
71
|
+
- richer custom local review-skill protocols if CLI-side file-based custom skills need to converge further with the plugin
|
|
72
|
+
- broader remote-aware release validation if publish-time verification grows beyond the current local and test-controlled flows
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# `smart-commit-copilot-cli` 0.1.7 Draft Release Notes
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
`smart-commit-copilot-cli` 0.1.7 adds optional pull request description generation to the `bridge` workflow, alongside full configuration and contract support for automation consumers.
|
|
6
|
+
|
|
7
|
+
This release focuses on turning a successful review-and-commit run into a ready-to-paste PR summary artifact without changing the bridge exit code when summary generation fails.
|
|
8
|
+
|
|
9
|
+
## Highlights
|
|
10
|
+
|
|
11
|
+
- opt-in `pullRequestSummary.enabled` with independent `language`, optional `outputDirPath`, and optional free-form `prompt` template guidance
|
|
12
|
+
- generation runs only after the applicable successful `bridge` outcome (review-only, commit, or push, depending on your flow); failures surface in `pullRequestSummary.error` and optional stderr warnings
|
|
13
|
+
- Markdown files use a stable `smart-commit-pr-summary-*.md` naming pattern under the chosen or default output directory
|
|
14
|
+
- legacy `smartCommit.pullRequestSummary*` keys map into the same resolved `pullRequestSummary` object as other Smart Commit settings
|
|
15
|
+
|
|
16
|
+
## Why This Release Matters
|
|
17
|
+
|
|
18
|
+
This version closes the loop for teams that open pull requests immediately after local automation:
|
|
19
|
+
|
|
20
|
+
- hooks and agents can enable one setting and receive a file path in structured JSON output
|
|
21
|
+
- consumers can treat summary failure as telemetry without losing a green bridge result
|
|
22
|
+
- configuration remains consistent with the rest of the CLI resolution order (args, env, file, defaults)
|
|
23
|
+
|
|
24
|
+
## Notable Behavior Updates
|
|
25
|
+
|
|
26
|
+
### Pull request summary
|
|
27
|
+
|
|
28
|
+
- when disabled, bridge output still includes `pullRequestSummary` with `generated: false` and null file or provider fields as appropriate
|
|
29
|
+
- when enabled, the CLI uses the same AI connection as review and commit-message generation; empty or invalid model output is reported without failing the bridge
|
|
30
|
+
- text output includes whether a file was written and any error string for operator visibility
|
|
31
|
+
|
|
32
|
+
### Commit message skills
|
|
33
|
+
|
|
34
|
+
- bundled `conventional` and `semantic` skill documentation now explicitly calls out extracting Jira or work item identifiers from the branch when present
|
|
35
|
+
|
|
36
|
+
## Verification Coverage Added Or Strengthened
|
|
37
|
+
|
|
38
|
+
The project now has stronger regression protection for:
|
|
39
|
+
|
|
40
|
+
1. `pullRequestSummary` defaults and legacy key mapping in config resolution
|
|
41
|
+
2. bridge JSON shape and schema output for the new fields
|
|
42
|
+
3. mock-provider success and empty-output failure paths for pull request summary generation
|
|
43
|
+
|
|
44
|
+
## Suggested Upgrade Path
|
|
45
|
+
|
|
46
|
+
1. update to `0.1.7`
|
|
47
|
+
2. run `npm test`
|
|
48
|
+
3. run `npm run smoke:test`
|
|
49
|
+
4. run `npm run pack:dry-run`
|
|
50
|
+
5. publish only after all three checks pass
|
|
51
|
+
|
|
52
|
+
## Known Follow-Up Areas
|
|
53
|
+
|
|
54
|
+
- richer provider options or templates if teams need multiple PR formats per repository
|
|
55
|
+
- deeper integration tests against real OpenAI-compatible endpoints if mock coverage is not enough for your release bar
|
package/docs/roadmap.md
CHANGED
|
@@ -27,7 +27,7 @@ Focus:
|
|
|
27
27
|
|
|
28
28
|
Expected stability:
|
|
29
29
|
|
|
30
|
-
- `schemaVersion: "1.
|
|
30
|
+
- `schemaVersion: "1.1.0"` machine contracts should remain stable unless there is a strong reason to break them
|
|
31
31
|
- `smartCommitCli` remains the canonical config namespace
|
|
32
32
|
- legacy `smartCommit.*` remains compatibility-only
|
|
33
33
|
|
package/docs/verification.md
CHANGED
|
@@ -48,3 +48,18 @@ The smoke test checks these command shapes:
|
|
|
48
48
|
- The smoke test does not push to a remote
|
|
49
49
|
- The smoke test does not require a real API key value
|
|
50
50
|
- Temporary repositories are created under the system temp directory
|
|
51
|
+
|
|
52
|
+
## Broader Unit Coverage
|
|
53
|
+
|
|
54
|
+
For the full regression suite, run:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
npm test
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
That suite additionally covers:
|
|
61
|
+
|
|
62
|
+
- configurable review and commit-message correction retries, including `0` retries and retry exhaustion
|
|
63
|
+
- bundled review-skill loading, including `c-code-review` and diff-domain fallback to generic review
|
|
64
|
+
- pass-history `writeStage` thresholds and same-record `upsert` behavior across review, commit, and push stages
|
|
65
|
+
- `report generate --period yesterday`, including previous-day windows across month and year boundaries
|