Pular para o conteúdo principal
O ChatCLI oferece dois mecanismos poderosos para controle do histórico de conversa: compactação inteligente para reduzir o tamanho do contexto sem perder informações críticas, e rewind para restaurar a conversa a um ponto anterior.

/compact — Compactação de Contexto

O comando /compact reduz o tamanho do histórico de conversa para que ele caiba dentro da janela de contexto do modelo, preservando as informações mais importantes.

Modos de Uso

Sem argumentos, executa o pipeline de compactação de 3 níveis:
/compact
O pipeline automático segue está ordem:
  1. Nivel 1 — Trimming (quase sem perda): remove tags <reasoning>, compacta XML, elimina duplicatas
  2. Nivel 2 — Sumarização estruturada: extrai fatos (arquivos lidos, modificados, comandos executados, decisoes) em formato bullet point
  3. Nivel 3 — Truncamento de emergencia: descarta mensagens do meio, mantendo system prompt e mensagens recentes
Durante o pipeline, o terminal exibe feedback ao vivo de cada fase (não trava mais em silêncio como antes):
│ 📦 Compactando histórico (23 msgs, 4.2 MB → alvo 2.9 MB)
│ 🧹 Trim: removendo reasoning/dedup (sem LLM)…
│ 🧠 Resumindo mensagens antigas via LLM (pode levar 30-90s — ESC cancela)…
│ ✓ Resumo aplicado (23 → 9 msgs, 4.2 MB → 1.8 MB)
Pressione ESC ou Ctrl+C para abortar o Nivel 2 (LLM). O cancelamento propaga via contexto e preserva o histórico intacto (sem cair para Nivel 3 cegamente).

Como Funciona

Preservacao de Mensagens

Em ambos os modos:
  • System messages são sempre preservadas integralmente
  • Ultimas mensagens (4 no guiado, 10 no automático) são mantidas verbatim
  • Apenas o bloco do meio e sumarizado ou removido
  • Metadados indicam que a mensagem e um resumo (IsSummary: true)

Exemplo de Saida

Após compactação, uma mensagem de resumo substitui as mensagens do meio:
[GUIDED COMPACT — covering 42 earlier messages | instruction: "preservar arquitetura auth"]

## Files Read
- pkg/auth/handler.go (120 lines) - HTTP handlers for authentication
- pkg/auth/middleware.go (85 lines) - JWT validation middleware

## Files Modified
- pkg/auth/handler.go:45-60 - Added refresh token endpoint

## Key Decisions
- JWT tokens expire in 15 minutes with refresh token rotation
- Middleware validates at gateway level, not per-service

## Errors & Resolutions
- "token expired" panic in middleware → added nil check on claims

/rewind — Voltar no Tempo

O /rewind permite restaurar a conversa a um ponto anterior, desfazendo mensagens e respostas indesejadas.

Como Funciona

O ChatCLI salva automaticamente checkpoints da conversa antes de cada chamada ao LLM. Você pode voltar a qualquer um desses pontos.
/rewind
Isso exibe um menu interativo:
  REWIND — Select a checkpoint to restore
  ─────────────────────────────────────────
  [1]  14:32:05  28 msgs  implemente o endpoint de refresh token
  [2]  14:28:12  24 msgs  corrija o bug no middleware JWT
  [3]  14:25:01  20 msgs  análise o modulo de autenticação
  [4]  14:20:33  16 msgs  (start)

  Select [1-4] or (q)uit:
Selecione o número do checkpoint para restaurar. O histórico e revertido ao estado exato daquele ponto, incluindo todas as mensagens e contexto.

Atalho de Teclado: Esc+Esc

Pressione Esc duas vezes rapidamente (menos de 500ms entre pressionamentos) para abrir o menu de rewind diretamente do prompt, sem precisar digitar /rewind.

Limites

  • Máximo de 20 checkpoints são mantidos (os mais antigos são descartados)
  • Checkpoints existem apenas na sessão atual (não são persistidos em disco)
  • Ao fazer rewind, checkpoints posteriores ao ponto restaurado são removidos

Histórico Unificado

O ChatCLI usa um unico array de histórico compartilhado entre todos os modos (chat, agent, coder). Isso significa que:
  • A troca entre /agent, /coder e chat preserva todo o contexto
  • A IA não “esquece” o que foi feito em outro modo
  • /compact e /rewind operam sobre o histórico completo, independente do modo
Sessões salvas com versões anteriores do ChatCLI que usavam historicos separados por modo são automaticamente convertidas ao carregar — os historicos são mesclados em ordem cronologica.

Quando Usar

/compact (automático)

Quando o ChatCLI avisar que o contexto está grande, ou quando perceber respostas degradadas.

/compact <instrução>

Quando você sabe exatamente quais informações são críticas e não podem ser perdidas na compactação.

/rewind

Quando a IA tomou um caminho errado, gerou código incorreto, ou você quer tentar uma abordagem diferente.

Esc+Esc

Atalho rápido para rewind sem sair do fluxo de digitacao.

Próximos Passos

Gerenciamento de Sessões

Salve e reutilize conversas entre projetos.

Bootstrap e Memória

Personalize a IA e mantenha contexto de longo prazo entre sessões.