Devlog
Todo dia, o que rolou na construção da Larissa.
-
ZapSign: webhook lia campo errado, contratos expiravam há semanas e a migration nunca tinha aplicado
Três commits para fechar um bug em cascata no webhook do ZapSign: campo errado, invariante furado e migration MySQL que nunca aplicou.
-
Chave xAI no ar, admin de títulos nascendo com erros e gate de validação antes do Grok
Configurei a chave xAI, corrigi erros na tela admin de títulos e defini que o botão Gerar só dispara com dados suficientes.
-
Schema de sugestões do Grok consolidado em uma tabela, agendar_derivacao reconstruída e Codex avaliando producoes
Fechei o schema do Grok com uma tabela em vez de duas, reconstruí agendar_derivacao corrigindo a fonte dos dados e rodei Codex em paralelo avaliando producoes.
-
Plano Grok 3.0 fechado, sessão endurecida e Codex em três frentes
Validação do Plano Grok 3.0 contra código e banco, hardening de sessão com CSRF stateless e teto OWASP de 4h, quatro bugs corrigidos e Codex em três projetos.
-
Aba Detalhes Técnicos, sessão expirada vira logout amigável e Codex auditando o perfil vivo
Reorganização de UI no revisar_arquivo, correção de UX em sessão expirada e auditoria de perfil vivo via Codex com cross-check no Claude Code.
-
Auditoria de 21 modais Bootstrap, bugs pontuais e suspeita no billing Opus
Varredura e padronização de 21 modais Bootstrap 5 via Codex, dois bugs corrigidos e investigação de consumo inesperado de tokens Opus.
-
Bug de duplicidade FTP, dois modais quebrados e a documentação que veio depois
Bug de re-envio FTP, área branca em modal mobile e header sobrepondo modal — três commits e um doc de padrões no mesmo dia.
-
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.
-
Grok V1 em ciclo de teste: IA que confirmou entrega sem ter feito, bug de htmlspecialchars e decisão de DNA de plataforma
Primeiro ciclo completo do Grok V1: IA que confirmou entrega sem ter feito, bug de htmlspecialchars, e decisão de DNA de plataforma.
-
Plano Grok 2.0 fechado — D8 a D12 decididas, verificação noturna e worktrees órfãos
Sessão de madrugada fecha as últimas lacunas do Plano Grok 2.0 (D8–D12); verificação noturna aponta 2 ajustes; 4 worktrees órfãos removidos.
-
Grok 2.0: oito lacunas mapeadas, CSRF em aberto, zero implementação
Auditoria do Plano Grok 2.0: 8 gaps técnicos trabalhados, 7 fechados com decisões concretas, CSRF de contexto incompatível abre a próxima run.
-
Grok 2.0 reestruturado, dois vereditos divergentes e o dia que o Claude me bloqueou
Plano Grok 2.0 reestruturado e commitado, dois vereditos de prontidão que não concordam, e dois dias perdidos por erro de acesso ao Claude.
-
v16 auditada, Codex caiu no SQLite e V1 mínima do Grok 2.0 decidida
Skill daily-summary v16 tem documentação auditada, Codex perde JSONL para SQLite proprietário, e Grok 2.0 vira V1 mínima sem API.
-
Crash loop silencioso no daily-summary, auto-run confirmado e pesquisa de integração do Codex
Dois dias sem devlog automático sem nenhum erro visível. Diagnóstico, correção e pesquisa para incluir conversas do Codex como fonte.
-
Grok 2.0: consolidação pós-council, dois checksums e dois ADRs novos
Um commit de 200 linhas fechou o que ficou aberto no council: escopo expandido, cache com dois checksums, ADR-009 e ADR-010 formalizados.
-
MCP instável, protocolo de sessão e conselho 3-1 contra código
Dois dias de MCP caindo culminam em protocolo formal; /council vota 3-1 contra iniciar código do Gerador de Títulos.
-
Task Scheduler automatizando o daily-summary, fix de overflow no kmaroteApp e planejamento do gerador de títulos
Task Scheduler dispara o /daily-summary às 23:30 BRT sem interação. Fix em postagem_plataformas. Planejamento do gerador de títulos revela lacunas no banco.
-
Dez commits de watermark, SAR normalizado, Codex no stack e 2.724 linhas de docs
Dez commits para acertar uma watermark (SAR, proporção, transparência). Codex entra com o mesmo contexto do Claude Code. doc-updater gera 2.724 linhas.
-
Council 3-0 contra FastAPI, thinking skills instaladas, e 10 commits no kmaroteApp
Council vota 3-0 contra FastAPI para o gerador de títulos. Quatro thinking skills instaladas. Dez commits no kmaroteApp cobrindo FTP, watermark e CSRF.
-
O `?>` que derrubou o CSRF e um dia de infra no kmaroteApp
Um comentário PHP com ?> derrubou todos os formulários com 403. Mais: lock de edição migra pra banco, diagnóstico e monitoramento FTP.
-
Runbook 18 v2, timeout no bridge e pipeline de redação obrigatória
Fix de sessionTimeout no larissa-fs-bridge, reescrita do runbook 18, e construção do pipeline de redação de dados privados.
-
kmaroteApp: hooks anti-alucinação, fix CSRF stale e raiz do bug EDICOES_DIR
Dia focado no kmaroteApp: bug EDICOES_DIR em produção, hardening do Claude Code com hooks anti-alucinação e correção do CSRF stale em ajax_notificacoes.
-
D35 + D36 + D37: filesystem MCP, SSH externo e 14 GB de memória numa janela de 72h
Três decisões grandes em 72h: filesystem MCP com escrita real, SSH externo via Cloudflare Tunnel e um memory leak de 14 GB descoberto por acaso.
-
Triângulo MCP fechado: claude.ai + Claude Code + Larissa no mesmo vault
Fechei o triângulo de acesso ao vault da Larissa via OAuth Google no Cloudflare — com pivot de 3h no meio e pipeline E2E funcionando ao fim do dia.
-
ClawMem no Windows via SSH, tunnel Cloudflare no ar, e a Larissa deixa de ser servidor
Dois dias: memória persistente rodando entre Windows e Linux via SSH, Cloudflare Tunnel no ar, e a Larissa finalmente tem voz própria.
-
ClawMem, workaround no --dev, e agendar_derivação ganhando arquivo
Integração do ClawMem no OpenClaw --dev, armadilha do state dir, e três commits fechando a feature de derivação.
-
OpenClaw no ar, Hermes fora, e o devlog ganha métrica honesta
OpenClaw virou daemon, Hermes foi removido com 2,1G liberados, e o devlog passou a usar ActivityWatch pra métricas reais.
-
O devlog que me inventou uma esposa
Abri o devlog de ontem e li que Larissa é minha esposa. Larissa é um servidor Ubuntu. Aqui o que aconteceu e o que muda.
-
Página em branco, 503 e o IPTU que achei mesmo assim
Portal IPTU de SP servia tela branca por 503 nos assets do Web Component LGPD. Diagnóstico, workaround e geocodificação de fallback com GeoSampa.
-
43 posts no ar e um botão sem migration
Validei a pipeline devlog→posts→blog com 43 artigos publicados e recusei uma migration desnecessária no kmaroteApp.
-
Madrugada quebrando HTML, subagentes revisando código e Larissa entregando news
Terça com HTML quebrado, botão Editar nas postagens, subagentes como revisores e a ironia de usar IA pra documentar IA.
-
CSRF que expira, URL amigável e a arquitetura de agentes autônomos
Fix de CSRF expirado em fetches, URL amigável em postagem_plataformas, Elquer.com em construção e a discussão Hermes vs OpenClaw para arquitetura de agentes autônomos.
-
Domingo de três frentes: backup, LGPD e pivot de canal
Um domingo denso: backup off-site no lugar de LUKS, LGPD ganhando colunas, cockpit redesenhado e pivot estratégico do canal.
-
Cards que viram links e o bug do texto literal no título
Cards de canal viram links de navegação, KPIs de gerenciar_canal com listagem por status, filtro por participante em produções e bug de texto literal no título.
-
UIKit 100% migrado e CSRF global nos endpoints de fetch
Marco histórico: UIKit 100% zerado em todas as pastas de páginas. CSRF global em todos os endpoints JS e fix de flakiness em testes Playwright.
-
UIKit zerado em admin: 71 para 0 ocorrências
Marco: UIKit zerado na pasta admin/paginas/admin/ (71 → 0 ocorrências). Gates ADMIN padronizados, onclick inline → data-action (CSP) e helpers de gate reutilizáveis.
-
Dia de planejamento: senhas com expiração e visibilidade entre projetos
Dia sem commits, mas com planejamento relevante: senhas com tempo de expiração para a Larissa e como projetos de IA podem compartilhar contexto.
-
Playwright e2e, modal unificado e a Larissa como personagem
Testes e2e com Playwright implementados, modal Criar+Editar unificado, hardening completo de gestao_plataformas e reflexão sobre Larissa como personagem humana.
-
5.721 tokens substituídos: quando você constrói a ferramenta antes de fazer o trabalho
Migração de 5721 tokens UIKit para Bootstrap 5 em 68 views com migrador automatizado construído especificamente para o projeto.
-
3 XSS críticos, token exposto e 36 commits em 18 frentes
36 commits, 18 áreas: 3 XSS críticos corrigidos (incluindo token API exposto), N+1 triplo eliminado em participantes, a11y WCAG AA e Ubuntu server para Hermes.
-
10.584 turns, innerHTML→createElement e a sessão que durou o dia todo
Sessão de 10.584 turns, XSS via innerHTML corrigido para createElement, criptografia FTP com AES-256-GCM, N+1 e migração de 11 views para Bootstrap 5.
-
Quebrando monolitos: 3.683 linhas viram 5 arquivos
Split de 3 arquivos monolíticos (3683, 2460 e 2253 linhas), túnel PIX multi-gateway com Asaas e Inter, soft delete e auditoria de postagem_plataformas.
-
44 sessões, 40+ modais e CSRF em fluxos de pagamento
Dia mais intenso do projeto: revisão completa de todos os modais do sistema, CSRF em fluxos de pagamento, normalização de z-index e N+1 corrigido em produções.
-
Grok como 5º provider e o chatbot que entrevista criadores
Grok da xAI adicionado como 5º provider de IA, módulo produções migrado para Bootstrap 5 e chatbot entrevistador com análise de lacunas implementado.
-
32 arquivos mortos, session fixation corrigida e o dia do CSP
Quarentena de 32 arquivos mortos, correção de session fixation em confirmar_email, CSP com uppy hospedado localmente e security layer 2 em produções.
-
Multi-provider de IA e onboarding que ignora o que já sabe
Módulo gerador de conteúdo com suporte a múltiplos provedores de IA e progressive profiling no onboarding de usuários legados.
-
O dia que deletei a integração e decidi construir o próprio
Depois de dias tentando fazer a integração Manus.im funcionar, tomei a decisão de reverter tudo e planejar um gerador de conteúdo próprio.
-
Debug de API: do erro 500 ao endpoint funcionando
Dia de debug na API de integração: token Bearer faltando no router, diagnóstico de 500 errors com ping endpoint e processo metódico de isolamento de problema.
-
17 commits, módulo novo e integração com API externa
Dia intenso: hardening do módulo de contratos, CPF no seletor de participantes, módulo de gestão de redes sociais com Manus.im e refactor para Bootstrap 5.
-
Uploads de 10GB, higienização de banco e caçando skills do Claude Code
Configurando o Motor TUS para uploads de até 10GB, criando ferramenta de higienização de banco com auditoria e otimizando o fluxo com Claude Code.
-
KYC, gates e o plano que vai levar isso pra produção
Dia de implementar a cascata de bloqueio KYC, corrigir bugs no painel admin e fechar o plano pré-produção em 5 módulos.
-
Perfis deletados, KYC pendente e Claude Code travado
Quatro commits finalizando a gestão de perfis deletados e um dia lidando com o Claude Code travando sem erro.
-
SQL injection, CSRF, IDOR e Bootstrap 5: uma segunda intensa
16 commits: migração Bootstrap 5, sistema de web push, três vulnerabilidades de segurança corrigidas em um dia.
-
IDOR corrigido: quando o ID na URL é uma vulnerabilidade
Fix de segurança IDOR à 1h da manhã — a vulnerabilidade onde manipular um ID na URL permite acessar dados de outro usuário.
-
Reusar padrões e verificar o que já está no Drive
Sábado com um commit de padrão reutilizado e uma longa conversa de 43 mensagens sobre verificação de sincronização local vs. Google Drive.
-
OTP de 6 dígitos, push notifications e checklist no dashboard
Oito commits: sistema de confirmação de email com código de 6 dígitos, infraestrutura de push/conversas/notificações e checklist de verificação no dashboard.
-
Auto-verificação de perfil e checklist de pré-requisitos KYC
Dois commits construindo o sistema de auto-verificação de perfil e o checklist guiado de pré-requisitos para o KYC.
-
WhatsApp Business de iPhone pra Samsung: quando o método padrão não funciona
Os métodos tradicionais de migração do WhatsApp Business falharam. Dia explorando alternativas para transferir dados entre ecosistemas.
-
Copy importa: 'Esse não é meu email' vs 'Tem acesso ao email?'
Uma mudança de copy que parece pequena mas muda a experiência: de 'Tem acesso ao email?' para 'Esse não é meu email'.
-
Turnstile, debounce e múltiplos perfis por CPF
Sete commits refinando a lógica de CPF no onboarding: Turnstile no lugar certo, debounce para auto-submit e múltiplos perfis por CPF.
-
Fluxo de assinatura pública, stepper e otimização de tokens com LLM
Domingo construindo a experiência de assinatura pública de contratos com proteção KYC, stepper e notificação por email.
-
21 commits: construindo um módulo de contratos do zero
Um sábado inteiro construindo módulo de gestão de contratos com integração ZapSign, share modal reutilizável e ciclo completo de lifecycle.
-
Perfis placeholder para participantes não cadastrados
Como implementar perfis placeholder para participantes que ainda não criaram conta — evitando lacunas na experiência colaborativa.
-
Auditoria UI/UX, FAQ e modo solo no módulo de demandas
Dois commits com substância: documentação de auditoria UI/UX, sistema de FAQ implementado e módulo de demandas adaptado para modo solo.
-
Testes refinados e legendas visuais
Um commit refinando testes de onboarding e uma sessão de design para legenda visual de cores em cards.
-
KYC fora do login: uma decisão arquitetural e um ParseError
Decisão de separar o fluxo KYC do primeiro login e um ParseError silencioso num handler de proteção de CPF.
-
Madrugada de debugging: KYC, onboarding e um ENUM silencioso
Quatro commits entre 4h e 6h da manhã: fix no fluxo KYC, testes de onboarding para múltiplos perfis e um bug de ENUM no banco.
-
Sábado de limpeza: organizando o que estava acumulado
Sábado produtivo no kmaroteApp: pasta SQL duplicada removida, estrutura de docs reorganizada e assets órfãos limpos.
-
10 commits: onboarding novo, login redesenhado e Claude Code no projeto
Sexta produtiva no kmaroteApp: redesign completo do login e onboarding, CSP corrigido e everything-claude-code integrado.
-
Dia de explorar o Claude Code a fundo
Oito conversas explorando Claude Code: prompts de sistema, configuração no VS Code, plugins PHP e um erro chato no Windows.
-
Pesquisa de GPU com Ryzen 5 5600x: continuando a busca
Continuando a pesquisa de GPU pra uma máquina com Ryzen 5 5600x, B550 e 32GB DDR4 — usando IA e Google juntos.
-
IA como consultor técnico pessoal
Um dia usando Claude para resolver problemas técnicos práticos: fotos duplicadas, GPU para máquina antiga e pesquisa de domínios.
-
Domingo de hardening: segurança e documentação no kmaroteApp
Um domingo produtivo corrigindo vulnerabilidades de segurança e criando documentação interna no kmaroteApp.