Skip to content

Commit a09b166

Browse files
author
NewsguyTor
committed
Prevent tool usage in Claude Code SDK environments
Signed-off-by: NewsguyTor <newsguytor@fake.email>
1 parent 6b4a722 commit a09b166

File tree

1 file changed

+31
-12
lines changed

1 file changed

+31
-12
lines changed

src/claude-auto-commit.js

Lines changed: 31 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)