Skip to content

Releases: mobcoding/ai-commit-message

v0.4.2

Choose a tag to compare

@mobcoding mobcoding released this 29 Jun 04:19

Fetch Models button now inline to the right of Model dropdown. Only Test Configuration button remains at the bottom.

v0.4.1

Choose a tag to compare

@mobcoding mobcoding released this 29 Jun 04:12

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

Choose a tag to compare

@mobcoding mobcoding released this 29 Jun 03:56

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

Choose a tag to compare

@mobcoding mobcoding released this 29 Jun 03:27

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

Choose a tag to compare

@mobcoding mobcoding released this 29 Jun 03:05

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-arg CredentialAttributes("AiCommitMessage") — matches by service name alone.
  • Also changed PasswordSafe.set() to setPassword() — the proper API for storing plain-text secrets.

v0.3.4

Choose a tag to compare

@mobcoding mobcoding released this 27 Jun 07:34

Changes

  • Fix unresponsive button: added missing <depends>Git4Idea</depends> — GitHistoryCollector references GitRepositoryManager from git4idea, but the runtime dependency wasn't declared, causing NoClassDefFoundError to silently crash the generation task.
  • Robust error handling: catch (Throwable) instead of catch (Exception) so Java Error types (like NoClassDefFoundError) 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_HANDLER first, falls back to SELECTED_CHANGES, then CHANGES for broader IDE compatibility.
  • Includes debug build improvements from 0.3.3: multi-file commit bodies, DiffCollector error resilience, cleaner UX.

v0.3.2

Choose a tag to compare

@mobcoding mobcoding released this 27 Jun 06:44

Fix

  • Fix unresponsive click: replaced VcsDataKeys.SELECTED_CHANGES/CHANGES with COMMIT_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 actionPerformed so any pre-background exception now shows an error dialog instead of failing silently.
  • DiffCollector API changed from Change[] to List<Change> to match the handler pattern.

v0.3.1

Choose a tag to compare

@mobcoding mobcoding released this 27 Jun 06:26

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

Choose a tag to compare

@mobcoding mobcoding released this 27 Jun 03:58

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

Choose a tag to compare

@mobcoding mobcoding released this 26 Jun 08:05

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.