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.
Contexto do dia
O problema que motivou a sessão de hoje foi simples de descrever e chato de resolver: toda vez que abro um chat novo com a Larissa, a primeira coisa que faço é mandar o modelo buscar o estado atual nas conversas anteriores. Funciona. Mas é caro — queima contexto, demora, e às vezes o modelo não pega tudo. Mesmo dentro de Projects no claude.ai, cada conversa começa do zero. Não existe memória persistente de fatos entre sessões.
O plano era instalar algo que resolvesse isso. A execução revelou uma armadilha que a documentação não cobre.
Pesquisa: Memori vs. ClawMem
Pesquisei o que a comunidade usa para persistência de memória em setups MCP. Dois nomes apareceram: Memori (que eu já tinha instalado em algum momento, mas nunca usei direito) e ClawMem — uma extensão MCP do OpenClaw que persiste fatos e decisões num índice local e o expõe como MCP server para qualquer cliente conectado.
A decisão foi ClawMem. O motivo: migrar tudo para MCP e manter um único caminho. Manter Memori vivo ao lado seria ter dois sistemas para gerenciar. Memori saiu.
Diagnóstico antes de instalar qualquer coisa
Aprendi a lição na sessão anterior: antes de mexer em qualquer serviço, gerar um diagnóstico do estado atual. Hoje isso se materializou em data/diagnosticos/2026-05-03-1738-pre-mcp-memory.md — 214 linhas listando processos ativos, services rodando, plugins do OpenClaw, variáveis de ambiente, estado dos diretórios. Trouxe o arquivo pro Windows via FileZilla (o SCP na porta 2222 da Larissa não responde no momento).
O ritmo da sessão foi: cada decisão precedida de “mostra o que está rodando agora”. Mais lento do que sair instalando, mas evitou três armadilhas — entre elas a principal, que não estava no briefing.
A armadilha do —dev
O OpenClaw na Larissa roda em modo --dev com state dir customizado em ~/.openclaw-dev/, definido via variável de ambiente OPENCLAW_STATE_DIR no service. É a nossa configuração padrão.
O ClawMem tem um comando que automatiza a integração:
clawmem setup openclaw
Esse comando é hardcoded para ~/.openclaw/extensions/clawmem e ignora OPENCLAW_STATE_DIR. A documentação do ClawMem só menciona o caminho default e não documenta o caso --dev.
Pesquisa nas issues e nos padrões do OpenClaw confirmou: nossa instalação está fora do default da comunidade, por isso o setup automático não se aplica. Workaround validado: pular o clawmem setup openclaw e usar diretamente:
openclaw --dev plugins install <source-do-clawmem>
Esse caminho respeita o OPENCLAW_STATE_DIR. A decisão foi registrada como Decisão #34 no DECISIONS.md da Larissa (linhas 776–820), com backup antes em ~/larissa/backups/DECISIONS-pre-d34-20260504-014851.md. O parágrafo de contexto está lá para que o próximo eu (ou qualquer um olhando o histórico) entenda por que o setup automático não foi usado.
Instalação do ClawMem
Sequência executada:
curl -fsSL https://bun.sh/install | bash
ClawMem precisa rodar em Bun, não em Node. Depois:
# instalação global
bun add -g clawmem
# habilitação do plugin no openclaw em modo --dev
openclaw --dev plugins enable clawmem
A flag keep dreaming.enabled = false foi definida para não conflitar com o memory-core que já rodava.
Resultado final: o claude_desktop_config.json do Claude Code interativo na Larissa agora tem a entrada clawmem apontando para:
/home/elquercarlos/.bun/install/global/node_modules/clawmem/bin/clawmem mcp
O cliente enxerga o MCP server. A próxima sessão lá começa com fatos persistidos disponíveis sem precisar do ritual “lê tudo de novo”.
DuckDNS: lariia.duckdns.org
No meio da configuração foi necessário registrar um subdomínio público para o ClawMem expor endpoints (e para que o Larissa Bridge eventualmente volte a ter um domínio fixo). Optei por DuckDNS — conta [email protected], subdomínio lariia.duckdns.org (dois i, alinhado com o domínio futuro lariia.com.br). O subdomínio larissa.duckdns.org antigo fica para descontinuação.
Tracker de plataformas de vídeo: pesquisa sem código
Em paralelo, uma conversa separada investigou se existe alguma ferramenta pronta para trackear métricas (views, engagement) em pornhub, xvideos e xhamster. Pesquisa em GitHub, npm, PyPI e fóruns — nada pronto que cubra os três. Os sites não publicam API.
Stack candidata identificada: Python, coleta diária via scraping. Considerado liberar como open source — é o tipo de projeto que ajuda outros nichos além do que estamos construindo.
A conversa fechou registrando o que foi pesquisado e o que falta decidir antes de qualquer linha de código. Regra do projeto: não se monta nada até as dúvidas estarem resolvidas.
kmaroteApp: três commits fechando agendar_derivação
Em paralelo ao trabalho na Larissa, três commits encerraram a iteração da feature agendar_derivacao no kmaroteApp:
ff535ac1 — Arquivamento de postagens
Migration adicionando arquivado_em e arquivado_ate na tabela canal_postagens, com índice. Retenção configurável (30, 180, 365 dias ou permanente). A listagem de derivações filtra arquivados ativos. Tela de consulta separada para inspecionar o arquivo.
1de955e5 — Título customizado por agendamento
Migration canal_postagens.titulo VARCHAR(2200) NULL. Tanto derivação quanto agendamento normal aceitam o campo opcional. O INSERT já leva o título para frente na cadeia.
b43993ef — Badge de cortes clicável
Badge “N cortes” na linha da postagem original abre um modal listando data, hora, status e título de cada derivação. Função nova:
db_postagem_listar_derivacoes(postagem_original_id, canal_id)
Com COALESCE para o título cair no fallback quando não tem título customizado.
A sessão Claude Code dessa feature foi pesada: 1748 events em uma sessão.
Pendências
- Validar ClawMem persistindo fatos: rodar a primeira ingestão e confirmar que o MCP server responde queries
- Continuar a discussão do tracker de vídeos antes de tocar em código
- Auditar scripts antigos da Larissa que ainda referenciam
.hermes(morto, pendente de ontem)
Estatísticas do dia (geradas automaticamente):
Atividade no PC:
- Tempo ativo: 5h41min
- AFK: 43h49min
- Janela total monitorada: 49h30min
Por categoria (do que ficou ativo):
- Coding: 2h07min
- AI Chat: 1h57min
- Uncategorized: 47min
- Browsing: 25min
- Larissa Project: 19min
- Communication: 4min
Top apps: chrome (3h34min) · Antigravity (1h08min) · putty (45min) · WhatsApp (8min)
Top sites navegados: claude.ai (26min) · sc.olx.com.br (20min) · local.kmarote.me (12min) · mercadolivre (11min)
Trabalho com IA:
- Conversas claude.ai: 3 (83 mensagens)
- Sessões Claude Code: 9 (Windows: 8, Larissa: 1)
Código produzido:
- Commits: 3 (todos em kmaroteApp: ff535ac1, 1de955e5, b43993ef)
Devlog do dia:
- Fontes: 3 conversas claude.ai + 9 sessões Claude Code