Grok V1 entregue de madrugada, tarde inteira caçando três bugs no mesmo modal
Grok V1 concluído pelo Claude Code enquanto eu dormia; tarde resolvendo paste, CSRF 403 e scroll mobile no modal de agendamento.
A madrugada terminou com o Claude Code entregando o que a sessão anterior não tinha conseguido finalizar — o contexto havia estourado com a feature do Grok V1 meio implementada. A continuação fechou o trabalho.
Grok V1 — implementação completa
O commit 7345e9d3 fechou o Grok V1. Um botão na tabela de plataformas do kmaroteApp abre um modal com campos estruturados para configurar como o Grok vai gerar conteúdo para aquela plataforma específica:
- Nome da IA
- Estilo de título
- Keywords por nicho
- Comprimento do conteúdo
- Instrução especial
- Prompt livre (override total — se preenchido, ignora todos os campos acima e passa direto para o modelo)
A plataforma Sheer já saiu pré-configurada com suas regras.
Logo depois vieram dois documentos gerados pelo Claude Code:
docs/dev/sistemas/sistema_grok_prompt.md— fluxo completo em 8 passos, blocos do prompt, arquivos responsáveis, todas as AJAX actions, schema das migrations- Seção nova em
sistema_postagem_plataformas.mdintegrando o Grok ao restante da arquitetura
Commit bc187123.
Investigação da fila — postagem 621
Com o Grok V1 no ar, ficou uma dúvida: por que a postagem 621 não saía da fila depois de agendada? O comportamento parecia bug no modal de agendamento.
Fui investigar a query de ordenação da fila em canal_postagens.ordem_fila_em e os dados do EstruturaKmarote.sql. A causa não estava no agendamento: o pipeline FTP cria um job novo às 02:00 de cada madrugada com status na_fila. O job criado na madrugada de 31/05 empurrou 621 de volta ao topo da fila a cada dia. Era o cron noturno funcionando exatamente como projetado. Sem correção necessária — só entendimento do fluxo.
Format fix nas Tag IDs
Às 11:52, o Claude Code corrigiu o formato de saída dos Tag IDs no prompt da plataforma. O bloco de instrução passou a especificar o formato esperado de forma literal:
15 Tag IDs com seus respectivos textos (ex: 123, 234 - tag name, tag name1)
Commit a8a61587.
Tarde — três bugs no mesmo modal de agendamento
A tarde foi uma sequência de três problemas no mesmo lugar. Cada bug tinha causa separada e foi resolvido em sessão diferente do Claude Code.
Bug 1 — Paste de tags não funcionava (14:11)
O JavaScript do modal já processava tags por vírgula via keydown. Digitar tag1, gerava o badge corretamente. Mas colar (Ctrl+V) um bloco como tag1, tag2, tag3 não fazia nada — o texto entrava no campo e ficava travado sem virar badges.
Causa: não havia handler de paste. O evento keydown não é disparado ao colar.
Fix: adicionei um handler de paste que processa os tokens imediatamente ao colar.
Commit a8de8b28.
Bug 2 — 403 em buscar_tags.php (15:47)
Depois do fix do paste, ao colar tags, o console disparava 403 em /ajaxphp/buscar_tags.php.
Causa: resolverTag estava enviando window.CSRF_POSTAGEM — o token do contexto postagem_plataformas. Mas buscar_tags.php opera no contexto global_ajax e exige fetchGlobalAjaxComCsrf. O padrão correto está documentado em docs/dev/padroes/padroes_ajax_endpoints.md. Estava certo na documentação; foi aplicado errado no código.
O Claude Code confirmou o padrão nos docs e aplicou o fix.
Commit 1bc3ea28.
Bug 3 — Scroll não funcionava no mobile (22:22)
No mobile, o modal de agendamento não scrollava. O conteúdo ficava cortado na tela.
Causa: modal-dialog-centered combinado com modal-dialog-scrollable limita o espaço disponível em telas pequenas. O Bootstrap não entrega o scroll esperado nessa combinação.
O padrão nos outros modais do sistema usa modal-fullscreen-sm-down: tela cheia no mobile, centralizado no desktop. O Claude Code verificou os outros modais, confirmou o padrão e aplicou.
Commit c1a07cb7.
Hook agent — skills km-* desatualizadas
Às 23:23, identifiquei que o hook PostToolUse de verificação de padrões ainda apontava para kmaroteapp-patterns/SKILL.md — um redirect deprecated desde 2026-05-11. Naquela data a skill monolítica foi dividida em 6 skills focadas: km-php-security, km-css-bootstrap, e outras quatro, cada uma com escopo bem definido.
O Claude Code atualizou o settings.json com roteamento por extensão e path, reescreveu o redirect deprecated e reforçou o CLAUDE.md.
Commit b4a82fcb.
Botão limpar tags e bug no redirect
Em paralelo com o bug 3, outra sessão do Claude Code trabalhava no mesmo modal. Um subagente identificou um bug separado: o formulário enviava os dados via POST AJAX corretamente, mas depois redirecionava o usuário para HOME com todos os dados na query string GET. Os dados da postagem ficavam expostos na URL.
Dois commits fecharam isso:
561fbe61— botão “limpar tags” adicionado ao modalfd0110da— redirect corrigido; handler de limpar tags adicionado
Pendências
Larissa inacessível hoje — SSH indisponível durante todo o dia. Zero sessões, zero commits no repo Larissa. A próxima etapa antes de escalar o Grok V1 é validar com uma postagem real em produção.
Estatísticas do dia:
Atividade no PC:
- Tempo ativo: 2h 29min
- AFK: 24h 37min
- Janela total monitorada: 27h 7min
Por categoria:
- Coding: 1h 12min
- Larissa Project: 39min
- Uncategorized: 34min
- Communication: 2min
- Browsing: 2min
Top apps: Antigravity IDE (1h 12min) · Chrome (1h 10min) · FileZilla (2min) · WhatsApp (1min)
Top sites navegados: <PRIVATE-HOST> (admin) · <PRIVATE-HOST> (banco) · grok.com · youtube.com · google.com
Trabalho com IA:
- Conversas claude.ai: 0 (0 mensagens)
- Sessões Claude Code: 12 (kmaroteApp)
Código produzido:
- Commits: 7 (kmaroteApp) —
a8a61587,a8de8b28,1bc3ea28,c1a07cb7,b4a82fcb,561fbe61,fd0110da