SpyBara
Go Premium

Documentation 2026-09-18 23:58 UTC to 2026-09-19 23:57 UTC

11 files changed +137 −21. View all changes and history on the product overview
2026
Fri 25 23:58 Thu 24 22:57 Wed 23 23:57 Tue 22 23:59 Mon 21 22:59 Sun 20 23:59 Sat 19 23:57 Fri 18 23:58 Tue 15 23:58 Mon 14 22:58 Sun 13 21:00 Sat 12 03:02 Thu 10 23:00 Wed 9 22:58 Tue 8 20:00 Tue 1 21:02
Details

120 Envie a URL do gateway para máquinas de desenvolvedores120 Envie a URL do gateway para máquinas de desenvolvedores

121</h3>121</h3>

122 122 

123Assim que o gateway estiver servindo, envie `forceLoginMethod`, `forceLoginGatewayUrl` e `parentSettingsBehavior: "merge"` para a máquina de cada desenvolvedor através de configurações gerenciadas, via MDM ou escrevendo o `managed-settings.json` por SO diretamente. Sem isso, `/login` mostra o seletor de conta padrão sem opção de gateway. Uma vez que você implanta as chaves, Claude Code para de usar uma chave de API restante ou login claude.ai na máquina, então planeje o envio junto com suas instruções de sign-in. [A política do administrador requer um sign-in de gateway Cloud](/docs/pt/errors#administrator-policy-requires-a-cloud-gateway-sign-in) descreve as mensagens que os desenvolvedores veem.123Assim que o gateway estiver servindo, envie `forceLoginMethod`, `forceLoginGatewayUrl` e `parentSettingsBehavior: "merge"` para a máquina de cada desenvolvedor através de configurações gerenciadas, via MDM ou escrevendo o `managed-settings.json` por SO diretamente. Sem isso, `/login` mostra o seletor de conta padrão sem opção de gateway.

124 

125Uma vez que você implanta as chaves, Claude Code para de usar uma chave de API restante ou login claude.ai na máquina, então planeje o envio junto com suas instruções de sign-in. [A política do administrador requer um sign-in de gateway Cloud](/docs/pt/errors#administrator-policy-requires-a-cloud-gateway-sign-in) descreve as mensagens que os desenvolvedores veem.

124 126 

125Consulte [onde cada mecanismo armazena a política](/docs/pt/managed-settings#where-each-mechanism-stores-the-policy) para os caminhos de arquivo, e [Configurações gerenciadas do lado do cliente](/docs/pt/claude-apps-gateway-config#client-side-managed-settings) para o equivalente `bootstrapUrl` do Claude Desktop.127Consulte [onde cada mecanismo armazena a política](/docs/pt/managed-settings#where-each-mechanism-stores-the-policy) para os caminhos de arquivo, e [Configurações gerenciadas do lado do cliente](/docs/pt/claude-apps-gateway-config#client-side-managed-settings) para o equivalente `bootstrapUrl` do Claude Desktop.

126 128 

129<h3 id="large-rollouts">

130 Grandes implantações

131</h3>

132 

133O sign-in é limitado por taxa por endereço IP do cliente, e os padrões se adequam a uma pequena equipe. Cada endereço recebe 30 inícios de sign-in e 10 envios de código a cada 10 minutos. Uma implantação para milhares de desenvolvedores pode atingir esses limites na primeira manhã, por uma de duas razões:

134 

135* **O gateway não consegue ver além do seu balanceador de carga.** Sem [`listen.trusted_proxies`](/docs/pt/claude-apps-gateway-config#listen), cada desenvolvedor parece vir do endereço do balanceador de carga e compartilha um limite. Defina-o antes de qualquer outra coisa. O gateway registra um aviso na primeira vez que ignora um cabeçalho `X-Forwarded-For`.

136* **Muitos desenvolvedores compartilham alguns endereços de saída NAT ou VPN.** Eles compartilham os limites desses endereços mesmo quando `trusted_proxies` está correto. Aumente [`rate_limits`](/docs/pt/claude-apps-gateway-config#http-tuning) para se adequar.

137 

138Para dimensionar `max`, divida os desenvolvedores pelos endereços de saída que eles compartilham. Estime quantos desses fazem sign-in dentro de um período `window_seconds`, que é 10 minutos por padrão. Depois dobre para cobrir tentativas novamente e desenvolvedores que fazem sign-in tanto para Claude Code quanto para Claude Desktop.

139 

140Por exemplo, 10.000 desenvolvedores atrás de 4 endereços de saída fazem sign-in uniformemente ao longo de uma hora. Isso é 2.500 desenvolvedores por endereço e cerca de 420 deles em cada 10 minutos, que você dobra e arredonda para 1.000. O exemplo abaixo define ambos os limites para 1.000:

141 

142```yaml theme={null}

143rate_limits:

144 device_authorization: { max: 1000, window_seconds: 600 }

145 device_verify: { max: 1000, window_seconds: 600 }

146```

147 

148`device_verify` é o que impede alguém de adivinhar o código de sign-in de outro desenvolvedor, então aumente-o apenas o quanto sua estimativa precisa. Mesmo nestes limites, um código tem 8 caracteres de um alfabeto de 20 caracteres e expira após 10 minutos, então adivinhar permanece impraticável; consulte [Resistência de força bruta de código de usuário](#user-code-brute-force-resistance).

149 

150Quando seu IdP emite tokens de atualização, Claude Code renova sessões silenciosamente, então você pode colocar o limite de volta após a implantação. Sem tokens de atualização, desenvolvedores fazem sign-in novamente a cada [`session.ttl_hours`](/docs/pt/claude-apps-gateway-config#session). Dimensione ambos os limites para essa taxa constante também e deixe-os elevados.

151 

152Quando um limite é atingido, Claude Code v2.1.274 ou posterior mostra `The gateway is limiting sign-in attempts right now`. Um gateway na v2.1.274 ou posterior mostra `Too many attempts came from your network address` na página de verificação, com as configurações a verificar. Também escreve uma linha de log `sign-in refused` que nomeia a configuração a alterar.

153 

127<h2 id="operations">154<h2 id="operations">

128 Operações155 Operações

129</h2>156</h2>


158 185 

159O documento de descoberta OAuth em `/.well-known/oauth-authorization-server` também retorna `200` apenas após carregamento de configuração, descoberta OIDC, construção de cliente upstream e migração do Postgres, então funciona como uma verificação de inicialização de ponta a ponta.186O documento de descoberta OAuth em `/.well-known/oauth-authorization-server` também retorna `200` apenas após carregamento de configuração, descoberta OIDC, construção de cliente upstream e migração do Postgres, então funciona como uma verificação de inicialização de ponta a ponta.

160 187 

188<h3 id="concurrent-upstream-requests">

189 Solicitações upstream simultâneas

190</h3>

191 

192Por padrão, cada réplica de gateway envia no máximo 256 solicitações upstream ao mesmo tempo. Uma resposta de streaming conta contra o limite até que o stream termine.

193 

194Uma solicitação que chega enquanto uma réplica está no limite aguarda dentro do gateway por um slot livre. O desenvolvedor vê uma resposta que é lenta para começar ou parece travar. Em um upstream `provider: anthropic`, uma solicitação que aguarda mais tempo que [`timeouts.upstream_ttfb_ms`](/docs/pt/claude-apps-gateway-config#http-tuning) desiste desse upstream e falha com um 502 quando nenhum upstream posterior o serve.

195 

196A linha de log de inicialização que contém `upstream requests:` mostra o limite em vigor. Enquanto uma réplica tem mais solicitações abertas que o limite, ela também registra um aviso que contém `client requests are open`, no máximo uma vez por minuto.

197 

198Para servir mais solicitações ao mesmo tempo, você tem duas opções:

199 

200* Adicione réplicas.

201* Aumente o limite em cada réplica. Defina a variável de ambiente `BUN_CONFIG_MAX_HTTP_REQUESTS` no contêiner do gateway para um número inteiro de 1 a 65535, depois reinicie o contêiner.

202 

203Uma réplica preenche seu limite a uma taxa de solicitação de aproximadamente o limite dividido pelo número médio de segundos que uma solicitação permanece aberta. Por exemplo, se as solicitações permanecerem abertas por 10 segundos em média, uma réplica no limite padrão de 256 a preenche a cerca de 26 solicitações por segundo.

204 

205Se você fizer autoscaling em CPU, uma réplica no limite enfileira solicitações sem disparar uma expansão, então defina o alvo abaixo do nível de CPU que suas réplicas mostram quando registram o aviso `client requests are open`.

206 

207<Warning>

208 Cada solicitação aberta mantém memória no processo do gateway enquanto ele faz streaming e enquanto aguarda por um slot. Se você manter o limite em 256, a memória em uma réplica sobrecarregada ainda cresce, porque as solicitações em espera mantêm seus corpos de solicitação. Dimensione a memória do contêiner para o número de solicitações abertas no pico e observe a memória quando você alterar o limite. Uma réplica que fica sem memória é eliminada e descarta cada stream que mantém.

209</Warning>

210 

161<h3 id="outage-behavior">211<h3 id="outage-behavior">

162 Comportamento de interrupção212 Comportamento de interrupção

163</h3>213</h3>


205 Atualizações255 Atualizações

206</h3>256</h3>

207 257 

208As réplicas são sem estado, então uma reinicialização contínua é segura a qualquer momento. O gateway executa migrações de esquema na inicialização, o que significa que implantar o novo binário auto-migra o banco de dados. Réplicas concorrentes serializam em um bloqueio consultivo do Postgres, então apenas uma aplica cada migração.258As réplicas são sem estado, então uma reinicialização contínua não perde nenhum estado do gateway. O gateway executa migrações de esquema na inicialização, o que significa que implantar o novo binário auto-migra o banco de dados. Réplicas concorrentes serializam em um bloqueio consultivo do Postgres, então apenas uma aplica cada migração.

259 

260Quando seu orquestrador para uma réplica com `SIGTERM`, como em uma reinicialização contínua ou uma redução de escala, o gateway para de aceitar novas conexões e deixa as solicitações e streams já em voo terminarem antes de sair. Ele aguarda até 25 segundos, chamado de janela de drenagem, depois fecha o que ainda está aberto. Um `SIGINT`, como Ctrl+C em um terminal, inicia a mesma drenagem, e um segundo sinal durante a drenagem fecha as solicitações abertas e sai imediatamente. A drenagem requer gateway v2.1.274 ou posterior.

261 

262Gerações longas podem fazer streaming por minutos. No Kubernetes e Amazon ECS, aumente ambas juntas para dar a esses streams mais tempo:

263 

264* **A janela de drenagem**: defina a variável de ambiente `CLAUDE_GATEWAY_DRAIN_TIMEOUT_MS` no contêiner do gateway para um número inteiro positivo de milissegundos, como `120000`. O gateway ignora um valor em qualquer outra forma, como `120s`, e mantém o padrão de 25 segundos

265* **O período de carência do seu orquestrador**: `terminationGracePeriodSeconds` no Kubernetes, ou `stopTimeout` no Amazon ECS

266 

267O período de carência padrão é 30 segundos em ambas as plataformas. Mantenha-o pelo menos 5 segundos mais longo que a janela de drenagem, ou o orquestrador matará o gateway antes da drenagem terminar. No Kubernetes, adicione também a duração de qualquer hook `preStop`, porque o período de carência começa a contar antes do hook ser executado em vez de quando o gateway recebe `SIGTERM`.

268 

269Sua plataforma também pode limitar quanto tempo a drenagem pode executar:

270 

271* **Amazon ECS no Fargate**: `stopTimeout` permite no máximo 120 segundos

272* **Cloud Run**: para uma instância 10 segundos após `SIGTERM`, então streams abertos recebem no máximo 10 segundos lá, qualquer que seja a janela de drenagem

273 

274Quando a janela de drenagem termina com solicitações ainda abertas, o gateway registra um aviso que contém `drain window over after`, conta as solicitações que cortou e nomeia ambas as configurações para aumentar.

209 275 

210As migrações são apenas anexadas, então reverter para um binário anterior que conhece menos migrações é seguro; ele ignora as linhas extras. A reversão também re-valida o YAML contra o esquema do binário mais antigo, então uma configuração que adotou uma chave introduzida pela versão mais nova falha na inicialização no mais antigo. Remova a nova chave antes de reverter.276As migrações são apenas anexadas, então reverter para um binário anterior que conhece menos migrações é seguro; ele ignora as linhas extras. A reversão também re-valida o YAML contra o esquema do binário mais antigo, então uma configuração que adotou uma chave introduzida pela versão mais nova falha na inicialização no mais antigo. Remova a nova chave antes de reverter.

211 277 


237 303 

238* Os desenvolvedores mantêm JWTs de curta duração em vez de chaves upstream brutas. A perna CLI-para-gateway usa a concessão de dispositivo RFC 8628, e a troca de código de autorização do gateway com o IdP executa PKCE na configuração padrão, então um código de autorização IdP interceptado é inútil.304* Os desenvolvedores mantêm JWTs de curta duração em vez de chaves upstream brutas. A perna CLI-para-gateway usa a concessão de dispositivo RFC 8628, e a troca de código de autorização do gateway com o IdP executa PKCE na configuração padrão, então um código de autorização IdP interceptado é inútil.

239* A página de verificação de dispositivo impõe POST de mesma origem e um limite de taxa por IP por RFC 8628 §5.1. Consulte [Resistência de força bruta de código de usuário](#user-code-brute-force-resistance).305* A página de verificação de dispositivo impõe POST de mesma origem e um limite de taxa por IP por RFC 8628 §5.1. Consulte [Resistência de força bruta de código de usuário](#user-code-brute-force-resistance).

240* Solicitações de saída passam por uma proteção de falsificação de solicitação do lado do servidor (SSRF) que resolve DNS, bloqueia endereços link-local e metadados de nuvem mais loopback por padrão e fixa a conexão ao IP resolvido, então URLs influenciadas pelo operador como o IdP e destinos OTLP não podem ser redirecionados para endpoints de metadados de nuvem. Intervalos privados RFC 1918 são deliberadamente permitidos, porque IdPs e coletores OTLP comumente vivem em IPs privados. Defina `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1` no ambiente do gateway apenas quando algo que o gateway deve alcançar legitimamente vive em loopback, como um IdP de desenvolvimento local ou um coletor OTLP sidecar em `localhost`. A variável relaxa o bloqueio de loopback para cada URL configurada pelo operador e também pula o aviso de tempo de inicialização que verifica se o pod pode alcançar o endpoint de metadados de nuvem, então prefira dar ao coletor seu próprio endereço interno.306* As solicitações do gateway para seu IdP, seus coletores OTLP e upstreams `provider: anthropic` passam por uma proteção de falsificação de solicitação do lado do servidor (SSRF) que resolve DNS, bloqueia endereços link-local e metadados de nuvem mais loopback por padrão e fixa a conexão ao IP resolvido, então URLs influenciadas pelo operador não podem ser redirecionadas para endpoints de metadados de nuvem. Intervalos privados RFC 1918 são deliberadamente permitidos, porque IdPs e coletores OTLP comumente vivem em IPs privados. Para os outros provedores, o gateway recusa um `base_url` que nomeie um desses endereços ou um nome de host de metadados quando carrega a configuração, e o SDK do provedor então se conecta sem a verificação de DNS.

307 

308 Se você ativar [egresso somente proxy](/docs/pt/claude-apps-gateway-config#proxy-only-egress), essa verificação de endereço se move para seu proxy direto: o gateway entrega nomes de host e a lista de permissões do proxy deve recusar esses destinos.

309 

310 Defina `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1` no ambiente do gateway apenas quando algo que o gateway deve alcançar legitimamente vive em loopback, como um IdP de desenvolvimento local ou um coletor OTLP sidecar em `localhost`. A variável relaxa o bloqueio de loopback para cada URL configurada pelo operador e também pula o aviso de tempo de inicialização que verifica se o pod pode alcançar o endpoint de metadados de nuvem, então prefira dar ao coletor seu próprio endereço interno.

241 311 

242Se você adicionar seus próprios controles de saída, o gateway deve alcançar o servidor de metadados sempre que usar credenciais de metadados de instância como identidade de carga de trabalho.312Se você adicionar seus próprios controles de saída, o gateway deve alcançar o servidor de metadados sempre que usar credenciais de metadados de instância como identidade de carga de trabalho.

243 313 


252 322 

253O `user_code` que um desenvolvedor digita na página de verificação `/device` tem 8 caracteres extraídos de um alfabeto de 20 caracteres, o que produz 20⁸ ou cerca de 2,56×10¹⁰ combinações, e expira após 10 minutos.323O `user_code` que um desenvolvedor digita na página de verificação `/device` tem 8 caracteres extraídos de um alfabeto de 20 caracteres, o que produz 20⁸ ou cerca de 2,56×10¹⁰ combinações, e expira após 10 minutos.

254 324 

255O gateway aplica limites de taxa por IP nos endpoints de concessão de dispositivo, configuráveis via [`rate_limits`](/docs/pt/claude-apps-gateway-config#http-tuning). Aumente os limites se muitos desenvolvedores entrarem de um único endereço NAT corporativo compartilhado. Os limites se aplicam apenas ao fluxo de entrada, não à inferência.325O gateway aplica limites de taxa por IP nos endpoints de concessão de dispositivo, configuráveis via [`rate_limits`](/docs/pt/claude-apps-gateway-config#http-tuning). Aumente os limites se muitos desenvolvedores entrarem de um único endereço NAT corporativo compartilhado. [Grandes implantações](#large-rollouts) mostra como dimensioná-los. Os limites se aplicam apenas ao fluxo de entrada, não à inferência.

256 326 

257<h3 id="compliance-posture">327<h3 id="compliance-posture">

258 Postura de conformidade328 Postura de conformidade


282O stderr do gateway inclui o fluxo de eventos de auditoria, o log de auditoria registra identidades de desenvolvedores, e o arquivo de debug registra saída de hook e servidor MCP da máquina do desenvolvedor. Revise e remova essas informações antes de postar em uma issue pública.352O stderr do gateway inclui o fluxo de eventos de auditoria, o log de auditoria registra identidades de desenvolvedores, e o arquivo de debug registra saída de hook e servidor MCP da máquina do desenvolvedor. Revise e remova essas informações antes de postar em uma issue pública.

283 353 

284| Symptom | Cause | Fix |354| Symptom | Cause | Fix |

285| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |355| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

286| A `/login` de um desenvolvedor mostra o seletor de conta padrão em vez da tela **Cloud gateway** | `forceLoginMethod` ou `forceLoginGatewayUrl` não está definido nas configurações gerenciadas nessa máquina | Implante o [arquivo de configurações gerenciadas](/docs/pt/claude-apps-gateway#set-the-gateway-url) no dispositivo; `/login` lê a URL do gateway de lá |356| A `/login` de um desenvolvedor mostra o seletor de conta padrão em vez da tela **Cloud gateway** | `forceLoginMethod` ou `forceLoginGatewayUrl` não está definido nas configurações gerenciadas nessa máquina | Implante o [arquivo de configurações gerenciadas](/docs/pt/claude-apps-gateway#set-the-gateway-url) no dispositivo; `/login` lê a URL do gateway de lá |

287| As solicitações de um desenvolvedor falham com `Not signed in to the Cloud gateway — run /login.` | As configurações gerenciadas da máquina definem `forceLoginMethod: "gateway"` ou `forceLoginGatewayUrl`, e a sessão não tem login no gateway. Um login claude.ai restante não satisfaz o requisito. | Peça ao desenvolvedor para executar `/login` e completar o login no gateway. Veja também [Administrator policy requires a Cloud gateway sign-in](/docs/pt/errors#administrator-policy-requires-a-cloud-gateway-sign-in). |357| As solicitações de um desenvolvedor falham com `Not signed in to the Cloud gateway — run /login.` | As configurações gerenciadas da máquina definem `forceLoginMethod: "gateway"` ou `forceLoginGatewayUrl`, e a sessão não tem login no gateway. Um login claude.ai restante não satisfaz o requisito. | Peça ao desenvolvedor para executar `/login` e completar o login no gateway. Veja também [Administrator policy requires a Cloud gateway sign-in](/docs/pt/errors#administrator-policy-requires-a-cloud-gateway-sign-in). |

288| Claude Desktop relata que sua configuração de bootstrap não pôde ser buscada | `/user/bootstrap` retornou 404: a política que corresponde ao usuário não carrega uma chave `desktop`, ou nenhuma política correspondeu. O log de auditoria do gateway registra cada rejeição como `desktop_bootstrap.denied` com o motivo. | Adicione um bloco `desktop` à política que corresponde ao usuário, ou à camada base `match: {}`; um `desktop: {}` vazio é suficiente. Veja [Claude Desktop overlay](/docs/pt/claude-apps-gateway-config#claude-desktop-overlay). |358| Claude Desktop relata que sua configuração de bootstrap não pôde ser buscada | `/user/bootstrap` retornou 404: a política que corresponde ao usuário não carrega uma chave `desktop`, ou nenhuma política correspondeu. O log de auditoria do gateway registra cada rejeição como `desktop_bootstrap.denied` com o motivo. | Adicione um bloco `desktop` à política que corresponde ao usuário, ou à camada base `match: {}`; um `desktop: {}` vazio é suficiente. Veja [Claude Desktop overlay](/docs/pt/claude-apps-gateway-config#claude-desktop-overlay). |

289| A inicialização mostra `Gateway login is configured in managed settings, but this Claude Code build does not include Cloud gateway support.` | A compilação Claude Code instalada é anterior ao suporte de gateway | Peça ao desenvolvedor para atualizar Claude Code para uma versão que inclua suporte de Cloud gateway |359| A inicialização mostra `Gateway login is configured in managed settings, but this Claude Code build does not include Cloud gateway support.` | A compilação Claude Code instalada é anterior ao suporte de gateway | Peça ao desenvolvedor para atualizar Claude Code para uma versão que inclua suporte de Cloud gateway |

290| A inicialização sai com `Administrator policy requires a Cloud gateway sign-in on this machine` | O ambiente do desenvolvedor define `ANTHROPIC_API_KEY` ou `ANTHROPIC_AUTH_TOKEN`, suas configurações configuram um [`apiKeyHelper`](/docs/pt/settings-reference#apikeyhelper), ou uma chave de API de um login anterior do Claude Console ainda está salva | Peça ao desenvolvedor para limpar cada um que se aplica: desdefina a variável, remova a entrada `apiKeyHelper`, ou execute `claude auth logout` para remover a chave salva. Depois peça para iniciar `claude` e fazer login com `/login`. Veja também [Administrator policy requires a Cloud gateway sign-in](/docs/pt/errors#administrator-policy-requires-a-cloud-gateway-sign-in). |360| A inicialização sai com `Administrator policy requires a Cloud gateway sign-in on this machine` | O ambiente do desenvolvedor define `ANTHROPIC_API_KEY` ou `ANTHROPIC_AUTH_TOKEN`, suas configurações configuram um [`apiKeyHelper`](/docs/pt/settings-reference#apikeyhelper), ou uma chave de API de um login anterior do Claude Console ainda está salva | Peça ao desenvolvedor para limpar cada um que se aplica: desdefina a variável, remova a entrada `apiKeyHelper`, ou execute `claude auth logout` para remover a chave salva. Depois peça para iniciar `claude` e fazer login com `/login`. Veja também [Administrator policy requires a Cloud gateway sign-in](/docs/pt/errors#administrator-policy-requires-a-cloud-gateway-sign-in). |

291| A inicialização ou `/login` relata `Claude Code may not be enabled for your organization` após um 403 no carregamento de configurações gerenciadas | O gateway, ou algo na frente dele, respondeu à solicitação `/managed/settings` com 403. A rota de configurações do próprio gateway nunca responde com 403. O status vem das verificações de IP [`access_control`](/docs/pt/claude-apps-gateway-config#http-tuning) ou de um proxy ou WAF na frente do gateway. O log de auditoria registra uma negação de verificação de IP como `access.denied` com o motivo. O desenvolvedor permanece conectado. | Verifique o log de auditoria para `access.denied` no momento da falha e corrija as listas `access_control` ou o front end, depois peça ao desenvolvedor para iniciar `claude` novamente |361| A inicialização ou `/login` relata `Claude Code may not be enabled for your organization` após um 403 no carregamento de configurações gerenciadas | O gateway, ou algo na frente dele, respondeu à solicitação `/managed/settings` com 403. A rota de configurações do próprio gateway nunca responde com 403. O status vem das verificações de IP [`access_control`](/docs/pt/claude-apps-gateway-config#http-tuning) ou de um proxy ou WAF na frente do gateway. O log de auditoria registra uma negação de verificação de IP como `access.denied` com o motivo. O desenvolvedor permanece conectado. | Verifique o log de auditoria para `access.denied` no momento da falha e corrija as listas `access_control` ou o front end, depois peça ao desenvolvedor para iniciar `claude` novamente |

362| CLI `/login`: `The gateway is limiting sign-in attempts right now`, ou `Request failed with status code 429` em versões mais antigas. A página `/device` pode mostrar `Too many attempts` para desenvolvedores que não tentaram antes | O limite de taxa de login por IP foi atingido. Ou `listen.trusted_proxies` não cobre o balanceador de carga, então cada desenvolvedor compartilha seu endereço, ou muitos desenvolvedores compartilham um endereço de saída NAT ou VPN. Eventos de auditoria com `result: rate_limited` mostram o mesmo um ou poucos valores `client_ip`. | Defina `listen.trusted_proxies` para os intervalos de origem do balanceador de carga primeiro, depois aumente `rate_limits` se desenvolvedores ainda compartilharem endereços. Veja [Large rollouts](#large-rollouts). |

292| CLI `/login`: `Gateway hosts must be on your organization's private network; <host> resolves to the public (or unrecognized) address <ip>` | O nome do host do gateway resolve para pelo menos um endereço IP público. Claude Code verifica cada endereço resolvido e requer que todos sejam privados. Uma causa comum é um nome dual-stack onde uma família resolve para um endereço público, incluindo balanceadores de carga dual-stack internos da AWS, que retornam endereços AAAA de intervalo público. | Faça com que o nome do gateway resolva apenas para endereços privados nas máquinas dos desenvolvedores. Para um nome dual-stack, remova o registro de intervalo público ou sirva um nome DNS separado apenas para interno. Veja o [pré-requisito de rede privada](/docs/pt/claude-apps-gateway#prerequisites). Se o endereço é espaço público que sua organização possui e usa internamente, [declare esse bloco](/docs/pt/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) em vez disso. |363| CLI `/login`: `Gateway hosts must be on your organization's private network; <host> resolves to the public (or unrecognized) address <ip>` | O nome do host do gateway resolve para pelo menos um endereço IP público. Claude Code verifica cada endereço resolvido e requer que todos sejam privados. Uma causa comum é um nome dual-stack onde uma família resolve para um endereço público, incluindo balanceadores de carga dual-stack internos da AWS, que retornam endereços AAAA de intervalo público. | Faça com que o nome do gateway resolva apenas para endereços privados nas máquinas dos desenvolvedores. Para um nome dual-stack, remova o registro de intervalo público ou sirva um nome DNS separado apenas para interno. Veja o [pré-requisito de rede privada](/docs/pt/claude-apps-gateway#prerequisites). Se o endereço é espaço público que sua organização possui e usa internamente, [declare esse bloco](/docs/pt/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) em vez disso. |

293| CLI `/login`: `Gateway login would go through proxy <proxy>, which is not on a private network` | Um `HTTPS_PROXY` ou `HTTP_PROXY` se aplica ao host do gateway e o nome do host do proxy resolve para um endereço público. Um proxy cujo host resolve apenas para endereços privados é permitido e não dispara esse erro | Adicione o host do gateway a `NO_PROXY` na máquina do desenvolvedor para que a conexão seja direta, ou use um proxy cujo nome do host resolve para endereços privados. A mensagem nomeia a entrada exata `NO_PROXY` a adicionar |364| CLI `/login`: `Gateway login would go through proxy <proxy>, which is not on a private network` | Um `HTTPS_PROXY` ou `HTTP_PROXY` se aplica ao host do gateway e o nome do host do proxy resolve para um endereço público. Um proxy cujo host resolve apenas para endereços privados é permitido e não dispara esse erro | Adicione o host do gateway a `NO_PROXY` na máquina do desenvolvedor para que a conexão seja direta, ou use um proxy cujo nome do host resolve para endereços privados. A mensagem nomeia a entrada exata `NO_PROXY` a adicionar |

294| CLI `/login`: `Claude Code only signs in to <host> from inside its declared network <block> (managed settings), and this machine is connecting from <ip>, outside it` | O gateway está em um bloco declarado em [`gatewayInternalNetworks`](/docs/pt/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own), e a máquina do desenvolvedor o alcançou de um endereço fora desse bloco: um pool de endereços VPN, um segmento NAT de container ou WSL2, ou uma rede que não é sua | Peça ao desenvolvedor para executar `/login` do SO host em sua rede. Se o endereço mostrado também é espaço público da sua organização, substitua a entrada do gateway por um bloco que cubra ambos, até `/8`; uma segunda entrada sobreposta é recusada |365| CLI `/login`: `Claude Code only signs in to <host> from inside its declared network <block> (managed settings), and this machine is connecting from <ip>, outside it` | O gateway está em um bloco declarado em [`gatewayInternalNetworks`](/docs/pt/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own), e a máquina do desenvolvedor o alcançou de um endereço fora desse bloco: um pool de endereços VPN, um segmento NAT de container ou WSL2, ou uma rede que não é sua | Peça ao desenvolvedor para executar `/login` do SO host em sua rede. Se o endereço mostrado também é espaço público da sua organização, substitua a entrada do gateway por um bloco que cubra ambos, até `/8`; uma segunda entrada sobreposta é recusada |


299| CLI `/login`: `Could not resolve gateway host <host>` | A máquina não consegue resolver o nome DNS interno do gateway, tipicamente porque não está na rede corporativa | Peça ao desenvolvedor para conectar à sua rede ou VPN, depois execute `/login` novamente |370| CLI `/login`: `Could not resolve gateway host <host>` | A máquina não consegue resolver o nome DNS interno do gateway, tipicamente porque não está na rede corporativa | Peça ao desenvolvedor para conectar à sua rede ou VPN, depois execute `/login` novamente |

300| Boot exits with a config validation error naming `store.postgres_url` | Nenhum Postgres configurado; o gateway requer Postgres | Defina `store.postgres_url`. Para desenvolvimento local, use um container descartável: `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`. |371| Boot exits with a config validation error naming `store.postgres_url` | Nenhum Postgres configurado; o gateway requer Postgres | Defina `store.postgres_url`. Para desenvolvimento local, use um container descartável: `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`. |

301| Boot exits: `requires the native binary` | Executando sob Node em vez do binário nativo | Instale Claude Code com um dos [métodos de instalação autônomos](/docs/pt/setup) |372| Boot exits: `requires the native binary` | Executando sob Node em vez do binário nativo | Instale Claude Code com um dos [métodos de instalação autônomos](/docs/pt/setup) |

302| Boot exits with an OIDC discovery error after `config.load` | `oidc.issuer` inacessível, ou cadeia TLS não confiável | Verifique se o emissor é acessível do pod e serve `/.well-known/openid-configuration`. Defina `ca_cert_pem` para PKI privada. Se o pod alcança o IdP apenas através de um proxy direto, defina [`oidc.use_proxy: true`](/docs/pt/claude-apps-gateway-config#idp-requests-through-a-forward-proxy); em versões anteriores a v2.1.227, dê ao pod uma rota direta para cada um dos endpoints do IdP em vez disso. |373| Boot exits with an OIDC discovery error after `config.load` | `oidc.issuer` inacessível, ou cadeia TLS não confiável | Verifique se o emissor é acessível do pod e serve `/.well-known/openid-configuration`. Defina `ca_cert_pem` para PKI privada. Se o pod alcança o IdP apenas através de um proxy direto, defina [`oidc.use_proxy: true`](/docs/pt/claude-apps-gateway-config#idp-requests-through-a-forward-proxy); em versões anteriores a v2.1.227, dê ao pod uma rota direta para cada um dos endpoints do IdP em vez disso. Se o pod também não conseguir resolver o nome do host do IdP, ou o proxy recusar `CONNECT` para um endereço IP, veja [Proxy-only egress](/docs/pt/claude-apps-gateway-config#proxy-only-egress), que requer v2.1.277 ou posterior. |

303| Boot exits with a Postgres permission error | O papel do banco de dados carece de direitos DDL em seu schema | Conceda ao papel `CREATE` no schema do gateway para que possa criar e alterar suas tabelas na inicialização |374| Boot exits with a Postgres permission error | O papel do banco de dados carece de direitos DDL em seu schema | Conceda ao papel `CREATE` no schema do gateway para que possa criar e alterar suas tabelas na inicialização |

375| Log: `could not connect to Postgres at boot, attempt 1 of 3` | O banco de dados não estava acessível quando o gateway iniciou, por exemplo em uma instância fria cuja rede ainda está se iniciando | Se o gateway então terminar de inicializar, nenhuma ação é necessária. Quando o banco de dados não está acessível, o gateway tenta a conexão três vezes, dois segundos de intervalo, antes de sair. Se sair com `could not connect to Postgres`, verifique `store.postgres_url` e o caminho de rede para o banco de dados. Se as tentativas expirarem em vez de serem recusadas, aumente [`store.connect_timeout_seconds`](/docs/pt/claude-apps-gateway-config#store) para dar a cada uma mais tempo. |

304| `/oauth/callback` shows "Sign-in could not be completed" | Domínio de email rejeitado, validação de id\_token falhou, ou `email_verified` é explicitamente `false`, que o gateway sempre rejeita sem override | Verifique `allowed_email_domains` e que o IdP retorna uma reivindicação `email` verificada. Para `email_verified: false`, corrija a verificação do lado do IdP. Se seu IdP emite email sob um nome de reivindicação diferente, defina `oidc.email_claim`. |376| `/oauth/callback` shows "Sign-in could not be completed" | Domínio de email rejeitado, validação de id\_token falhou, ou `email_verified` é explicitamente `false`, que o gateway sempre rejeita sem override | Verifique `allowed_email_domains` e que o IdP retorna uma reivindicação `email` verificada. Para `email_verified: false`, corrija a verificação do lado do IdP. Se seu IdP emite email sob um nome de reivindicação diferente, defina `oidc.email_claim`. |

305| Log: `token exchange failed request_id=<id>: id_token missing email claim` | O IdP não está incluindo `email` no id\_token por padrão. Essa rejeição dispara apenas quando `allowed_email_domains` está definido; sem ele, um email ausente cria uma sessão sem email | Configure o IdP para emitir `email` no id\_token. Okta: adicione `email` às reivindicações de token de ID de um servidor de autorização personalizado. Entra: adicione `email` como uma reivindicação opcional no registro do aplicativo. PingFederate: ative uma Política OpenID Connect que emita `email`. Se o IdP serve `email` do endpoint userinfo mas não incluirá no id\_token, como o servidor de autorização da organização Okta, defina `oidc.userinfo_fallback: true`. |377| Log: `token exchange failed request_id=<id>: id_token missing email claim` | O IdP não está incluindo `email` no id\_token por padrão. Essa rejeição dispara apenas quando `allowed_email_domains` está definido; sem ele, um email ausente cria uma sessão sem email | Configure o IdP para emitir `email` no id\_token. Okta: adicione `email` às reivindicações de token de ID de um servidor de autorização personalizado. Entra: adicione `email` como uma reivindicação opcional no registro do aplicativo. PingFederate: ative uma Política OpenID Connect que emita `email`. Se o IdP serve `email` do endpoint userinfo mas não incluirá no id\_token, como o servidor de autorização da organização Okta, defina `oidc.userinfo_fallback: true`. |

306| Log: `refresh failed request_id=<id>: invalid_token (…) (at userinfo_no_id_token, …)`, e desenvolvedores veem `Cloud gateway session expired` a cada `session.ttl_hours` | O IdP aceitou o token de atualização mas não retornou id\_token com ele, então o gateway perguntou ao endpoint userinfo do IdP pelas reivindicações do usuário. O IdP rejeitou o token de acesso atualizado lá. O gateway responde `temporarily_unavailable`, então Claude Code mantém o token de atualização mas não consegue renovar a sessão. Versões do gateway anteriores a v2.1.260 registram a mesma linha sem o detalhe `(at …)`. | Defina [`oidc.scope_on_refresh: true`](/docs/pt/claude-apps-gateway-config#oidc), disponível no gateway v2.1.260 ou posterior, para que a solicitação de atualização peça por `openid` novamente. Alguns IdPs, como Okta, retornam um id\_token na atualização apenas quando solicitado. No PingFederate, ative **Return ID Token On Refresh Grant** sob **Applications > OAuth > OpenID Connect Policy Management** em vez disso. A chave não muda o comportamento do PingFederate. Para outros IdPs que ainda o omitem, verifique se o endpoint userinfo aceita tokens de acesso emitidos por uma atualização. Como uma solução temporária, aumente [`session.ttl_hours`](/docs/pt/claude-apps-gateway-config#session). Veja [Identity provider setup](#identity-provider-setup) para o tradeoff de desprovisionamento. |378| Log: `refresh failed request_id=<id>: invalid_token (…) (at userinfo_no_id_token, …)`, e desenvolvedores veem `Cloud gateway session expired` a cada `session.ttl_hours` | O IdP aceitou o token de atualização mas não retornou id\_token com ele, então o gateway perguntou ao endpoint userinfo do IdP pelas reivindicações do usuário. O IdP rejeitou o token de acesso atualizado lá. O gateway responde `temporarily_unavailable`, então Claude Code mantém o token de atualização mas não consegue renovar a sessão. Versões do gateway anteriores a v2.1.260 registram a mesma linha sem o detalhe `(at …)`. | Defina [`oidc.scope_on_refresh: true`](/docs/pt/claude-apps-gateway-config#oidc), disponível no gateway v2.1.260 ou posterior, para que a solicitação de atualização peça por `openid` novamente. Alguns IdPs, como Okta, retornam um id\_token na atualização apenas quando solicitado. No PingFederate, ative **Return ID Token On Refresh Grant** sob **Applications > OAuth > OpenID Connect Policy Management** em vez disso. A chave não muda o comportamento do PingFederate. Para outros IdPs que ainda o omitem, verifique se o endpoint userinfo aceita tokens de acesso emitidos por uma atualização. Como uma solução temporária, aumente [`session.ttl_hours`](/docs/pt/claude-apps-gateway-config#session). Veja [Identity provider setup](#identity-provider-setup) para o tradeoff de desprovisionamento. |

307| Every Amazon Bedrock request returns 502; log shows `Could not load credentials from any providers` | No EC2, o hop limit padrão do IMDSv2 de 1 bloqueia a solicitação de metadados de instância de dentro do container. Boot e `/readyz` passam mesmo assim porque o AWS SDK resolve credenciais de instância na primeira solicitação, não na construção do cliente | Aumente o hop limit com `aws ec2 modify-instance-metadata-options --instance-id <id> --http-put-response-hop-limit 2`, ou defina-o no modelo de lançamento. A mudança se aplica a cada container na instância. Prefira funções de tarefa ECS onde disponível, que leem credenciais do endpoint de credenciais do container ECS e evitam a mudança inteiramente, ou aplique a mudança em uma instância de gateway dedicada para limitar a exposição. |379| Every Amazon Bedrock request returns 502; log shows `Could not load credentials from any providers` | No EC2, o hop limit padrão do IMDSv2 de 1 bloqueia a solicitação de metadados de instância de dentro do container. Boot e `/readyz` passam mesmo assim porque o AWS SDK resolve credenciais de instância na primeira solicitação, não na construção do cliente | Aumente o hop limit com `aws ec2 modify-instance-metadata-options --instance-id <id> --http-put-response-hop-limit 2`, ou defina-o no modelo de lançamento. A mudança se aplica a cada container na instância. Prefira funções de tarefa ECS onde disponível, que leem credenciais do endpoint de credenciais do container ECS e evitam a mudança inteiramente, ou aplique a mudança em uma instância de gateway dedicada para limitar a exposição. |

380| At peak load, responses are slow to start or appear to hang, or fail with a 502 `all upstreams failed` while the upstream is healthy | Uma réplica tem mais solicitações abertas do que envia upstream de uma vez, então as solicitações extras esperam dentro do gateway. Em um upstream `provider: anthropic`, uma solicitação que espera mais tempo que `timeouts.upstream_ttfb_ms` desiste desse upstream, que produz o 502 quando nenhum upstream posterior a serve. O log mostra um aviso que contém `client requests are open`. | Adicione réplicas, ou aumente o limite em cada réplica. Veja [Concurrent upstream requests](#concurrent-upstream-requests). |

308| IdP error: unknown or unsupported scope | O IdP rejeita escopos que não reconhece | Defina `oidc.scopes` para exatamente a lista que seu IdP aceita; deve incluir `openid`. O padrão é `openid profile email offline_access`. |381| IdP error: unknown or unsupported scope | O IdP rejeita escopos que não reconhece | Defina `oidc.scopes` para exatamente a lista que seu IdP aceita; deve incluir `openid`. O padrão é `openid profile email offline_access`. |

309| Sessions don't silently renew after setting `oidc.scopes` | `offline_access` foi removido da substituição | Adicione `offline_access` de volta se seu IdP o suporta. Sem um token de atualização, desenvolvedores executam novamente o login do navegador a cada `session.ttl_hours`. |382| Sessions don't silently renew after setting `oidc.scopes` | `offline_access` foi removido da substituição | Adicione `offline_access` de volta se seu IdP o suporta. Sem um token de atualização, desenvolvedores executam novamente o login do navegador a cada `session.ttl_hours`. |

310| Browser shows "This request came from another site and was blocked" | POST de formulário entre sites, bloqueado como proteção CSRF. Esperado para páginas incorporadas ou proxied | Abra o link de verificação diretamente |383| Browser shows "This request came from another site and was blocked" | POST de formulário entre sites, bloqueado como proteção CSRF. Esperado para páginas incorporadas ou proxied | Abra o link de verificação diretamente |

Details

504| Solicitações Bedrock retornam `403 AccessDeniedException` | A conta não enviou o formulário de caso de uso único da Anthropic, a assinatura automática do AWS Marketplace que começa na primeira invocação da conta não terminou ainda, ou a política da função de tarefa está faltando os ARNs de perfil de inferência ou modelo de fundação | Envie o formulário de caso de uso do catálogo de modelos do console Bedrock; se foi apenas enviado ou esta é a primeira invocação da conta, tente novamente após alguns minutos. Conceda `bedrock:InvokeModel` e `bedrock:InvokeModelWithResponseStream` em ambas as famílias de ARN. |504| Solicitações Bedrock retornam `403 AccessDeniedException` | A conta não enviou o formulário de caso de uso único da Anthropic, a assinatura automática do AWS Marketplace que começa na primeira invocação da conta não terminou ainda, ou a política da função de tarefa está faltando os ARNs de perfil de inferência ou modelo de fundação | Envie o formulário de caso de uso do catálogo de modelos do console Bedrock; se foi apenas enviado ou esta é a primeira invocação da conta, tente novamente após alguns minutos. Conceda `bedrock:InvokeModel` e `bedrock:InvokeModelWithResponseStream` em ambas as famílias de ARN. |

505| Bedrock retorna uma `ValidationException` dizendo que throughput sob demanda não é suportado | Uma entrada `models:` personalizada mapeia para um ID de modelo de fundação simples que a região serve apenas através de perfis de inferência | Mapeie o modelo para seu ID de perfil de inferência entre regiões (`us.anthropic.*`) em vez disso; o catálogo integrado já faz isso |505| Bedrock retorna uma `ValidationException` dizendo que throughput sob demanda não é suportado | Uma entrada `models:` personalizada mapeia para um ID de modelo de fundação simples que a região serve apenas através de perfis de inferência | Mapeie o modelo para seu ID de perfil de inferência entre regiões (`us.anthropic.*`) em vez disso; o catálogo integrado já faz isso |

506| Tarefa ECS para com `ResourceInitializationError` antes do gateway registrar qualquer coisa | A função de execução não consegue ler os segredos do Secrets Manager, ou as subnets privadas não têm caminho para Secrets Manager ou ECR | Conceda `secretsmanager:GetSecretValue` nos ARNs dos três segredos `gateway-` para a função de execução, e forneça saída via gateway NAT, ou, sem um, endpoints de interface para Secrets Manager, ECR e CloudWatch Logs, que o driver `awslogs` precisa no mesmo estágio, mais um endpoint de gateway S3 |506| Tarefa ECS para com `ResourceInitializationError` antes do gateway registrar qualquer coisa | A função de execução não consegue ler os segredos do Secrets Manager, ou as subnets privadas não têm caminho para Secrets Manager ou ECR | Conceda `secretsmanager:GetSecretValue` nos ARNs dos três segredos `gateway-` para a função de execução, e forneça saída via gateway NAT, ou, sem um, endpoints de interface para Secrets Manager, ECR e CloudWatch Logs, que o driver `awslogs` precisa no mesmo estágio, mais um endpoint de gateway S3 |

507| Boot do gateway sai com erro de tempo limite de conexão Postgres | O grupo de segurança do banco de dados não admite o grupo de segurança do gateway na porta 5432, ou o serviço é executado fora da VPC do banco de dados; o store para de esperar após 5 segundos | Permita 5432 do grupo de segurança do gateway no do banco de dados, e execute o serviço na mesma VPC que o grupo de subnets do DB |507| Boot do gateway sai com erro de tempo limite de conexão Postgres | O grupo de segurança do banco de dados não admite o grupo de segurança do gateway na porta 5432, ou o serviço é executado fora da VPC do banco de dados | Permita 5432 do grupo de segurança do gateway no do banco de dados, e execute o serviço na mesma VPC que o grupo de subnets do DB |

508| Boot do gateway sai com erro de verificação de certificado TLS Postgres | A string de conexão define `sslmode=verify-full` mas a imagem não confia no pacote de CA RDS: o pacote não foi copiado na imagem, ou `NODE_EXTRA_CA_CERTS` não aponta para ele | Adicione as duas linhas do Dockerfile da etapa de construção que copiam o pacote e definem `NODE_EXTRA_CA_CERTS`, depois reconstrua, envie sob uma nova tag e reimplante |508| Boot do gateway sai com erro de verificação de certificado TLS Postgres | A string de conexão define `sslmode=verify-full` mas a imagem não confia no pacote de CA RDS: o pacote não foi copiado na imagem, ou `NODE_EXTRA_CA_CERTS` não aponta para ele | Adicione as duas linhas do Dockerfile da etapa de construção que copiam o pacote e definem `NODE_EXTRA_CA_CERTS`, depois reconstrua, envie sob uma nova tag e reimplante |

509| Respostas de streaming caem no meio do stream após um período silencioso | Um gateway mais antigo que v2.1.229 em um Bedrock ou Claude Platform na upstream AWS envia nada enquanto a upstream está silenciosa, por exemplo durante pensamento estendido sem saída transmitida. O ALB fecha uma conexão após 60 segundos sem dados por padrão, então corta o stream nessa lacuna. Gateways v2.1.229 e posteriores mantêm um stream silencioso sob esse tempo limite: nessas upstreams o gateway emite um evento SSE `ping` uma vez após cerca de 15 segundos passarem sem dados de stream, e em uma upstream de API Anthropic ele retransmite os próprios pings da API | Atualize o gateway para v2.1.229 ou posterior, ou defina o atributo `idle_timeout.timeout_seconds` para `3600`, via `modify-load-balancer-attributes` ou a anotação `load-balancer-attributes` do Ingress no EKS |509| Respostas de streaming caem no meio do stream após um período silencioso | Um gateway mais antigo que v2.1.229 em um Bedrock ou Claude Platform na upstream AWS envia nada enquanto a upstream está silenciosa, por exemplo durante pensamento estendido sem saída transmitida. O ALB fecha uma conexão após 60 segundos sem dados por padrão, então corta o stream nessa lacuna. Gateways v2.1.229 e posteriores mantêm um stream silencioso sob esse tempo limite: nessas upstreams o gateway emite um evento SSE `ping` uma vez após cerca de 15 segundos passarem sem dados de stream, e em uma upstream de API Anthropic ele retransmite os próprios pings da API | Atualize o gateway para v2.1.229 ou posterior, ou defina o atributo `idle_timeout.timeout_seconds` para `3600`, via `modify-load-balancer-attributes` ou a anotação `load-balancer-attributes` do Ingress no EKS |

510 510 

Details

282 282 

283Cada sessão mostra um indicador de diff com linhas adicionadas e removidas, como `+42 -18`. Selecione-o para abrir a visualização de diff, deixe comentários inline em linhas específicas e envie-os para Claude com sua próxima mensagem.283Cada sessão mostra um indicador de diff com linhas adicionadas e removidas, como `+42 -18`. Selecione-o para abrir a visualização de diff, deixe comentários inline em linhas específicas e envie-os para Claude com sua próxima mensagem.

284 284 

285A visualização de diff compara as alterações da sessão em relação ao seu branch base por padrão. Para comparar com qualquer outro branch no repositório, selecione **Compare against** e escolha um.

286 

285Claude Code calcula esses diffs, incluindo os diffs por arquivo mostrados conforme Claude edita, a partir do conteúdo bruto do blob git, portanto os drivers de diff e filtros `textconv` configurados no repositório não se aplicam. Para um arquivo em um repositório que não é um dos checkouts da própria sessão, como um clonado dentro do workspace durante a sessão, o diff por arquivo mostra a edição de Claude em si em vez de uma comparação git.287Claude Code calcula esses diffs, incluindo os diffs por arquivo mostrados conforme Claude edita, a partir do conteúdo bruto do blob git, portanto os drivers de diff e filtros `textconv` configurados no repositório não se aplicam. Para um arquivo em um repositório que não é um dos checkouts da própria sessão, como um clonado dentro do workspace durante a sessão, o diff por arquivo mostra a edição de Claude em si em vez de uma comparação git.

286 288 

287Consulte [Revisar e iterar](/docs/pt/web-quickstart#review-and-iterate) para o passo a passo completo, incluindo criação de PR. Para fazer Claude monitorar o PR para falhas de CI e comentários de revisão automaticamente, consulte [Corrigir automaticamente pull requests](#auto-fix-pull-requests).289Consulte [Revisar e iterar](/docs/pt/web-quickstart#review-and-iterate) para o passo a passo completo, incluindo criação de PR. Para fazer Claude monitorar o PR para falhas de CI e comentários de revisão automaticamente, consulte [Corrigir automaticamente pull requests](#auto-fix-pull-requests).

Details

164 Arquive um ambiente164 Arquive um ambiente

165</h3>165</h3>

166 166 

167Para arquivar um ambiente, abra-o para edição e selecione **Archive**. Você não pode excluir um ambiente, apenas arquivá-lo.167Para arquivar um de seus próprios ambientes, abra-o para edição e selecione **Archive**. Um Proprietário arquiva um [ambiente compartilhado](#organization-shared-environments) a partir da página **Cloud environments** nas configurações de administrador. Você não pode excluir um ambiente, apenas arquivá-lo.

168 168 

169O arquivamento afeta novas sessões, não as em execução:169O arquivamento afeta novas sessões, não as em execução:

170 170 


177 Ambientes compartilhados da organização177 Ambientes compartilhados da organização

178</h3>178</h3>

179 179 

180Em planos Team e Enterprise, um Proprietário pode criar ambientes na nuvem que são compartilhados com cada membro da organização. O mesmo papel gerencia tudo mais na página **Cloud environments** do administrador, incluindo [ambientes auto-hospedados](/docs/pt/self-hosted-environments); a função Admin não pode abrir a página. A lista completa de funções que podem abrir é a para [gerenciar configurações gerenciadas pelo servidor](/docs/pt/server-managed-settings#access-control). Os ambientes compartilhados aparecem no seletor de ambiente de cada membro ao lado dos seus pessoais, portanto uma equipe pode padronizar uma configuração em vez de cada membro recriá-la.180Em planos Team e Enterprise, um Proprietário pode criar ambientes na nuvem que são compartilhados com cada membro da organização. O mesmo papel gerencia tudo mais na página **Cloud environments** do administrador, incluindo [ambientes auto-hospedados](/docs/pt/self-hosted-environments); a função Admin não pode abrir a página. A lista completa de funções que podem abrir é a para [gerenciar configurações gerenciadas pelo servidor](/docs/pt/server-managed-settings#access-control).

181 181 

182Crie, edite e arquive ambientes compartilhados a partir da página **Cloud environments** nas [configurações de administrador](https://claude.ai/admin-settings). Um ambiente compartilhado também abre a partir do [seletor de ambiente](#configure-your-environment) em [claude.ai/code](https://claude.ai/code): um Proprietário pode editá-lo lá. Outros membros o veem como somente leitura. Cada ambiente compartilhado tem um nome, um [nível de acesso à rede](#access-levels), [variáveis de ambiente](#set-environment-variables) no formato `.env` e um [script de configuração](#setup-scripts). Os Proprietários escolhem o [ambiente padrão](#the-default-environment) da organização separadamente, em [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code).182Os ambientes compartilhados aparecem no [seletor de ambiente](#configure-your-environment) de cada membro sob um cabeçalho **Organization**, depois dos ambientes pessoais do membro sob **Personal**, portanto uma equipe pode padronizar uma configuração em vez de cada membro recriá-la. Selecionar o ícone de configurações de um ambiente compartilhado lá abre um resumo somente leitura de sua configuração para cada membro, Proprietários inclusos.

183 

184Um Proprietário disponibiliza um ambiente para a organização de uma de duas maneiras:

185 

186* **Crie um ambiente compartilhado**: use a página **Cloud environments** nas [configurações de administrador](https://claude.ai/admin-settings), que é também onde Proprietários editam e arquivam ambientes compartilhados. Cada um tem um nome, um [nível de acesso à rede](#access-levels), [variáveis de ambiente](#set-environment-variables) no formato `.env` e um [script de configuração](#setup-scripts).

187* **Compartilhe um ambiente pessoal**: abra um de seus próprios ambientes para edição no seletor de ambiente, depois compartilhe-o a partir da linha **Who can use it**. O ambiente mantém seu ID, portanto sessões e rotinas que já o usam não são afetadas, e cada membro pode então vê-lo e iniciar sessões nele.

188 

189Os Proprietários escolhem o [ambiente padrão](#the-default-environment) da organização separadamente, em [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code).

183 190 

184Cada sessão de membro em um ambiente compartilhado lê suas variáveis, portanto não inclua segredos nelas. [Credenciais de API](#add-api-credentials), que dão às sessões uma chave que elas não podem ler, ainda não estão disponíveis em planos Team ou Enterprise.191Cada sessão de membro em um ambiente compartilhado lê suas variáveis, portanto não inclua segredos nelas. [Credenciais de API](#add-api-credentials), que dão às sessões uma chave que elas não podem ler, ainda não estão disponíveis em planos Team ou Enterprise.

185 192 


198 205 

199Cada ambiente define um nível de acesso à rede, que controla as conexões de saída que suas sessões podem fazer. O nível padrão, **Trusted**, permite registros de pacotes e outros [domínios na lista de permissões](#default-allowed-domains); **Custom** usa sua própria lista de domínios.206Cada ambiente define um nível de acesso à rede, que controla as conexões de saída que suas sessões podem fazer. O nível padrão, **Trusted**, permite registros de pacotes e outros [domínios na lista de permissões](#default-allowed-domains); **Custom** usa sua própria lista de domínios.

200 207 

201Para alterar o acesso à rede de um ambiente, [abra-o para edição](#configure-your-environment) e use o seletor **Network access** no diálogo. O ícone de nuvem que abre o seletor aparece nas superfícies do aplicativo listadas em [O ambiente Default](#the-default-environment) e no [editor de rotina](/docs/pt/routines#environments-and-network-access); os ambientes pessoais não têm uma página separada nas configurações de sua conta claude.ai.208Para alterar o acesso à rede de um ambiente, [abra-o para edição](#configure-your-environment) e use o seletor **Network access** no diálogo. Um [ambiente compartilhado](#organization-shared-environments) abre como somente leitura lá, portanto um Owner altera seu acesso à rede a partir da página **Cloud environments** nas [configurações de administrador](https://claude.ai/admin-settings). O ícone de nuvem que abre o seletor aparece nas superfícies do aplicativo listadas em [O ambiente Default](#the-default-environment) e no [editor de rotina](/docs/pt/routines#environments-and-network-access); os ambientes pessoais não têm uma página separada nas configurações de sua conta claude.ai.

202 209 

203<Note>210<Note>

204 Os conectores MCP que você ativa em uma sessão ou rotina funcionam sem adicionar seus hosts aos **Allowed domains**, porque o tráfego do conector viaja através dos servidores da Anthropic em vez da rede da sessão. Isso depende do mesmo canal vinculado à Anthropic observado em [Segurança e isolamento](/docs/pt/claude-code-on-the-web#security-and-isolation). Desative qualquer conector que você não precise para limitar quais ferramentas Claude pode alcançar.211 Os conectores MCP que você ativa em uma sessão ou rotina funcionam sem adicionar seus hosts aos **Allowed domains**, porque o tráfego do conector viaja através dos servidores da Anthropic em vez da rede da sessão. Isso depende do mesmo canal vinculado à Anthropic observado em [Segurança e isolamento](/docs/pt/claude-code-on-the-web#security-and-isolation). Desative qualquer conector que você não precise para limitar quais ferramentas Claude pode alcançar.

env-vars.md +1 −1

Details

223| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | Quando `CLAUDE_AUTO_BACKGROUND_TASKS` está ativado, segundos entre lembretes para Claude verificar [subagentes em segundo plano](/docs/pt/sub-agents#run-subagents-in-foreground-or-background) que ainda estão em execução. Aceita um inteiro simples de `1` a `86400` apenas; qualquer outro valor ou grafia é lido como não definido. Quando não definido, não há lembretes de check-in. Requer Claude Code v2.1.248 ou posterior |223| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | Quando `CLAUDE_AUTO_BACKGROUND_TASKS` está ativado, segundos entre lembretes para Claude verificar [subagentes em segundo plano](/docs/pt/sub-agents#run-subagents-in-foreground-or-background) que ainda estão em execução. Aceita um inteiro simples de `1` a `86400` apenas; qualquer outro valor ou grafia é lido como não definido. Quando não definido, não há lembretes de check-in. Requer Claude Code v2.1.248 ou posterior |

224| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Defina a [janela de auto-compactação](/docs/pt/model-config#set-the-auto-compact-window) em tokens, de `100000` a `1000000`. Aceita um inteiro simples como `500000` apenas: um valor como `500k` é lido como `500` e limitado ao mínimo de 100K. A janela efetiva também é limitada à janela de contexto do modelo. Tem precedência sobre o comando `/autocompact`, a flag `--autocompact` e a configuração `autoCompactWindow`. A `used_percentage` da status line sempre mede contra a janela de contexto completa do modelo, então uma vez que essa variável está definida, essa porcentagem não indica mais quando a compactação será executada |224| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Defina a [janela de auto-compactação](/docs/pt/model-config#set-the-auto-compact-window) em tokens, de `100000` a `1000000`. Aceita um inteiro simples como `500000` apenas: um valor como `500k` é lido como `500` e limitado ao mínimo de 100K. A janela efetiva também é limitada à janela de contexto do modelo. Tem precedência sobre o comando `/autocompact`, a flag `--autocompact` e a configuração `autoCompactWindow`. A `used_percentage` da status line sempre mede contra a janela de contexto completa do modelo, então uma vez que essa variável está definida, essa porcentagem não indica mais quando a compactação será executada |

225| `CLAUDE_CODE_AUTO_CONNECT_IDE` | Substitua a [conexão IDE](/docs/pt/vs-code) automática. Por padrão, Claude Code se conecta automaticamente quando iniciado dentro de um terminal integrado de um IDE suportado. Defina como `false` para evitar isso. Defina como `true` para forçar uma tentativa de conexão quando a detecção automática falha, como quando tmux obscurece o terminal pai. Tem precedência sobre a configuração global [`autoConnectIde`](/docs/pt/settings-reference#autoconnectide) |225| `CLAUDE_CODE_AUTO_CONNECT_IDE` | Substitua a [conexão IDE](/docs/pt/vs-code) automática. Por padrão, Claude Code se conecta automaticamente quando iniciado dentro de um terminal integrado de um IDE suportado. Defina como `false` para evitar isso. Defina como `true` para forçar uma tentativa de conexão quando a detecção automática falha, como quando tmux obscurece o terminal pai. Tem precedência sobre a configuração global [`autoConnectIde`](/docs/pt/settings-reference#autoconnectide) |

226| `CLAUDE_CODE_AUTO_MODE_SERVER` | No Amazon Bedrock, Google Cloud's Agent Platform, e Microsoft Foundry, defina como `1` para ter o classificador do lado do servidor da plataforma revisar ações [modo auto](/docs/pt/permission-modes#eliminate-prompts-with-auto-mode); onde a plataforma não executa o classificador, Claude Code volta para suas próprias solicitações de classificador. Quando não definido ou `0`, o classificador executa através de solicitações que Claude Code envia. Não tem efeito em outros provedores, incluindo a API Anthropic. Requer Claude Code v2.1.271 ou posterior |226| `CLAUDE_CODE_AUTO_MODE_SERVER` | Controla se Claude Code pede ao servidor para [revisar ações do modo auto](/docs/pt/permission-modes#server-side-classifier-review). Quando não definido, Claude Code pede ao servidor no Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, e Claude Platform on AWS, e quando você aponta `ANTHROPIC_BASE_URL` para um gateway LLM ou proxy. Defina como `0` para usar as próprias solicitações do classificador de Claude Code. Não lido em uma conexão direta com a API Anthropic. Requer Claude Code v2.1.271 ou posterior; pedir ao servidor por padrão requer v2.1.278 ou posterior |

227| `CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS` | Tempo em milissegundos que Claude Code aguarda a cadeia de provedor de credenciais padrão AWS produzir credenciais antes da solicitação falhar com [`AWS default-chain credential resolve timed out`](/docs/pt/errors#aws-default-chain-credential-resolve-timed-out) (padrão: `60000`). Aumente quando uma etapa em sua cadeia legitimamente precisa de mais tempo, como uma entrada SSO baseada em navegador com MFA através de um wrapper como `aws-vault`. Aplica-se onde quer que Claude Code assine com a cadeia padrão: [Amazon Bedrock](/docs/pt/amazon-bedrock#credential-caching-and-resolution-timeout), [Claude Platform on AWS](/docs/pt/claude-platform-on-aws), e o [endpoint Mantle](/docs/pt/amazon-bedrock#use-the-mantle-endpoint). Requer Claude Code v2.1.207 ou posterior |227| `CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS` | Tempo em milissegundos que Claude Code aguarda a cadeia de provedor de credenciais padrão AWS produzir credenciais antes da solicitação falhar com [`AWS default-chain credential resolve timed out`](/docs/pt/errors#aws-default-chain-credential-resolve-timed-out) (padrão: `60000`). Aumente quando uma etapa em sua cadeia legitimamente precisa de mais tempo, como uma entrada SSO baseada em navegador com MFA através de um wrapper como `aws-vault`. Aplica-se onde quer que Claude Code assine com a cadeia padrão: [Amazon Bedrock](/docs/pt/amazon-bedrock#credential-caching-and-resolution-timeout), [Claude Platform on AWS](/docs/pt/claude-platform-on-aws), e o [endpoint Mantle](/docs/pt/amazon-bedrock#use-the-mantle-endpoint). Requer Claude Code v2.1.207 ou posterior |

228| `CLAUDE_CODE_BASH_EDIT_DIFF` | Defina como `0` para desativar o [diff dos arquivos que um comando Bash alterou](/docs/pt/hooks#bash), ou `1` para registrá-lo em cada modo de permissão. Tem precedência sobre a configuração [`bashEditDiffEnabled`](/docs/pt/settings-reference#basheditdiffenabled). Requer Claude Code v2.1.269 ou posterior |228| `CLAUDE_CODE_BASH_EDIT_DIFF` | Defina como `0` para desativar o [diff dos arquivos que um comando Bash alterou](/docs/pt/hooks#bash), ou `1` para registrá-lo em cada modo de permissão. Tem precedência sobre a configuração [`bashEditDiffEnabled`](/docs/pt/settings-reference#basheditdiffenabled). Requer Claude Code v2.1.269 ou posterior |

229| `CLAUDE_CODE_BG_TASKS_REPORT_RUNNING` | Defina como `0` para fazer uma sessão não interativa relatar um status ocioso para seu host em cada final de volta, mesmo enquanto trabalho em segundo plano ainda está em execução. Por padrão, a sessão continua relatando um status em execução após o final da volta enquanto trabalho em segundo plano como um agente em segundo plano ou uma execução [fluxo de trabalho](/docs/pt/workflows) ainda está ativo. Isso mantém um host que observa o status, como uma lista de sessão remota, de anunciar que Claude está esperando sua entrada no meio do trabalho. Comandos de shell em segundo plano, como um servidor dev, não mantêm o status em execução. O padrão de status em execução e o opt-out `0` requerem Claude Code v2.1.269 ou posterior; em versões anteriores, defina `1` para manter o status em execução |229| `CLAUDE_CODE_BG_TASKS_REPORT_RUNNING` | Defina como `0` para fazer uma sessão não interativa relatar um status ocioso para seu host em cada final de volta, mesmo enquanto trabalho em segundo plano ainda está em execução. Por padrão, a sessão continua relatando um status em execução após o final da volta enquanto trabalho em segundo plano como um agente em segundo plano ou uma execução [fluxo de trabalho](/docs/pt/workflows) ainda está ativo. Isso mantém um host que observa o status, como uma lista de sessão remota, de anunciar que Claude está esperando sua entrada no meio do trabalho. Comandos de shell em segundo plano, como um servidor dev, não mantêm o status em execução. O padrão de status em execução e o opt-out `0` requerem Claude Code v2.1.269 ou posterior; em versões anteriores, defina `1` para manter o status em execução |

Details

328 328 

329Em v2.1.158 até v2.1.206, o modo automático estava desativado nesses provedores até que você definisse `CLAUDE_CODE_ENABLE_AUTO_MODE=1`, e Claude Code ignorava `defaultMode: "auto"` nesses provedores a menos que a variável também fosse definida. A variável ainda é aceita para compatibilidade e não tem efeito a partir de v2.1.207 em diante.329Em v2.1.158 até v2.1.206, o modo automático estava desativado nesses provedores até que você definisse `CLAUDE_CODE_ENABLE_AUTO_MODE=1`, e Claude Code ignorava `defaultMode: "auto"` nesses provedores a menos que a variável também fosse definida. A variável ainda é aceita para compatibilidade e não tem efeito a partir de v2.1.207 em diante.

330 330 

331<h4 id="server-side-classifier-review">331<h3 id="server-side-classifier-review">

332 Revisão do classificador no lado do servidor332 Revisão do classificador no lado do servidor

333</h4>333</h3>

334 

335Em planos Enterprise e em contas que usam a API Claude, em [Claude Platform on AWS](/docs/pt/claude-platform-on-aws), Amazon Bedrock, Agent Platform do Google Cloud e Microsoft Foundry, e sempre que você aponta `ANTHROPIC_BASE_URL` para um [gateway LLM ou proxy](/docs/pt/llm-gateway), Claude Code em modo automático pede ao servidor para revisar [as ações que vão para o classificador](#how-the-classifier-evaluates-actions) como parte das solicitações do modelo da sessão. Onde o servidor as revisa, seus veredictos decidem essas ações. Onde não revisa, tipicamente porque um gateway LLM ou proxy interfere no tráfego, ou porque a plataforma, região ou credencial ainda não tem verificações no lado do servidor, Claude Code volta para suas próprias solicitações do classificador, e uma vez que esse fallback se mantém pelo resto da sessão, mostra um [aviso sobre cobranças de solicitações do classificador](/docs/pt/auto-mode-classifier-billing) em contas onde essas solicitações são cobradas. Para pular pedir ao servidor e sempre usar as próprias solicitações do classificador do Claude Code, defina [`CLAUDE_CODE_AUTO_MODE_SERVER=0`](/docs/pt/env-vars). A variável não é lida em uma conexão direta com a API Anthropic. Se você definir `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` e deixar `CLAUDE_CODE_AUTO_MODE_SERVER` indefinido, Claude Code também para de pedir ao servidor.

334 336 

335No Amazon Bedrock, Agent Platform do Google Cloud e Microsoft Foundry, Claude Code revisa ações do modo automático com suas próprias solicitações do classificador por padrão. Para fazer com que o classificador no lado do servidor da plataforma revise [as ações que vão para o classificador](#how-the-classifier-evaluates-actions) como parte das solicitações do modelo da sessão em vez disso, defina [`CLAUDE_CODE_AUTO_MODE_SERVER=1`](/docs/pt/env-vars). Onde a plataforma executa o classificador, seus veredictos decidem essas ações; onde não executa, Claude Code volta para suas próprias solicitações do classificador. Em v2.1.271 e v2.1.272, pedir à plataforma era o padrão nesses provedores.337Pedir ao servidor por padrão requer Claude Code v2.1.278 ou posterior.

336 338 

337<h3 id="what-the-classifier-blocks-by-default">339<h3 id="what-the-classifier-blocks-by-default">

338 O que o classificador bloqueia por padrão340 O que o classificador bloqueia por padrão


517 519 

518 A primeira solicitação de modo automático da sessão valida o padrão Sonnet 5: se a solicitação for bem-sucedida, Sonnet 5 permanece o modelo de classificador da sessão, e se falhar porque o modelo não está disponível, a sessão usa o fallback em vez disso. Depois que essa validação se resolve, o modelo do classificador não muda para a sessão.520 A primeira solicitação de modo automático da sessão valida o padrão Sonnet 5: se a solicitação for bem-sucedida, Sonnet 5 permanece o modelo de classificador da sessão, e se falhar porque o modelo não está disponível, a sessão usa o fallback em vez disso. Depois que essa validação se resolve, o modelo do classificador não muda para a sessão.

519 521 

520 Em planos Enterprise e em contas que usam a API Claude, [Claude Platform on AWS](/docs/pt/claude-platform-on-aws), Amazon Bedrock, Agent Platform do Google Cloud ou Microsoft Foundry, chamadas do classificador contam para seu uso de token. Cada verificação envia uma porção da transcrição mais a ação pendente, adicionando uma volta antes da execução. Leituras e edições de diretório de trabalho fora de caminhos protegidos pulam o classificador, então a sobrecarga vem principalmente de comandos shell e operações de rede. No Amazon Bedrock, Agent Platform do Google Cloud e Microsoft Foundry, você pode mover a revisão para as solicitações do modelo da sessão em vez disso; veja [Revisão do classificador no lado do servidor](#server-side-classifier-review).522 Em planos Enterprise e em contas que usam a API Claude, [Claude Platform on AWS](/docs/pt/claude-platform-on-aws), Amazon Bedrock, Agent Platform do Google Cloud ou Microsoft Foundry, chamadas do classificador contam para seu uso de token. Cada verificação envia uma porção da transcrição mais a ação pendente, adicionando uma volta antes da execução. Leituras e edições de diretório de trabalho fora de caminhos protegidos pulam o classificador, então a sobrecarga vem principalmente de comandos shell e operações de rede. Onde o servidor revisa as ações como parte das solicitações do modelo da sessão, não há solicitações separadas do classificador para contar; veja [Revisão do classificador no lado do servidor](#server-side-classifier-review).

521 523 

522 O acesso à rede em sandbox não adiciona solicitações do classificador por conexão. O classificador julga [os hosts que um comando nomeia](/docs/pt/sandboxing#per-command-allowed-domains-in-auto-mode) junto com o comando em uma revisão, e Claude Code verifica cada conexão contra a lista aprovada sem chamar o classificador novamente.524 O acesso à rede em sandbox não adiciona solicitações do classificador por conexão. O classificador julga [os hosts que um comando nomeia](/docs/pt/sandboxing#per-command-allowed-domains-in-auto-mode) junto com o comando em uma revisão, e Claude Code verifica cada conexão contra a lista aprovada sem chamar o classificador novamente.

523 </Accordion>525 </Accordion>

routines.md +18 −3

Details

52 52 

53O formulário de criação configura o prompt da rotina, repositórios, ambiente, conectores e acionadores.53O formulário de criação configura o prompt da rotina, repositórios, ambiente, conectores e acionadores.

54 54 

55As rotinas são executadas autonomamente como sessões completas de Claude Code em nuvem: não há seletor de modo de permissão e nenhum prompt de aprovação durante uma execução. A sessão pode executar comandos shell, usar [skills](/docs/pt/skills) confirmadas no repositório clonado e chamar qualquer conector que você incluir. O que uma rotina pode alcançar é determinado pelos repositórios que você seleciona, o [acesso à rede do ambiente](/docs/pt/cloud-environments) e variáveis, e os conectores que você inclui. Escopo cada um desses para o que a rotina realmente precisa.55As rotinas são executadas autonomamente como sessões completas de Claude Code em nuvem: não há seletor de modo de permissão, e a sessão executa comandos shell, usa [skills](/docs/pt/skills) confirmadas no repositório clonado e chama qualquer conector que você incluir, tudo sem parar para aprovação, exceto por algumas ações de [artifact](/docs/pt/artifacts).

56 

57O que uma rotina pode alcançar é determinado pelos repositórios que você seleciona, o [acesso à rede do ambiente](/docs/pt/cloud-environments) e variáveis, e os conectores que você inclui. Escopo cada um desses para o que a rotina realmente precisa.

58 

59Quando o cronograma da rotina ou **Run now** inicia uma execução, Claude republica um artifact existente sem perguntar apenas quando todos estes se aplicam:

60 

61* Você pode editar o artifact e ele pertence à sua própria organização

62* O artifact não é compartilhado publicamente e não é compartilhado com pessoas específicas ou sua organização com a versão mais recente escolhida como a versão que os visualizadores veem

63* A publicação carrega apenas a página, sem arquivos de suporte ou qualquer outra coisa adicionada, e não força sobre uma versão mais recente

64* A página não contém uma concessão que vai além da página, como [chamadas de conector](/docs/pt/artifacts#pull-live-data-with-mcp-connectors)

65 

66Em todos os outros casos, incluindo publicar um novo artifact, Claude pergunta primeiro. Quando o trabalho de uma rotina é manter uma página atual, dê a ela um artifact que você já publicou.

56 67 

57As rotinas pertencem à sua conta individual claude.ai. Elas não são compartilhadas com colegas de equipe e contam contra a permissão de execução diária da sua conta. Qualquer coisa que uma rotina faz através de sua identidade do GitHub conectada ou conectores aparece como você: commits e pull requests carregam seu usuário do GitHub, e mensagens do Slack, tickets do Linear ou outras ações de conector usam suas contas vinculadas para esses serviços.68As rotinas pertencem à sua conta individual claude.ai. Elas não são compartilhadas com colegas de equipe e contam contra a permissão de execução diária da sua conta. Qualquer coisa que uma rotina faz através de sua identidade do GitHub conectada ou conectores aparece como você: commits e pull requests carregam seu usuário do GitHub, e mensagens do Slack, tickets do Linear ou outras ações de conector usam suas contas vinculadas para esses serviços.

58 69 


349 360 

350As rotinas precisam de acesso ao GitHub para clonar repositórios. Quando você cria uma rotina a partir da CLI com `/schedule`, Claude verifica se sua conta tem acesso ao GitHub para o repositório do qual você a executou e, se não tiver, adiciona uma nota de configuração nomeando como conceder acesso. Consulte [Opções de autenticação do GitHub](/docs/pt/claude-code-on-the-web#github-authentication-options) para as duas maneiras de conceder acesso.361As rotinas precisam de acesso ao GitHub para clonar repositórios. Quando você cria uma rotina a partir da CLI com `/schedule`, Claude verifica se sua conta tem acesso ao GitHub para o repositório do qual você a executou e, se não tiver, adiciona uma nota de configuração nomeando como conceder acesso. Consulte [Opções de autenticação do GitHub](/docs/pt/claude-code-on-the-web#github-authentication-options) para as duas maneiras de conceder acesso.

351 362 

363Se sua conexão do GitHub estiver ausente ou expirada quando uma execução estiver programada, a rotina pula execuções até que você se reconecte, por até 72 horas. Reconecte o GitHub dentro dessa janela e a rotina retoma automaticamente. Após 72 horas sem uma conexão, a rotina se desativa e você a reativa após reconectar o GitHub.

364 

352Cada repositório que você adiciona é clonado em cada execução. Claude começa a partir do branch padrão do repositório, a menos que seu prompt especifique o contrário.365Cada repositório que você adiciona é clonado em cada execução. Claude começa a partir do branch padrão do repositório, a menos que seu prompt especifique o contrário.

353 366 

354Claude faz push de seu trabalho para branches com prefixo `claude/`, que são sempre aceitos. Quando seu prompt direciona Claude para fazer push para outro branch, Claude Code verifica o push primeiro e o rejeita se qualquer um dos seguintes for verdadeiro:367Claude faz push de seu trabalho para branches com prefixo `claude/`, que são sempre aceitos. Quando seu prompt direciona Claude para fazer push para outro branch, Claude Code verifica o push primeiro e o rejeita se qualquer um dos seguintes for verdadeiro:


377 390 

378O ambiente **Padrão** usa acesso à rede **Confiável**, que permite apenas a [lista de permissões padrão](/docs/pt/cloud-environments#default-allowed-domains) através da rede da sessão. Solicitações nesse caminho para hosts fora da lista de permissões falham com `403` e `x-deny-reason: host_not_allowed`. O tráfego do conector MCP é roteado através dos servidores da Anthropic em vez desse caminho, portanto os conectores que você adiciona à rotina funcionam sem adicionar seus hosts aos **Domínios permitidos**. Remova qualquer conectores que você não precise em [Conectores](#connectors).391O ambiente **Padrão** usa acesso à rede **Confiável**, que permite apenas a [lista de permissões padrão](/docs/pt/cloud-environments#default-allowed-domains) através da rede da sessão. Solicitações nesse caminho para hosts fora da lista de permissões falham com `403` e `x-deny-reason: host_not_allowed`. O tráfego do conector MCP é roteado através dos servidores da Anthropic em vez desse caminho, portanto os conectores que você adiciona à rotina funcionam sem adicionar seus hosts aos **Domínios permitidos**. Remova qualquer conectores que você não precise em [Conectores](#connectors).

379 392 

380Para permitir domínios adicionais:393Para permitir domínios adicionais em um de seus próprios ambientes, siga estas etapas. Um [ambiente compartilhado pela organização](/docs/pt/cloud-environments#organization-shared-environments) abre como somente leitura aqui, portanto um Proprietário altera seu acesso à rede na página **Ambientes em nuvem** em [configurações de administração](https://claude.ai/admin-settings).

381 394 

382<Steps>395<Steps>

383 <Step title="Abra a rotina para edição">396 <Step title="Abra a rotina para edição">


413 426 

414As execuções únicas não contam contra o limite diário de execução de rotina. Elas reduzem seu uso de assinatura regular como qualquer outra sessão.427As execuções únicas não contam contra o limite diário de execução de rotina. Elas reduzem seu uso de assinatura regular como qualquer outra sessão.

415 428 

429Enquanto sua assinatura está pausada, suas rotinas são colocadas em espera e não são executadas. Assim que sua assinatura estiver ativa novamente, ative-as novamente.

430 

416<h2 id="troubleshooting">431<h2 id="troubleshooting">

417 Solução de problemas432 Solução de problemas

418</h2>433</h2>


427 442 

428* Você está autenticado com uma chave de API do Console, um [perfil Anthropic ou credencial de federação](/docs/pt/authentication#anthropic-profiles-and-federation-credentials), ou um provedor de nuvem como Amazon Bedrock, Google Cloud's Agent Platform ou Microsoft Foundry. `/schedule` requer um login de assinatura claude.ai. Com uma chave de API do Console ou um perfil, e busca de sinalizadores de recursos habilitada, enviar `/schedule` mostra `/schedule is available with Claude for Enterprise — ask your admin about migrating from API-key access`. Com um login de provedor de nuvem, você ainda vê `Unknown command: /schedule`. Se `ANTHROPIC_API_KEY` ou `ANTHROPIC_AUTH_TOKEN` estiver definido em seu shell, ou `apiKeyHelper` estiver definido em `settings.json`, remova-o primeiro, pois esses têm precedência sobre um login claude.ai. Um perfil ou credencial de federação também tem precedência, então desative isso também443* Você está autenticado com uma chave de API do Console, um [perfil Anthropic ou credencial de federação](/docs/pt/authentication#anthropic-profiles-and-federation-credentials), ou um provedor de nuvem como Amazon Bedrock, Google Cloud's Agent Platform ou Microsoft Foundry. `/schedule` requer um login de assinatura claude.ai. Com uma chave de API do Console ou um perfil, e busca de sinalizadores de recursos habilitada, enviar `/schedule` mostra `/schedule is available with Claude for Enterprise — ask your admin about migrating from API-key access`. Com um login de provedor de nuvem, você ainda vê `Unknown command: /schedule`. Se `ANTHROPIC_API_KEY` ou `ANTHROPIC_AUTH_TOKEN` estiver definido em seu shell, ou `apiKeyHelper` estiver definido em `settings.json`, remova-o primeiro, pois esses têm precedência sobre um login claude.ai. Um perfil ou credencial de federação também tem precedência, então desative isso também

429* Você está totalmente desconectado, sem chave de API ou outra credencial. Com busca de sinalizadores de recursos habilitada, enviar `/schedule` mostra `/schedule requires a claude.ai subscription. Run /login to sign in with your claude.ai account.` Antes da v2.1.268, uma sessão desconectada mostrava a mesma mensagem Claude for Enterprise que uma chave de API do Console444* Você está totalmente desconectado, sem chave de API ou outra credencial. Com busca de sinalizadores de recursos habilitada, enviar `/schedule` mostra `/schedule requires a claude.ai subscription. Run /login to sign in with your claude.ai account.` Antes da v2.1.268, uma sessão desconectada mostrava a mesma mensagem Claude for Enterprise que uma chave de API do Console

430* Você está dentro de uma sessão Claude Code na web. Gerencie rotinas a partir da [interface web](https://claude.ai/code/routines)445* Você está dentro de uma sessão na nuvem, onde enviar `/schedule` responde que o comando não está disponível nesse ambiente. Gerencie rotinas a partir da [interface web](https://claude.ai/code/routines)

431* A política da sua organização desabilita [Claude Code na web](/docs/pt/claude-code-on-the-web), na qual as rotinas são executadas. Neste caso, enviar `/schedule` responde [`Cloud sessions are disabled by your organization's policy`](/docs/pt/errors#cloud-sessions-are-disabled-by-your-organizations-policy). Antes da v2.1.268, retornava `Unknown command: /schedule`446* A política da sua organização desabilita [Claude Code na web](/docs/pt/claude-code-on-the-web), na qual as rotinas são executadas. Neste caso, enviar `/schedule` responde [`Cloud sessions are disabled by your organization's policy`](/docs/pt/errors#cloud-sessions-are-disabled-by-your-organizations-policy). Antes da v2.1.268, retornava `Unknown command: /schedule`

432* Um Owner [desativou rotinas](#routines-are-disabled-by-your-organizations-policy) para sua organização Team ou Enterprise. Antes da v2.1.227, o comando ainda aparecia neste caso, e claude.ai rejeitava a rotina quando Claude tentava criá-la ou executá-la447* Um Owner [desativou rotinas](#routines-are-disabled-by-your-organizations-policy) para sua organização Team ou Enterprise. Antes da v2.1.227, o comando ainda aparecia neste caso, e claude.ai rejeitava a rotina quando Claude tentava criá-la ou executá-la

433 448 

Details

168* O runner define `GCM_INTERACTIVE=never`, para que Git Credential Manager não abra um diálogo de login.168* O runner define `GCM_INTERACTIVE=never`, para que Git Credential Manager não abra um diálogo de login.

169* O runner limpa `core.askPass`, então se você usar um helper askpass, defina-o através da variável de ambiente `GIT_ASKPASS` em vez disso.169* O runner limpa `core.askPass`, então se você usar um helper askpass, defina-o através da variável de ambiente `GIT_ASKPASS` em vez disso.

170 170 

171Se seu host git rejeitar a credencial, ou você não configurou uma, o runner tenta novamente algumas vezes e depois falha na preparação do repositório. O runner não passa essas configurações para o ambiente da sessão.171Se seu host git rejeitar a credencial, ou você não configurou uma, o runner tenta novamente algumas vezes e depois falha na preparação do repositório quando o repositório é aquele para o qual a sessão envia resultados. Para um repositório que a sessão apenas lê, [Troubleshooting](#troubleshooting) cobre quando o runner o pula em vez disso. O runner não passa essas configurações para o ambiente da sessão.

172 172 

173Se os diretórios de checkout são possuídos por um uid diferente do processo runner, git se recusa a operar neles; adicione `safe.directory`:173Se os diretórios de checkout são possuídos por um uid diferente do processo runner, git se recusa a operar neles; adicione `safe.directory`:

174 174 


531* **Sessions can't reach the network through an authenticating egress proxy**: quando a fonte que você definiu com [`--proxy-authorization-command` ou `--proxy-authorization-file`](#authenticate-to-an-egress-proxy) falha, expira após 30 segundos ou produz um valor vazio, o runner responde essa conexão com `502 Bad Gateway` e registra o motivo. O runner redige o stderr do comando nesse log e nunca registra o valor do cabeçalho. Com `--proxy-authorization-command`, execute o comando você mesmo no host para confirmar que ele imprime o valor do cabeçalho inteiro em stdout. Se o runner sair na inicialização com `could not start the proxy-authorization listener`, ele não conseguiu abrir seu listener de loopback.531* **Sessions can't reach the network through an authenticating egress proxy**: quando a fonte que você definiu com [`--proxy-authorization-command` ou `--proxy-authorization-file`](#authenticate-to-an-egress-proxy) falha, expira após 30 segundos ou produz um valor vazio, o runner responde essa conexão com `502 Bad Gateway` e registra o motivo. O runner redige o stderr do comando nesse log e nunca registra o valor do cabeçalho. Com `--proxy-authorization-command`, execute o comando você mesmo no host para confirmar que ele imprime o valor do cabeçalho inteiro em stdout. Se o runner sair na inicialização com `could not start the proxy-authorization listener`, ele não conseguiu abrir seu listener de loopback.

532* **Runner logs `Poll failed` lines containing `rejecting the malformed poll response`**: o runner recebeu uma resposta de work-poll cujo corpo não é o JSON esperado da fila, na maioria das vezes porque algo entre o runner e `api.anthropic.com`, como um proxy interceptador ou um portal cativo, respondeu com sua própria página. O runner rejeita a resposta, a conta sob o tipo `transport` da métrica `claude_code_self_hosted_runner_poll_errors_total` [metric](/docs/pt/self-hosted-environments-reference#prometheus-metrics), e tenta novamente no cronograma de falha de pesquisa descrito em [Session lifecycle](/docs/pt/self-hosted-environments#session-lifecycle). O runner continua servindo suas sessões ativas. Configure o proxy para passar respostas de `api.anthropic.com` inalteradas. Antes da v2.1.246, o runner lia tal resposta como uma fila de trabalho vazia, o que poderia encerrar suas sessões ativas ou fazer com que saísse.532* **Runner logs `Poll failed` lines containing `rejecting the malformed poll response`**: o runner recebeu uma resposta de work-poll cujo corpo não é o JSON esperado da fila, na maioria das vezes porque algo entre o runner e `api.anthropic.com`, como um proxy interceptador ou um portal cativo, respondeu com sua própria página. O runner rejeita a resposta, a conta sob o tipo `transport` da métrica `claude_code_self_hosted_runner_poll_errors_total` [metric](/docs/pt/self-hosted-environments-reference#prometheus-metrics), e tenta novamente no cronograma de falha de pesquisa descrito em [Session lifecycle](/docs/pt/self-hosted-environments#session-lifecycle). O runner continua servindo suas sessões ativas. Configure o proxy para passar respostas de `api.anthropic.com` inalteradas. Antes da v2.1.246, o runner lia tal resposta como uma fila de trabalho vazia, o que poderia encerrar suas sessões ativas ou fazer com que saísse.

533* **A session's branch no longer exists on the remote**: para uma fonte git que a sessão apenas lê, o runner pula essa fonte e continua nas restantes. Para a fonte para a qual a sessão envia resultados, uma ramificação excluída, normalmente porque foi mesclada e auto-excluída, falha na sessão com um erro nomeando o repositório e a ramificação e pedindo que você restaure a ramificação e tente novamente. O runner falha na sessão com o mesmo erro quando pular deixaria sem nenhum repositório. Antes da v2.1.228, tal sessão começava em um diretório vazio.533* **A session's branch no longer exists on the remote**: para uma fonte git que a sessão apenas lê, o runner pula essa fonte e continua nas restantes. Para a fonte para a qual a sessão envia resultados, uma ramificação excluída, normalmente porque foi mesclada e auto-excluída, falha na sessão com um erro nomeando o repositório e a ramificação e pedindo que você restaure a ramificação e tente novamente. O runner falha na sessão com o mesmo erro quando pular deixaria sem nenhum repositório. Antes da v2.1.228, tal sessão começava em um diretório vazio.

534* **A session starts without one of its repositories**: em um runner sem um [checkout hook](/docs/pt/self-hosted-environments-configuration#checkout), o host git pode recusar a verificação de acesso do runner para um repositório que a sessão apenas lê. O runner então pula esse repositório, registra uma linha `[runner:warn] could not access context source` nomeando a recusa, e inicia a sessão nos restantes.

535 

536 O runner pula apenas uma recusa clara: o host responde que o repositório não foi encontrado, git não encontra credenciais para o host, ou a autenticação falha. Uma falha de rede, um timeout ou um HTTP `403` ainda falha no início da sessão, assim como uma recusa para um repositório para o qual a sessão envia resultados. O runner ainda falha em uma sessão que pular deixaria sem nenhum repositório. Com [`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy), o runner pula apenas um repositório que o proxy git em si nega.

537 

538 A verificação de acesso é executada novamente cada vez que a sessão é iniciada em um runner, portanto, uma vez que a identidade git do runner tenha acesso de leitura, o próximo início clona o repositório. Antes da v2.1.274, cada uma dessas recusas falhava no início da sessão.

534* **Sessions take minutes to start**: o clone inicial geralmente domina. Observe a métrica `claude_code_self_hosted_runner_session_init_duration_seconds` [metric](/docs/pt/self-hosted-environments-reference#prometheus-metrics) para confirmar e corte o clone com um [pre-warmed checkout](#reuse-a-pre-warmed-checkout) ou um `CLAUDE_RUNNER_FETCH_DEPTH` menor.539* **Sessions take minutes to start**: o clone inicial geralmente domina. Observe a métrica `claude_code_self_hosted_runner_session_init_duration_seconds` [metric](/docs/pt/self-hosted-environments-reference#prometheus-metrics) para confirmar e corte o clone com um [pre-warmed checkout](#reuse-a-pre-warmed-checkout) ou um `CLAUDE_RUNNER_FETCH_DEPTH` menor.

540* **Turns fail with a 401**: cada sessão autentica chamadas de modelo com o token de curta duração [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/pt/self-hosted-environments-configuration#wrapper-scripts) que o runner busca da Anthropic e rotaciona sobre o stdin da sessão. Quando uma volta termina com um 401 ou 403 da API do modelo, o runner busca um token novo e o passa para a sessão. A volta com falha não é retentada.

541 

542 Quando uma busca falha, o runner registra uma linha `inference_token refresh failed` que diz quando tentará novamente, e continua tentando novamente enquanto a sessão estiver em execução.

543 

544 Se cada chamada começar a falhar cerca de 30 minutos em uma sessão, um script wrapper provavelmente sevrou o stdin da sessão, então as rotações de token não conseguem alcançá-lo; consulte [Keep stdin and file descriptor 3 attached](/docs/pt/self-hosted-environments-configuration#keep-stdin-and-file-descriptor-3-attached).

545 

546 Antes da v2.1.274, o runner parou de tentar novamente uma busca com falha após algumas tentativas e aguardou a próxima agendada. Uma volta com falha não acionou uma busca, então cada volta falhou com um 401 até a próxima busca agendada.

535* **Pod is killed mid-drain**: aumente `terminationGracePeriodSeconds` para pelo menos o valor que o runner registra na inicialização. Consulte [Shutdown timing](#shutdown-timing).547* **Pod is killed mid-drain**: aumente `terminationGracePeriodSeconds` para pelo menos o valor que o runner registra na inicialização. Consulte [Shutdown timing](#shutdown-timing).

536 548 

537Depois que o logging é inicializado, o runner escreve seu log de ciclo de vida, incluindo linhas `[runner:fatal]`, para stdout, e saída de depuração para stderr, tudo como linhas de texto simples em vez de JSON. As falhas de inicialização descritas nas entradas de troubleshooting acima são impressas em stderr antes desse ponto. Capture ambos os fluxos com `--log-file`, que também permite que `self-hosted-runner doctor` os acompanhe, ou com a coleta de logs da sua plataforma.549Depois que o logging é inicializado, o runner escreve seu log de ciclo de vida, incluindo linhas `[runner:fatal]`, para stdout, e saída de depuração para stderr, tudo como linhas de texto simples em vez de JSON. As falhas de inicialização descritas nas entradas de troubleshooting acima são impressas em stderr antes desse ponto. Capture ambos os fluxos com `--log-file`, que também permite que `self-hosted-runner doctor` os acompanhe, ou com a coleta de logs da sua plataforma.

Details

103| `SELF_HOSTED_RUNNER_BG_RESULT_GRACE_MS` | `30000` | Quanto tempo o executor considera uma sessão ocupada após uma tarefa em segundo plano terminar enquanto o turno de acompanhamento que lê o resultado não começou. As linhas [`--drain-wait-sec` e `--release-idle-session-min`](#runner-cli-flags) descrevem onde a retenção se aplica na drenagem e liberação ociosa, e [Runner lifecycle](/docs/pt/self-hosted-environments#runner-lifecycle) descreve onde se aplica na aposentadoria `--retire-at`. `0` ou um valor inutilizável volta ao padrão, para que a retenção não possa ser desligada. Requer Claude Code v2.1.228 ou posterior. |103| `SELF_HOSTED_RUNNER_BG_RESULT_GRACE_MS` | `30000` | Quanto tempo o executor considera uma sessão ocupada após uma tarefa em segundo plano terminar enquanto o turno de acompanhamento que lê o resultado não começou. As linhas [`--drain-wait-sec` e `--release-idle-session-min`](#runner-cli-flags) descrevem onde a retenção se aplica na drenagem e liberação ociosa, e [Runner lifecycle](/docs/pt/self-hosted-environments#runner-lifecycle) descreve onde se aplica na aposentadoria `--retire-at`. `0` ou um valor inutilizável volta ao padrão, para que a retenção não possa ser desligada. Requer Claude Code v2.1.228 ou posterior. |

104| `SELF_HOSTED_RUNNER_HOST_CONFIG_DIR` | `~/.claude` | Diretório capturado no snapshot de inicialização do executor e semeado no `CLAUDE_CONFIG_DIR` de cada sessão; mudanças em disco se aplicam após um reinício do executor. Definir a variável também move onde o executor lê `.claude.json` para [seeding MCP](/docs/pt/self-hosted-environments-configuration#mcp-servers), então defini-la, incluindo seu próprio padrão, realoca essa pesquisa; aponte para um diretório vazio para desabilitar o seeding inteiramente. |104| `SELF_HOSTED_RUNNER_HOST_CONFIG_DIR` | `~/.claude` | Diretório capturado no snapshot de inicialização do executor e semeado no `CLAUDE_CONFIG_DIR` de cada sessão; mudanças em disco se aplicam após um reinício do executor. Definir a variável também move onde o executor lê `.claude.json` para [seeding MCP](/docs/pt/self-hosted-environments-configuration#mcp-servers), então defini-la, incluindo seu próprio padrão, realoca essa pesquisa; aponte para um diretório vazio para desabilitar o seeding inteiramente. |

105| `SELF_HOSTED_RUNNER_MAX_LIFETIME_GRACE_MS` | `900000` | Quanto tempo o executor aguarda após uma sessão atingir seu limite `--kill-session-after-min`, para um turno em execução terminar ou a liberação ser concluída, antes de encerrar a sessão |105| `SELF_HOSTED_RUNNER_MAX_LIFETIME_GRACE_MS` | `900000` | Quanto tempo o executor aguarda após uma sessão atingir seu limite `--kill-session-after-min`, para um turno em execução terminar ou a liberação ser concluída, antes de encerrar a sessão |

106| `SELF_HOSTED_RUNNER_POST_TURN_SETTLE_MS` | `7000` | Limite superior de quanto tempo o executor conta uma sessão como ocupada para a drenagem `--drain-wait-sec` após um turno terminar, enquanto o processo da sessão relata o fim do turno para a Anthropic. `0` ou um valor inutilizável volta ao padrão, para que a retenção não possa ser desligada. Requer Claude Code v2.1.275 ou posterior. |

106| `SELF_HOSTED_RUNNER_SIGKILL_GRACE_MS` | `30000` | Quanto tempo o executor aguarda o SO entregar `SIGKILL` para um filho preso em I/O não interruptível antes de sair ele mesmo. Limitado a `--post-session-hook-timeout-sec` mais 15 segundos, e 30 mais quando `--push-outcome-on-release` está definido, então o mínimo efetivo é 75 segundos nos padrões. |107| `SELF_HOSTED_RUNNER_SIGKILL_GRACE_MS` | `30000` | Quanto tempo o executor aguarda o SO entregar `SIGKILL` para um filho preso em I/O não interruptível antes de sair ele mesmo. Limitado a `--post-session-hook-timeout-sec` mais 15 segundos, e 30 mais quando `--push-outcome-on-release` está definido, então o mínimo efetivo é 75 segundos nos padrões. |

107| `CLAUDE_RUNNER_FETCH_DEPTH` | `50` | Profundidade de busca git para clones frescos. Defina um inteiro positivo, ou `full` ou `0` para uma busca completa. Repositórios já presentes no workspace mantêm sua profundidade existente. |108| `CLAUDE_RUNNER_FETCH_DEPTH` | `50` | Profundidade de busca git para clones frescos. Defina um inteiro positivo, ou `full` ou `0` para uma busca completa. Repositórios já presentes no workspace mantêm sua profundidade existente. |

108| `CLAUDE_RUNNER_SKIP_GIT_VERIFY` | não definido | Quando `1`, pule a verificação de presença `.git` após um hook `checkout` ser executado. Defina isso quando seu hook materializa uma fonte não-git. |109| `CLAUDE_RUNNER_SKIP_GIT_VERIFY` | não definido | Quando `1`, pule a verificação de presença `.git` após um hook `checkout` ser executado. Defina isso quando seu hook materializa uma fonte não-git. |

slack.md +3 −1

Details

231 231 

232Esta entrada se aplica a espaços de trabalho que usam [Claude Tag](https://claude.com/docs/claude-tag/overview), onde Claude funciona em canais como a identidade compartilhada de sua organização, não como a conta de nenhum membro. Se você criou o ambiente em nuvem do canal em [claude.ai/code](https://claude.ai/code), ele pertence à sua conta pessoal, e Claude não pode iniciar sessões de canal em um ambiente pessoal. Claude Code falha na sessão imediatamente, e tentar novamente não ajuda.232Esta entrada se aplica a espaços de trabalho que usam [Claude Tag](https://claude.com/docs/claude-tag/overview), onde Claude funciona em canais como a identidade compartilhada de sua organização, não como a conta de nenhum membro. Se você criou o ambiente em nuvem do canal em [claude.ai/code](https://claude.ai/code), ele pertence à sua conta pessoal, e Claude não pode iniciar sessões de canal em um ambiente pessoal. Claude Code falha na sessão imediatamente, e tentar novamente não ajuda.

233 233 

234Se você for um Proprietário, recrie o ambiente como um [ambiente compartilhado da organização](/docs/pt/cloud-environments#organization-shared-environments) na página **Cloud environments** em [configurações de administrador](https://claude.ai/admin-settings). Você pode aplicá-lo de duas maneiras:234Se você for um Proprietário e o ambiente for seu, [compartilhe-o com a organização](/docs/pt/cloud-environments#organization-shared-environments) a partir do seletor de ambiente. Caso contrário, um Proprietário o recria como um ambiente compartilhado da organização a partir da página **Cloud environments** em [configurações de administrador](https://claude.ai/admin-settings).

235 

236Você pode aplicá-lo de duas maneiras:

235 237 

236* Defina-o como padrão da organização em [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code).238* Defina-o como padrão da organização em [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code).

237* [Defina-o no canal](https://claude.com/docs/claude-tag/admins/troubleshooting#channel-sessions-use-the-wrong-environment-or-can%E2%80%99t-find-one) nas configurações de administrador do Claude Tag.239* [Defina-o no canal](https://claude.com/docs/claude-tag/admins/troubleshooting#channel-sessions-use-the-wrong-environment-or-can%E2%80%99t-find-one) nas configurações de administrador do Claude Tag.

Details

196<Steps>196<Steps>

197 <Step title="Abra a visualização de diff">197 <Step title="Abra a visualização de diff">

198 Um indicador de diff mostra linhas adicionadas e removidas em toda a sessão, por exemplo `+42 -18`. Selecione-o para abrir a visualização de diff, com uma lista de arquivos à esquerda e alterações à direita.198 Um indicador de diff mostra linhas adicionadas e removidas em toda a sessão, por exemplo `+42 -18`. Selecione-o para abrir a visualização de diff, com uma lista de arquivos à esquerda e alterações à direita.

199 

200 O diff compara as alterações da sessão contra seu branch base por padrão. Para comparar contra um branch diferente, selecione **Comparar contra** e escolha um.

199 </Step>201 </Step>

200 202 

201 <Step title="Deixe comentários inline">203 <Step title="Deixe comentários inline">