@@ -240,23 +240,42 @@ class ClaudeAutoCommit {
240240 maxTurns : 1 ,
241241 } ,
242242 } ) ) {
243+ if ( this . verbose ) {
244+ console . log ( '🔍 Received message type:' , message . type ) ;
245+ if ( message . type === 'assistant' && message . message && message . message . content ) {
246+ console . log ( ' Assistant content:' , JSON . stringify ( message . message . content ) ) ;
247+ }
248+ }
243249 messages . push ( message ) ;
244250 }
245251
246252 clearTimeout ( timeoutId ) ;
247253
248- // 結果を取得
249- const resultMessage = messages . find ( msg => msg . type === 'result' ) ;
250- if ( resultMessage && resultMessage . result ) {
251- return resultMessage . result . trim ( ) ;
254+ // First try to get from assistant messages (most reliable)
255+ const assistantMessages = messages . filter ( msg => msg . type === 'assistant' ) ;
256+ for ( const assistantMessage of assistantMessages ) {
257+ if ( assistantMessage && assistantMessage . message && assistantMessage . message . content ) {
258+ const content = assistantMessage . message . content ;
259+ if ( Array . isArray ( content ) && content [ 0 ] && content [ 0 ] . text ) {
260+ const text = content [ 0 ] . text . trim ( ) ;
261+ // Skip meta-responses
262+ if ( ! text . includes ( "I'll analyze" ) && ! text . includes ( "I will analyze" ) ) {
263+ if ( this . verbose ) {
264+ console . log ( '📌 Found commit message from assistant:' , text ) ;
265+ }
266+ return text ;
267+ }
268+ }
269+ }
252270 }
253271
254- // assistantメッセージからも試行
255- const assistantMessage = messages . find ( msg => msg . type === 'assistant' ) ;
256- if ( assistantMessage && assistantMessage . message && assistantMessage . message . content ) {
257- const content = assistantMessage . message . content ;
258- if ( Array . isArray ( content ) && content [ 0 ] && content [ 0 ] . text ) {
259- return content [ 0 ] . text . trim ( ) ;
272+ // Fall back to result message
273+ const resultMessage = messages . find ( msg => msg . type === 'result' ) ;
274+ if ( resultMessage && resultMessage . result ) {
275+ const result = resultMessage . result . trim ( ) ;
276+ // Skip meta-responses
277+ if ( ! result . includes ( "I'll analyze" ) && ! result . includes ( "I will analyze" ) ) {
278+ return result ;
260279 }
261280 }
262281
@@ -301,7 +320,7 @@ class ClaudeAutoCommit {
301320 prompt += ` コミットメッセージのみを出力してください。説明や追加のテキストは不要です。` ;
302321
303322 } else {
304- prompt = `Generate an appropriate git commit message based on the following changes .` ;
323+ prompt = `DO NOT use any tools. DO NOT run any commands. Based ONLY on the git diff provided below, generate an appropriate git commit message .` ;
305324
306325 if ( this . conventionalCommit ) {
307326 prompt += ` Use Conventional Commits format (e.g., feat:, fix:, docs:, style:, refactor:, test:, chore:).` ;
@@ -314,7 +333,7 @@ class ClaudeAutoCommit {
314333 prompt += ` Include appropriate emojis.` ;
315334 }
316335
317- prompt += ` Output only the commit message. No explanation or additional text needed .` ;
336+ prompt += ` Output ONLY the commit message text, nothing else. Do not explain or use any tools .` ;
318337 }
319338
320339 prompt += `\n\nChanges:\n${ changes } ` ;
0 commit comments