Bug de upload em produção, calendário reescrito em 100% Bootstrap e reset do banco local
Diagnóstico de um upload quebrado em produção, reescrita do calendário fiel ao mockup em 100% Bootstrap, e reset do banco local via Codex.
O dia começou com um upload quebrado em produção: a página de envio de arquivos do kmaroteApp devolvia um alert no navegador ao tentar subir um documento com nome longo e cheio de caracteres especiais. Levei o problema tanto pro Codex quanto pro Claude Code, com a mesma regra pros dois — não mexer em nada sem ter certeza da causa.
Upload quebrado: diagnóstico antes de conserto
Cortei o Claude Code mais de uma vez durante essa investigação. Quando ele tentou raciocinar em cima de evidência que eu não tinha mandado, a resposta foi direta: “Não recebi nenhum log, somente os 2 enviados.” E de novo, quando pareceu ir rápido demais: “Não queremos alterar nada sem ter certeza do problema.”
Antes de qualquer correção, pedi que ele criasse algo no painel admin capaz de ler a documentação do servidor, pra eu copiar e colar a configuração real em vez de deixar o agente adivinhar o ambiente.
O conserto saiu no commit 448ec686: o upload passou a validar por classe de conteúdo e a expor o motivo real da falha, em vez do alert genérico que não dizia nada. A parte que importa não foi o código — foi a disciplina de só corrigir depois de o problema estar documentado.
Calendário e mockup: reescrevendo em 100% Bootstrap
Em paralelo, mexi bastante no calendário e no mockup do painel. O primeiro sintoma era de usabilidade: o hover do calendário clareava a célula a ponto de sumir com a informação. Mandei o Claude Code consultar a skill de UI/UX antes de propor qualquer coisa, em vez de sair chutando cor de fundo.
A discussão principal foi de fidelidade ao mockup: cada canal representado por uma bola colorida pra facilitar a leitura, a quantidade sem usar badge, as fontes e as bordas das abas batendo exatamente com o design de referência. Em vez de aceitar dependência extra, fiz a pergunta que resolve a ambiguidade: o mockup usa alguma classe que não seja Bootstrap? É 100% Bootstrap?
A partir daí pedi ao Claude Code pra reescrever uma alternativa com exatamente os mesmos elementos usando 100% Bootstrap, apresentada de forma visual pra eu analisar antes de aplicar. Boa parte desse trabalho rodou dentro do Antigravity IDE.
Reset do banco local
Fechei o dia resetando o ambiente local: pedi ao Codex pra importar o estruturakmarote.sql no banco local, com autorização explícita pra descartar o banco atual. O Codex tratou a operação como destrutiva e passou pela própria camada de avaliação de segurança antes de executar — exatamente o tipo de fricção que eu quero num comando que apaga banco.
Decisão persistente
A regra que apliquei nas duas frentes de IA hoje — Claude Code e Codex — foi a mesma: nada de correção ou execução destrutiva sem confirmação da causa real ou autorização explícita. No upload, isso significou recusar respostas construídas em cima de log que eu não tinha enviado. No reset de banco, significou o próprio Codex freando pra confirmar antes de descartar dados.
Fechamento
A reescrita do calendário em Bootstrap ainda está na etapa de apresentação visual — não há confirmação no devlog de que já foi aplicada. Fica pendente pro próximo ciclo validar e aplicar essa versão.
Estatísticas do dia (geradas automaticamente):
Atividade no PC:
- Tempo ativo: 4h14min na janela (AFK à parte)
Por categoria:
- Coding: 1h16min
- Não categorizado: 1h09min
- Browsing: 1h06min
- AI Chat: 24min
- Larissa Project: 18min
- Communication: 2min
Top apps: chrome.exe (1h52min) · Antigravity IDE (1h14min) · TaskBarHero (32min) · ChatGPT (20min)
Top sites navegados: facebook.com (23min) · <PRIVATE-HOST> (17min) · <PRIVATE-HOST> (8min) · claude.ai (6min)
Trabalho com IA:
- claude.ai: 0 conversas
- Claude Code Windows: 6 sessões (kmaroteApp, elquercarlos)
- Codex Windows: 4 sessões em kmaroteApp
- Claude Code Larissa: 0 sessões (SSH indisponível)
- Larissa drops: 0 arquivos
Código produzido:
- Git kmaroteApp: 1 commit (
448ec686) - Git Larissa: 0 commits (SSH indisponível)