Pular para o conteúdo

Recursos

Cada módulo do DiguinCode, em detalhe

A descrição abaixo segue a matriz de capacidades do próprio projeto. Onde existe limitação declarada, ela aparece junto com o recurso — não depois da instalação.

Editor e explorador de arquivos

O editor é o Monaco, o mesmo motor usado pelo VS Code, com realce de sintaxe para dezenas de linguagens, ligaduras da Fira Code e configuração de quebra de linha, tabulação e rolagem.

O explorador funciona igual em pastas do seu computador e em servidores por SFTP: criar, renomear, excluir, enviar e baixar arquivos, com ícones por tipo de arquivo.

Na prática

  • Dois grupos de edição lado a lado e visualização de diff
  • Autoria Git por linha (blame) direto no editor
  • Visualização de PDF, listagem de .zip e edição de planilhas Excel
  • Salvamento atômico, detecção de alteração externa e recuperação de rascunhos

Limitações declaradas: Planilhas não participam do salvamento transacional de múltiplos arquivos.

Terminal integrado

O terminal é baseado em xterm.js e o ciclo de vida das sessões fica no backend Rust, não no frontend. Você pode abrir até quatro terminais por contexto, dividir a tela na horizontal ou na vertical e redimensionar cada painel.

Comandos usados com frequência podem ser salvos por perfil de conexão e disparados por atalho.

Na prática

  • Terminais locais e sobre SSH na mesma interface
  • Divisão horizontal e vertical com redimensionamento
  • Comandos salvos por perfil de conexão
  • Digitação sem atraso artificial de agrupamento de saída

Limitações declaradas: Limite de quatro terminais simultâneos por contexto.

Git Explorer

O controle de código-fonte usa o Git real instalado, com o mesmo executor para o workspace local e para repositórios acessados por SSH. Não existe um segundo motor de status nem download do repositório para a máquina local.

As decorações de status aparecem na árvore de arquivos e no editor, com cache para manter a navegação rápida em repositórios grandes.

Na prática

  • Preparar, revisar e commitar arquivo por arquivo ou em bloco
  • Branches, histórico e blame por linha
  • Sincronizar, guardar (stash) e restaurar
  • Funciona igual em repositório local e em servidor remoto

Resolução de conflitos

As entradas em conflito vêm de `git ls-files -u`, e as versões base, atual e de entrada são carregadas sob demanda direto dos objetos do Git. Nada é adivinhado a partir do texto do arquivo.

O parser reconhece os formatos merge, diff3 e zdiff3, blocos adjacentes, LF e CRLF, BOM UTF-8 e ausência de quebra de linha final.

Na prática

  • Ações Atual, Entrada, Ambos e Base por bloco de conflito
  • Navegação entre conflitos e ação global com confirmação
  • Alterações entram no histórico de undo/redo do editor
  • Cache dos blobs por cinco minutos para reabrir sem custo

SSH, SFTP e servidores

SSH e SFTP são implementados em Rust puro e rodam exclusivamente no backend. O frontend nunca fala diretamente com o servidor — apenas troca comandos e eventos.

A identidade de cada servidor é confirmada por você no primeiro acesso e re-confirmada com alerta forte caso mude. Nenhum host é aceito automaticamente.

Na prática

  • Agente OpenSSH, ProxyJump e encaminhamento de portas em loopback
  • Sincronização de pastas com prévia revalidada antes de aplicar
  • Buckets S3 pelo SDK oficial da AWS, no mesmo lugar
  • Quedas de rede se recuperam sozinhas em vez de travar a sessão

Limitações declaradas: Sem suporte a Pageant, `ProxyCommand`, watcher remoto ou sincronização bidirecional.

Cliente de banco de dados

O cliente de banco é nativo, sem instalar nada externo. A árvore de esquema navega de bancos a colunas, carregando metadados sob demanda e mantendo cache.

O editor SQL é o Monaco, com múltiplas abas por conexão, autocomplete ciente do esquema (tabelas, colunas, alias, CTE e subquery), Ctrl+Enter para executar e cancelamento de consulta em andamento.

Toda consulta é limitada e transmitida em stream: uma tabela inteira nunca é carregada na memória.

Na prática

  • Abas de Dados, Estrutura e DDL por tabela
  • Edição de célula com chave primária obrigatória e concorrência otimista
  • Exportação em CSV, JSON, SQL INSERT e SQL UPDATE
  • Modo somente-leitura por conexão e confirmação antes de SQL destrutivo

Limitações declaradas: Drivers fora de PostgreSQL, MySQL/MariaDB e SQLite e operações administrativas específicas não são suportados.

Cliente de APIs

As requisições são executadas pelo backend Rust. O frontend edita contratos tipados e projeta resultados; ele nunca recebe client secrets nem cria transporte de rede próprio.

OAuth 2.0 Client Credentials é suportado, com o client secret guardado no Gerenciador de Credenciais do Windows e o token mantido apenas em memória pelo tempo da chamada.

Na prática

  • HTTP e GraphQL sobre HTTP, com histórico e ambientes
  • Assertions declarativas sobre a resposta
  • Sessões WebSocket em texto
  • Importação de coleções do Postman

Limitações declaradas: Sem gRPC, SSE como protocolo dedicado, scripts arbitrários, mocks ou geração de clientes.

Inteligência artificial (Codex)

O Codex roda com o runtime oficial isolado dentro do DiguinCode e usa a sua conta, em sessão separada da do VS Code. O contexto é o perfil Local, SSH ou S3 que estiver selecionado.

As conversas têm histórico por conta, fila de mensagens, medidor de consumo de tokens em tempo real e checkpoints retomáveis.

Na prática

  • Modos de aprovação configuráveis para ações sensíveis
  • Revisão das alterações locais dentro da conversa
  • Inventário somente-leitura de AGENTS.md, skills, hooks e MCP carregados
  • Ferramentas com limite de tamanho de resposta para não gastar tokens à toa

Limitações declaradas: Sem revisão de código remoto, sincronização de conversas entre máquinas ou rollback de arquivos pelo agente.

Busca avançada

São quatro fluxos distintos: busca no arquivo atual, Quick Open por caminho, busca e substituição textual em todo o workspace e inteligência de símbolos.

Em conexões remotas, a busca usa `find` e `grep`, presentes em qualquer servidor Unix, e traz apenas o resultado — sem baixar a árvore de arquivos e sem instalar nada no servidor.

Na prática

  • Ctrl+Shift+F e Ctrl+Shift+H com regex, globs e streaming de resultados
  • Quick Open (Ctrl+P) sobre índice de caminhos do workspace
  • Buffers não salvos prevalecem sobre o conteúdo em disco
  • Cancelamento real da busca em andamento

Temas e personalização

Um perfil de cores é um conjunto de valores para tokens semânticos predefinidos — nunca CSS ou layout arbitrário. Isso mantém o layout, a tipografia e o espaçamento intactos em qualquer perfil.

O perfil nativo `DiguinCode Padrão` é somente leitura e serve de base e fallback para todos os outros.

Na prática

  • Tema claro, escuro ou seguindo o Windows
  • Perfis de cores personalizados com verificação de contraste
  • Temas do Monaco sincronizados com o perfil ativo
  • Interface em português (padrão) ou inglês

Limitações declaradas: A migração de todos os fluxos históricos para i18n ainda está em andamento.

Atualização automática

A atualização usa o updater do Tauri: cada artefato é assinado com uma chave Ed25519 e a chave pública correspondente está compilada dentro do aplicativo instalado. Um pacote sem assinatura válida é recusado.

As versões são publicadas no repositório oficial de releases no GitHub. Nenhum outro canal é usado.

Na prática

  • Verificação periódica de novas versões
  • Instalação em modo passivo, sem reconfigurar nada
  • Conexões, credenciais e preferências preservadas ao atualizar
  • Origem única e pública: GitHub Releases

Buckets S3

Buckets S3 aparecem como mais um tipo de perfil, ao lado de SSH e banco de dados, e usam o SDK oficial da AWS no backend Rust.

Na prática

  • Navegação de buckets e objetos
  • Credenciais no Gerenciador de Credenciais do Windows
  • Mesma organização em pastas dos demais perfis

Limitações declaradas: Capacidades além do navegador de objetos não são oferecidas.

Workspace Trust

Cada workspace tem um estado — desconhecido, restrito ou confiável. Ferramentas que executam processos exigem um workspace confiável, e revogar a confiança encerra os processos em andamento.

Na prática

  • Falha fechada: sem decisão, não executa
  • Revogação encerra o que estiver rodando
  • Decisão por workspace, não global

Limitações declaradas: É um controle do aplicativo, não um sandbox do sistema operacional.

Tarefas, testes e depuração

As tarefas ficam versionadas junto do projeto e rodam no workspace local ou por SSH, com painel de saída e cancelamento. O Test Explorer descobre e executa testes, e a depuração usa o protocolo DAP.

Na prática

  • Tarefas Local e SSH com saída e cancelamento
  • Test Explorer com adapters Vitest e Cargo
  • Depuração com CodeLLDB e debugpy: pilha, variáveis e breakpoints
  • Servidores de linguagem (LSP) com diagnósticos no painel Problemas

Limitações declaradas: Sem inputs, watchers ou problem matchers customizados nas tarefas. Jest, Playwright, PHPUnit, pytest e Go test não são suportados no Test Explorer. A depuração não suporta `attach` nem outros adapters.

Backup criptografado

O backup leva conexões SSH, S3 e banco, pastas, comandos salvos, o Cliente de API inteiro, temas, workspaces e preferências. O arquivo é protegido com AES-256-GCM e senha.

As senhas das conexões são restauradas direto no Gerenciador de Credenciais do Windows, sem passar em texto aberto pela interface.

Na prática

  • Arquivo único, portátil e criptografado
  • Restauração direta no cofre do Windows
  • Backups de versões anteriores continuam sendo importados

O que o DiguinCode não faz

A matriz de capacidades e limitações mantida no projeto foi usada como fonte desta página. Não existe versão para macOS ou Linux, não existe telemetria de produção, não existe editor visual de merge em três vias e não existem funcionalidades de interface que simulem recursos ainda não implementados.