56 Commits
Author SHA1 Message Date
bruno ab795ec9e0 feat(mfa): #64 WebAuthn complet — enregistrement/clé/verify login + gestion clés dans Sécurité (backend+frontend+i18n+tests) 2026-09-07 23:55:35 -04:00
bruno 2d70be0ae2 feat(ui): badge version visible + FAB AI flottant
CI / lint (push) Successful in 37s
CI / security (push) Successful in 25s
CI / test (push) Successful in 48s
CI / build (push) Successful in 21s
CI / e2e (push) Successful in 6m4s
Desktop Build / build-windows (push) Canceled after 0s
Desktop Build / build-linux (push) Canceled after 0s
2026-09-07 14:37:37 -04:00
bruno 5350738c22 feat(bookslm): bouton toggle cacher/afficher la sidebar dans le header
CI / lint (push) Successful in 37s
CI / security (push) Successful in 24s
CI / test (push) Successful in 49s
CI / build (push) Successful in 22s
CI / e2e (push) Successful in 6m16s
Desktop Build / build-windows (push) Canceled after 0s
Desktop Build / build-linux (push) Canceled after 0s
Même mécanisme que le sidebar de navigation gauche :
- Bouton .bookslm-btn-toggle dans le header (icône panel-right-close/open)
- Toggle la classe .hidden sur le panel, persiste dans localStorage
- État restauré au prochain open()
- Le panel reste monté (pas de teardown), juste slid off-screen
- CSS : .bookslm-panel.open.hidden → translateX(100%)
- CSS : .bookslm-btn-toggle suit le pattern .sidebar-toggle-btn

i18n : bookslm.toggle_sidebar ajouté (fr + en)
Import safeCreateIcons ajouté pour rafraîchir l'icône Lucide au toggle.

Vérifié :
- pytest : 504 passed (zéro régression)
- ruff : All checks passed
- frontend unit : 7 passed
- validate-imports : 30 modules / 204 exports
- pane-manager JSDOM : 9/9
2026-09-07 13:59:00 -04:00
bruno 7ff9b854b6 fix(admin,ai): redirect admin.html + modèles fallback + picker provider/modèle par requête
CI / lint (push) Successful in 41s
CI / security (push) Successful in 28s
CI / test (push) Successful in 48s
CI / build (push) Successful in 22s
CI / e2e (push) Successful in 6m5s
Desktop Build / build-windows (push) Canceled after 0s
Desktop Build / build-linux (push) Canceled after 0s
Trois bugs corrigés + une amélioration demandée :

1. **fix(admin): /admin.html redirigeait toujours vers /**
   - admin.js _gateAdmin() lisait /api/auth/status qui ne contient PAS le rôle user
   - Remplacé par /api/auth/me (retourne username, role, vaults)
   - Le code distingue maintenant le cas 'auth désactivé' (admin anonyme) du
     cas 'auth requise non admin' (affiche écran forbidden)

2. **fix(ai): les modèles Nvidia/Xiaomi ne se chargeaient pas dans les dropdowns**
   - Xiaomi : l'endpoint public /v1/models est instable, échec réseau fréquent
   - Toutes les erreurs réseau/d'API renvoyaient models=[] → dropdown vide
   - Ajout d'un fallback curé : _FALLBACK_MODELS dict avec 4-8 modèles populaires
     par provider, TOUJOURS retourné si la clé manque OU si l'API distante échoue
   - Le frontend voit désormais 'fallback' vs 'live' comme hint pour l'utilisateur
   - Gemini parsing : strip du préfixe 'models/' retourné par l'API Gemini
   - 7 nouveaux tests pytest pour _FALLBACK_MODELS + endpoint /api/config/ai-models

3. **feat(ai): picker provider/model dans la toolbar AI + BooksLM**
   - Plusieurs providers peuvent maintenant être activés simultanément
   - Sélection provider+model par section (Forge, BooksLM, etc.) via dropdown
   - État persisté en localStorage (le choix suit l'utilisateur entre sections)
   - Chaque appel AI passe maintenant {provider, model} au backend
   - ai.js : aiAction() lit le picker et l'injecte dans le body
   - bookslm.js : envoie provider+model à /api/ai/bookslm/chat
   - ai_routes.py + bookslm_routes.py : AIRequest et BooksLMChatRequest
     acceptent provider+model, avec save/restore du modèle original
     pour ne pas affecter les autres requêtes concurrentes
   - 7 nouvelles clés i18n (ai.provider, ai.model, ai.model_loading, etc.)
   - 1 nouveau test bookslm vérifie que le schema accepte provider+model
   - validate-imports.mjs : fix faux positif sur 'export { X as Y }'

Vérifié :
- pytest : 502 passed, 5 skipped (494 baseline + 7 AI models + 1 BooksLM)
- frontend unit : 7 passed
- validate-imports : 30 modules / 204 exports / 0 erreur
- pane-manager JSDOM : 9/9
- ruff check backend/ : All checks passed
2026-09-07 12:00:05 -04:00
bruno 46be24f6a3 feat(admin): frontend dashboard complet pour #71
CI / lint (push) Successful in 36s
CI / security (push) Successful in 23s
CI / test (push) Successful in 46s
CI / build (push) Successful in 22s
CI / e2e (push) Successful in 5m43s
Desktop Build / build-windows (push) Canceled after 0s
Desktop Build / build-linux (push) Canceled after 0s
Page admin standalone + widgets temps réel + CRUD users via AdminPanel existant.

- frontend/admin.html : page admin (header + 4 sections : stats temps réel,
  audit logs, backups, gestion utilisateurs + footer)
- frontend/js/admin.js : module ES avec init(), connectSSE(), loadStatsOnce(),
  loadAuditLogs(), loadBackupStats(), renderStatsWidget(), renderAuditTable(),
  renderBackups() + helpers (formatBytes, formatUptime, severityColor)
- frontend/locales/{fr,en}.json : 36 clés admin.* identiques (diff vérifié)
- frontend/js/auth.js : adminRow.onclick redirige vers /admin.html (au lieu de
  AdminPanel.show() qui reste fonctionnel)
- tests/frontend/unit.test.mjs : 3 nouveaux tests (admin.js existe + exports + parse)
- tests/test_auth_api.py : 2 nouveaux tests smoke (PATCH + DELETE /api/auth/admin/users)

Vérifié :
- pytest : 494 passed, 5 skipped (492 baseline + 2 nouveaux)
- frontend unit : 7 passed (4 baseline + 3 admin)
- validate-imports : 30 modules validated (29 + admin.js)
- pane-manager JSDOM : 9/9 passed
- ruff check backend/ : All checks passed
2026-09-07 11:14:46 -04:00
bruno 524e6da591 feat(bookslm): v2.2.0 - BooksLM chat AI contextuel par répertoire + 4 providers AI
CI / lint (push) Failing after 16s
CI / test (push) Skipped
CI / build (push) Skipped
CI / e2e (push) Skipped
CI / security (push) Successful in 21s
Desktop Build / build-windows (push) Canceled after 0s
Desktop Build / build-linux (push) Canceled after 0s
BooksLM (#76):
- Panneau chat slide-in 450px, clic-droit répertoire → 🧠 BooksLM
- Collecte récursive .md avec limites (200 fichiers, 200K chars)
- Cache SHA-256, redaction secrets, priorité README/index
- SSE streaming, badges sources cliquables, historique localStorage
- Commandes palette: BooksLM ouvrir/nouvelle conversation

Providers AI (4 nouveaux):
- NVIDIA (integrate.api.nvidia.com)
- QwenCloud (dashscope.aliyuncs.com)
- Xiaomi (api.xiaomi.com)
- Mistral (api.mistral.ai)
- Tous OpenAI-compatible, auto-listing modèles

Fix: dropdown config-select suit maintenant le thème (option bg/color)
27 tests BooksLM + 466 tests au total
2026-09-06 19:42:40 -04:00
bruno 83063d3a18 feat(auth): v2.1.0 - MFA TOTP avec QR code, recovery codes
CI / lint (push) Failing after 16s
CI / test (push) Skipped
CI / build (push) Skipped
CI / e2e (push) Skipped
CI / security (push) Successful in 21s
Desktop Build / build-windows (push) Canceled after 0s
Desktop Build / build-linux (push) Canceled after 0s
- backend/auth/mfa.py: TOTP (pyotp), recovery codes SHA-256
- Login flow: mfa_required → totp/verify → token (ou recovery)
- 6 nouveaux endpoints /api/auth/mfa/*
- Frontend: QR code setup, 6-digit auto-submit, recovery codes
- Settings: section Sécurité avec enable/disable MFA
- CSS: mfa-challenge, setup-card, recovery-list, badges
- i18n: 36 nouvelles clés EN/FR
- pyotp ajouté aux dépendances
- 30 tests (TOTP, recovery, API endpoints, login flow)
- 439 tests passent au total
2026-09-06 18:42:32 -04:00
bruno 6a10051d78 Remove emoji prefixes from search and add tabs label
CI / lint (push) Failing after 29s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 22s
2026-07-21 09:47:41 -04:00
bruno 790f97e501 Replace hardcoded French strings with i18n calls
CI / lint (push) Failing after 1m28s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 17s
Initialize i18n before auth so t() works when rendering
auth-dependent UI, and build the command palette lazily so
translations are loaded first. Bump service worker cache version.
2026-07-20 20:16:34 -04:00
bruno 98a6dd8a2c fix: i18n for dashboard widgets + shortcuts — no more hardcoded French
CI / lint (push) Failing after 23s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 12s
Replaced all hardcoded French text in dashboard.js with t() calls:
- 'Chargement...' → t('common.loading')
- 'Erreur:' → t('dashboard.error_prefix')
- Size units ('o','Ko','Mo','Go') → t('dashboard.size_*')
- 'fichier(s)' → t('dashboard.count_files*')
- '0 fichiers' → t('dashboard.zero_files')
- 'Conflits de synchronisation' → t('dashboard.conflicts_title')
- 'Garder l\'original'/'Garder le conflit' → t('dashboard.keep_*')
- 'Ajouter/Retirer des bookmarks' → t('dashboard.bookmark_*')
- 'à l\'instant'/'il y a X min/h/j' → t('dashboard.*_ago', {n})
- 'Afficher'/'Masquer' → t('dashboard.show/hide')
- 'Erreur de chargement' → t('dashboard.load_error')

Added 11 shortcut i18n keys + 22 dashboard i18n keys to en.json/fr.json.

Verified: '4 files' count, English shortcuts, English empty states.
2026-06-21 10:48:14 -04:00
bruno 8e0924a98c feat: i18n completion + cleanup — 1357 keys EN/FR aligned, production-ready
CI / lint (push) Failing after 24s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 13s
- Add 89 auto-generated i18n keys covering remaining hardcoded text
- Fix truncated EN value for auto.b114ed1c (server settings description)
- Add data-i18n attributes to menu items, help TOC entries, and form labels
- Bump CACHE_VERSION to v4 for new static assets
- Remove stale orphaned file from repo
- 285 tests passing, 0 failures
- All 509 HTML i18n refs have corresponding keys
- EN/FR perfectly aligned at 1357 keys each
2026-06-20 23:33:59 -04:00
bruno 1781dd5b34 fix: i18n for Recent History section in Settings
CI / lint (push) Failing after 20s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 10s
- Added data-i18n to section title, badge, labels, hints
- New keys: config.recent_history_count, config.recent_history_count_desc, config.max_backups_desc
- All 6 hardcoded FR strings now use t()
2026-06-19 23:09:36 -04:00
bruno 8444b18c2c fix: add missing FR keys config.section_backend and config.section_recent
CI / lint (push) Failing after 20s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 10s
2026-06-19 15:38:31 -04:00
bruno a2c6bd7f87 i18n: fix 4 [EN] placeholder descriptions + 7 French section headers
CI / lint (push) Failing after 22s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 13s
- Replaced [EN] placeholders with proper English descriptions
- Fixed section headers: Backend, Recent, Tags, Shares, Hidden, Perf, Webhooks
- 0 [EN] placeholders remaining in en.json
2026-06-19 13:34:13 -04:00
bruno a6fb27d508 feat: complete Settings TOC with all 14 sections
CI / lint (push) Failing after 24s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 10s
Added IDs to subsections: Performance, Tag Filtering, Backend Settings,
  Recent History, Webhooks, Public Shares, Hidden Files

TOC order (professional UX):
  1. Search → Performance → Tag Filtering → Backend → Recent History
  2. Sync → Hidden Files → Webhooks → Public Shares
  3. Diagnostics → AI → Themes → Profile → About

+7 new locale keys (1268 total)
2026-06-19 13:26:23 -04:00
bruno e5da0c2fc5 i18n: fix hidden files save button — hardcoded French in JS
CI / lint (push) Failing after 20s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 9s
- Button label: sidebar.tab_backups -> config.save
- JS: Sauvegarde... -> t('config.saving')
- JS: Sauvegarder -> t('config.save')
- JS: Erreur inconnue -> t('config.error_unknown')
- JS: Erreur: -> t('config.error_prefix')
- +3 new locale keys (1261 total)
2026-06-19 12:09:18 -04:00
bruno 70618aec1d i18n: Settings panel — 15 config descriptions + TOC fixes
CI / lint (push) Failing after 20s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 10s
- 15 config-hint spans now have data-i18n with English translations
- Removed dead cfg-backend TOC link (section doesn't exist)
- Fixed TOC order: cfg-themes moved before cfg-profile
- +17 new locale keys (1258 total)
2026-06-19 12:08:22 -04:00
bruno 199007f378 i18n: Settings panel — 16 French labels now i18n
CI / lint (push) Failing after 19s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 14s
Backend config labels: debounce, results/page, min query, search timeout,
  max backups, search workers, max content size, title boost, prefix expansions

Section headers: Backend, Reading & editing, Experience, Access

Misc: Open in new window, project repository, name placeholder

+17 new keys (1241 total)
2026-06-19 11:49:59 -04:00
bruno 2d445828cb fix: about page — Construit avec, Dernière livraison, Tests, Git labels
CI / lint (push) Failing after 23s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 10s
- h3 Construit avec -> data-i18n about.built_with
- Derniere livraison span -> data-i18n about.last_delivery
- Tests stat label -> data-i18n about.tests
- Git label -> data-i18n about.git
- Root cause: pattern mismatch (CONSTRUIT AVEC vs Construit avec)
2026-06-19 11:40:47 -04:00
bruno 7cdb9ca5a1 i18n: About page fully internationalized
CI / lint (push) Failing after 21s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 10s
HTML:
- tagline: data-i18n-html for line break support
- stats labels: about.files instead of palette.mode_files
- built_with, last_delivery, made_with: data-i18n spans

config.js:
- Months array: 12 French months -> t('month.*')
- Jokes array: 10 French jokes -> t('about.joke_*')
- Joke display: removed hardcoded «» wrappers

Locales:
- +34 new keys (months, jokes, about labels)
- 1231 keys in each locale
2026-06-19 11:08:11 -04:00
bruno 48023620e6 i18n: complete remaining roadmap tasks
CI / lint (push) Failing after 19s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 11s
JS files:
- ai.js: add t() import, replace 10 hardcoded French strings
- sync.js: add t() import, replace 20 hardcoded French strings (toasts, status labels, events, AI panel)
- graph.js: add t() import, replace 6 hardcoded French strings (tooltips, badges)

Locales:
- +36 new keys for ai.js, sync.js, graph.js
- 1206 keys in each locale file (perfectly synchronized)
- 0 French characters remaining in en.json

Documentation:
- README.fr.md created (French version)
- ROADMAP.md point #63 updated to 100% complete
2026-06-19 10:37:00 -04:00
bruno 72f55fe6ce i18n: fix 45 remaining French values in english locale
CI / lint (push) Failing after 19s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 9s
- Translated auto-generated help.desc_* keys with French text
- EN locale now clean of accented French for all user-facing text
- 44 remaining are keyboard shortcuts/symbols (safe)
2026-06-19 10:16:18 -04:00
bruno 8fe096d873 i18n: fix remaining French text in Palette section
CI / lint (push) Failing after 20s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 9s
- 2 unwrapped multiline descriptions: popout and navigate list
- 4 pre-existing keys with French EN values: shortcuts, tab toggle, type name
- All palette text now properly i18n with English translations
2026-06-19 10:08:22 -04:00
bruno 7ed303785c i18n: palette section — wrap French descriptions in data-i18n spans
CI / lint (push) Failing after 19s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 9s
- Opening keyboard shortcuts descriptions
- File mode: type file name, API search, press Enter
- Command mode: type > to see actions
- 7 new help.pal_* keys with English translations
2026-06-19 10:02:55 -04:00
bruno 23ff41c974 i18n: fix 40+ keys where EN locale still contained French text
CI / lint (push) Failing after 19s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 10s
- AI Editor: Étiter, Générer, Boîte, toolbar, edit menu, visual indicators
- Palette: file mode, command mode, navigation descriptions
- Webhooks: trigger descriptions, links
- Tips: use tags, hide sidebar, filter
- Root cause: str.lower() doesn't handle French accents
2026-06-19 09:28:54 -04:00
bruno 4287303575 i18n: English translations for all 72 remaining help section keys
CI / lint (push) Failing after 20s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 9s
- Palette, Shortcuts, Sharing, Webhooks, Backups, Security, Tips
- All auto-generated help.desc_* keys now have proper EN text
- 0 placeholder [EN] keys remaining
- en.json: 1162 keys, all translated
2026-06-19 08:58:03 -04:00
bruno 0b3464aa9e i18n: add data-i18n to all body text in help-ai through help-astuces
CI / lint (push) Failing after 20s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 10s
- 94 <p>, <li>, <h3>, <h4> elements now have data-i18n
- AI Editor section: 16 English translations provided
- 251 new keys total across all sections
- Remaining 80 placeholder keys in sharing/webhooks/backups/security/tips
- en.json: 1068 -> 1162, fr.json: 1068 -> 1162
2026-06-19 08:27:47 -04:00
bruno 7d3250306a i18n: help modal chrome + webhooks table + sidebar tab
CI / lint (push) Failing after 19s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 10s
- Help: Fermer l'aide, Masquer l'aide, Effacer -> data-i18n
- Sidebar: Filtres de chemin, Tous les vaults, Sauvegardes -> data-i18n
- Webhooks table: 6 event trigger cells -> data-i18n
- Added 12 new keys to en.json/fr.json
2026-06-19 08:14:33 -04:00
bruno 8230356d27 i18n: help-ai to help-astuces — 10 hardcoded texts now use data-i18n
CI / lint (push) Failing after 20s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 9s
- AI Editor: Complète, flashe en vert, Ton décontracté
- Webhooks: notify, POST HTTP, blog post, note événement
- Tips: Utilisez les tags, sidebar, filtrage
- Added 10 new keys to en.json/fr.json (1046 -> 1056)
2026-06-19 08:05:05 -04:00
bruno a15328093a i18n: fix dashboard tabs and shortcut descriptions
CI / lint (push) Failing after 18s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 10s
- Dashboard tabs: Statistiques/Récents/Partagés -> data-i18n spans
- Shortcut descriptions: added 10 help.shortcut_* keys to locales
- Tip text: added help.shortcut_tip key
- Added 3 dashboard.tab_* keys
- en.json/fr.json: 1044 -> 1059 keys
2026-06-18 23:15:01 -04:00
bruno 8db9f4447f i18n: fix hardcoded French in Statistics and Shortcuts panel
CI / lint (push) Failing after 18s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 10s
- dashboard.js: Fichiers/Tags uniques/Taille totale/Vaults -> t() calls
- config.js: Tags uniques/Vaults in About -> t() calls
- index.html: Raccourcis & Astuces -> data-i18n
- Added 5 new keys: dashboard.stats_*, help.shortcuts_title
2026-06-18 23:04:10 -04:00
bruno 659c227e6a i18n: complete audit — 55 new keys, all hardcoded strings converted to t()
CI / lint (push) Failing after 22s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 9s
- Added 4 missing keys: button.cancel, toast.dir_renamed, toast.file_deleted, toast.file_renamed
- Replaced 41 hardcoded showToast() strings with t() calls across 13 JS files
- Replaced 10 hardcoded textContent/title/innerHTML strings with t() calls
- Fixed theme labels: Sombre/Clair -> t('theme.dark')/t('theme.light')
- Fixed vault selector: Tous les vaults -> t('help.all_vaults')
- Both locale files: 983 -> 1032 keys, perfectly matched
- Bidirectional EN<->FR switching verified in browser
2026-06-18 22:49:19 -04:00
bruno 01dec0a0ec fix: data-i18n on 10 Graph View strong headings
CI / lint (push) Failing after 20s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 10s
- Zoom/Pan, Depth slider, Filter by tag, Filter by type
- Visual search, Navigation arrows, Nodes, Info panel, Export PNG
- Context menu
All → EN translations
2026-06-18 16:55:49 -04:00
bruno 2fdca72f02 fix: full i18n for Graph View help section
CI / lint (push) Failing after 19s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 10s
- Intro paragraph tagged + translated
- 8 LI descriptions wrapped in data-i18n spans
- 10 existing EN translations fixed
- Title: Vue Graphe → Graph View
- Barnes-Hut paragraph translated
2026-06-18 16:53:18 -04:00
bruno e1d3b22c51 fix: Automatic save heading in Advanced Editing
CI / lint (push) Failing after 19s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 10s
2026-06-18 16:52:10 -04:00
bruno b822196e66 fix: Files section title + ObsiGate indexes paragraph
CI / lint (push) Failing after 27s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 11s
- 📄 Fichiers → 📄 Files
- ObsiGate indexe et affiche → ObsiGate indexes and displays
2026-06-18 16:49:08 -04:00
bruno 88c7a5ead9 fix: full i18n for Files + Advanced Editing help sections
CI / test (push) Has been cancelled
CI / security (push) Has been cancelled
CI / build (push) Has been cancelled
CI / e2e (push) Has been cancelled
CI / lint (push) Has been cancelled
- 18 LI descriptions wrapped in data-i18n spans
- 1 paragraph tagged
- 3 auto key EN translations fixed
- 4 existing span EN translations fixed
- Sections: Markdown rendering, file actions, CodeMirror, AI toolbar
2026-06-18 16:45:58 -04:00
bruno 557cea719d fix: help modal title → ObsiGate User Guide
CI / lint (push) Failing after 18s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 10s
2026-06-18 16:42:06 -04:00
bruno cbe51a2849 fix: Search section title → Search
CI / lint (push) Failing after 19s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 10s
2026-06-18 16:41:17 -04:00
bruno 2f88c22fda fix: full i18n for Tags help section
CI / lint (push) Failing after 21s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 10s
- Tag cloud intro + all 4 bullet descriptions
- Inline vs frontmatter: intro + Frontmatter/Inline/Fusion descriptions
- Template filtering: intro + Patterns/Regex/AddRemove descriptions
- 12 fixes total, all EN translations provided
2026-06-18 16:40:37 -04:00
bruno 29b93c933e fix: Tab Mgmt intro + 6 FR descriptions in Tab/Search sections
CI / lint (push) Failing after 19s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 10s
- Tab: intro paragraph + Ctrl+Shift+Tab → Previous tab
- Search: History, Colors, Tag facets, Sort by date all → EN
2026-06-18 16:38:55 -04:00
bruno 306951837c fix: missing EN translations for Icons + Clear in Navigation
CI / lint (push) Failing after 18s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 10s
2026-06-18 16:30:51 -04:00
bruno 6653c7965a fix: raw i18n keys + truncated paragraphs in Navigation section
CI / lint (push) Failing after 19s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 10s
- Added missing help.desc_filter_usage + help.desc_vault_context keys
- Fixed truncated auto paragraphs (full text now in locale)
- All truncated paragraphs restored to complete text
2026-06-18 16:30:28 -04:00
bruno b587147c81 fix: i18n help introduction hero — badges + stat labels
CI / lint (push) Failing after 19s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 12s
- 5 feature tag badges: data-i18n on span.help-badge
- 3 stat labels: Experience, Search → English
- Access label fixed with dedicated key
- All EN translations provided
2026-06-18 16:19:35 -04:00
bruno 866b3008cc fix: full i18n for Tab Management + Search help sections
CI / lint (push) Failing after 19s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 9s
- 5 EN translations fixed for tab feature descriptions
- 16 Search section LI descriptions + paragraphs wrapped in data-i18n
- Search operators, autocomplete, filter chips, facets all translated
- Examples and combined example paragraphs tagged
2026-06-18 16:16:27 -04:00
bruno 57a7eb480d fix: full i18n for Navigation + Tabs help sections
CI / lint (push) Failing after 18s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 10s
- 15 LI descriptions wrapped in data-i18n spans
- 2 filter paragraphs tagged
- 3 tab navigation descriptions fixed
- All EN translations provided
- 914 locale keys
2026-06-18 16:12:02 -04:00
bruno 661989d85d fix: wrap 73 LI descriptions across all help sections with data-i18n
CI / lint (push) Failing after 19s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 10s
Pattern: <li><strong>TERM</strong> : French desc → wrapped in <span data-i18n>
Covers: Navigation, Tabs, Search, Tags, Files, Editing, Graph,
AI Editor, Palette, Shortcuts, Sharing, Webhooks, Backups,
Security, Customization, Tips sections
901 locale keys, 442 data-i18n attributes
2026-06-18 15:59:19 -04:00
bruno 62378a9352 fix: wrap all LI descriptions in help-interface with data-i18n spans
CI / lint (push) Failing after 23s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 10s
16 descriptions after <strong> now wrapped in <span data-i18n>
All have EN translations (Show/hide sidebar, Return to home, etc.)
Fixed broken hamburger span ('obile)' → '(mobile)')
2026-06-18 15:52:40 -04:00
bruno b4fefe483e fix: tag + translate all help body headings and paragraphs
CI / lint (push) Failing after 19s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 10s
- 36 new data-i18n tags on h2/h3/p in help modal body
- Fixed concatenated attributes (pdata-i18n → p data-i18n)
- All section headings translated (Palette, AI Editor, Search, etc.)
- 827 locale keys total, 354 data-i18n attributes
- Help guide title 'Guide utilisation ObsiGate' now translated
2026-06-18 15:43:54 -04:00
bruno 31d8c2603e fix: complete help guide i18n — all body text translated
CI / lint (push) Failing after 19s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 9s
- Help badges, stat labels, headings tagged
- All <li> descriptions after <strong> wrapped in data-i18n
- 30 text fragments in help body tagged + EN translations
- 791 locale keys total, 0 untranslated help keys
- Emojis preserved in nav items
2026-06-18 15:27:04 -04:00