- Panneau peek: les bindings Alpine (x-data absent du conteneur) rendaient loovverture et le redimensionnement inoperants -> cblage direct sur le document. - Helper unique window.fdWirePeekResize (app.js): pointer capture, 300px-90vw, clic=fermer, largeur persiste fd_peek_width partagee entre les 4 peeks. - database-table-container margin:0 (tableau colle a gauche, marge Library). - .lib-container remonte dans app.css (trash etait pleine largeur), .db-index 1100px. - ObsiGate verifie sans code: creation .xlsx OK (openpyxl, #186).
- manifest + icones, service worker (precache, network-first, Background Sync) - module client FlowOffline (IndexedDB, queue, delta, flush) + hook editeur - endpoints /api/v2/sync/{delta,batch,status} + moteur de sync (conflits LWW/orpheline/copie offline) - migrations offline_sync_queue + sync_version (triggers) - UI offline (banner, badge sync, toasts, icone dirty) + doc /help - tests pytest (sync, migrations, SW, offline) + E2E Playwright; bump 6.0.0