All notable changes to the "wtf-commit" extension will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Slimmer provider list: Built-in providers are now DeepSeek, Gemini, OpenAI, OpenRouter, and Custom. MiMo, GLM, Z.AI, and NVIDIA NIM were removed from Settings.
- Legacy provider auto-migration: If Provider was MiMo / GLM / Z.AI / NVIDIA NIM, activation migrates that scope to Custom, fills Base URL + Model from the old defaults (or Provider Overrides), and copies the API key to Custom when Custom has no key yet.
- Thinking disable by host: Custom endpoints on DeepSeek / GLM / Z.AI hosts still send
thinking: { type: "disabled" }so migrated users keep fast responses. - Custom commit language off Settings UI:
wtfCommit.customCommitMessageLanguageis no longer shown in Settings; set it insettings.jsonwhen Commit Message Language isCustom. - Faster happy path: Set API Key defaults to the current/DeepSeek provider with a Get API Key link; mixed staged/unstaged no longer blocks (status tip once); AI repair runs automatically without a modal; post-commit tip when unstaged files remain; snapshot-changed offers Generate Again.
- DeepSeek-first guidance: Provider list and docs push DeepSeek as the single default path to reduce choice overload.
- UI language follows VS Code: Removed
wtfCommit.uiLanguage. The extension UI now tracksvscode.env.language(zh*→ Chinese, otherwise English). - System prompt off Settings UI:
wtfCommit.promptis no longer shown in Settings; power users can still override it insettings.json.
- Leaner settings: Removed rarely used knobs —
temperature(fixed at1; omitted for Gemini),smartStage(always on),confirmBeforeCommit,warnOnTruncatedDiff,changelogPopup,maxDiffChars, andmaxUntrackedFiles(built-in defaults). Everyday flow is Provider + Auto Commit / Auto Push (+ Confirm Before Push).
- Gemini Default Model: Updated the default Gemini model from
gemini-3.1-flash-liteto GAgemini-3.5-flash-lite.
- Generation workflow integration tests: Cover generation, local/AI repair, staged-snapshot verification, commit, and manual-message mode through injectable Git/LLM ports.
- Provider manifest synchronization: Built-in provider defaults now live in one manifest, with release-time checks that keep
package.jsonand both README provider tables aligned.
- Generate flow architecture: Split Git/diff preparation, generation/commit state transitions, and auto-push handling out of
runGeneratefor clearer ownership and testability. - Provider architecture: Separate provider protocol adapters from the bounded HTTP/SSE transport while preserving existing endpoint and streaming compatibility.
- Authoritative staged snapshots: Compare
git diff --cached --name-status -zplus the staged diff instead of depending on asynchronously refreshed VS Code Git state. - Strict test linting: Test sources are explicitly linted and warnings now fail the lint command.
- Quoted diff paths: Correctly parse paths containing spaces and Git C-style quoted UTF-8 escapes, so filtering and diff compaction still apply.
- Malformed settings: Invalid runtime values in provider overrides, ignore paths, temperature, and diff limits are safely ignored or clamped instead of throwing.
- Bounded provider responses: HTTP bodies, SSE streams, error bodies, and individual SSE events now have memory limits.
- Changelog popup: Toggling the setting applies without reload; when the popup is off, the last-seen version is still tracked so enabling later does not replay stale update notices.
- Custom provider errors: Missing Base URL / Model shows a localized message with an Open Settings action instead of a generic failure.
- Legacy override migration: Partial
providerOverridesentries now merge missing fields from legacy per-provider keys instead of skipping the whole provider. - Auto Push misconfig: Warn on activate (not only when the setting changes) if Auto Push is on while Auto Commit is off.
- Generate / Set API Key wait for settings migration to finish so upgrades do not briefly use pre-migration defaults.
- Settings reorganization: Split into WTF Commit (basics) and WTF Commit › Advanced so everyday options (provider, languages, auto commit/push, confirms) are not buried under prompt/diff/endpoint knobs.
- Clearer language naming:
wtfCommit.language→wtfCommit.commitMessageLanguage,wtfCommit.customLanguage→wtfCommit.customCommitMessageLanguage(legacy keys still read; migrated on activate). - Single override path: Stopped reading legacy
wtfCommit.{Provider}.baseUrl/model; values are migrated intoproviderOverrideson activate. - Install docs: README (EN/ZH) lists VS Code Marketplace (
CoderTesla.wtf-commit) with auto-update, plus Open VSX for Cursor; Marketplace badges added; VSIX kept as optional offline path. - Dual-market release:
publish:vscode/release:allpackage with temporary publisherCoderTeslafor Microsoft while keepingcoderteslafor Open VSX (scripts/run-with-publisher.mjs).
- Default provider: DeepSeek (
deepseek-v4-flash) instead of OpenAI — better default for fast, low-cost commit messages. - Automation defaults: Auto Commit on, Confirm Before Commit off for a smooth generate → commit shortcut; Auto Push off and Confirm Before Push on so new users never surprise-push (power users can enable Auto Push and optionally disable push confirm).
- Growth-oriented docs: Stronger marketplace description and keywords; README (EN/ZH) two-phase onboarding (configure once / daily shortcut) and feedback CTA. Demo GIF still pending.
- Working-tree confirmation: When nothing is staged and Auto Commit is off, confirm before generating from the working tree (with optional “Don’t Remind Me”).
- Lightweight staged snapshot: Auto Commit compares an index signature + content hash instead of raw multi-megabyte string equality.
- Stream preview cleanup: Live SCM preview applies the same light normalize path as the final message (e.g. strips complete markdown fences).
- Module split: Generate / Set API Key commands, diff-source planner, log/errors helpers extracted from the monolithic entrypoint for clearer ownership and unit tests.
- Marketplace badges: README header badges now highlight only DeepSeek and Gemini as recommended models (other providers remain fully supported).
- Generate single-flight lock: Concurrent Generate triggers are ignored while a run is in progress.
- Local Conventional Commits repair: Spacing, full-width colon, and over-long subject fixes run before the AI Repair dialog.
- Repair diff context: AI Repair prompts include a capped copy of the (already filtered) diff.
- Cancel / empty generation: SCM input box is force-restored to the original intent instead of leaving a partial stream.
- Large-diff budget: Summarized diffs are hard-capped to
maxDiffChars. - Smart Stage off: Missing staged changes shows a localized, actionable error instead of a generic English exception.
- Fallback timeout budget: Non-streaming fallback after an empty stream now uses a fresh AbortController with the remaining once-timeout, instead of sharing a possibly already-expired timer.
- Non-streaming field compatibility: Non-streaming responses now accept the same alternate OpenAI-compatible shapes (
message.text,choices[0].text, top-levelcontent/text/output_text). - Streamed think markup: Unclosed
<think>blocks are held back from the UI preview until closed, so raw think tags are not flashed into the SCM input.
- Streaming fallback: When a streaming response returns 2xx but yields no parsable content, automatically retry once without streaming.
- SSE final buffer: Process the last SSE
data:line even when the stream ends without a trailing newline. - Stream field compatibility: Accept alternate OpenAI-compatible stream shapes (
delta.text,delta.output_text,message.content,choices[0].text, and top-levelcontent/text/output_text).
- Release-only bump: Bumped version to republish on Open VSX after 1.11.1 was already published.
- NVIDIA NIM Provider: Added NVIDIA NIM as a built-in OpenAI-compatible provider with default model
nvidia/nemotron-3-super-120b-a12band base URLhttps://integrate.api.nvidia.com/v1.
- Leaner LLM Context: Reduced default diff budget (
maxDiffChars20k → 10k), per-file caps, and new-file preview lines (400 → 30) so commit generation sends less text to the model — faster and cheaper with similar message quality. - Compact Multi-File Diffs: When more than 12 files change, only a short sample hunk per file is sent automatically.
- Large Diff Summary: Oversized diffs now include a file list plus one sample hunk per file instead of long balanced partial slices.
- Default ignorePaths: Pre-filters
*.snap,*.min.js,*.min.css,.gen.ts, and_generatedfrom AI context. - System Prompt: Shortened the default prompt to cut fixed per-request overhead; explicitly requires mentioning newly added files.
- GLM / Z.AI Default Model: Switched from the rate-limited free
glm-4.7-flashto paidglm-4.7-flashx. README now recommends DeepSeek V4 Flash and Gemini 3.1 Flash Lite for speed; notes that GLM FlashX is often slower. - README Terminology: Clarified three concepts — Default Provider (OpenAI), provider default (per-provider Model/Base URL), and our recommendation (editorial picks).
- GLM / Z.AI / DeepSeek Thinking: Automatically send
thinking: { type: "disabled" }so GLM-4.7+ models return answercontentin streaming mode instead of onlyreasoning_content(which caused slow responses and “No content in streaming response” errors).
- GLM API Key URL: Updated the China GLM API Key link to open.bigmodel.cn/apikey/platform.
- Marketplace Badges: README badges now highlight recommended commit models — free GLM / Z.AI, DeepSeek V4 Flash, MiMo V2.5, and Gemini 3.1 Flash Lite.
- API Key Links: README now lists official API Key pages for each built-in provider.
- Gitignore: Ignore
.pnpm-store/so local pnpm cache does not show up in git status.
- Z.AI Provider: Added the international Z.AI endpoint (
https://api.z.ai/api/paas/v4) with default modelglm-4.7-flash(free per Z.AI pricing). Separate from the China GLM provider onopen.bigmodel.cn— API keys are not interchangeable.
- MiMo Provider: Added Xiaomi MiMo (
mimo-v2.5) with OpenAI-compatible endpointhttps://api.xiaomimimo.com/v1.
- GLM Default Model: Switched from
glm-5.1to the freeglm-4.7-flashon bigmodel.cn. - Model Pricing Guide: README includes a per-provider pricing comparison table and commit-message recommendations.
- Moonshot Provider: Removed built-in Moonshot/Kimi support — Kimi models are significantly pricier than flash-tier options for commit messages. Former Moonshot users can switch to Custom with
https://api.moonshot.cn/v1if needed.
- Gemini Default Model: Updated the default Gemini model from
gemini-3.5-flashto the GAgemini-3.1-flash-lite. - Marketplace Badges: Replaced the Gemini 3.5 Flash badge with Gemini 3.1 Flash Lite and added a DeepSeek V4 Flash badge.
- Model Recommendation: README now suggests lightweight, cost-effective models (e.g. Gemini 3.1 Flash Lite, DeepSeek V4 Flash) for commit-message generation.
- UI Language setting now visible & ordered:
wtfCommit.uiLanguagewas stuck withorder: 0alongside many other settings, burying it. All settings now have explicitordervalues grouped by purpose (Interface → Automation → Safety → AI → Diff Filtering) so the settings page reads top-to-bottom in the order you actually use them. - Setting descriptions clarified: Auto Commit / Auto Push / Smart Stage / Confirm Before Commit / Confirm Before Push now lead with a bolded group label and spell out their dependencies, removing the previous ambiguity between the two confirm toggles.
- Auto Push self-correction: Turning on Auto Push while Auto Commit is off now triggers an inline notification offering a one-click "Enable Auto Commit" action, instead of silently no-oping until the next generation.
- UI Internationalization (中/英): New
wtfCommit.uiLanguagesetting (en/zh). All extension UI — buttons, prompts, notifications, warnings — now localizes independently of the commit-message language. Chinese users get a fully localized experience. - Error Response Sanitization: Provider error bodies shown to the user are trimmed and redacted (strips echoed
sk-...keys,Bearertokens,x-goog-api-keyvalues) to avoid leaking credentials back in error messages.
- Actionable Auto-Push-Without-Commit Warning: When Auto Push is on but Auto Commit is off, the warning now offers an "Open Settings" action instead of a fleeting status-bar message.
- Push Progress With Context: The push progress notification and success message now include the remote/branch (e.g.
origin/main) when available. - Multi-Repository Memory: With multiple Git repos open, WTF Commit now remembers the last-used repository and reuses it (instead of showing the picker every time) until you switch.
- Intent Preservation: If generation fails, is cancelled, or returns an empty message, the text you had typed in the SCM input box is restored so you can retry without retyping your hint. A successful generation is never clobbered.
- Internal Refactor & Test Coverage: Extracted push-failure classification (
src/push-failure.ts) and streaming/maskApiKeyhelpers (src/ui.ts) out ofextension.tsso the core logic is unit-testable. Addedpush-failure.test.tsandui.test.ts. The extension entry now loads cleanly with all imports resolved.
- Smarter Retry Backoff: Retries now use exponential backoff with equal jitter (instead of fixed linear delays), and respect the server's
Retry-Afterheader on 429/503 responses to avoid re-hitting rate limits. - Stricter Conventional-Commit Validation: The validator now accepts the
revert:type and checks the 72-character subject-line limit. When AI Repair is offered, it receives a specific reason (e.g. "first line is 90 characters") instead of a generic format message, and the post-repair warning lists exactly which issues remain. - Stronger Message Normalization: Strips bold/italic/inline-code wrapping and blockquote prefixes that some models add around the whole message, plus interior code-fence lines.
- Full Reasoning Trace: All
reasoning_detailssegments are now joined (previously only the first was kept), so DeepSeek/o-series thinking traces aren't truncated in the log.
- Streaming Preview in SCM Input Box: The commit message now streams live into the Source Control input box as the AI generates it, so you can watch the draft form and cancel early if it goes off track. The progress notification is throttled to avoid flicker.
- Non-Destructive Set API Key: Setting an API key for a provider no longer forcibly switches your active provider. You're asked whether to switch, and the picker shows a masked key hint (e.g.
sk-1••••wxyz) so you can tell keys apart. - "Don't Remind Me" for Mixed-Stage Warning: The recurring "staged and unstaged changes detected" prompt now offers a Don't Remind Me option (persisted).
- Friendlier First-Run Guidance: The welcome prompt no longer permanently dismisses itself if you close it or click Set API Key — only an explicit "Don't Show Again" hides it for good, so a slip no longer buries the setup nudge forever.
- Status Bar Toggle: New
wtfCommit.showStatusBarItemsetting to hide the status bar button. - Changelog Popup Toggle: New
wtfCommit.changelogPopupsetting to disable the post-update changelog notification. - Truncation Warnings: New
wtfCommit.warnOnTruncatedDiffsetting; the extension now warns when a large diff is summarized or when untracked files are omitted due to limits. - Auto-Push Safety Net: New
wtfCommit.confirmAutoPushsetting that asks for an extra confirmation before pushing, so one-keystroke auto-push flows can't surprise you. - Custom Diff Ignore List: New
wtfCommit.ignorePathssetting to exclude additional files/directories/extensions (e.g.generated,*.snap,.gen.ts) from the AI context. - Configurable Diff Limits: New
wtfCommit.maxDiffCharsandwtfCommit.maxUntrackedFilessettings to tune how much context is sent to the AI. - Show Output Command: New
WTF Commit: Show Outputcommand to open the extension log channel for troubleshooting.
- Package Privacy Guard: Expanded VSIX exclusions for environment files, credentials, private keys, development metadata, and other non-runtime files.
- Package Allowlist Audit: Packaging now fails if any file outside the approved runtime and documentation allowlist would enter the VSIX.
- Marketplace Badges: Replaced the low-signal GitHub Stars badge with VS Code compatibility and Gemini 3.5 Flash support badges.
- Release Workflow: Added source commit and remote push steps so repository code stays aligned with each Open VSX release.
- Native Gemini Integration: Replaced the OpenAI-compatible Gemini endpoint with Google's native Interactions REST API, including native authentication, request/response mapping, SSE streaming, and
minimalthinking for lower latency. - Gemini Default Update: Updated the default Gemini model to
gemini-3.5-flashand the base URL tohttps://generativelanguage.googleapis.com/v1beta. - Safer AI Context: Sensitive credential files are excluded from model context, and common tokens, secret assignments, and private keys are redacted from diffs.
- Consistent Auto Commits: Smart Stage now stages before generation and verifies the staged snapshot immediately before committing, preventing later edits from entering an unrelated commit.
- Provider Configuration Isolation: Built-in providers no longer inherit the Custom provider's global endpoint or model settings, avoiding incompatible protocol combinations.
- Bounded Retry Flow: Requests only retry transient failures and now share one overall timeout instead of resetting the timeout for every attempt.
- More Representative Large Diffs: Large change sets allocate context across files instead of only sending the beginning of the combined diff.
- Smaller Generation Budget: Commit message output is capped at 512 tokens to reduce unnecessary latency and cost.
- Safer Mixed Change Flow: When staged and unstaged changes both exist, generation now confirms that only staged changes will be used before calling the model.
- Clearer Auto Push Feedback: If Auto Push is enabled without Auto Commit, the extension now explains the dependency instead of silently ignoring the push setting.
- More Accurate Streaming Errors: Streaming generation now reports cancellation and timeout cases with the correct error category instead of a generic network failure.
- Repair Failure Recovery: If AI Repair fails, the original generated message stays in the Source Control input box for manual editing.
- Package Cleanup: Removed stale temporary files accidentally included in the v1.3.1 VSIX.
- New Icon: Replaced the dark-background icon with a clean sparkle icon on transparent background for better visibility across all VS Code themes.
- Status Bar Button: A persistent
$(sparkle) WTFbutton in the status bar for one-click commit message generation — no need to remember the shortcut. - First-Use Guidance: New users are greeted with a welcome notification prompting them to set up an API key, instead of discovering the requirement only after triggering generation.
- Keybinding Always Available: Removed the
editorTextFocusrestriction fromCmd+Alt+G/Ctrl+Alt+G. The shortcut now works from anywhere — including the Source Control panel. - Node Types Upgraded:
@types/nodeupgraded from16.xto18.x, matching the VS Code extension host runtime. - Stronger ESLint Rules: Added
no-explicit-any,no-unused-vars,consistent-type-imports,prefer-const,no-console, andno-duplicate-importsrules with type-aware linting. - Cleaner VSIX Package:
.vscodeignorenow explicitly excludes.env.example,.DS_Store,.git/, andassets/icon-drafts/.
- Temperature Default: Changed default temperature from
0.7to1.0, aligning with recommendations from Gemini, DeepSeek, and other modern model providers. - Removed MiniMax Provider: MiniMax has been removed from the built-in provider list. Users who need MiniMax can still use the Custom provider with their own Base URL and model.
- Automatic Retry: Network errors and transient API failures (5xx, timeouts) now retry up to 2 times with exponential backoff, reducing false failures on flaky connections.
- Modular Filter Layer: Extracted path filtering and binary detection into a dedicated
filters.tsmodule for better testability and reuse. - Improved Config Errors: Missing Base URL or Model for Custom provider now shows actionable guidance pointing to the correct settings path.
- Binary Detection Tests: 5 new unit tests for the
isLikelyBinaryutility (total: 41 tests).
- Streaming Output: LLM responses now stream in real-time via SSE, showing generation progress as it happens. Significantly reduces perceived latency, especially with reasoning models.
- Configurable Temperature: New
wtfCommit.temperaturesetting (default0.7) gives users control over generation creativity. Previously hardcoded at1.0. - Unit Test Suite: Added 36 unit tests covering commit message normalization, Conventional Commits validation, URL endpoint building, and diff path filtering. New
test:unitscript for fast local testing.
- Stricter TypeScript Checks: Enabled
noImplicitReturns,noFallthroughCasesInSwitch, andnoUnusedParametersfor better code safety. - Codebase Cleanup: Removed dead empty files (
src/llm.ts,src/llm/index.ts) and stale build artifacts.
- Gemini Model GA Update: Updated default Gemini model from
gemini-3.1-flash-lite-previewtogemini-3.1-flash-litefollowing the model's General Availability release.
- Runtime Request Compatibility: Replaced the global
fetchcall with a Nodehttp/httpsrequest path and aligned Node types with the supported VS Code extension host range. - Smarter Staged Diff Handling: When staged changes exist, generated messages now stay focused on staged content instead of mixing in unrelated untracked files.
- Safer Untracked File Context: Added binary detection and broader generated-file filtering before untracked file content is sent to the model.
- Provider Type Safety: Tightened provider typings so built-in provider names are checked as explicit string literals.
- Smaller Marketplace Icon: Resized the PNG icon from 1024x1024 to 256x256, reducing package size while keeping a crisp marketplace image.
- Refined Marketplace Icon: Replaced the extension logo with a simpler abstract commit-and-sparkle mark for clearer marketplace recognition.
- Default Model Refresh: Updated provider defaults to DeepSeek
deepseek-v4-flash, MiniMaxMiniMax-M2.7, Moonshot/Kimikimi-k2.6, and GLMglm-5.1.
- Push Success Notification Restored: Auto-push now shows a clear VS Code information notification again after a successful push, alongside the status bar success signal.
- Notification Hierarchy Refresh: Success and passive states now use status bar feedback with clearer codicon symbols, making commit creation, commit success, push progress, push success, cancellation, and empty-diff states easier to scan.
- Cleaner Commit Confirmation: Auto-commit confirmation now uses a modal title plus detail area for the generated message, making long commit messages easier to review before execution.
- Faster Multi-Repo Picking: Repository selection now shows the folder name first and the full path as supporting context, which improves scan speed in multi-root workspaces.
- Auto Push False Failures: Auto-push no longer reports a hard failure when the underlying
git pushsucceeds but VS Code's follow-up repository refresh throws an error. - Safer Push Recovery: The
Undo Commitaction is now withheld for post-push refresh failures to avoid encouraging a local undo after the commit may already be on the remote. - Clearer Git Diagnostics: Git operation errors now surface the underlying command and
stderroutput instead of the genericFailed to execute gitmessage when available.
- Package Cleanup: Excluded the entire
scripts/directory from both the repository package and the published VSIX, and moved Open VSX publishing to an inline release command.
- Zero-Config Intent Hint: If you type a short hint in the Source Control input box before generation, WTF Commit now uses it as an intent cue so the resulting message stays focused on what you meant to commit.
- AI Repair Action: When a generated title does not look like a Conventional Commit, the extension now offers an
AI Repairaction to quickly rewrite the message without leaving the flow.
- Cleaner Diff Context: Diff filtering now omits more non-code noise up front, including lockfiles, assets, common build outputs, and oversized file patches while still preserving useful file-level context for the model.
- Settings Overhaul: Simplified the extension configuration page by consolidating 16 separate AI provider Base URL/Model settings into a single
wtfCommit.providerOverridesJSON configuration block, drastically reducing UI clutter.
- Engine Compatibility: Cleaned up
activationEventswarnings by explicitly targeting the VS Code^1.75.0engine.
- Interactive Commit Flow: Introduce an 'Edit in Input Box' action during the auto-commit confirmation dialog, letting users seamlessly review and tweak AI-generated messages before committing.
- Smart Diff Scaling: Intelligently skips unhelpful
lockfiles in diffs preventing token overrun on massive commits, and keeping the logic strictly focused on your source changes. - Extended Reasoner Timeout: Deep-thinking models (e.g., DeepSeek Reasoner, MiniMax) automatically receive double the timeout allocation (up to 90s) to prevent generation failures.
- Architecture Overhaul: Internal codebase rewritten and split into modular domains (
git,llm,diff,config) ensuring better long-term reliability and maintainability.
- Default Model Update: Updated default model for Gemini to
gemini-3.1-flash-lite-preview.
- Provider-specific Configuration: Added independent
Base URLandModelsettings for each AI provider. Switching providers now correctly maintains their respective custom values without interference.
- UI Enhancement: Improved the provider selection menu (
Set API Key) to display API key setup status and current provider indicator.
- New AI Provider: Added MiniMax with support for separate reasoning split (
MiniMax-M2.5). Reasoning/Thinking process is logged to theWTF Commitoutput channel.
- Kimi Model Update: Updated default model for Moonshot (Kimi) to
kimi-k2-turbo-previewfor enhanced performance.
- API Optimization: Increased default temperature to
1.0andmax_tokensto1024for better response quality and compatibility.
- Default Models Update: Updated default model for Moonshot to
kimi-k2.5and GLM toglm-5.
- Cancelable Generation: The commit-generation progress notification now supports cancellation.
- Diagnostic Logging: Added a dedicated
WTF Commitoutput channel to help troubleshoot runtime/API issues.
- Command Registration: Added
WTF Commit: Set API Keyto command contributions and activation events. - Untracked Diff Optimization: Added limits for large untracked files and long file content when building pseudo-diff.
- Request Reliability: Added timeout handling and clearer error categories for authentication, rate limit, timeout, network, and invalid API responses.
- Message Normalization: Automatically strips accidental markdown fences and surrounding blank lines in generated commit messages.
- Updated OpenRouter default model to
openrouter/freewhile keeping the OpenAI-compatible base URL ashttps://openrouter.ai/api/v1.
- Default Model Update: Updated the default OpenAI model to
gpt-5-nano.
- Improved Error Handling: Fixed misleading error messages during Git operations. Now displays specific error messages for each stage:
Failed to stage changesforgit adderrorsFailed to commitforgit commiterrorsCommit successful, but push failedforgit pusherrors
- Package Optimization: Excluded
UPDATEFLOW.mdandtestfiles from the final extension package (VSIX) to reduce size and remove development-only files.
- Support for Untracked Files: Fixed the "No diff content found" error when only new (untracked) files are present. The extension now intelligently reads content from these files and generates a pseudo-diff for AI processing.
- Optimization for Large Refactors: Improved support for large commits (e.g., massive file moves or renames). If the diff exceeds 20,000 characters, the extension now provides a high-level summary of the changes and directory statistics to prevent API context length errors while maintaining generation accuracy.
- Thinking Tag Filter: Automatically strips
<think>...</think>tags from AI responses. This fixes the issue where models with Chain-of-Thought reasoning (e.g., DeepSeek-R1, MiniMax-M2.1) would include their reasoning process in the commit message. (#1)
- New AI provider: OpenRouter with default model
mistralai/devstral-2512:free.- Supports a wide range of models via the OpenRouter API.
- Pre-configured with a high-performance free coding model.
- Repository Cleanup: Removed developer-specific configuration files (
.npmrc,.vscode/settings.json) for better open source practices - Updated .gitignore: Added rules to ignore
.npmrcand.vscodepersonal settings while preserving shared configurations (launch.json,tasks.json,extensions.json)
- Provider Info in Notifications: The active AI provider (e.g., [OpenAI], [GLM]) is now displayed in the generation progress and confirmation dialogs, making it clear which model is being used.
- Provider Auto-Selection: Automatically switches the active provider when a new API Key is set via the command palette. This ensures users don't see "OpenAI key not set" errors after configuring a different provider (e.g., GLM).
- New AI provider: Gemini (Google) with default model
gemini-2.5-flash-lite.- Uses Google's OpenAI-compatible endpoint for seamless integration.
- New configuration
wtfCommit.smartStage:- Prevents accidental commits by allowing users to disable auto-staging when the staging area is empty.
- Default is
true(maintain existing behavior). - If set to
false, an error will be shown if you try to commit with an empty staging area.
- Enhanced Multi-language support:
- New presets: 简体中文, 繁体中文, Japanese, Classical Chinese (文言文).
- Custom Language support: Select "Custom" and enter any target language (e.g., "French", "Emoji only").
- Dynamic prompt injection: Removed hardcoded language logic for better flexibility.
- Progress notification: The "Generating commit message..." notification now disappears immediately after generation, even if awaiting user confirmation for auto-commit.
- API URL concatenation: Prevents duplicate
/chat/completionspath when Custom provider URL already includes it.
- Multi-root workspace support: Automatically detects and uses the repository of the active file.
- Repository selection dialog when working with multiple Git repositories.
- Moved changelog notification to Unreleased section for better tracking.
- Multi-provider support (OpenAI, DeepSeek, Moonshot, GLM, Custom).
- Secure API key storage using
SecretStorage. - Enhanced configuration management with refined defaults.
- Repository field in
package.jsonfor VSCE compliance. - Chinese translation of README.
- Auto-commit and Auto-push features.
- Keyboard shortcuts (
cmd+alt+g/ctrl+alt+g). - Confirmation dialog before auto-committing.
- Language support (English and Chinese).
- Configurable AI prompt for more granular control.
- Initial release of AI-powered Git commit message generator.