feat(commit-ai): enhance commit message generation and caching
Improve the commit message generation process by adding a caching mechanism and refining the input handling. This change aims to enhance performance and prevent redundant computations when generating commit messages based on staged changes. - **src-tauri/crates/commit_ai/src/cloud.rs**: - Introduced `looks_like_diff_echo` function to detect if the model's output is a diff instead of a commit message. - Updated `openai_compatible_request` and `generate_anthropic` to utilize the new function for error handling. - **src-tauri/crates/commit_ai/src/lib.rs**: - Added `LocalGenerationProfile` enum for managing different generation profiles. - Implemented caching for generated messages to avoid redundant processing. - Updated `generate_commit_message` to incorporate caching logic. - **src-tauri/src/git.rs**: - Added `staged_diff_local` function to handle local profile generation and exclude specific lock files from the diff. - Modified `commit_ai_generate` to accept and process the local generation profile. - **src/App.svelte**: - Added `lastLocalAiGeneratedMessage` state to track the last generated message and prevent unnecessary updates. - **.claude/settings.local.json**: - Updated settings to include additional commands for better functionality.
This commit is contained in:
+25
@@ -1721,6 +1721,31 @@
|
||||
color: #f5f7ff;
|
||||
background: linear-gradient(180deg, rgba(100,108,255,0.22), rgba(65,209,255,0.1));
|
||||
}
|
||||
.ai-local-profile-options {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, minmax(0, 1fr));
|
||||
gap: 8px;
|
||||
}
|
||||
.ai-local-profile-option {
|
||||
min-width: 0;
|
||||
min-height: 34px;
|
||||
padding: 0 8px;
|
||||
border-color: var(--color-border-subtle);
|
||||
background: rgba(255,255,255,0.03);
|
||||
color: var(--color-ink-dim);
|
||||
font-size: 12px;
|
||||
font-weight: 700;
|
||||
}
|
||||
.ai-local-profile-option:hover:not(:disabled) {
|
||||
border-color: var(--color-border);
|
||||
color: var(--color-ink);
|
||||
background: var(--color-surface-hover);
|
||||
}
|
||||
.ai-local-profile-option.active {
|
||||
border-color: rgba(65,209,255,0.48);
|
||||
color: #f5f7ff;
|
||||
background: linear-gradient(180deg, rgba(65,209,255,0.16), rgba(100,108,255,0.12));
|
||||
}
|
||||
.new-branch-form {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
Reference in New Issue
Block a user