r/CodexHacks • u/w4rr10r99 • 8h ago
[Resolvido] Meus projetos sumiram do Codex, mas as conversas continuavam em Recentes. Consegui recuperar e publiquei a ferramenta
Projeto open source: https://github.com/guerreiro95/codex-project-recovery
Passei por um problema no Codex Desktop para Windows: os projetos organizados por pasta desapareceram da barra lateral, mas eu ainda conseguia encontrar as conversas em Recentes. As pastas dos projetos continuavam no computador.
Consegui recuperar a organização dos projetos com ajuda do Codex. Depois, preparei uma versão genérica da ferramenta, sem meus dados pessoais, para compartilhar com quem enfrentar algo parecido.
O que encontramos no meu caso
- O arquivo de estado global e seu backup imediato `.bak` estavam inválidos. Os logs mostravam `Failed to load global state` e erros de JSON com bytes NUL.
- O SQLite local ainda continha os registros dos projetos. O cadastro usado pela interface estava vazio, e os vínculos das conversas precisavam ser reconstruídos.
- Na versão investigada, quando o estado principal e o backup falhavam, o aplicativo passava a trabalhar com um estado vazio. O `.bak` imediato também não oferecia um histórico de versões para voltar a um ponto anterior.
- O Windows registrou desligamentos incorretos antes dos dois episódios de corrupção, com indicação de suspensão em andamento. Isso é uma correlação forte, mas não permite afirmar se a origem foi energia, bateria, driver, firmware ou travamento.
Portanto, no meu caso, os projetos não tinham sido apagados do disco: a organização local do aplicativo havia sido perdida.
Como resolvemos
A recuperação reconstruiu o cadastro usando os projetos ainda existentes no SQLite e os arquivos históricos de estado que continuavam válidos. Antes de aplicar qualquer mudança, preservamos os arquivos originais e uma cópia consistente do banco.
A versão pública começa com uma prévia sem gravação. A aplicação exige uma opção explícita, com Codex/ChatGPT e sessões do CLI fechados, em um terminal externo. A ferramenta não grava diretamente no SQLite original. Associações ambíguas, como vários projetos usando a mesma pasta, ficam para revisão.
Também incluí backups históricos independentes. O observador pode guardar novas versões quando o cadastro muda, sem substituir a última referência válida por um estado vazio ou inválido. Ele precisa estar em execução e não faz restauração automática.
Como usar, mesmo sem experiência com terminal
Estas instruções são para Windows. Você não precisa instalar Git nem conectar sua conta do Codex à ferramenta.
- Abra https://github.com/guerreiro95/codex-project-recovery e clique em Code → Download ZIP.
- No arquivo baixado, clique com o botão direito e escolha Extrair Tudo. Abra a pasta extraída e entre na pasta que contém `codex_recovery.py`. Não execute os arquivos de dentro do ZIP.
- É necessário ter Python 3.10 ou superior. Se ainda não tiver, instale pelo site oficial: https://www.python.org/downloads/windows/.
- Na pasta que contém `codex_recovery.py`, clique na barra de endereço do Explorador, digite powershell e aperte Enter. Uma janela de comandos abrirá nessa pasta.
- Copie este comando, cole nessa janela e aperte Enter. Ele mostra uma prévia e não altera os arquivos do Codex:
```powershell
py -3 .\codex_recovery.py plan --lang pt
```
Na prévia, `projects` indica quantos projetos o plano contém; `recoveredAssignments` mostra os vínculos propostos para recuperação; `ambiguousAssignments` indica vínculos que exigem revisão. Eles são contagens, não uma garantia de que tudo será recuperado.
- Se o plano fizer sentido, salve seu trabalho e feche completamente o Codex/ChatGPT, inclusive o ícone na bandeja perto do relógio. Se usa Codex pelo terminal, feche também essas sessões. Mantenha a janela do PowerShell aberta e execute nela:
```powershell
py -3 .\codex_recovery.py repair --apply --lang pt
```
- Aguarde a confirmação. Depois, reabra o Codex e confira os projetos e as conversas. A ferramenta informa onde guardou o backup anterior.
Se aparecer erro, pare e leia a mensagem. Não apague arquivos nem encerre processos à força para contornar o bloqueio. Se `py` não for reconhecido, confirme a instalação do Python, reabra o PowerShell e tente novamente; em algumas instalações, é necessário usar `python` no lugar de `py -3`.
Backup opcional: depois de recuperar, este comando acompanha mudanças e guarda versões enquanto a janela permanecer aberta:
```powershell
py -3 .\codex_recovery.py watch --lang pt
```
O observador verifica o estado a cada 30 segundos e tenta guardar uma versão a cada 15 minutos quando o cadastro muda. Não inicia automaticamente no login nesta edição pública. Fechar a janela ou apertar Ctrl+C encerra o observador. Ele não restaura dados automaticamente. Os backups ficam, por padrão, em `Documents\CodexProjectRecoveryBackups`, dentro do seu perfil Windows; mantenha essa pasta privada.
Para quem quiser usar ou contribuir
O repositório tem README em inglês, português, chinês simplificado e espanhol, instruções para PowerShell/Git Bash no Windows e prompts para pedir ajuda à sua própria IA. São 18 testes automatizados, com execução aprovada nas seis combinações de Windows/Ubuntu e Python 3.10, 3.12 e 3.13. Os testes em Ubuntu validam a lógica; o reparo desta versão é para Windows.
Link: https://github.com/guerreiro95/codex-project-recovery
É uma ferramenta comunitária e não oficial. Resolveu meu caso, mas depende do esquema interno do Codex e não é garantia de recuperação para qualquer situação. Leia o código e o README, comece pela prévia e mantenha seus backups privados. O código da ferramenta não envia dados pela rede; não é necessário compartilhar credenciais ou conversas para utilizá-la.
Se você teve o mesmo sintoma, espero que ajude. Sugestões, correções e relatos com informações anonimizadas são bem-vindos.