# GUIA — PACOTE 07: OPENCLAW COMPLETO

> Complemento do GUIA-MIGRACAO.md (pacotes 01-06).
> Este pacote migra o OpenClaw (Kairo) COMPLETO: histórico, mídias de pacientes, memória, credenciais e estado.

---

## 1. Conteúdo do pacote

07-openclaw-completo.tar.zst (1,6 GB comprimido / 2,9 GB extraído)
Extrai para: .openclaw/ em /home/deploy/

| Diretório | Tamanho | Conteúdo |
|---|---|---|
| agents/main/ | 1,2 GB | Histórico de conversas, sessões, transcrições |
| media/inbound/ | 1,1 GB | 1.948 arquivos - fotos e exames de pacientes |
| memory/ | 204 MB | Memória de longo prazo |
| workspace/ | 117 MB | AGENTS.md, MEMORY.md, USER.md, skills, automações |
| credentials/ | 86 MB | Credenciais de canal (sessão WhatsApp) |
| extensions/ | 67 MB | Plugins instalados (brave, deepseek, google, etc.) |
| state/ | 55 MB | Estado do gateway, banco de sessões |
| sessions_backup/ | 31 MB | Backups de sessões |
| demais | ~8 MB | cron, tasks, skills, flows, devices, identity, canvas |

Excluídos de propósito: trash/, cache/, npm/, tmp/, browser/, logs/, worktrees/ - descartáveis.

---

## 2. Pré-requisitos

Já feitos pelas etapas anteriores:
- Node.js 26 via nvm para o usuário deploy
- OpenClaw instalado globalmente
- Usuário deploy com home /home/deploy

Se o OpenClaw ainda não estiver instalado:
    su - deploy -c 'source ~/.nvm/nvm.sh && npm install -g openclaw@latest'

---

## 3. Sequência de restauração

### ETAPA 1 - Parar qualquer instância do Gateway

    systemctl --user stop openclaw-gateway 2>/dev/null || true
    su - deploy -c 'openclaw gateway stop' 2>/dev/null || true
    pkill -f 'openclaw.*gateway' 2>/dev/null || true
    sleep 2
    pgrep -af 'openclaw.*gateway' || echo "gateway parado"

ATENÇÃO: Não prossiga se ainda houver processo do gateway ativo - a substituição corromperia o banco de sessões.

### ETAPA 2 - Backup do estado inicial

    su - deploy -c 'mv ~/.openclaw ~/.openclaw.original.$(date +%s)'

### ETAPA 3 - Extrair o pacote

    cd /home/deploy
    zstd -dc 07-openclaw-completo.tar.zst | tar -xf -

O tar cria .openclaw/ diretamente em /home/deploy.

### ETAPA 4 - Corrigir permissões

    chown -R deploy:deploy /home/deploy/.openclaw
    chmod 700 /home/deploy/.openclaw
    chmod 600 /home/deploy/.openclaw/openclaw.json
    find /home/deploy/.openclaw/credentials -type f -exec chmod 600 {} \;
    find /home/deploy/.openclaw -name "*.key" -exec chmod 600 {} \;

### ETAPA 5 - Ajustar o config

Abrir /home/deploy/.openclaw/openclaw.json e revisar:

1. gateway.host - trocar pelo hostname/IP do novo servidor
2. gateway.bind - o valor antigo era "lan" (expunha na rede).
   RECOMENDADO: trocar para "loopback" e expor via Caddy/HTTPS
3. gateway.auth.token - o token antigo era previsível e em texto claro.
   GERAR UM NOVO:
       su - deploy -c 'openssl rand -hex 32'
   Anotar em local seguro - necessário para o Control UI.
4. Buscar referências ao hostname antigo:
       grep -rn "v2202508297065377370" /home/deploy/.openclaw/openclaw.json /home/deploy/.openclaw/workspace/ 2>/dev/null

### ETAPA 6 - Verificar antes de subir

    su - deploy -c 'openclaw doctor --non-interactive'

### ETAPA 7 - Subir o Gateway

    su - deploy -c 'openclaw gateway start'
    sleep 5
    su - deploy -c 'openclaw status'

### ETAPA 8 - Relinkar o WhatsApp

A sessão do WhatsApp provavelmente NÃO transfere (vínculo atrelado ao dispositivo).
Se o canal não conectar:

    su - deploy -c 'openclaw channels login whatsapp'

Escaneie o QR com o telefone do Dr. Marcos.
Alternativa mais segura: revogar a sessão antiga no telefone (Dispositivos conectados) e vincular a nova.

---

## 4. Verificação final

    su - deploy -c 'openclaw status'
    ls /home/deploy/.openclaw/agents/main/ | head
    ls /home/deploy/.openclaw/media/inbound/ | wc -l    # deve retornar ~1948
    ls /home/deploy/.openclaw/memory/ | head
    head -5 /home/deploy/.openclaw/workspace/MEMORY.md

Esperado:
- agents/main com conteúdo
- media/inbound com 1.948 arquivos
- MEMORY.md com histórico do Kairo
- Gateway respondendo no Control UI com o token novo

---

## 5. Pontos de atenção

### 5.1 Espaço
Extraído ocupa 2,9 GB. Garanta esse espaço livre ANTES de extrair.

### 5.2 Dados clínicos sensíveis
O pacote contém fotos, exames e conversas de pacientes. Trate como prontuário:
- Não deixe o .tar.zst em diretórios públicos
- Apague o pacote após extrair com sucesso
- Verifique se o disco tem criptografia, se aplicável à LGPD

### 5.3 state/ entre versões muito diferentes
Se a versão do OpenClaw no destino for mais de uma major acima da origem, o state/ pode ser incompatível:
1. Extraia tudo normalmente
2. Se o gateway falhar ao subir, mova state/ para state.old/
3. Deixe o OpenClaw recriar, mantendo agents/, media/, memory/ e workspace/

### 5.4 Cron jobs
    su - deploy -c 'openclaw cron list'

Se algum job apontar para caminhos do servidor antigo, corrija.

### 5.5 O que NÃO volta automaticamente
- Sessões ativas do WhatsApp (exige novo pareamento)
- Tokens de canal expirados
- Caches (recriados sob demanda)

---

## 6. Checklist final

- [ ] Gateway sobe sem erro
- [ ] openclaw status mostra todos os canais
- [ ] WhatsApp relinkado e recebendo mensagens
- [ ] Control UI acessível com o token novo
- [ ] Histórico de conversas visível
- [ ] media/inbound com 1.948 arquivos
- [ ] MEMORY.md e workspace/ íntegros
- [ ] Cron jobs com caminhos corretos

---

## 7. Checksum

    sha256sum -c CHECKSUM-07.txt

Esperado: cb5dc54d8a86fd9b88cde7ae41c4c923399c568079fa613c098bcb0f2d96bb35
