Skip to content
Closed
3 changes: 2 additions & 1 deletion packages/types/src/experiment.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import type { Keys, Equals, AssertEqual } from "./type-fu.js"
* ExperimentId
*/

export const experimentIds = ["powerSteering", "multiFileApplyDiff"] as const
export const experimentIds = ["powerSteering", "multiFileApplyDiff", "aiCommitMessages"] as const

export const experimentIdsSchema = z.enum(experimentIds)

Expand All @@ -19,6 +19,7 @@ export type ExperimentId = z.infer<typeof experimentIdsSchema>
export const experimentsSchema = z.object({
powerSteering: z.boolean().optional(),
multiFileApplyDiff: z.boolean().optional(),
aiCommitMessages: z.boolean().optional(),
})

export type Experiments = z.infer<typeof experimentsSchema>
Expand Down
1 change: 1 addition & 0 deletions packages/types/src/global-settings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@ export const globalSettingsSchema = z.object({
codebaseIndexConfig: codebaseIndexConfigSchema.optional(),

language: languagesSchema.optional(),
commitLanguage: languagesSchema.optional(),

telemetrySetting: telemetrySettingsSchema.optional(),

Expand Down
1 change: 1 addition & 0 deletions packages/types/src/vscode.ts
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ export const commandIds = [
"focusInput",
"acceptInput",
"focusPanel",
"git.generateCommitMessage",
] as const

export type CommandId = (typeof commandIds)[number]
Expand Down
2 changes: 2 additions & 0 deletions src/activate/registerCommands.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import { registerHumanRelayCallback, unregisterHumanRelayCallback, handleHumanRe
import { handleNewTask } from "./handleTask"
import { CodeIndexManager } from "../services/code-index/manager"
import { importSettingsWithFeedback } from "../core/config/importExport"
import { generateCommitMessage } from "../integrations/git/generateCommitMessage"
import { t } from "../i18n"

/**
Expand Down Expand Up @@ -217,6 +218,7 @@ const getCommandsMap = ({ context, outputChannel, provider }: RegisterCommandOpt

visibleProvider.postMessageToWebview({ type: "acceptInput" })
},
"git.generateCommitMessage": () => generateCommitMessage(context),
})

export const openClineInNewTab = async ({ context, outputChannel }: Omit<RegisterCommandOptions, "provider">) => {
Expand Down
3 changes: 3 additions & 0 deletions src/core/webview/ClineProvider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1398,6 +1398,7 @@ export class ClineProvider
telemetrySetting,
showRooIgnoredFiles,
language,
commitLanguage,
maxReadFileLine,
terminalCompressProgressBar,
historyPreviewCollapsed,
Expand Down Expand Up @@ -1496,6 +1497,7 @@ export class ClineProvider
machineId,
showRooIgnoredFiles: showRooIgnoredFiles ?? true,
language: language ?? formatLanguage(vscode.env.language),
commitLanguage: commitLanguage ?? formatLanguage(vscode.env.language),
renderContext: this.renderContext,
maxReadFileLine: maxReadFileLine ?? -1,
maxConcurrentFileReads: maxConcurrentFileReads ?? 5,
Expand Down Expand Up @@ -1632,6 +1634,7 @@ export class ClineProvider
terminalCompressProgressBar: stateValues.terminalCompressProgressBar ?? true,
mode: stateValues.mode ?? defaultModeSlug,
language: stateValues.language ?? formatLanguage(vscode.env.language),
commitLanguage: stateValues.commitLanguage ?? formatLanguage(vscode.env.language),
mcpEnabled: stateValues.mcpEnabled ?? true,
enableMcpServerCreation: stateValues.enableMcpServerCreation ?? true,
alwaysApproveResubmit: stateValues.alwaysApproveResubmit ?? false,
Expand Down
18 changes: 18 additions & 0 deletions src/core/webview/webviewMessageHandler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1109,6 +1109,11 @@ export const webviewMessageHandler = async (
await updateGlobalState("language", message.text as Language)
await provider.postStateToWebview()
break
case "commitLanguage":
changeLanguage(message.text ?? "en")
await updateGlobalState("commitLanguage", message.text as Language)
await provider.postStateToWebview()
break
case "showRooIgnoredFiles":
await updateGlobalState("showRooIgnoredFiles", message.bool ?? true)
await provider.postStateToWebview()
Expand Down Expand Up @@ -1423,6 +1428,19 @@ export const webviewMessageHandler = async (

await updateGlobalState("experiments", updatedExperiments)

// Also update workspace settings to trigger the context update.
await vscode.workspace
.getConfiguration(Package.name)
.update("experiments", updatedExperiments, vscode.ConfigurationTarget.Global)

if (message.values.aiCommitMessages !== undefined) {
await vscode.commands.executeCommand(
"setContext",
"roo-cline.aiCommitMessagesEnabled",
message.values.aiCommitMessages,
)
}

await provider.postStateToWebview()
break
}
Expand Down
22 changes: 22 additions & 0 deletions src/extension.ts
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,28 @@ export async function activate(context: vscode.ExtensionContext) {
const contextProxy = await ContextProxy.getInstance(context)
const codeIndexManager = CodeIndexManager.getInstance(context)

const setAiCommitMessagesContext = () => {
const config = vscode.workspace.getConfiguration(Package.name)
const experiments = config.get("experiments", {}) as { aiCommitMessages?: boolean }
vscode.commands.executeCommand(
"setContext",
"roo-cline.aiCommitMessagesEnabled",
!!experiments.aiCommitMessages,
)
}

// Set the initial context
setAiCommitMessagesContext()

// Update the context when the configuration changes
context.subscriptions.push(
vscode.workspace.onDidChangeConfiguration((e) => {
if (e.affectsConfiguration(`${Package.name}.experiments`)) {
setAiCommitMessagesContext()
}
}),
)

try {
await codeIndexManager?.initialize(contextProxy)
} catch (error) {
Expand Down
3 changes: 3 additions & 0 deletions src/i18n/locales/ca/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@
"just_this_message": "Només aquest missatge",
"this_and_subsequent": "Aquest i tots els missatges posteriors"
},
"git": {
"generatingCommitMessage": "Generant missatge de commit amb {{modelName}}..."
},
"errors": {
"invalid_data_uri": "Format d'URI de dades no vàlid",
"error_copying_image": "Error copiant la imatge: {{errorMessage}}",
Expand Down
3 changes: 3 additions & 0 deletions src/i18n/locales/de/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@
"just_this_message": "Nur diese Nachricht",
"this_and_subsequent": "Diese und alle nachfolgenden Nachrichten"
},
"git": {
"generatingCommitMessage": "Commit-Nachricht mit {{modelName}} wird generiert..."
},
"errors": {
"invalid_data_uri": "Ungültiges Daten-URI-Format",
"error_copying_image": "Fehler beim Kopieren des Bildes: {{errorMessage}}",
Expand Down
3 changes: 3 additions & 0 deletions src/i18n/locales/en/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@
"just_this_message": "Just this message",
"this_and_subsequent": "This and all subsequent messages"
},
"git": {
"generatingCommitMessage": "Generating commit message with {{modelName}}..."
},
"errors": {
"invalid_data_uri": "Invalid data URI format",
"error_copying_image": "Error copying image: {{errorMessage}}",
Expand Down
3 changes: 3 additions & 0 deletions src/i18n/locales/es/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@
"just_this_message": "Solo este mensaje",
"this_and_subsequent": "Este y todos los mensajes posteriores"
},
"git": {
"generatingCommitMessage": "Generando mensaje de commit con {{modelName}}..."
},
"errors": {
"invalid_data_uri": "Formato de URI de datos no válido",
"error_copying_image": "Error copiando la imagen: {{errorMessage}}",
Expand Down
3 changes: 3 additions & 0 deletions src/i18n/locales/fr/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@
"just_this_message": "Uniquement ce message",
"this_and_subsequent": "Ce message et tous les messages suivants"
},
"git": {
"generatingCommitMessage": "Génération du message de commit avec {{modelName}}..."
},
"errors": {
"invalid_data_uri": "Format d'URI de données invalide",
"error_copying_image": "Erreur lors de la copie de l'image : {{errorMessage}}",
Expand Down
3 changes: 3 additions & 0 deletions src/i18n/locales/hi/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@
"just_this_message": "सिर्फ यह संदेश",
"this_and_subsequent": "यह और सभी बाद के संदेश"
},
"git": {
"generatingCommitMessage": "{{modelName}} के साथ कमिट संदेश उत्पन्न हो रहा है..."
},
"errors": {
"invalid_data_uri": "अमान्य डेटा URI फॉर्मेट",
"error_copying_image": "छवि कॉपी करने में त्रुटि: {{errorMessage}}",
Expand Down
3 changes: 3 additions & 0 deletions src/i18n/locales/id/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@
"just_this_message": "Hanya pesan ini",
"this_and_subsequent": "Ini dan semua pesan selanjutnya"
},
"git": {
"generatingCommitMessage": "Membuat pesan komit dengan {{modelName}}..."
},
"errors": {
"invalid_data_uri": "Format data URI tidak valid",
"error_copying_image": "Error menyalin gambar: {{errorMessage}}",
Expand Down
3 changes: 3 additions & 0 deletions src/i18n/locales/it/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@
"just_this_message": "Solo questo messaggio",
"this_and_subsequent": "Questo e tutti i messaggi successivi"
},
"git": {
"generatingCommitMessage": "Generazione del messaggio di commit con {{modelName}}..."
},
"errors": {
"invalid_data_uri": "Formato URI dati non valido",
"error_copying_image": "Errore durante la copia dell'immagine: {{errorMessage}}",
Expand Down
3 changes: 3 additions & 0 deletions src/i18n/locales/ja/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@
"just_this_message": "このメッセージのみ",
"this_and_subsequent": "これ以降のすべてのメッセージ"
},
"git": {
"generatingCommitMessage": "{{modelName}}でコミットメッセージを生成しています..."
},
"errors": {
"invalid_data_uri": "データURIフォーマットが無効です",
"error_copying_image": "画像のコピー中にエラーが発生しました:{{errorMessage}}",
Expand Down
3 changes: 3 additions & 0 deletions src/i18n/locales/ko/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@
"just_this_message": "이 메시지만",
"this_and_subsequent": "이 메시지와 모든 후속 메시지"
},
"git": {
"generatingCommitMessage": "{{modelName}}(으)로 커밋 메시지 생성 중..."
},
"errors": {
"invalid_data_uri": "잘못된 데이터 URI 형식",
"error_copying_image": "이미지 복사 중 오류 발생: {{errorMessage}}",
Expand Down
3 changes: 3 additions & 0 deletions src/i18n/locales/nl/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@
"just_this_message": "Alleen dit bericht",
"this_and_subsequent": "Dit en alle volgende berichten"
},
"git": {
"generatingCommitMessage": "Commitbericht genereren met {{modelName}}..."
},
"errors": {
"invalid_data_uri": "Ongeldig data-URI-formaat",
"error_copying_image": "Fout bij kopiëren van afbeelding: {{errorMessage}}",
Expand Down
3 changes: 3 additions & 0 deletions src/i18n/locales/pl/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@
"just_this_message": "Tylko tę wiadomość",
"this_and_subsequent": "Tę i wszystkie kolejne wiadomości"
},
"git": {
"generatingCommitMessage": "Generowanie wiadomości commit z {{modelName}}..."
},
"errors": {
"invalid_data_uri": "Nieprawidłowy format URI danych",
"error_copying_image": "Błąd kopiowania obrazu: {{errorMessage}}",
Expand Down
3 changes: 3 additions & 0 deletions src/i18n/locales/pt-BR/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@
"just_this_message": "Apenas esta mensagem",
"this_and_subsequent": "Esta e todas as mensagens subsequentes"
},
"git": {
"generatingCommitMessage": "Gerando mensagem de commit com {{modelName}}..."
},
"errors": {
"invalid_data_uri": "Formato de URI de dados inválido",
"error_copying_image": "Erro ao copiar imagem: {{errorMessage}}",
Expand Down
3 changes: 3 additions & 0 deletions src/i18n/locales/ru/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@
"just_this_message": "Только это сообщение",
"this_and_subsequent": "Это и все последующие сообщения"
},
"git": {
"generatingCommitMessage": "Генерация сообщения коммита с помощью {{modelName}}..."
},
"errors": {
"invalid_data_uri": "Неверный формат URI данных",
"error_copying_image": "Ошибка копирования изображения: {{errorMessage}}",
Expand Down
3 changes: 3 additions & 0 deletions src/i18n/locales/tr/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@
"just_this_message": "Sadece bu mesajı",
"this_and_subsequent": "Bu ve sonraki tüm mesajları"
},
"git": {
"generatingCommitMessage": "{{modelName}} ile commit mesajı oluşturuluyor..."
},
"errors": {
"invalid_data_uri": "Geçersiz veri URI formatı",
"error_copying_image": "Resim kopyalanırken hata oluştu: {{errorMessage}}",
Expand Down
3 changes: 3 additions & 0 deletions src/i18n/locales/vi/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@
"just_this_message": "Chỉ tin nhắn này",
"this_and_subsequent": "Tin nhắn này và tất cả tin nhắn tiếp theo"
},
"git": {
"generatingCommitMessage": "Đang tạo thông điệp commit với {{modelName}}..."
},
"errors": {
"invalid_data_uri": "Định dạng URI dữ liệu không hợp lệ",
"error_copying_image": "Lỗi khi sao chép hình ảnh: {{errorMessage}}",
Expand Down
3 changes: 3 additions & 0 deletions src/i18n/locales/zh-CN/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@
"just_this_message": "仅此消息",
"this_and_subsequent": "此消息及所有后续消息"
},
"git": {
"generatingCommitMessage": "正在使用 {{modelName}} 生成提交消息..."
},
"errors": {
"invalid_mcp_config": "项目MCP配置格式无效",
"invalid_mcp_settings_format": "MCP设置JSON格式无效。请确保您的设置遵循正确的JSON格式。",
Expand Down
3 changes: 3 additions & 0 deletions src/i18n/locales/zh-TW/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@
"just_this_message": "僅這則訊息",
"this_and_subsequent": "這則訊息及所有後續訊息"
},
"git": {
"generatingCommitMessage": "正在使用 {{modelName}} 產生提交訊息..."
},
"errors": {
"invalid_data_uri": "資料 URI 格式無效",
"error_copying_image": "複製圖片時發生錯誤:{{errorMessage}}",
Expand Down
Loading