diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index 0ee8c01..816df2d 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -1,3 +1,3 @@
{
- ".": "0.3.0"
+ ".": "0.3.1"
}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 083c8cb..a2db92d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,23 @@
# Changelog
+## [0.3.1](https://github.com/tsdevau/diff-commit/compare/diff-commit-v0.3.0...diff-commit-v0.3.1) (2024-11-05)
+
+
+### Features, Additions & Updates
+
+* **models:** add claude-3-5-haiku-latest to available model options ([f8f5793](https://github.com/tsdevau/diff-commit/commit/f8f5793bc784a8f40559ecc780bcd7a7bdd53539))
+
+
+### Documentation
+
+* **readme:** update features and error handling sections ([82bdf05](https://github.com/tsdevau/diff-commit/commit/82bdf055402c318b70e4c70cf5147c964d778bad))
+* **settings:** update model options and add usage tips ([3ae39d8](https://github.com/tsdevau/diff-commit/commit/3ae39d82a3b4d6e3b5ca4457a52501522357dc23))
+
+
+### DX Maintenance & Configuration
+
+* **deps:** update @anthropic-ai/sdk to v0.32.1 and dev dependencies ([3da3b01](https://github.com/tsdevau/diff-commit/commit/3da3b017eaec1e70ea42f530bef3f49ee2a9d5f1))
+
## [0.3.0](https://github.com/tsdevau/diff-commit/compare/diff-commit-v0.2.1...diff-commit-v0.3.0) (2024-11-05)
diff --git a/README.md b/README.md
index 4ff9cd0..5ca5c34 100644
--- a/README.md
+++ b/README.md
@@ -37,6 +37,8 @@ The generated commit messages are compatible with [googleapis/release-please](ht
- Preview and edit generated commit messages before applying the commit
- Uses markdown formatting for commit messages
- Implements conventional commit format with type, scope, subject, and body
+- Real-time progress notifications during commit message generation
+- Seamless integration with VSCode's Source Control Management (SCM)
## Requirements
@@ -56,16 +58,23 @@ Install the extension directly from the [Visual Studio Code Marketplace](https:/
1. Stage the changes that you wish to commit as normal
2. Run the command: "DiffCommit: Generate Commit Message" (Cmd/Ctrl + K → Cmd/Ctrl + G)
-3. Confirm or edit the generated commit message in the Source Control message input
-4. Click 'Commit' to commit the changes with the generated message
+3. Monitor progress in the notification area as the extension:
+ - Retrieves the git diff
+ - Validates your API key
+ - Generates the commit message
+4. Review the generated message in the Source Control message input
+5. Click 'Commit' to commit the changes with the generated message
## Commands
DiffCommit commands can be accessed from the Command Palette (Cmd/Ctrl + Shift + P) or using the default keyboard shortcuts.
+> [!TIP]
+> You can reduce token use by staging only part of a group of changes, generating the commit message, then adding the remaining files before committing.
+
### `DiffCommit: Generate Commit Message`
-This will generate a commit message for staged changes and enter it in the Source Control message input box. You can preview and edit the generated message before committing.
+This will generate a commit message for staged changes and enter it in the Source Control message input box. You can preview and edit the generated message before committing. Progress is shown through notifications as the extension works.
| **Platform** | **Keyboard Shortcut** |
| :----------- | :-------------------------------------------------------------- |
@@ -108,12 +117,15 @@ DiffCommit provides the following settings to customise its behavior.
### `diffCommit.allowedTypes`
-A list of allowed commit types. If provided, this replaces the default options.
+A list of allowed commit types. If provided, this replaces the default options. You need to ensure all required commit types are included in the list.
| **Type** | **Description** | **Default Value** |
| :------------- | :---------------------------------------------------------------- | :---------------------------------------------------------------------------- |
| Array\ | A list (array) of any string/s you want available as commit types | [ "feat", "fix", "refactor", "chore", "docs", "style", "test", "perf", "ci" ] |
+> [!WARNING]
+> Changing the default, replaces the option value. If you set this option, be sure to include a complete list of all required commit types.
+
### `diffCommit.customInstructions`
Add additional custom instructions to the commit generation prompt. Useful for providing context or specific requirements like 'Use Australian English spelling'.
@@ -126,9 +138,13 @@ Add additional custom instructions to the commit generation prompt. Useful for p
The Anthropic AI model to use for generating commit messages.
-| **Type** | **Options** | **Default Value** |
-| :------- | :-------------------------------------------------------------------------------- | :------------------------- |
-| enum | "claude-3-opus-latest" \| "claude-3-5-sonnet-latest" \| "claude-3-haiku-20240307" | "claude-3-5-sonnet-latest" |
+| **Type** | **Options** | **Default Value** |
+| :------- | :------------------------- | :------------------------- |
+| enum | "claude-3-5-sonnet-latest" | "claude-3-5-sonnet-latest" |
+| | "claude-3-5-haiku-latest" | |
+| | "claude-3-opus-latest" | |
+| | "claude-3-sonnet-20240229" | |
+| | "claude-3-haiku-20240307" | |
### `diffCommit.maxTokens`
@@ -142,7 +158,10 @@ Maximum number of tokens to generate in the response. Higher values allow for lo
Controls randomness in the response. Lower values (like 0.3) produce more focused and consistent commit messages, while higher values introduce more variety.
-For concise, focused commit messages, I recommend the default value of 0.3. If you want a little more creativity or room for the AI model to interpret the reason for changes, try a larger value.
+> [!TIP]
+> For concise, focused & repeatable commit messages, use a value in the range of 0.1 to 0.4.
+>
+> If you want a little more creativity or more room for the AI model to interpret the reason for changes, try a higher value like 0.7.
| **Type** | **Minimum** | **Maximum** | **Default Value** |
| :------- | :---------: | :---------: | :---------------: |
@@ -150,27 +169,27 @@ For concise, focused commit messages, I recommend the default value of 0.3. If y
## Error Handling
-Diff Commit accommodates error handling to provide clear feedback and assist in troubleshooting. The following are the common warning or error scenarios you might encounter.
-
-| | **Error** | **Status Code** |
-| :----------------------- | :--------------------------------------------------------------- | :-------------: |
-| **Git Related** | Git extension not found in VSCode | |
-| | No Git repository found in the current workspace | |
-| | No workspace folder found | |
-| | No staged changes detected | |
-| **API Key Related** | API key is missing or not provided | |
-| | Invalid API key format (should start with sk-ant-api) | |
-| | Failed to access or update secure storage | |
-| **Anthropic API Errors** | Bad Request: Review your prompt and try again | 400 |
-| | Unauthorized: Invalid API key, update your API key and try again | 401 |
-| | Forbidden: Permission denied, update your API key and try again | 403 |
-| | Rate Limited: Too many requests, try again later | 429 |
-| | Server Error: Anthropic API server error | 500 |
-| **Other Errors** | Failed to write commit message to Source Control | |
-| | Failed to open commit message preview | |
-| | No commit message was generated by the API | |
-
-If you encounter any of these errors, Diff Commit will display a message with more details. For persistent issues, please check your configuration and if appropriate, raise an issue on [GitHub](https://github.com/tsdevau/diff-commit/issues).
+Diff Commit provides clear feedback for various scenarios to help troubleshoot issues. Here are the common messages you might encounter:
+
+| | **Error** | **Description** |
+| :----------------------- | :--------------------------------------------------------------- | :------------------------------------------------------------ |
+| **Git Related** | Git extension not found in VSCode | VSCode's Git extension is not installed or enabled |
+| | No Git repository found in the current workspace | The current workspace is not a Git repository |
+| | No workspace folder found | No workspace is open in VSCode |
+| | No changes detected | No staged changes found to generate a commit message for |
+| **API Key Related** | API key is missing or not provided | No API key has been set |
+| | Invalid API key format (should start with sk-ant-api) | The provided API key doesn't match the expected format |
+| | Failed to access or update secure storage | Unable to store or retrieve the API key from secure storage |
+| **Anthropic API Errors** | Bad Request: Review your prompt and try again | Invalid request to the Anthropic API (400) |
+| | Unauthorized: Invalid API key, update your API key and try again | The API key is invalid or expired (401) |
+| | Forbidden: Permission denied, update your API key and try again | The API key doesn't have permission for this operation (403) |
+| | Rate Limited: Too many requests, try again later | You've exceeded your API rate limit (429) |
+| | Server Error: Anthropic API server error | An error occurred on Anthropic's servers (500) |
+| **Other Errors** | Failed to write commit message to Source Control | Unable to update the SCM input box with the generated message |
+| | Failed to open commit message preview | Unable to open the preview editor |
+| | No commit message was generated by the API | The API response didn't contain a valid commit message |
+
+Each error includes specific guidance on how to resolve the issue. For persistent problems, please check your configuration and if appropriate, raise an issue on [GitHub](https://github.com/tsdevau/diff-commit/issues).
## Contributing
diff --git a/package-lock.json b/package-lock.json
index 5f57a9b..f0d3156 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,25 +1,25 @@
{
"name": "diff-commit",
- "version": "0.3.0",
+ "version": "0.3.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "diff-commit",
- "version": "0.3.0",
+ "version": "0.3.1",
"license": "MIT",
"dependencies": {
- "@anthropic-ai/sdk": "^0.30.1"
+ "@anthropic-ai/sdk": "^0.32.1"
},
"devDependencies": {
"@types/jest": "^29.5.14",
- "@types/node": "^22.7.9",
+ "@types/node": "^22.9.0",
"@types/vscode": "^1.94.0",
- "@typescript-eslint/eslint-plugin": "^8.11.0",
- "@typescript-eslint/parser": "^8.11.0",
+ "@typescript-eslint/eslint-plugin": "^8.13.0",
+ "@typescript-eslint/parser": "^8.13.0",
"@vscode/test-electron": "^2.4.1",
"esbuild": "^0.24.0",
- "eslint": "^9.13.0",
+ "eslint": "^9.14.0",
"eslint-plugin-prettier": "^5.2.1",
"eslint-plugin-tailwindcss": "^3.17.5",
"jest": "^29.7.0",
@@ -61,9 +61,9 @@
}
},
"node_modules/@anthropic-ai/sdk": {
- "version": "0.30.1",
- "resolved": "https://registry.npmjs.org/@anthropic-ai/sdk/-/sdk-0.30.1.tgz",
- "integrity": "sha512-nuKvp7wOIz6BFei8WrTdhmSsx5mwnArYyJgh4+vYu3V4J0Ltb8Xm3odPm51n1aSI0XxNCrDl7O88cxCtUdAkaw==",
+ "version": "0.32.1",
+ "resolved": "https://registry.npmjs.org/@anthropic-ai/sdk/-/sdk-0.32.1.tgz",
+ "integrity": "sha512-U9JwTrDvdQ9iWuABVsMLj8nJVwAyQz6QXvgLsVhryhCEPkLsbcP/MXxm+jYcAwLoV8ESbaTTjnD4kuAFa+Hyjg==",
"license": "MIT",
"dependencies": {
"@types/node": "^18.11.18",
@@ -1148,9 +1148,9 @@
}
},
"node_modules/@eslint-community/regexpp": {
- "version": "4.11.1",
- "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.1.tgz",
- "integrity": "sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==",
+ "version": "4.12.1",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz",
+ "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==",
"dev": true,
"license": "MIT",
"engines": {
@@ -1255,9 +1255,9 @@
}
},
"node_modules/@eslint/js": {
- "version": "9.13.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.13.0.tgz",
- "integrity": "sha512-IFLyoY4d72Z5y/6o/BazFBezupzI/taV8sGumxTAVw3lXG9A6md1Dc34T9s1FoD/an9pJH8RHbAxsaEbBed9lA==",
+ "version": "9.14.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.14.0.tgz",
+ "integrity": "sha512-pFoEtFWCPyDOl+C6Ift+wC7Ro89otjigCf5vcuWqWgqNSQbRrpjSvdeE6ofLz4dHmyxD5f7gIdGT4+p36L6Twg==",
"dev": true,
"license": "MIT",
"engines": {
@@ -1288,9 +1288,9 @@
}
},
"node_modules/@humanfs/core": {
- "version": "0.19.0",
- "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.0.tgz",
- "integrity": "sha512-2cbWIHbZVEweE853g8jymffCA+NCMiuqeECeBBLm8dg2oFdjuGJhgN4UAbI+6v0CKbbhvtXA4qV8YR5Ji86nmw==",
+ "version": "0.19.1",
+ "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz",
+ "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -1298,19 +1298,33 @@
}
},
"node_modules/@humanfs/node": {
- "version": "0.16.5",
- "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.5.tgz",
- "integrity": "sha512-KSPA4umqSG4LHYRodq31VDwKAvaTF4xmVlzM8Aeh4PlU1JQ3IG0wiA8C25d3RQ9nJyM3mBHyI53K06VVL/oFFg==",
+ "version": "0.16.6",
+ "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz",
+ "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "@humanfs/core": "^0.19.0",
+ "@humanfs/core": "^0.19.1",
"@humanwhocodes/retry": "^0.3.0"
},
"engines": {
"node": ">=18.18.0"
}
},
+ "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz",
+ "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=18.18"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/nzakas"
+ }
+ },
"node_modules/@humanwhocodes/module-importer": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
@@ -1326,9 +1340,9 @@
}
},
"node_modules/@humanwhocodes/retry": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz",
- "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==",
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz",
+ "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -2187,12 +2201,12 @@
"license": "MIT"
},
"node_modules/@types/node": {
- "version": "22.7.9",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.9.tgz",
- "integrity": "sha512-jrTfRC7FM6nChvU7X2KqcrgquofrWLFDeYC1hKfwNWomVvrn7JIksqf344WN2X/y8xrgqBd2dJATZV4GbatBfg==",
+ "version": "22.9.0",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.9.0.tgz",
+ "integrity": "sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==",
"license": "MIT",
"dependencies": {
- "undici-types": "~6.19.2"
+ "undici-types": "~6.19.8"
}
},
"node_modules/@types/node-fetch": {
@@ -2237,17 +2251,17 @@
"license": "MIT"
},
"node_modules/@typescript-eslint/eslint-plugin": {
- "version": "8.11.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.11.0.tgz",
- "integrity": "sha512-KhGn2LjW1PJT2A/GfDpiyOfS4a8xHQv2myUagTM5+zsormOmBlYsnQ6pobJ8XxJmh6hnHwa2Mbe3fPrDJoDhbA==",
+ "version": "8.13.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.13.0.tgz",
+ "integrity": "sha512-nQtBLiZYMUPkclSeC3id+x4uVd1SGtHuElTxL++SfP47jR0zfkZBJHc+gL4qPsgTuypz0k8Y2GheaDYn6Gy3rg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/regexpp": "^4.10.0",
- "@typescript-eslint/scope-manager": "8.11.0",
- "@typescript-eslint/type-utils": "8.11.0",
- "@typescript-eslint/utils": "8.11.0",
- "@typescript-eslint/visitor-keys": "8.11.0",
+ "@typescript-eslint/scope-manager": "8.13.0",
+ "@typescript-eslint/type-utils": "8.13.0",
+ "@typescript-eslint/utils": "8.13.0",
+ "@typescript-eslint/visitor-keys": "8.13.0",
"graphemer": "^1.4.0",
"ignore": "^5.3.1",
"natural-compare": "^1.4.0",
@@ -2271,16 +2285,16 @@
}
},
"node_modules/@typescript-eslint/parser": {
- "version": "8.11.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.11.0.tgz",
- "integrity": "sha512-lmt73NeHdy1Q/2ul295Qy3uninSqi6wQI18XwSpm8w0ZbQXUpjCAWP1Vlv/obudoBiIjJVjlztjQ+d/Md98Yxg==",
+ "version": "8.13.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.13.0.tgz",
+ "integrity": "sha512-w0xp+xGg8u/nONcGw1UXAr6cjCPU1w0XVyBs6Zqaj5eLmxkKQAByTdV/uGgNN5tVvN/kKpoQlP2cL7R+ajZZIQ==",
"dev": true,
"license": "BSD-2-Clause",
"dependencies": {
- "@typescript-eslint/scope-manager": "8.11.0",
- "@typescript-eslint/types": "8.11.0",
- "@typescript-eslint/typescript-estree": "8.11.0",
- "@typescript-eslint/visitor-keys": "8.11.0",
+ "@typescript-eslint/scope-manager": "8.13.0",
+ "@typescript-eslint/types": "8.13.0",
+ "@typescript-eslint/typescript-estree": "8.13.0",
+ "@typescript-eslint/visitor-keys": "8.13.0",
"debug": "^4.3.4"
},
"engines": {
@@ -2300,14 +2314,14 @@
}
},
"node_modules/@typescript-eslint/scope-manager": {
- "version": "8.11.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.11.0.tgz",
- "integrity": "sha512-Uholz7tWhXmA4r6epo+vaeV7yjdKy5QFCERMjs1kMVsLRKIrSdM6o21W2He9ftp5PP6aWOVpD5zvrvuHZC0bMQ==",
+ "version": "8.13.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.13.0.tgz",
+ "integrity": "sha512-XsGWww0odcUT0gJoBZ1DeulY1+jkaHUciUq4jKNv4cpInbvvrtDoyBH9rE/n2V29wQJPk8iCH1wipra9BhmiMA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "8.11.0",
- "@typescript-eslint/visitor-keys": "8.11.0"
+ "@typescript-eslint/types": "8.13.0",
+ "@typescript-eslint/visitor-keys": "8.13.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -2318,14 +2332,14 @@
}
},
"node_modules/@typescript-eslint/type-utils": {
- "version": "8.11.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.11.0.tgz",
- "integrity": "sha512-ItiMfJS6pQU0NIKAaybBKkuVzo6IdnAhPFZA/2Mba/uBjuPQPet/8+zh5GtLHwmuFRShZx+8lhIs7/QeDHflOg==",
+ "version": "8.13.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.13.0.tgz",
+ "integrity": "sha512-Rqnn6xXTR316fP4D2pohZenJnp+NwQ1mo7/JM+J1LWZENSLkJI8ID8QNtlvFeb0HnFSK94D6q0cnMX6SbE5/vA==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/typescript-estree": "8.11.0",
- "@typescript-eslint/utils": "8.11.0",
+ "@typescript-eslint/typescript-estree": "8.13.0",
+ "@typescript-eslint/utils": "8.13.0",
"debug": "^4.3.4",
"ts-api-utils": "^1.3.0"
},
@@ -2343,9 +2357,9 @@
}
},
"node_modules/@typescript-eslint/types": {
- "version": "8.11.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.11.0.tgz",
- "integrity": "sha512-tn6sNMHf6EBAYMvmPUaKaVeYvhUsrE6x+bXQTxjQRp360h1giATU0WvgeEys1spbvb5R+VpNOZ+XJmjD8wOUHw==",
+ "version": "8.13.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.13.0.tgz",
+ "integrity": "sha512-4cyFErJetFLckcThRUFdReWJjVsPCqyBlJTi6IDEpc1GWCIIZRFxVppjWLIMcQhNGhdWJJRYFHpHoDWvMlDzng==",
"dev": true,
"license": "MIT",
"engines": {
@@ -2357,14 +2371,14 @@
}
},
"node_modules/@typescript-eslint/typescript-estree": {
- "version": "8.11.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.11.0.tgz",
- "integrity": "sha512-yHC3s1z1RCHoCz5t06gf7jH24rr3vns08XXhfEqzYpd6Hll3z/3g23JRi0jM8A47UFKNc3u/y5KIMx8Ynbjohg==",
+ "version": "8.13.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.13.0.tgz",
+ "integrity": "sha512-v7SCIGmVsRK2Cy/LTLGN22uea6SaUIlpBcO/gnMGT/7zPtxp90bphcGf4fyrCQl3ZtiBKqVTG32hb668oIYy1g==",
"dev": true,
"license": "BSD-2-Clause",
"dependencies": {
- "@typescript-eslint/types": "8.11.0",
- "@typescript-eslint/visitor-keys": "8.11.0",
+ "@typescript-eslint/types": "8.13.0",
+ "@typescript-eslint/visitor-keys": "8.13.0",
"debug": "^4.3.4",
"fast-glob": "^3.3.2",
"is-glob": "^4.0.3",
@@ -2386,16 +2400,16 @@
}
},
"node_modules/@typescript-eslint/utils": {
- "version": "8.11.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.11.0.tgz",
- "integrity": "sha512-CYiX6WZcbXNJV7UNB4PLDIBtSdRmRI/nb0FMyqHPTQD1rMjA0foPLaPUV39C/MxkTd/QKSeX+Gb34PPsDVC35g==",
+ "version": "8.13.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.13.0.tgz",
+ "integrity": "sha512-A1EeYOND6Uv250nybnLZapeXpYMl8tkzYUxqmoKAWnI4sei3ihf2XdZVd+vVOmHGcp3t+P7yRrNsyyiXTvShFQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.4.0",
- "@typescript-eslint/scope-manager": "8.11.0",
- "@typescript-eslint/types": "8.11.0",
- "@typescript-eslint/typescript-estree": "8.11.0"
+ "@typescript-eslint/scope-manager": "8.13.0",
+ "@typescript-eslint/types": "8.13.0",
+ "@typescript-eslint/typescript-estree": "8.13.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -2409,13 +2423,13 @@
}
},
"node_modules/@typescript-eslint/visitor-keys": {
- "version": "8.11.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.11.0.tgz",
- "integrity": "sha512-EaewX6lxSjRJnc+99+dqzTeoDZUfyrA52d2/HRrkI830kgovWsmIiTfmr0NZorzqic7ga+1bS60lRBUgR3n/Bw==",
+ "version": "8.13.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.13.0.tgz",
+ "integrity": "sha512-7N/+lztJqH4Mrf0lb10R/CbI1EaAMMGyF5y0oJvFoAhafwgiRA7TXyd8TFn8FC8k5y2dTsYogg238qavRGNnlw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@typescript-eslint/types": "8.11.0",
+ "@typescript-eslint/types": "8.13.0",
"eslint-visitor-keys": "^3.4.3"
},
"engines": {
@@ -2456,9 +2470,9 @@
}
},
"node_modules/acorn": {
- "version": "8.13.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.13.0.tgz",
- "integrity": "sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w==",
+ "version": "8.14.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz",
+ "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==",
"dev": true,
"license": "MIT",
"bin": {
@@ -3558,22 +3572,22 @@
}
},
"node_modules/eslint": {
- "version": "9.13.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.13.0.tgz",
- "integrity": "sha512-EYZK6SX6zjFHST/HRytOdA/zE72Cq/bfw45LSyuwrdvcclb/gqV8RRQxywOBEWO2+WDpva6UZa4CcDeJKzUCFA==",
+ "version": "9.14.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.14.0.tgz",
+ "integrity": "sha512-c2FHsVBr87lnUtjP4Yhvk4yEhKrQavGafRA/Se1ouse8PfbfC/Qh9Mxa00yWsZRlqeUB9raXip0aiiUZkgnr9g==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
- "@eslint-community/regexpp": "^4.11.0",
+ "@eslint-community/regexpp": "^4.12.1",
"@eslint/config-array": "^0.18.0",
"@eslint/core": "^0.7.0",
"@eslint/eslintrc": "^3.1.0",
- "@eslint/js": "9.13.0",
+ "@eslint/js": "9.14.0",
"@eslint/plugin-kit": "^0.2.0",
- "@humanfs/node": "^0.16.5",
+ "@humanfs/node": "^0.16.6",
"@humanwhocodes/module-importer": "^1.0.1",
- "@humanwhocodes/retry": "^0.3.1",
+ "@humanwhocodes/retry": "^0.4.0",
"@types/estree": "^1.0.6",
"@types/json-schema": "^7.0.15",
"ajv": "^6.12.4",
@@ -3581,9 +3595,9 @@
"cross-spawn": "^7.0.2",
"debug": "^4.3.2",
"escape-string-regexp": "^4.0.0",
- "eslint-scope": "^8.1.0",
- "eslint-visitor-keys": "^4.1.0",
- "espree": "^10.2.0",
+ "eslint-scope": "^8.2.0",
+ "eslint-visitor-keys": "^4.2.0",
+ "espree": "^10.3.0",
"esquery": "^1.5.0",
"esutils": "^2.0.2",
"fast-deep-equal": "^3.1.3",
@@ -3667,9 +3681,9 @@
}
},
"node_modules/eslint-scope": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.1.0.tgz",
- "integrity": "sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==",
+ "version": "8.2.0",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz",
+ "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==",
"dev": true,
"license": "BSD-2-Clause",
"dependencies": {
@@ -3708,9 +3722,9 @@
}
},
"node_modules/eslint/node_modules/eslint-visitor-keys": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.1.0.tgz",
- "integrity": "sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz",
+ "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -3734,15 +3748,15 @@
}
},
"node_modules/espree": {
- "version": "10.2.0",
- "resolved": "https://registry.npmjs.org/espree/-/espree-10.2.0.tgz",
- "integrity": "sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==",
+ "version": "10.3.0",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz",
+ "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==",
"dev": true,
"license": "BSD-2-Clause",
"dependencies": {
- "acorn": "^8.12.0",
+ "acorn": "^8.14.0",
"acorn-jsx": "^5.3.2",
- "eslint-visitor-keys": "^4.1.0"
+ "eslint-visitor-keys": "^4.2.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -3752,9 +3766,9 @@
}
},
"node_modules/espree/node_modules/eslint-visitor-keys": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.1.0.tgz",
- "integrity": "sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz",
+ "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==",
"dev": true,
"license": "Apache-2.0",
"engines": {
diff --git a/package.json b/package.json
index 9667dd6..4134bb9 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "diff-commit",
"displayName": "Diff Commit",
- "version": "0.3.0",
+ "version": "0.3.1",
"description": "Generate detailed Git commit messages following the conventional commit specification using Anthropic's AI models like Claude 3.5 Sonnet.",
"categories": [
"AI",
@@ -65,6 +65,7 @@
"default": "claude-3-5-sonnet-latest",
"enum": [
"claude-3-5-sonnet-latest",
+ "claude-3-5-haiku-latest",
"claude-3-opus-latest",
"claude-3-sonnet-20240229",
"claude-3-haiku-20240307"
@@ -139,17 +140,17 @@
}
},
"dependencies": {
- "@anthropic-ai/sdk": "^0.30.1"
+ "@anthropic-ai/sdk": "^0.32.1"
},
"devDependencies": {
"@types/jest": "^29.5.14",
- "@types/node": "^22.7.9",
+ "@types/node": "^22.9.0",
"@types/vscode": "^1.94.0",
- "@typescript-eslint/eslint-plugin": "^8.11.0",
- "@typescript-eslint/parser": "^8.11.0",
+ "@typescript-eslint/eslint-plugin": "^8.13.0",
+ "@typescript-eslint/parser": "^8.13.0",
"@vscode/test-electron": "^2.4.1",
"esbuild": "^0.24.0",
- "eslint": "^9.13.0",
+ "eslint": "^9.14.0",
"eslint-plugin-prettier": "^5.2.1",
"eslint-plugin-tailwindcss": "^3.17.5",
"jest": "^29.7.0",