/backup — o cofre externo do vault
É a única exceção de escrita da constituição — estreita por design: o
escopo OAuth extra drive.file permite APENAS criar/apagar os próprios
arquivos brain-backup-*.zip dentro da pasta configurada. Nada mais do Drive
é lido ou tocado. O LLM nunca dispara backup por conta própria; gatilhos são
o noturno semanal e o comando do dono.
Uso
/backup→python3 scripts/connectors/backup.py— zipa o vault inteiro, envia pra pasta (GOOGLE_BACKUP_FOLDER_IDno.env), aplica retenção (mantém 8, apaga sóbrain-backup-*.zipdele mesmo)./backup status→--status: último backup + contagem (saúde de uma linha).
Rotina
Noturno semanal (domingo, no scripts/nightly-update.sh — dia 0 da semana).
O vault inteiro é pequeno (texto); semanal é suficiente E suficiente pra
perder pouco. Se o dono pedir mais frequência, muda o dia — não invente
schedules paralelos.
O que entra (e o que nunca entra)
- Entra: tudo de
vault/(zonas, índices, logs, reports) — o cérebro inteiro. - Nunca entra:
config/.enveconfig/.state.json— moram FORA do vault por construção; segredo não tem ido pra backup JAMAIS. Se um dia aparecer arquivo de segredo dentro do vault, isso é defeito grave — escalar.
Restauração (manual, guiada)
- Baixar o zip mais recente da pasta do Drive.
- Fechar sessões do agente. 3. Deszipar sobre o vault (substitui).
- Rodar
/updatee conferirgenerated-at:das views. 5. Se o backup for anterior a dias de uso, o que faltar está perdido — registrar a lacuna no PLANNING/log (honestidade de memória vale pra desastres também).
Diagnóstico
invalid_grant→ mesmo fix do OAuth (app em produção).- 404 na pasta →
GOOGLE_BACKUP_FOLDER_IDerrado (pegue da URL …/folders/<id>). - Pasta sem backups +
/backup statusantigo → incluir na próxima fala com o dono.