5.3 BOT - Persistência de Sessão entre Reinicializações do Bot
História
Como usuário, quero que o bot me reconheça normalmente mesmo após uma reinicialização do serviço, para que eu não precise passar pelo fluxo de cadastro novamente nem fique preso num loop de /start sem conseguir me autenticar.
Critérios de aceitação
Cenário 1: Usuário já cadastrado após restart do bot Dado que o bot foi reiniciado e perdeu as sessões em memória Quando o usuário envia qualquer mensagem Então o bot deve conseguir restaurar a sessão automaticamente, sem exigir que o usuário passe pelo onboarding novamente.
Cenário 2: Usuário envia /start com conta já existente
Dado que o usuário já tem conta na API mas não tem sessão ativa no bot
Quando ele envia /start
Então o bot deve gerar uma nova senha, atualizar o cadastro via PUT /usuarios/{telegram_id} e autenticar normalmente — sem exibir a mensagem "Não encontrei sua sessão. Use /start para configurar."
Cenário 3: Comportamento inalterado para usuário novo
Dado que o usuário nunca enviou /start antes
Quando ele envia /start pela primeira vez
Então o fluxo de onboarding deve continuar funcionando exatamente como está.
Tarefas técnicas
- Identificar no handler
_restaurar_sessaoo ponto onde a ausência de sessão em memória causa o loop sem saída. - Implementar um fluxo de recuperação de acesso: quando o usuário já existe na API mas não tem sessão em memória, gerar nova senha e atualizar via
PUT /usuarios/{telegram_id}antes de autenticar. - Garantir que o
telegram_idproveniente do Telegram seja suficiente para identificar e recuperar o usuário sem expor risco de segurança (o Telegram já garante a identidade do remetente). - Cobrir os três cenários acima com testes.