Repository navigation
Releases: mobcoding/ai-commit-message
Releases · mobcoding/ai-commit-message
Release list
v0.4.2
v0.4.1
What's New
- No hardcoded providers — all DeepSeek/OpenAI presets removed from source code.
- "Fetch Models" button — enter your Base URL + API Key, click Fetch Models, and the Model dropdown auto-populates from
GET /v1/models. First model is auto-selected. - Generic OpenAI-compatible — works with any compliant API endpoint (OpenAI, DeepSeek, local proxies, etc.).
- Everything persisted — API key, base URL, and model stored in IDE settings via
PersistentStateComponent.
Settings Panel
| Field | Description |
|---|---|
| Base URL | Your API endpoint (e.g. https://api.deepseek.com) |
| API Key | Your API key |
| Model | Dropdown populated by Fetch Models, or type manually |
v0.4.0
What's New
- Provider dropdown: DeepSeek, OpenAI, or Custom. Switching auto-fills Base URL and Model.
- Model dropdown: populated per provider (DeepSeek: deepseek-v4-flash; OpenAI: gpt-5.5, gpt-5.4). Editable for Custom.
- API key persistence: stored in StateData via PersistentStateComponent — no more PasswordSafe, no more cross-restart loss.
Preset Configurations
| Provider | Base URL | Models |
|---|---|---|
| DeepSeek | https://api.deepseek.com | deepseek-v4-flash |
| OpenAI | https://ai.yun.dev/v1 | gpt-5.5, gpt-5.4 |
| Custom | (user-defined) | (user-defined) |
v0.3.6
Fix
- API key no longer lost across restarts: removed PasswordSafe in favor of storing the key directly in AiCommitSettingsState.StateData — the same PersistentStateComponent mechanism that already reliably persists �aseUrl and model. ApiKeyStore.java has been deleted entirely.
v0.3.5
Fix
- API key lost after restart:
CredentialAttributes("AI Commit Message Generator", "openai-compatible-api-key")used a two-arg constructor that binds to a specific key name internally. After restart, the resolved key differs from the stored key. Fixed by switching to single-argCredentialAttributes("AiCommitMessage")— matches by service name alone. - Also changed
PasswordSafe.set()tosetPassword()— the proper API for storing plain-text secrets.
v0.3.4
Changes
- Fix unresponsive button: added missing
<depends>Git4Idea</depends>—GitHistoryCollectorreferencesGitRepositoryManagerfrom git4idea, but the runtime dependency wasn't declared, causingNoClassDefFoundErrorto silently crash the generation task. - Robust error handling:
catch (Throwable)instead ofcatch (Exception)so JavaErrortypes (likeNoClassDefFoundError) show a dialog instead of being silently swallowed. - Simplified settings: only Base URL, API Key, and Model remain. Language is hardcoded to Chinese, commit style to Conventional Commit.
- Multi-strategy change collection: tries
COMMIT_WORKFLOW_HANDLERfirst, falls back toSELECTED_CHANGES, thenCHANGESfor broader IDE compatibility. - Includes debug build improvements from 0.3.3: multi-file commit bodies, DiffCollector error resilience, cleaner UX.
v0.3.2
Fix
- Fix unresponsive click: replaced
VcsDataKeys.SELECTED_CHANGES/CHANGESwithCOMMIT_WORKFLOW_HANDLER(same approach Qoder CN uses). The old data keys are unreliable in recent Android Studio / IntelliJ versions and frequently returned null, causing the button to do nothing. - Added a top-level try/catch in
actionPerformedso any pre-background exception now shows an error dialog instead of failing silently. DiffCollectorAPI changed fromChange[]toList<Change>to match the handler pattern.
v0.3.1
Bug Fixes
- Fix silent failures: catch RuntimeException from IdeaTextPatchBuilder (previously only caught checked exceptions, causing the no-response issue)
- Multi-file commit bodies: when 3+ files are changed, the prompt now instructs the AI to produce a multi-line commit body with bullet points per logical change group
- Better UX: empty changes show a proper info message, git history collection failures no longer block generation
v0.3.0
What's New
Diff Quality (aligned with Qoder CN)
- Generate unified diffs via \IdeaTextPatchBuilder\ + \UnifiedDiffWriter\ — the same approach Qoder CN (通义灵码) uses
- Proper handle of new files, renames, and binary/sensitive file skipping
- 50-file / 70K-character limits prevent token overflow
Smart Context
- Include the 3 most recent commit messages as style context for the AI
- Messages now match your project's commit conventions and tone
UX
- Always directly replace the commit message (no Replace/Append prompt)
Internals
- Remove \ChangeSnapshot; new \DiffCollector\ returns \List\ of unified diffs
- Add \GitHistoryCollector\ for recent Git history
v0.2.0
Public release preparation for AI Commit Message.
- Adds a lightweight Commit panel action for generating Git commit messages.
- Uses user-configured OpenAI-compatible APIs with DeepSeek defaults.
- Stores API keys locally with JetBrains PasswordSafe.
- Requires explicit consent before sending Git changes to the configured AI service.
- Skips sensitive and binary file contents.
Install the plugin ZIP from this release or from JetBrains Marketplace once approved.