- frontend/index.html : splash #boot-splash 100% inline (CSS+JS), scripts CDN en defer pour ne pas bloquer le premier paint
- frontend/js/app.js : signale le boot terminé via __OBSIGATE_BOOTED (try/finally)
- desktop/src/main.rs : met à jour le statut du splash avant la redirection vers le backend
- ci: stage backend/ + frontend/ sous desktop/ avant tauri build (resources backend/** et frontend/**) dans desktop-build.yml et build-linux.sh
- desktop/gen/schemas/windows-schema.json : régénéré (permissions store/updater)
- docs: README, README.fr, ROADMAP
- Both buttons call window.handleLogout (AuthManager.logout) or doLogoutFallback
- doLogoutFallback: XHR POST, hides #app, shows #login-screen, clears token
- No more localStorage.clear() or hard redirect — mimics showLoginScreen()
- Removed all conflicting JS event listeners
- Header #logout-btn: inline fetch+clear localStorage+redirect
- Settings #profile-logout: inline window.handleLogout or fetch fallback
- Removed all JS event listeners that were causing race conditions
- Zero dependency on ES module loading order
- profile-logout now handles logout directly via onclick attribute in HTML
- Calls window.handleLogout() (auth.js global) or direct fetch fallback
- Removed broken JS handler from config.js to avoid double execution
The SW was the root cause of all persistent French text issues.
Even after rebuild, browsers with a registered SW would serve
cached old files (viewer.js without data-i18n, old locale JSONs).
SW-killer runs before any module script:
1. Detects if SW is controlling the page
2. Unregisters all SW registrations
3. Clears all caches
4. Reloads the page once (sessionStorage flag to prevent loop)
Other fixes in this commit:
- auth.js: import setLocale statically (was dynamic import)
- auth.js: import loadVaults/loadTags from sidebar.js
- sw.js: add JS modules + locales to STATIC_ASSETS for versioning
- sw.js: CACHE_VERSION v4→v5
- 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
- Restored from 8db9f44 (pristine original)
- Added IDs only (cfg-recent, cfg-backend-settings, cfg-hidden-files, cfg-webhooks, cfg-partages-publics, cfg-tags, cfg-performance)
- TOC order matches original section order
- No section reordering (avoids DOM breakage)
- Extracted correct lines (2052-2098, skipping stray </section> from prev)
- All 13 sections verified present in order
- Webhooks/Partages have config-section help-section classes
- Webhooks and Public Shares now positioned between Hidden Files and Diagnostics
- Matches TOC order: Hidden → Webhooks → Shares → Diags → AI → Themes → Profile → About
- Restored from 8db9f44 (clean base)
- Added IDs to all subsections via unique HTML context
- TOC reordered: Search, Recent, Backend, Tags, Sync, Hidden, Webhooks, Shares, Diags, AI, Themes, Profile, About
- About section at original position (last), no moved sections
- Replaced config-nav ul with 14 cfg- links
- Removed duplicate id='help-nav-list' from config-nav ul
- Previous fix wrote to wrong ul (outside config-nav)
- Removed id='help-nav-list' from settings TOC ul (inside config-nav)
- Help TOC ul now has unique id, so click handlers work correctly
- Root cause: getElementById returned wrong ul (settings instead of help)
- Help TOC: 18 help-* links restored from git
- Settings TOC: 14 cfg-* links with correct section anchors
- Both TOCs now live in their respective nav containers
- Restored help-nav-list (User Guide TOC) from git history
- Settings TOC (config-nav) now has 14 sections in proper order
- Root cause: both TOCs shared help-nav-list class,
replacement targeted wrong ul in help modal
- Split merged <li> containing both cfg-about and cfg-themes
- Reordered: search, sync, diags, ai, themes, profile, about
- All 7 TOC links now match section IDs 1:1
- 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)
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)
- 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
- 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
- Filtres de chemin: changed to data-i18n-attr
- help close/hide/clear buttons: changed to data-i18n-attr
- aria-label spans: changed to data-i18n-attr
- This fixes the visible HTML tag leakage in the UI
- help-ai now at position 10 (between help-graphe and help-palette)
- help-personnalisation moved to position 17 (before help-astuces)
- All 18 sections now match TOC order
- 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
- 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)
- Zoom/Pan, Depth slider, Filter by tag, Filter by type
- Visual search, Navigation arrows, Nodes, Info panel, Export PNG
- Context menu
All → EN translations