Elquer Carlos

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
Fim do ato