Elquer Carlos

kmaroteApp: derivação de postagem restrita a dois tipos e um bug de permissão resolvido com arqueologia de git

Derivação de postagem restrita a dois tipos de post e um bug de permissão rastreado até uma refatoração antiga com git log -S.

O dia no kmaroteApp começou pela tela de agendamento de derivação de postagens e terminou numa investigação de bug que envolveu escavar histórico de git. No meio, manutenção de bastidor que rodou sozinha e uma falha de acesso que já é rotina.

Derivação de postagem restrita a dois tipos

A pergunta inicial era simples: quais vídeos agendados do canal poderiam ser derivados. Comecei no Codex pedindo a query base — “preciso de uma query para buscar todos os vídeos agendados do canal” — e fui ampliando: primeiro adaptar para listar todos os tipo_post, depois mandar o Codex ler o código e enumerar quais tipo_post realmente existem no sistema, em vez de eu adivinhar a lista.

Com o mapa dos tipos em mãos, a decisão de produto ficou clara: a tela de derivação não deveria mostrar tudo. Só faz sentido derivar vídeos com tipo_post de feed_vip_assinatura_plataforma e loja. No Claude Code, implementei esse filtro em db_postagem_plataformas.php e na tela agendar_derivacao.php, rodei o lint e subi. Virou o commit feat: restringe derivacao a tipo_post feed_vip_assinatura_plataforma e loja.

O que ficou bom aqui foi a divisão de trabalho: o Codex serviu pra explorar e montar a query sem eu ter que decorar o schema, e o Claude Code entrou pra aplicar a regra de negócio no código de verdade. Dois produtos, uma feature só.

O vídeo “de outro usuário” que aparecia na lista mas dava erro

Esse foi o bloco mais denso do dia. Um vídeo que não pertencia ao usuário aparecia na listagem, mas ao ser aberto estourava erro — o pior tipo de bug, porque a contradição já denuncia que a lógica de permissão está inconsistente em dois pontos. Se o vídeo não é do usuário, não deveria nem aparecer; se é, não deveria dar erro.

Fui explícito com o Claude Code: não parar na primeira evidência, ler todo o código do fluxo, entender, e só apresentar a causa quando tivesse certeza — sem suposição, sem chute, sem alterar nada. O Claude Code fez arqueologia de git pra isso: rastreou com git log -S quando a função de busca deixou de filtrar por perfil_id e passou a receber um único argumento, e abriu os commits antigos pra entender que a mudança estava amarrada ao tratamento de permissão de AGÊNCIA. A causa não estava no sintoma, estava numa refatoração anterior que quebrou a suposição de dono do conteúdo.

Antes de mexer, pedi o passo intermediário que costumo cobrar: ler a documentação do módulo, verificar se ela ainda batia com o código, e trazer três opções de correção mais uma recomendação — ainda sem alterar nada. Com o diagnóstico e as opções na mesa, escolhi a Opção A e mandei atualizar a documentação completa do módulo pra refletir 100% do código atual. O foco não foi só fechar o bug, foi deixar a documentação honesta pra próxima vez que alguém (eu ou um agente) cair nesse fluxo.

Manutenção de bastidor

Ainda no kmaroteApp entrou um script de importação do backup mais cedo no dia — utilitário de operação, sem drama. E a máquina de blog rodou sozinha: a automação agregou os posts de 2026-08-01 e fechou o devlog da execução anterior. Nada disso exigiu minha mão, que é exatamente o objetivo.

A tentativa de puxar atividade da máquina Larissa via SSH falhou nesta execução — o host não resolveu. Marquei como erro nas fontes e segui; o cursor dessas fontes não avança, então nada se perde: na próxima execução com SSH de volta, o que aconteceu lá entra normalmente.

Fechamento

Sem pendência nova além do que já é recorrente: acesso à máquina da Larissa via SSH continua fora do ar. O resto do dia fechou — a restrição de derivação subiu em commit e o bug de permissão saiu com causa raiz documentada, não só remendada.


Estatísticas do dia (geradas automaticamente):

Atividade no PC:

  • Tempo ativo: 4h56min na janela

Por categoria (do que ficou ativo):

  • Uncategorized: 2h05min
  • Larissa Project: 1h00min
  • Communication: 52min
  • Browsing: 36min
  • Coding: 15min
  • AI Chat: 8min

Top apps: Chrome (2h51min) · WhatsApp (52min) · TaskBarHero (44min) · Antigravity IDE (15min) · ChatGPT (5min)

Top sites navegados: my.sheer.com (24min) · <PRIVATE-HOST> (18min) · facebook.com (5min) · google.com (5min)

Trabalho com IA:

  • claude.ai: 0 conversas
  • Claude Code Windows: 2 sessões em kmaroteApp
  • Codex Windows: 1 sessão em kmaroteApp
  • Claude Code Larissa: indisponível (SSH não resolveu o host)
  • Larissa drops: 0 arquivos

Código produzido:

  • Git kmaroteApp: 2 commits
  • Git Larissa: indisponível (SSH não resolveu o host)
  • Git elquercarlos: 2 commits (automação de blog/devlog)
Fim do ato