From 1ef5903da1d2f3510725afe6b7d9586d95af4bb7 Mon Sep 17 00:00:00 2001 From: Frederico Castro Date: Sat, 28 Feb 2026 00:19:08 -0300 Subject: [PATCH] =?UTF-8?q?Rodar=20container=20como=20usu=C3=A1rio=20node?= =?UTF-8?q?=20e=20corrigir=20resume=20do=20executor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Dockerfile: usar USER node (UID 1000) para bypassPermissions funcionar - Volumes mapeados para /home/node/ em vez de /root/ - Corrigir resume: voltar a usar -p para mensagens curtas de chat - Manter stdin piping apenas em execute e summarize (prompts grandes) --- Dockerfile | 3 ++- src/agents/executor.js | 5 ++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index f5936ce..96eaeba 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,7 +4,8 @@ COPY package*.json ./ RUN npm ci --omit=dev RUN npm install -g @anthropic-ai/claude-code COPY . . -RUN mkdir -p data +RUN mkdir -p data && chown -R node:node /app +USER node ENV HOST=0.0.0.0 ENV PORT=3000 EXPOSE 3000 diff --git a/src/agents/executor.js b/src/agents/executor.js index 6cafb48..7fdf982 100644 --- a/src/agents/executor.js +++ b/src/agents/executor.js @@ -362,6 +362,7 @@ export function resume(agentConfig, sessionId, message, callbacks = {}) { const model = agentConfig.model || 'claude-sonnet-4-6'; const args = [ '--resume', sessionId, + '-p', sanitizeText(message), '--output-format', 'stream-json', '--verbose', '--model', model, @@ -378,7 +379,7 @@ export function resume(agentConfig, sessionId, message, callbacks = {}) { const spawnOptions = { env: cleanEnv(), - stdio: ['pipe', 'pipe', 'pipe'], + stdio: ['ignore', 'pipe', 'pipe'], }; if (agentConfig.workingDirectory && agentConfig.workingDirectory.trim()) { @@ -388,8 +389,6 @@ export function resume(agentConfig, sessionId, message, callbacks = {}) { console.log(`[executor] Resumindo sessão: ${sessionId} | Execução: ${executionId}`); const child = spawn(CLAUDE_BIN, args, spawnOptions); - child.stdin.write(sanitizeText(message)); - child.stdin.end(); activeExecutions.set(executionId, { process: child,