Registro de alterações
Notas de versão e histórico do aplicativo Upvault para desktop.
Adicionado
- Caixa de arquivos do espaço de trabalho: guarde qualquer arquivo em um espaço de trabalho, sincronize pelo seu próprio Google Drive e baixe em outro dispositivo só quando precisar
- Adicionar um arquivo da caixa à busca por IA, ou tirá-lo de lá sem excluir o arquivo
- Renomear arquivos na caixa de arquivos
- Salvar um arquivo da caixa em qualquer lugar do disco, com confirmação quando já existe um arquivo de mesmo nome e atalhos para abrir ou mostrar na pasta
- Uso de armazenamento do Google Drive na barra lateral, com detalhamento por pasta nas configurações de sincronização
- Busca entre conversas, para o assistente trazer contexto dos seus outros chats
- Busca de mensagens dentro de uma conversa
- Configuração da chave de API de busca na web nas configurações
- Ícone do provedor no avatar do assistente
Alterado
- O formato de armazenamento foi atualizado (esquema v46). Atualize seus outros dispositivos para esta versão antes de sincronizá-los, caso contrário a sincronização deles vai parar
- O explorador lista conversas primeiro, depois notas e depois arquivos, e mostra o progresso da transferência na linha do arquivo
- As transferências de arquivos para o Google Drive continuam de onde pararam após uma reinicialização ou queda de conexão
Corrigido
- Documentos anexados com @ não carregavam o conteúdo
- Os originais em CSV, XLSX e XLS nunca eram enviados para o Google Drive
- Excluir vários documentos de uma vez deixava para trás os arquivos locais e as cópias no Drive
- A restauração de fábrica não propagava a exclusão de documentos e modelos personalizados para os outros dispositivos
- Os resultados da busca de documentos mostravam nomes de arquivo UUID internos em vez dos originais
- O Ctrl+K não encontrava documentos pelo nome de arquivo original
- As listas de documentos não eram atualizadas depois que a sincronização terminava
- O app podia travar durante a sincronização, ao mesclar o banco de dados vetorial
- Pastas excluídas voltavam a aparecer depois da sincronização
- Faltava o tamanho do arquivo nos documentos adicionados antes da caixa de arquivos
- Os selos de indexado no explorador não ficavam alinhados
Interno
- Reforço do servidor MCP local: isolamento por conta e verificação de transporte (D-14 A1 Step 1 e 2)
- Automação de capturas de tela para a landing page
Adicionado
- Exibição de informações do assistente de chat (modelo, provedor, contexto)
Alterado
- Melhorada a estabilidade da sincronização
Alterado
- Agendamento automático de atualização da lista de modelos de IA (novos modelos dos provedores agora aparecem automaticamente)
Interno
- CI: caches duplicados removidos, verificações limitadas a MRs para pipelines mais rápidos
Adicionado
- Pipeline de rerank — reordena resultados de busca/RAG para maior precisão nos primeiros resultados
- Nova lógica de busca com combinações mais robustas de hierarquia/filtros
Alterado
- Renovação do design do editor Tiptap + melhor persistência da sessão de edição
- Ajustes finais na renovação de design em larga escala (fontes, barra de tarefas)
- Melhorias no parser de PDF
Corrigido
- Script de deploy: proteção contra o push da tag prosseguir quando o push da main falha
Alterado
- Pequena release de estabilização
Adicionado
- Novo provedor de IA
Alterado
- Renovação de design 3 — Spine card, Explorer, Folder, Header
- Sidebar, header e toggle switches redesenhados
Corrigido
- Diversos problemas de Spine card / CSS
Alterado
- Renovação de design — sistema de fontes unificado (DM Sans / DM Serif Display / JetBrains Mono / Pretendard / Noto Serif KR / D2Coding)
Interno
- Fluxo de release reforçado contra o main lock do GitLab CI (push da tag v* bloqueia pushes para main com 403 durante o CI)
- deploy.ps1: proteção não interativa -Yes mais robusta
Corrigido
- Mensagens de erro de licença aprimoradas
- Bug de exibição de mensagem de erro no chat
- Problema de rolagem em abas
Interno
- deploy.ps1: flags -Yes/-Shutdown para deploys não interativos
Corrigido
- Licença sendo liberada espontaneamente
- Limpeza de UX de toast/diálogo de confirmação
Corrigido
- Bugs relacionados a toasts
- Consistência do script de deploy
Interno
- Alinhamento das versões da API JS do Tauri e do crate Rust (@tauri-apps/api, plugin-dialog)
Adicionado
- Recursos de Configurações expandidos
Alterado
- Consolidação das melhorias de abril~maio
Adicionado
- Redesign da UI do editor Fase 1 — BubbleMenu (9 botões de formatação + submenu de IA), placeholder de Slash command, limpeza do LinkEditPopover
- Catálogo remoto de modelos — busca automaticamente os modelos mais recentes do R2 com cache de 24 horas (22 modelos)
- Redesign de UX do visualizador de documentos (Fase A) — visualizador inline TXT/MD, diálogo de orientação para PDF/DOCX, 4 modos de visualização
- Funcionalidade Inbox (Fase A/B/C) — Inbox como workspace do sistema, barra de ação dedicada, classificação manual por IA + Desfazer
- Importação de notas — traga arquivos de texto TXT/MD como notas + Import Dialog
- Download sob demanda de documento original — baixe originais enviados de outro dispositivo da nuvem somente quando necessário
- Tooltip de hover em pastas da sidebar — pré-visualização do conteúdo da pasta
- Tempo limite de inatividade da chave-mestra — bloqueio automático após tempo configurável (0/5/15/30/60 min) + botão Lock Now
Alterado
- Limpeza de 45 strings em inglês hardcoded em 9 idiomas
Corrigido
- Renomear pasta na sidebar: race condition entre Enter/Blur, Escape para cancelar
- Cache stale do tooltip de hover de pasta
- Token do Google Drive não sendo cacheado após reiniciar o app
- Falha no download de documento na nuvem
- Falha do Lance Pull merge ao restaurar quando a tabela estava ausente
- Problema de instalação do modelo de embedding
Adicionado
- Reformulação de CI/CD e assinatura de código (Certificate) — início da distribuição de instalador Windows assinado
Adicionado
- Limpeza de vetores órfãos do LanceDB (M-6) — exclusão automática de vetores de conversas expiradas + compactação periódica de 3 tabelas
- Utilitário de reconciliação — verificação de consistência entre fontes deletadas e vetores
- Múltiplas melhorias em documentos/notas
Corrigido
- Problema no download do modelo de embedding
- Falha no download de documento na nuvem (troca para immutable_files + limpeza do oplog + fallback para Drive)
- CI: curl --ssl-no-revoke aplicado, node_modules excluído do cache
Adicionado
- Gestão de dispositivos e desativação remota (EDGE-2-C) — visualize dispositivos registrados na sua licença + desative remotamente um dispositivo específico
- Gestão de OAuth do Google Drive (M-3) — aprovação em Produção, refresh proativo de 55 minutos, parada imediata em invalid_grant, banner no app quando reautenticação for necessária
- Estabilidade de chamadas LLM (M-2) — backoff exponencial x3 para 429/5xx nos pipelines de auto-título/resumo/memória
- Melhorias de integridade de sincronização (série SYNC-D) — hashing Merkle BLAKE3, resolvida duplicação de drive_file_id, Lance Pull preserva vetores exclusivamente locais (merge baseado em source_file), histórico de Push rastreado até 50 entradas
- Barra "linguagem + copiar" em blocos de código (L-10) — aplicada ao chat e ao editor de notas, suporta indentação com Tab
Corrigido
- Definição duplicada no hook NSIS (hooks.nsh)
Adicionado
- Sincronização totalmente redesenhada (SYNC-REDESIGN) — R/W sempre em todos os dispositivos, WriterLocker removido, Union Merge, unificação do oplog.jsonl, UX de 5 estados (Synced/Syncing/Offline/Error/NotConnected)
- Pipeline completo de pagamento (D-15-D) — integração da API de licença do Lemon Squeezy, Grace Period offline de 7 dias, UI da aba License, exibição de status de dispositivo, cupom de upgrade Standard→Premium
- Gating de planos Fase 2 (D-15-B) — limite de 50 documentos no Free (triplas verificações único/lote/pasta), UpgradePromptModal, badges de plano
- Redesign do tutorial de onboarding (U-1) — Welcome → TutorialCarousel de 4 etapas, entrar no app sem chave de API, card de guia inline + reenvio automático quando faltar chave de API
- Sistema de design de botões v1+v2 — 7 variantes × 7 tamanhos, sistema de camadas de profundidade, ~80+ botões unificados em ~38 arquivos
- Item Upload Docs nos menus de contexto do Explorer/pasta
- 3 camadas de UX para documentos remotos entre dispositivos — banner quando o arquivo original estiver ausente, badge CloudOff no Explorer, toast de conscientização de upload
- UX de sincronização em desligamento gracioso do app — detecção automática de alterações não enviadas → overlay → push → sair
- Menu de contexto da aba — Close to the Left/Right, proteção Pin
- UX de download em runtime do bge-m3 (R-2) — exibição de progresso, previne degradação silenciosa do RAG, caminhos de cache normalizados
- Infraestrutura da landing page — deploy estático no R2, exibição dinâmica de versão, overlay de checkout, ToS + Política de Reembolso em 9 idiomas
- Normalização do Auto Updater (UPDATER-FIX) — R2 unificado, detecção dinâmica de nome de arquivo, guarda de versão tag/build
- Atualização do cache de ícones do Windows — chamada SHChangeNotify após atualização força o recarregamento do IconCache
- Alternador de planos DEV-only — troca instantânea entre Free/Standard/Premium (não incluído em builds de release)
Corrigido
- 4 bugs críticos de sincronização (SYNC-HOTFIX) — bloqueia Push quando o Pull falha, trata falhas de parse do fetch_remote_state, protege a primeira sincronização com Pull-only
- Sincronização de imagem (SYNC-IMG-FIX) — proteção contra Pull miss + delete imutável
- last_seen_at do dispositivo não atualizando + rotulação incorreta como "Synced" ao iniciar o app
- Auto Sync rodando no startup quando estava OFF
- Bug de criação de instância de dispositivo duplicada (D-15-D-FIX2)
- Recuperação de Cargo.toml / package.json corrompidos
- Toast de erro tomando controle da UI (limite de visibleToasts, id fixo para dedup)
- Quebra de responsividade mobile na landing
Interno
- Supabase Edge Functions — API de Checkout dinâmica, gerenciador de dispositivos, webhook LS → subscriptions
- Lógica de retry de upload via curl no CI
- URL de checkout dividida em UUIDs separados para Standard/Premium
Interno
- Tags de release candidate para pré-verificação (detecção dinâmica de arquivo no pipeline de CI, etc.)
Adicionado
- Sistema de agentes (2C-2) — integração com chat, relay de temperature por provedor, UI de gestão de presets, limpeza de i18n
- Abstração de Transport do MCP + Streamable HTTP — estabilidade de stdio + suporte a servidor HTTP + migração de armazenamento para SQLite + armazenamento de token de auth no Keyring
- Sync Batch A — camada universal de sincronização de arquivos, dirty flag em tempo real
- Batch de recursos de chat — anexo de PDF (nativo para 3 provedores + fallback customizado), salvar memo por seleção de intervalo, galeria de imagens
- Melhorias na busca hierárquica de IA + aprimoramentos de busca (trigram FTS5, RRF de 3 vias, pré-visualização em 2 colunas, UI de filtros)
Alterado
- Sistema de design GLASS aplicado
- Redesign de UI/UX S1~S6 — gerenciador de janelas (FloatingPanel + PanelCanvas), adoção do shadcn/ui, redesign da TaskBar, painel Explorer, modo de layout Docked
- Primeira passagem de substituição por Phosphor Icons
- Melhorias no breadcrumb / popover de Tools
Corrigido
- Múltiplos patches de QA para a busca hierárquica de IA
- Validação de target_id do painel de doc, salvamento incompleto de mensagem após cancelar, indicador de workspace ativo e outros
Adicionado
- Lixeira — soft delete + TrashView + restauração, previne perda de dados por CASCADE
- Factory Reset — 8 categorias selecionáveis individualmente
Alterado
- Múltiplas melhorias de UI, patches de QA
Corrigido
- Clippy manual_flatten, etc.
Corrigido
- Correção raiz do 404 no download de releases do CI/CD — migração para o GitLab Generic Packages Registry
- Correção raiz de .nsis.zip não gerado — adicionado createUpdaterArtifacts
- Build do CI: diagnóstico de chave de assinatura + verificação do zip do updater
Corrigido
- Exibição de versão, 3 problemas de build de deploy
Segurança
- Tratamento aprimorado de PAT (Personal Access Token)
Adicionado
- Anexar imagem no chat — Ctrl+V / seleção de arquivo / arrastar-e-soltar, roteamento multimodal por provedor
- Salvar memo de par Q&A — inclui a pergunta automaticamente, formato blockquote
- Alternador de visualização de conversa/memo na sidebar — controle segmentado
- Pré-visualização estendida de chunks de documento — Split View, score de similaridade, badge de referência
- Gestão avançada de modelos — tags de Capabilities, reordenação DnD, dashboard de custo, 9 provedores predefinidos
- Supabase Auth (Google/GitHub) completo — PKCE + callback localhost, auto-refresh, UI de perfil
Alterado
- Automação de RAG (2C-RAG-FIX) — useRag padrão true, delete-before-ingest, ferramenta search_documents aprimorada
- Removido o jargão "chunks" em favor de termos intuitivos (2C-CHUNK-UX)
- Terminologia Workspace → Folder unificada (i18n em 5 idiomas)
- Sistema de cores migrado para tons frios + accent roxo profundo
- Tamanhos de fonte unificados ao padrão da indústria
- Refactor de layout da sidebar/configurações (sem bordas, arranjo de 3 colunas)
- ChatHeader redesenhado e mesclado com o rodapé da barra de input
Corrigido
- Redesign raiz do pipeline de imagem de notas (2C-IMG-FIX3) — race condition, atomicidade, caminhos relativos, limpeza de exclusão
- Colisão de state em OAuth (o PKCE agora cuida da proteção CSRF)
- 8 correções de lint do Clippy
Adicionado
- Editor de notas WYSIWYG Tiptap
- Sincronização entre dispositivos (Fase 2B) — backend Google Drive, Union Merge do SQLite, UX de Sync
- Contexto persistente (2B-3/4) — resumo automático de conversa, extração automática de memória, forget_note, busca semântica
- Busca semântica de conversas (2B-5) — híbrido FTS5 + LanceDB, modal de busca redesenhado
- Registro dinâmico de modelos (2C-1) — registro de provedores customizados, busca automática de /v1/models
- Tema "Soft Depth" — sistema de variáveis CSS (--v-*), paleta de cores, árvore da sidebar
- Barra de abas — abas temporárias/fixadas, estado de expansão da sidebar movido para o Zustand
- Recurso de atualização manual
Alterado
- Limpeza de UI do chat — bordas em gradiente, welcome card, blocos de código
- Colapso de pasta, conversa em novo workspace, painel de notas, terminologia de Sync
Corrigido
- Aviso type_complexity do Clippy
- Prevenção de contaminação do cache do CI
Adicionado
- Hierarquia de workspaces (3 níveis)
- CRUD de memos + criptografia AES-256-GCM
- Seleção de contexto por @menção — referencie documentos/memos diretamente do input
- Conversão de conversa → memo (📌 salvar)
- Ferramentas embutidas de IA (busca, consulta de documentos, etc.)
- Exibição em tempo real de token/custo (diferenciação BYOK)
- Persistência de conversa (SQLite) + título automático + busca FTS5 + dados reais na sidebar + modal de busca Ctrl+K
- Onboarding OOBE + UI de confiança da chave de API
- GitLab CI/CD + instalador NSIS + Auto Updater
Adicionado
- Primeira release alpha — MVP (Fase 1) concluído
- Chat multimodelo (BYOK) — streaming de Claude, GPT (código do Gemini pronto)
- DB vetorial local — vetorização e busca de conversas/documentos com base em LanceDB
- Embedding local — execução em CPU do bge-m3, suporte multilíngue (30~86ms/chunk)
- RAG básico — upload de TXT/MD/HTML/PDF/DOCX → chunking → embedding → busca → resposta
- Integração básica do MCP — servidor stdio, orquestração de Tool Use para 3 provedores (Claude/GPT/Gemini), servidor de filesystem (14 ferramentas) testado ao vivo
- Layout de 3 painéis + núcleo do chat (streaming + Markdown + ToolCall) + UI de Settings/MCP/RAG + ModelSelector