- Changed q=* to q=** in autocomplete.js and offline.js - Backend requires min_query_length=2, single * was 1 char → 422 - Caused blank page on F5 refresh (non-hard-refresh)
- 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
- Forge: Tab indent, Ctrl+K, auto-focus, AI status, messages erreur FR - Forge: slash commands clean, cache-bust iframe, preview serveur - Forge: iframe 82vh, hauteur auto, table inline, sélecteur langage - PWA hors-ligne: IndexedDB (offline-db.js + offline.js) - Mermaid: thème dark complet, highlight.js preview - Backend: màj CSP, rename chain, bookmarks/history/shares - Roadmap: consolidation dans docs/ROADMAP.md (75 items) - Infra: docker-compose.podman.yml, suppression test-vault - .gitignore: exclusion odysseus/