diff --git a/progresso/resolucao-boot-rubyllm.md b/progresso/resolucao-boot-rubyllm.md new file mode 100644 index 0000000..60f804e --- /dev/null +++ b/progresso/resolucao-boot-rubyllm.md @@ -0,0 +1,38 @@ +# Resolução: Boot Loop (RubyLLM) e Onboarding Infinito + +## Objetivo + +Corrigir falha na inicialização do container (CrashLoopBackoff) e redirecionamento incorreto para o fluxo de onboarding após atualização da stack. + +## Contexto + +1. **Erro de Boot**: O arquivo `config/initializers/ruby_llm.rb` tentava configurar `google_api_key`, propriedade inexistente na versão atual da gem, causando exceção fatal na inicialização do Rails. +2. **Onboarding Infinito**: O arquivo `db/seeds.rb` setava incondicionalmente a chave Redis de onboarding em produção, fazendo com que usuários existentes fossem redirecionados para criar conta (causando erro de chave duplicada). +3. **Falta de Versionamento**: Impossibilidade de verificar qual versão do código estava rodando no container. + +## Alterações Realizadas + +### 1. Correção `config/initializers/ruby_llm.rb` + +- Removida a linha `config.google_api_key = ...`. +- Adicionado bloco `begin/rescue` para capturar erros de configuração do LLM sem derrubar a aplicação. + +### 2. Correção `db/seeds.rb` + +- Adicionada verificação `if User.count.zero?` antes de ativar o modo onboarding. + +### 3. Versionamento `docker/Dockerfile` + +- Adicionado suporte a `ARG BUILD_SHA`. +- O hash do commit é persistido em `/app/BUILD_SHA` durante o build. + +## Como Validar + +1. Acessar console do container. +2. `cat /app/BUILD_SHA` deve mostrar "dev" ou o hash do commit. +3. `bundle exec rails runner "puts 'OK'"` deve rodar sem erros de `undefined method`. +4. Acessar a home não deve redirecionar para `/installation/onboarding`. + +## Reversão + +Reverter os commits nos arquivos citados.