diff --git a/src/container-runner.ts b/src/container-runner.ts index be6f356..59bccd8 100644 --- a/src/container-runner.ts +++ b/src/container-runner.ts @@ -503,10 +503,24 @@ export async function runContainerAgent( const isError = code !== 0; if (isVerbose || isError) { + // On error, log input metadata only — not the full prompt. + // Full input is only included at verbose level to avoid + // persisting user conversation content on every non-zero exit. + if (isVerbose) { + logLines.push( + `=== Input ===`, + JSON.stringify(input, null, 2), + ``, + ); + } else { + logLines.push( + `=== Input Summary ===`, + `Prompt length: ${input.prompt.length} chars`, + `Session ID: ${input.sessionId || 'new'}`, + ``, + ); + } logLines.push( - `=== Input ===`, - JSON.stringify(input, null, 2), - ``, `=== Container Args ===`, containerArgs.join(' '), ``, diff --git a/src/index.ts b/src/index.ts index 98682fb..42329a0 100644 --- a/src/index.ts +++ b/src/index.ts @@ -221,7 +221,7 @@ async function processGroupMessages(chatJid: string): Promise { : JSON.stringify(result.result); // Strip ... blocks — agent uses these for internal reasoning const text = raw.replace(/[\s\S]*?<\/internal>/g, '').trim(); - logger.info({ group: group.name }, `Agent output: ${raw.slice(0, 200)}`); + logger.info({ group: group.name }, `Agent output: ${raw.length} chars`); if (text) { await channel.sendMessage(chatJid, text); outputSentToUser = true;