Como Funciona
Cada versão do ChatCLI define umCurrentConfigVersion. Quando o usuário atualiza o binario, o sistema compara a versão salva com a versão atual e aplica as migrações necessarias:
Ciclo de Migração
Migração v0 -> v1
A migração incluida normaliza configurações legadas:| Transformacao | Antes | Depois |
|---|---|---|
| Normaliza provider | openai | OPENAI |
| Renomeia API key | CHATCLI_API_KEY | OPENAI_API_KEY |
| Renomeia modelo | CHATCLI_MODEL | OPENAI_MODEL |
| Default skills | (ausente) | CHATCLI_SKILLS_ENABLED=true |
| Default safety | (ausente) | CHATCLI_SAFETY_ENABLED=false |
| Default tool use | (ausente) | CHATCLI_NATIVE_TOOL_USE=true |
API
Verificar Necessidade de Migração
Executar Migração
Backup e Rollback
Registrar Migração Custom
Arquivo de Versão
A versão e armazenada em~/.chatcli/config_version.json:
Backups
Os backups são armazenados em~/.chatcli/backups/ com timestamp:
Segurança
Atomicidade
Cada migração e aplicada sobre uma copia dos valores. Se falhar, os originais são preservados.
Sequencialidade
Migrações são executadas estritamente em ordem crescente de versão.
Backup obrigatório
Um backup e criado automaticamente antes de qualquer migração.
Idempotencia
Se já estiver na versão atual,
Migrate() retorna os valores inalterados.