Journal des modifications
Notes de version et historique des versions de l'application Upvault.
Ajouté
- Classeur de fichiers de l'espace de travail : conservez n'importe quel fichier dans un espace de travail, synchronisez-le via votre propre Google Drive et téléchargez-le sur un autre appareil uniquement quand vous en avez besoin
- Ajouter un fichier du classeur à la recherche IA, ou le retirer sans supprimer le fichier
- Renommer les fichiers du classeur
- Enregistrer un fichier du classeur où vous le souhaitez, avec une confirmation si un fichier du même nom existe déjà, puis des raccourcis pour l'ouvrir ou afficher son dossier
- Espace de stockage Google Drive utilisé dans la barre latérale, avec le détail par dossier dans les paramètres de synchronisation
- Recherche entre conversations : l'assistant peut désormais reprendre le contexte de vos autres discussions
- Recherche de messages dans une conversation
- Configuration de la clé API de recherche web dans les paramètres
- Icône du fournisseur sur l'avatar de l'assistant
Modifié
- Le format de stockage a été mis à jour (schéma v46). Mettez vos autres appareils à jour vers cette version avant de les synchroniser, sinon leur synchronisation s'arrêtera
- L'explorateur affiche d'abord les conversations, puis les notes, puis les fichiers, et indique la progression du transfert sur la ligne du fichier
- Les transferts de fichiers vers Google Drive reprennent là où ils se sont arrêtés après un redémarrage ou une coupure de connexion
Corrigé
- Les documents joints avec @ ne chargeaient pas leur contenu
- Les originaux CSV, XLSX et XLS n'étaient jamais envoyés vers Google Drive
- La suppression de plusieurs documents à la fois laissait les fichiers locaux et les copies Drive en place
- Une réinitialisation ne propageait pas la suppression des documents et des modèles personnalisés vers vos autres appareils
- Les résultats de recherche affichaient les noms de fichiers UUID internes au lieu des noms d'origine
- Ctrl+K ne trouvait pas les documents par leur nom de fichier d'origine
- Les listes de documents ne se rafraîchissaient pas après une synchronisation
- L'application pouvait planter pendant la synchronisation, lors de la fusion de la base vectorielle
- Les dossiers supprimés réapparaissaient après la synchronisation
- La taille de fichier manquait pour les documents ajoutés avant le classeur de fichiers
- Les badges d'indexation de l'explorateur n'étaient pas alignés
Interne
- Renforcement du serveur MCP local : isolation par compte et vérification du transport (D-14 A1 Step 1 et 2)
- Captures d'écran automatisées pour la page de destination
Ajouté
- Affichage des informations de l'assistant de chat (modèle, fournisseur, contexte)
Modifié
- Amélioration de la stabilité de la synchronisation
Modifié
- Actualisation automatique planifiée de la liste des modèles d'IA (les nouveaux modèles des fournisseurs apparaissent désormais automatiquement)
Interne
- CI : suppression des caches en double, checks limités aux MR pour des pipelines plus rapides
Ajouté
- Pipeline de rerank — réorganise les résultats de recherche/RAG pour une meilleure précision des premiers résultats
- Nouvelle logique de recherche avec des combinaisons hiérarchie/filtres renforcées
Modifié
- Refonte du design de l'éditeur Tiptap + meilleure persistance des sessions d'édition
- Finitions de la refonte design à grande échelle (polices, barre des tâches)
- Améliorations du parseur PDF
Corrigé
- Script de déploiement : garde-fou pour empêcher le push du tag si le push sur main échoue
Modifié
- Petite version de stabilisation
Ajouté
- Nouveau fournisseur d'IA
Modifié
- Refonte design 3 — Spine card, Explorer, Folder, Header
- Barre latérale, en-tête et interrupteurs à bascule redessinés
Corrigé
- Divers problèmes de Spine card / CSS
Modifié
- Refonte design — système de polices unifié (DM Sans / DM Serif Display / JetBrains Mono / Pretendard / Noto Serif KR / D2Coding)
Interne
- Workflow de release durci contre le verrou main de GitLab CI (le push de tag v* bloque les push sur main avec un 403 pendant la CI)
- deploy.ps1 : garde-fou non interactif -Yes renforcé
Corrigé
- Meilleurs messages d'erreur de licence
- Bug d'affichage des messages d'erreur du chat
- Problème de défilement des onglets
Interne
- deploy.ps1 : drapeaux -Yes/-Shutdown pour les déploiements non interactifs
Corrigé
- Licence libérée spontanément
- Nettoyage UX des toasts / dialogues de confirmation
Corrigé
- Bugs liés aux toasts
- Cohérence du script de déploiement
Interne
- Alignement des versions entre l'API JS Tauri et les crates Rust (@tauri-apps/api, plugin-dialog)
Ajouté
- Fonctionnalités des Paramètres étendues
Modifié
- Regroupement des améliorations d'avril à mai
Ajouté
- Refonte UI de l'éditeur Phase 1 — BubbleMenu (9 boutons de formatage + sous-menu IA), placeholder de commande Slash, nettoyage du LinkEditPopover
- Catalogue de modèles distant — récupère automatiquement les derniers modèles depuis R2 avec un cache de 24 heures (22 modèles)
- Refonte UX de la visionneuse de documents (Phase A) — visionneuse TXT/MD en ligne, dialogue d'orientation PDF/DOCX, 4 modes d'affichage
- Fonctionnalité Inbox (Phase A/B/C) — Inbox comme workspace système, barre d'actions dédiée, classification manuelle par IA + Undo
- Import de notes — importer des fichiers TXT/MD en tant que notes + Import Dialog
- Téléchargement à la demande des documents originaux — téléchargez depuis le cloud les originaux uploadés depuis un autre appareil uniquement au besoin
- Info-bulle au survol des dossiers dans la barre latérale — aperçu du contenu du dossier
- Délai d'inactivité de la clé maître — verrouillage automatique après une durée configurable (0/5/15/30/60 min) + bouton Lock Now
Modifié
- Nettoyage de 45 chaînes anglaises codées en dur sur 9 langues
Corrigé
- Renommage de dossier dans la barre latérale : race condition Enter/Blur, annulation avec Échap
- Cache d'info-bulle de dossier obsolète
- Jeton Google Drive non mis en cache après redémarrage de l'application
- Échec du téléchargement de document depuis le cloud
- Le merge Lance Pull échouait à restaurer quand la table était absente
- Problème d'installation du modèle d'embedding
Ajouté
- Refonte CI/CD et signature de code (Certificate) — début de la distribution d'un installateur Windows signé
Ajouté
- Nettoyage des vecteurs orphelins LanceDB (M-6) — suppression automatique des vecteurs des conversations expirées + compaction périodique de 3 tables
- Utilitaire de réconciliation — vérification de cohérence entre les sources supprimées et les vecteurs
- Plusieurs améliorations des documents/notes
Corrigé
- Problème de téléchargement du modèle d'embedding
- Échec du téléchargement de document depuis le cloud (bascule immutable_files + nettoyage oplog + fallback Drive)
- CI : application de curl --ssl-no-revoke, node_modules exclu du cache
Ajouté
- Gestion des appareils et désactivation à distance (EDGE-2-C) — consulter les appareils enregistrés sur votre licence + désactiver un appareil spécifique à distance
- Gestion OAuth Google Drive (M-3) — approbation Production, rafraîchissement proactif à 55 minutes, arrêt immédiat en cas d'invalid_grant, bannière in-app en cas de ré-authentification nécessaire
- Stabilité des appels LLM (M-2) — backoff exponentiel x3 pour les 429/5xx dans les pipelines d'auto-titre/résumé/mémoire
- Améliorations de l'intégrité de la synchronisation (série SYNC-D) — hachage Merkle BLAKE3, résolution de la duplication drive_file_id, Lance Pull préserve les vecteurs locaux uniquement (merge basé sur source_file), historique des Push suivi jusqu'à 50 entrées
- Barre "langue + copie" des blocs de code (L-10) — appliquée au chat et à l'éditeur de notes, prend en charge l'indentation Tab
Corrigé
- Définition en double des hooks NSIS (hooks.nsh)
Ajouté
- Synchronisation entièrement repensée (SYNC-REDESIGN) — R/W permanent sur chaque appareil, suppression du WriterLocker, Union Merge, unification via oplog.jsonl, UX à 5 états (Synced/Syncing/Offline/Error/NotConnected)
- Pipeline de paiement complet (D-15-D) — intégration de l'API de licence Lemon Squeezy, Grace Period hors ligne de 7 jours, UI de l'onglet License, affichage du statut des appareils, coupon de mise à niveau Standard→Premium
- Plan gating Phase 2 (D-15-B) — limite de 50 documents en Free (triple vérification unitaire/batch/dossier), UpgradePromptModal, badges de plan
- Refonte du tutoriel d'onboarding (U-1) — Welcome → TutorialCarousel en 4 étapes, accès à l'app sans clé API, carte de guide en ligne + renvoi automatique quand la clé API est absente
- Système de design des boutons v1+v2 — 7 variantes × 7 tailles, système de couches Depth, ~80+ boutons unifiés sur ~38 fichiers
- Élément Upload Docs dans les menus contextuels Explorer/dossier
- UX cross-device pour documents distants sur 3 niveaux — bannière quand le fichier original est manquant, badge CloudOff dans l'Explorer, toast de conscience d'upload
- UX de synchronisation Graceful Shutdown à la fermeture de l'app — détection automatique des changements non poussés → overlay → push → sortie
- Menu contextuel des onglets — Close to the Left/Right, protection Pin
- UX de téléchargement runtime de bge-m3 (R-2) — affichage de la progression, empêche la dégradation silencieuse du RAG, chemins de cache normalisés
- Infrastructure de la landing page — déploiement statique R2, affichage dynamique de version, overlay de checkout, ToS + Refund Policy en 9 langues
- Normalisation de l'Auto Updater (UPDATER-FIX) — R2 unifié, détection dynamique du nom de fichier, garde-fou version tag/build
- Rafraîchissement du cache d'icônes Windows — appel de SHChangeNotify après mise à jour pour forcer le rechargement d'IconCache
- Bascule de plan DEV-only — bascule instantanée entre Free/Standard/Premium (non embarqué dans les builds de release)
Corrigé
- 4 bugs critiques de synchronisation (SYNC-HOTFIX) — blocage du Push quand le Pull échoue, gestion des échecs de parsing de fetch_remote_state, protection de la première synchronisation avec Pull-only
- Synchronisation d'images (SYNC-IMG-FIX) — Pull manqué + protection contre la suppression immutable
- last_seen_at des appareils non mis à jour + mauvaise étiquette "Synced" au démarrage de l'app
- Auto Sync s'exécutant au démarrage quand désactivé
- Bug de création d'instance d'appareil en double (D-15-D-FIX2)
- Récupération de Cargo.toml / package.json corrompus
- Prise de contrôle de l'UI par les toasts d'erreur (limite visibleToasts, id fixe pour la déduplication)
- Cassure du responsive mobile sur la landing
Interne
- Supabase Edge Functions — API de Checkout dynamique, gestionnaire d'appareils, webhook LS → subscriptions
- Logique de retry de l'upload curl en CI
- URL de Checkout séparée en UUID distincts Standard/Premium
Interne
- Tags de release candidate pour pré-vérification (détection dynamique de fichiers dans le pipeline CI, etc.)
Ajouté
- Système d'agents (2C-2) — intégration au chat, relais du paramètre temperature par fournisseur, UI de gestion des presets, nettoyage i18n
- Abstraction de Transport MCP + Streamable HTTP — stabilité stdio + support des serveurs HTTP + migration du stockage SQLite + stockage des jetons d'auth via Keyring
- Sync Batch A — couche universelle de synchronisation de fichiers, dirty flag en temps réel
- Lot de fonctionnalités de chat — attachement PDF (natif pour 3 fournisseurs + fallback custom), enregistrement de mémo par sélection de plage, galerie d'images
- Améliorations de la recherche hiérarchique IA + améliorations de la recherche (FTS5 trigram, RRF 3-way, aperçu 2 colonnes, UI de filtres)
Modifié
- Application du design system GLASS
- Refonte UI/UX S1~S6 — gestionnaire de fenêtres (FloatingPanel + PanelCanvas), adoption de shadcn/ui, refonte de la TaskBar, panneau Explorer, mode de layout Docked
- Première passe de remplacement par Phosphor Icons
- Améliorations du fil d'Ariane / popover Tools
Corrigé
- Plusieurs patchs QA pour la recherche hiérarchique IA
- Validation de target_id du panneau doc, sauvegarde de message incomplète après annulation, indicateur d'activité de workspace, et plus
Ajouté
- Corbeille — soft delete + TrashView + restauration, empêche la perte de données par CASCADE
- Factory Reset — 8 catégories sélectionnables individuellement
Modifié
- Plusieurs améliorations UI, patchs QA
Corrigé
- Clippy manual_flatten, etc.
Corrigé
- Correction à la racine du 404 sur le téléchargement de release CI/CD — bascule vers GitLab Generic Packages Registry
- Correction à la racine du .nsis.zip non généré — ajout de createUpdaterArtifacts
- Build CI : diagnostics de clé de signature + vérification du zip updater
Corrigé
- Affichage de version, 3 problèmes de build de déploiement
Sécurité
- Amélioration de la gestion du PAT (Personal Access Token)
Ajouté
- Attachement d'images au chat — Ctrl+V / sélection de fichier / glisser-déposer, routage multimodal par fournisseur
- Sauvegarde de mémo par paire Q&R — inclusion automatique de la question, format blockquote
- Bascule de vue conversation/mémo dans la barre latérale — contrôle segmenté
- Aperçu étendu des chunks de documents — Split View, score de similarité, badge de référence
- Gestion avancée des modèles — tags Capabilities, réorganisation par DnD, tableau de bord des coûts, 9 fournisseurs presets
- Supabase Auth (Google/GitHub) complet — PKCE + callback localhost, rafraîchissement auto, UI de profil
Modifié
- Automatisation du RAG (2C-RAG-FIX) — useRag à true par défaut, delete-before-ingest, outil search_documents amélioré
- Suppression du jargon "chunks" au profit de termes intuitifs (2C-CHUNK-UX)
- Terminologie Workspace → Folder unifiée (i18n 5 langues)
- Système de couleurs basculé vers des tons froids + accent violet profond
- Tailles de police unifiées au standard de l'industrie
- Refactorisation du layout Sidebar/Settings (sans bordure, disposition en 3 colonnes)
- ChatHeader redessiné et fusionné avec le bas de la barre de saisie
Corrigé
- Refonte à la racine du pipeline d'images des notes (2C-IMG-FIX3) — race condition, atomicité, chemins relatifs, nettoyage de suppression
- Collision d'OAuth state (PKCE gère désormais la protection CSRF)
- 8 corrections de lints Clippy
Ajouté
- Éditeur de notes WYSIWYG Tiptap
- Synchronisation cross-device (Phase 2B) — backend Google Drive, Union Merge SQLite, UX Sync
- Contexte persistant (2B-3/4) — résumé automatique de conversation, extraction automatique de mémoire, forget_note, recherche sémantique
- Recherche sémantique de conversations (2B-5) — hybride FTS5 + LanceDB, modal de recherche redessinée
- Registre de modèles dynamique (2C-1) — enregistrement de fournisseurs personnalisés, récupération automatique de /v1/models
- Thème "Soft Depth" — système de variables CSS (--v-*), palette de couleurs, arbre de la barre latérale
- Barre d'onglets — onglets temporaires/épinglés, état d'expansion de la barre latérale déplacé vers Zustand
- Fonctionnalité de mise à jour manuelle
Modifié
- Nettoyage de l'UI de chat — bordures en dégradé, carte de bienvenue, blocs de code
- Repli des dossiers, conversation dans un nouveau workspace, panneau de notes, terminologie Sync
Corrigé
- Avertissement Clippy type_complexity
- Prévention de la pollution du cache CI
Ajouté
- Hiérarchie de workspaces (3 niveaux)
- CRUD de mémos + chiffrement AES-256-GCM
- Sélection de contexte par @mention — référencer directement des documents/mémos depuis la saisie
- Conversion conversation → mémo (📌 sauvegarder)
- Outils IA intégrés (recherche, consultation de document, etc.)
- Affichage temps réel des tokens/coûts (différenciation BYOK)
- Persistance des conversations (SQLite) + titre automatique + recherche FTS5 + données réelles dans la barre latérale + modal de recherche Ctrl+K
- Onboarding OOBE + UI de confiance de la clé API
- CI/CD GitLab + installateur NSIS + Auto Updater
Ajouté
- Première release alpha — MVP (Phase 1) terminée
- Chat multi-modèle (BYOK) — streaming Claude, GPT (code Gemini terminé)
- Base de données vectorielle locale — vectorisation et recherche de conversations/documents basée sur LanceDB
- Embedding local — exécution CPU de bge-m3, support multilingue (30~86 ms/chunk)
- RAG de base — upload TXT/MD/HTML/PDF/DOCX → chunking → embedding → recherche → réponse
- Intégration MCP de base — serveur stdio, orchestration de Tool Use pour 3 fournisseurs (Claude/GPT/Gemini), serveur filesystem (14 outils) testé en conditions réelles
- Layout 3 panneaux + cœur du chat (streaming + Markdown + ToolCall) + UI Settings/MCP/RAG + ModelSelector