Restaure et termine le lot tableur resté non committé. Il n'existait que dans un `git stash` (24 fichiers suivis) et en fichiers non suivis (menus.js, formula.js, color-picker.js, tests, fiches) : la 2.53.3 livrée ne le contenait donc pas. Le stash, créé avant le commit BUG-108, n'a jamais été restauré. #180 Redimensionnement au curseur (en-tête de bord miroité + classe de repaint), grille thémée sur les 15 thèmes et les modes contraste élevé / sépia, menu Fichier au niveau des onglets, barre épinglée pleine largeur. #181 Modèle de saisie Google Sheets : sélection ≠ édition (caret masqué sans quitter contenteditable, double-clic / F2 / première frappe qui remplace, Entrée contextuelle, Échap qui restaure) + inventaire priorisé des écarts. #182 Désélection fiable (clic simple sans dépendre du focus), contours de plage non empilés (sélecteur de classes sans point), couleurs texte/fond sur une plage, clic droit qui préserve la sélection multiple. #183 Panneau de couleurs façon Google Sheets : palette 8 × 10, STANDARD, PERSONNALISÉ, coche selon la luminance, sortie `#rrggbb` (une valeur HSL était rejetée par normHex). #184 Peinture de format complète (toutes propriétés, source sans format = réinitialisation), sélection multi-lignes/colonnes depuis les marges, grille étendue : colonnes A → Z d'emblée, lignes ajoutées PAR BLOCS DE 100 au défilement jusqu'à 1000 — matérialiser 1000 lignes d'un coup = ~26 000 cellules câblées par feuille, ce qui épuisait le tas de la suite JSDOM ; index de cellules `ref → td`, court-circuits formule/styles, marqueur data-wired. #185 Barre de menus : les 10 menus Google Sheets (161 entrées, 125 câblées, 36 annoncées indisponibles), ruban façon Sheets, grille unie 1 px dérivée du thème. #186 « Créer un fichier » propose .xlsx et construit un vrai classeur OPC (openpyxl) au lieu d'une charge utile texte illisible. Corrections trouvées en restaurant et en exerçant le lot : - fuite mémoire : écouteur `click` anonyme posé sur #content-area à chaque rendu, jamais retiré — sa fermeture retenait la grille précédente en entier ; - sorties Markdown / HTML / Imprimer de la barre de menus inertes (`data-xlsx-export` jamais réparti, seul `data-xlsx-action` l'était) ; - collision de classe `.xlsx-structure-menu` entre la barre de menus et le menu Structure de la barre d'outils (toute requête tombait sur un nœud masqué) ; - curseur col/row-resize absent quand le pointeur est sur la table elle-même ; - l'export emportait les lignes et colonnes vides du quadrillage (CSV, Markdown, HTML, impression) ; - clic extérieur avalé par la grâce de 250 ms du menu contextuel (destinée au seul appui long tactile) ; - une entrée indisponible laissait la barre de menus ouverte. Tests : pytest 1595 passés / 2 ignorés ; ruff et mypy 0 erreur ; bandit 0 ; 33 suites frontend vertes (xlsx-viewer 163/163, xlsx-menus 19/19, xlsx-formula 14/14) ; E2E complet 132 passés / 12 ignorés ; E2E xlsx-viewer 19/19.
📚 Guides d'utilisation ObsiGate
Bienvenue dans le répertoire des guides utilisateur d'ObsiGate. Chaque guide est autonome, écrit en français et illustré d'exemples concrets (commandes, configuration, captures conceptuelles).
Vous découvrez ObsiGate ? Commencez par le Guide de prise en main. Une aide rapide est aussi intégrée directement dans l'application (menu Options → Guide d'utilisation, FR/EN, téléchargeable en Markdown et PDF).
🗂️ Sommaire des guides
| Guide | Public | Contenu |
|---|---|---|
| 🚀 Prise en main | Tous | Premier lancement, interface, navigation, vaults, raccourcis |
| 🔍 Recherche, PDF, Excel & Excalidraw | Tous | Syntaxe de requête, recherche sémantique, lecteurs PDF/Excel, diagrammes |
| 🤖 Assistant IA & Forge | Tous | Fournisseurs, éditeur IA, BooksLM, Forge, commandes @ / / |
| 📝 Édition & collaboration | Tous | Édition simultanée, curseurs distants, persistance |
| 📱 PWA & mode hors-ligne | Tous | Installation PWA, cache, file de synchronisation, notifications |
| 🔌 API REST | Développeurs | Authentification, clés API, endpoints, exemples curl, SSE |
| 🧩 Serveur MCP | Développeurs / IA | Brancher Claude Desktop, Cursor, Cline… sur vos vaults |
| 🔒 Authentification & sécurité | Admin | Utilisateurs, MFA, permissions par vault, bonnes pratiques |
| 🐳 Déploiement Docker | Admin / Ops | docker-compose, volumes, reverse proxy, mises à jour |
| 🖥️ Application desktop (Tauri) | Tous | Installation, premier lancement, build depuis les sources |
🧭 Par où commencer ?
- Je veux juste utiliser l'application → Prise en main
- Je veux sécuriser mon instance → Authentification & sécurité
- Je veux brancher une IA → Assistant IA & Forge puis MCP
- Je veux scripter/automatiser → API REST
- Je veux héberger sur un serveur → Déploiement Docker
📖 Documentation associée
| Type | Où |
|---|---|
| Vue d'ensemble produit | README.fr.md · README.md |
| Conception détaillée par fonctionnalité | docs/features/ |
| Standards de code | docs/CONTRIBUTING.md |
| Méthode de livraison (Definition of Done) | docs/DELIVERY_WORKFLOW.md |
| Roadmap / travail à venir | docs/ROADMAP.md |
| Historique des versions | CHANGELOG.md |
| API interactive (Swagger / ReDoc) | /docs · /redoc (instance ObsiGate) |
Convention : ce répertoire est la porte d'entrée utilisateur. Le comment (utilisation) vit ici ; le pourquoi (conception technique) vit dans
docs/features/. Ne jamais dupliquer le détail technique des fiches.