0.4.5atual30/09/2026
Corrigido
- Login recusava a senha logo após a compra — o caminho automático do cartão (sem clicar em "Baixar ZIP") criava a conta mas não registrava a compra; agora registra e o login funciona na 1ª tentativa.
- "Usuário ou senha incorretos" mesmo com a senha certa — senha correta com o pagamento ainda não reconhecido agora diz "Suas credenciais estão certas, mas o pagamento ainda não foi liberado" — e não conta contra as 5 tentativas.
- Contas se perdiam em corrida — cartão e "Baixar ZIP" gravando ao mesmo tempo apagavam a conta recém-criada (6 em paralelo perdiam 5); agora a gravação é travada e atômica.
- JSON editado à mão apagava os dados — arquivo com vírgula ou aspas sobrando vira backup "contas.json.quebrado-…" em vez de ser zerado pelo próximo salvamento.
- Bloqueio de senha contornável — 3 erros com o usuário + 2 com o e-mail davam 5 tentativas a mais; agora as duas formas alimentam o mesmo balde e cada identificador conta uma vez.
- Sessão derrubava o aluno sozinha — requisições simultâneas regravavam o arquivo de sessões e mandavam o aluno de volta pro login; agora só grava quando muda de verdade.
- Conta inexistente respondia mais rápido — o hash de comparação usava cost mais baixo que o real, e o tempo da resposta denunciava se a conta existia; agora os dois levam o mesmo tempo.