Pular para o conteúdo

Editor e explorador de arquivos

O editor usa o Monaco Editor, projeto open source da Microsoft derivado das fontes do 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.

Diagnósticos de sintaxe e de servidores de linguagem aparecem no texto, na margem e no minimapa. Alterações Git válidas continuam verdes; erros reais são vermelhos.

Na prática

  • Dois grupos de edição lado a lado e visualização de diff
  • Autoria Git por linha (blame) direto no editor
  • Ação Corrigir com o Codex nos diagnósticos, inclusive sobre buffers ainda não salvos
  • 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
  • Tempo decorrido visível enquanto a consulta está em execução
  • 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 do Postman e Insomnia em JSON, YAML ou YML
  • Exceção TLS explícita e isolada por requisição

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.

O navegador seguro pode ser anexado à conversa para fornecer um snapshot ou, com autorização explícita e revogável, permitir inspeção e interação ao vivo no site aberto.

Na prática

  • Modos de aprovação configuráveis para ações sensíveis
  • Revisão das alterações locais dentro da conversa
  • Correções do editor aparecem no buffer durante o turno, sem salvar automaticamente
  • Controle opcional do navegador isolado, sem expor campos de senha
  • 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

Workbench e múltiplas janelas

Cada janela mantém seu próprio workspace, conexão, terminais e conversa do Codex. É possível trabalhar em projetos locais e SSH ao mesmo tempo sem misturar o estado entre eles.

A Paleta de Comandos centraliza as ações disponíveis no contexto atual, enquanto o comando de terminal do DiguinCode abre arquivos, pastas e posições de linha a partir do shell.

Na prática

  • Dois grupos de edição lado a lado
  • Terminal, Problemas, Saída, Testes e Depuração em painéis acopláveis
  • Janelas independentes para workspaces diferentes
  • Paleta de Comandos e atalhos configuráveis
  • Comando de terminal para abrir caminho, linha e coluna

Limitações declaradas: O layout persistente acima de dois grupos de edição ainda não é suportado.

Documentos, planilhas e visualizadores

Arquivos DOCX abrem em um editor visual com páginas, estilos e imagens. Planilhas XLSX, XLS, CSV e TSV ganham grade editável com fórmulas e múltiplas abas.

PDFs, imagens, arquivos Markdown e pacotes ZIP usam visualizadores próprios. O arquivo continua no workspace local ou remoto e não é enviado a um serviço externo para ser exibido.

Na prática

  • Editor visual de DOCX com renderização por páginas
  • Planilhas com fórmulas, múltiplas abas e exportação
  • Leitor de PDF e prévia de imagens e Markdown
  • Listagem segura do conteúdo de arquivos ZIP
  • Funciona com arquivos locais e por SFTP

Limitações declaradas: Planilhas não participam do salvamento transacional de múltiplos arquivos; formatos complexos podem exigir conferência visual após a edição.

Central de Operações

A Central registra somente ações significativas do próprio DiguinCode, com horário, duração, resultado, domínio e o nome exibido do contexto. Operações em andamento que forem interrompidas pelo fechamento do app ficam identificadas como tal.

Argumentos, SQL, comandos de terminal, caminhos, conteúdo de arquivos, respostas e credenciais não entram no histórico. Nada é transmitido automaticamente.

Na prática

  • Filtros por estado e domínio
  • Duração e resultado das operações relevantes
  • Resumo seguro para copiar ou anexar voluntariamente a um relato
  • Histórico local, limitado e versionado
  • Limpeza das operações concluídas

Limitações declaradas: Não é telemetria nem auditoria remota e não registra o conteúdo executado.

Acessibilidade e uso por teclado

Diálogos podem ser fechados com Esc e devolvem o foco ao controle que os abriu. A interface também verifica nomes acessíveis, semântica e contraste nos temas padrão.

O projeto mantém uma auditoria automatizada com axe-core para regras WCAG A/AA nas superfícies já cobertas e uma lista de homologação manual para zoom, escalas do Windows e leitores de tela.

Na prática

  • Fluxos principais navegáveis por teclado
  • Foco visível e restaurado após fechar diálogos
  • Tema claro, escuro e do sistema com contraste verificado
  • Auditoria automatizada do shell e das Configurações
  • Checklist manual para zoom e tecnologias assistivas

Limitações declaradas: Monaco, xterm e leitores de tela ainda exigem homologação manual; a auditoria automática não garante compatibilidade integral com tecnologia assistiva.

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. As versões para macOS e Linux estão em desenvolvimento, ainda sem data anunciada. 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.