Files
ObsiGate/docs/ROADMAP.md
T
bruno 011ec84f23 feat: outils IA de lecture et d'edition des classeurs existants #153
A6 : list_xlsx_sheets (noms + dimensions + truncated), xlsx_to_markdown
(table bornee 100x20 pour le contexte LLM), update_xlsx_cells et
append_xlsx_rows (WRITE + confirmation, via edit_xlsx_cells : verrou,
ecriture atomique, neutralisation des formules, 409 lossy). Les lignes
ajoutees sont coercees comme dans le viewer (A10). Labels de step
ai.step.xlsx_* FR/EN ; update_xlsx_cells/append_xlsx_rows branches sur
MUTATING_TOOLS et FILE_WRITE_TOOLS (refresh viewer via obsigate:file-written).

Tests : test_spreadsheet_tools.py 17 (risque, confirmation, persistance,
garde formule heritee, coercion) + contre-preuve (cells vide -> 2 echecs).
ruff 0, mypy 0, i18n parity, validate-imports.

đŸ€– Generated with Codebuff
Co-Authored-By: Codebuff <[email protected]>
2026-09-28 12:05:16 -04:00

26 KiB
Raw Permalink Blame History

ObsiGate — Roadmap

Version : 2.33.0 | DerniĂšre mise Ă  jour : 2026-09-28 Ce fichier ne contient que le travail Ă  venir (đŸ”” En cours + âšȘ Backlog) et un index compact vers les fonctionnalitĂ©s livrĂ©es.


Légende

IcĂŽne Signification
✅ TerminĂ©
đŸ”” En cours
âšȘ PrĂ©vu / Backlog
🔮 Impact Critique / Bloquant
🟡 Impact Utile / Attendu
🟱 Impact Nice-to-have / Confort

Convention : chaque item porte un ID stable #NN (clé de jointure entre roadmap, changelog et commits). Une fonctionnalité livrée sort de ce fichier et entre dans l'index « Complété » ci-dessous, avec son détail dans docs/features/ ou l'archive.


đŸ”” En cours

77. Application Desktop native — Tauri (Windows / Linux / macOS)

  • Effort : 8-12 jours | Impact : 🟡 | Framework : Tauri v2 (Rust + Webview)
  • Statut : livrĂ© (A→F) — projet Tauri, backend Python embarquĂ©, fonctionnalitĂ©s natives, jumplist vaults, banniĂšre 1er lancement, build CI, UX, 24 tests Rust. DĂ©tail complet : features/desktop-tauri.md
  • Reste Ă  faire :
    • Signature de l'updater Tauri (gratuit) : paire de clĂ©s gĂ©nĂ©rĂ©e, pubkey renseignĂ©e, createUpdaterArtifacts activĂ©, secrets CI cĂąblĂ©s
    • Manifeste latest.json gĂ©nĂ©rĂ© par scripts/updater_manifest.py (intĂ©grĂ© Ă  publish_release.py), endpoint updater pointĂ© sur main
    • Signature de code Windows : non retenue — dĂ©cision confirmĂ©e le 2026-09-26 : livraison non signĂ©e + documentation SmartScreen (« ExĂ©cuter quand mĂȘme »). Alternatives Ă©cartĂ©es sauf retour utilisateur : SignPath.io (OSS gratuit), Certum OSS, Azure Trusted Signing, certificat EV
    • ExĂ©cuter les 6 tests E2E manuels — protocole documentĂ© : DESKTOP_E2E_CHECKLIST.md

đŸ”” En cours — Visionneuse & Ă©dition Excel (P0/P1/P2)

153. Visionneuse & Ă©dition XLSX — complĂ©tude (fidĂ©litĂ©, recherche, IA, UX, formats)

  • Effort : 8-13 jours (P0 ✅ 2-3 j · P1 : 4-6 j · P2 : 2-4 j) | Impact : 🟡
  • Statut : đŸ”” en cours — P0 livrĂ© le 2026-09-27 (BUG-085 → BUG-088), A5/A10/A12 livrĂ©s le 2026-09-28 (avec BUG-089), A8/A9/A9bis livrĂ©s le 2026-09-28 (avec BUG-090), reste A6-A7 puis A13-A17
  • Analyse, risques et critĂšres d'acceptation : features/xlsx-viewer.md
  • Description : #152 (visionneuse XLSX, 2.27.0) lit et Ă©dite correctement la grille de valeurs d'un .xlsx, mais l'ensemble supportĂ© est Ă©troit : valeurs seulement (ni structure, ni styles en Ă©criture, ni formule recalculĂ©e), Ă©criture destructive d'une partie du classeur, tableurs invisibles Ă  la recherche et inutilisables par l'IA au-delĂ  de la crĂ©ation. Ce lot suit ces ajouts ; les cases ci-dessous sont le suivi de rĂ©fĂ©rence, la fiche feature porte le dĂ©tail.
  • Constat (points de dĂ©part) : MAX_ROWS = 500 / MAX_COLS = 40 sans indicateur (troncature silencieuse) · wb.save() non atomique et sans verrou (concurrence) · saisie =
 stockĂ©e comme formule par openpyxl (injection DDE) · content="" Ă  l'indexation (recherche TF-IDF et sĂ©mantique aveugles) · aucun outil IA de lecture/Ă©dition d'un classeur existant · aucun test frontend ni E2E sur le viewer.
  • PĂ©rimĂštre rĂ©el des pertes au round-trip (mesurĂ© sur openpyxl 3.1.5, 2026-09-27) : graphiques, images, dessins et tableaux croisĂ©s sont prĂ©servĂ©s ; sont perdus les valeurs calculĂ©es en cache, slicers/chronologies, contrĂŽles de formulaire, connexions/requĂȘtes, custom XML, signature numĂ©rique, commentaires enrichis et macros.
  • Sous-tĂąches :
    • P0 — garde-fous d'Ă©criture (🔮, 2-3 j) — 🟱 livrĂ©
      • A1 Alerte de fidĂ©litĂ© avant Ă©criture : inspect_workbook() → xlsx_lossy_features + bandeau FR/EN + 409 xlsx_lossy_content sans force (confirmation explicite puis reprise) — BUG-085
      • A2 Écriture atomique (wb.save(.tmp) + os.replace(), backup inchangĂ©) — BUG-086
      • A3 Verrou par fichier autour du read-modify-write (timeout 15 s + 409 conflict) — BUG-087
      • A4 Neutralisation de l'injection de formule (=/@ stockĂ©s en texte, opt-in allow_formula + bouton f(x)) — BUG-088
    • P1 — recherche, IA, UX (🟡, 4-6 j) — đŸ”” en cours
      • A5 Indexation du contenu des feuilles (noms de feuilles + 20 premiĂšres lignes, plafond 5 k caractĂšres) — les mots tapĂ©s dans une cellule rendent le fichier trouvable ; au passage BUG-089 (reindex manuel ne reconstruisait pas l'index inversĂ©)
      • A6 Outils IA update_xlsx_cells / append_xlsx_rows / xlsx_to_markdown / list_xlsx_sheets
      • A7 Navigation clavier + barre de formule + nom de cellule (Tab/EntrĂ©e/flĂšches, Maj+EntrĂ©e, copie de plage)
      • A8 thead sticky + bandeau « feuille tronquĂ©e » (lĂšve la troncature silencieuse) — BUG-090
      • A9 Chargement paresseux par feuille (GET 
/xlsx/sheet?offset&limit, dĂ©filement virtuel)
      • A10 Types & formats de saisie (nombre/texte, boolĂ©ens TRUE/FAUX, dates FR JJ/MM/AAAA jour-first)
      • A11 Tests frontend (tests/frontend/xlsx-viewer.test.mjs) + E2E (tests/e2e/xlsx-viewer.spec.js) au CI
      • A12 Valeur calculĂ©e affichĂ©e sous la formule (2ᔉ lecture data_only=True seulement si l'archive contient un <v>, info-bulle FR/EN)
    • P2 — Ă©tendu (🟱, 2-4 j) — âšȘ Ă  faire
      • A13 Tri / filtre / recherche dans la feuille + export CSV de la sĂ©lection
      • A14 CRUD de feuilles, lignes et colonnes (renommer, insĂ©rer, supprimer, dupliquer)
      • A15 Styles minimaux en Ă©criture + lecture fidĂšle (gras, fond, formats, fusions, volets figĂ©s)
      • A16 Formats additionnels (.xlsm avec keep_vba, .xls, .ods, .csv Ă©ditable)
      • A17 Vue « tableau de bord » (plages nommĂ©es, TCD, KPI par feuille, actions IA)
  • Convention de suivi : chaque sous-tĂąche dĂ©marre par son ID stable (#153-A<n> dans cette Roadmap) ; celles qui sont des dĂ©fauts sont aussi ouvertes comme BUG-NNN dans ISSUES_TODOLIST.md (A1→BUG-085, A2→BUG-086, A3→BUG-087, A4→BUG-088 ; A8 le sera Ă  son tour).

âšȘ Backlog — PrioritĂ© 4 (P4)

73. Synchronisation multi-appareils — Obsidian Sync compatible

  • Effort : 6-8 jours | Impact : 🟱
  • DĂ©cision 2026-09-26 : reportĂ© (P4) — axe prioritaire = dette & sĂ©curitĂ© (#85/#87) ; #73 hors chemin critique. Si rĂ©activĂ© : partir d'un MVP export/hash/LWW adossĂ© Ă  #59 (PWA offline) + #62 (collab Yjs/CRDT) plutĂŽt qu'un protocole parallĂšle.
  • Description : Synchronisation des vaults entre plusieurs instances d'ObsiGate via un protocole de synchronisation dĂ©centralisĂ© ou compatible Obsidian Sync. Alternative self-hosted Ă  Obsidian Sync.
  • Sous-tĂąches :
    • Protocole : Ă©valuation CRDT vs OT vs diff/patch pour fichiers markdown
    • Transport : WebSocket ou polling HTTPS avec compression
    • Merge strategy : LWW (Last Writer Wins) avec historique des deux versions
    • DĂ©tection de changements : hash SHA-256 par fichier, journal des modifications
    • UI : page « Synchronisation » avec statut par appareil, historique des syncs
    • Conflits : UI de rĂ©solution manuelle (diff cĂŽte Ă  cĂŽte entre version locale et distante)
    • Chiffrement : optionnel, chiffrement AES-256-GCM avant transmission
    • Pairing : Ă©change de clĂ© publique + code QR pour appairage des appareils

âšȘ Backlog — SĂ©curitĂ©, architecture & performance (P0/P1)

87. AmĂ©lioration continue — tests, CI/CD, revues de sĂ©curitĂ© (phase 4)

  • Effort : 3-5 jours | Impact : 🟡 | Zone : .gitea/workflows/, tests/
  • DĂ©cision 2026-09-26 : prioritaire (axe Dette & sĂ©curitĂ©).
  • Statut : đŸ”” en cours depuis 2026-09-26 — par tranches. T1 livrĂ©e (v2.28.1) : bandit bloquant (nosec justifiĂ©s B324/B404/B603/B607/B406, B105 exclu comme pyproject), npm audit bloquant (0 vulnĂ©rabilitĂ©), 5 suites frontend intĂ©grĂ©es au CI (upload, pretty, media-viewer, mfa-settings, config-ai-keys). pip-audit reste consultatif (montĂ©es starlette/weasyprint Ă  qualifier).
  • T6 livrĂ©e (v2.28.15) : dĂ©pendances qualifiĂ©es — mistune 3.3.3, python-multipart 0.0.31, weasyprint 70, mcp 1.28.1, fastapi 0.141.1 + starlette 1.7.0, setuptools 84 (cast mistune 3 sites) — suite 1359 passed, ruff/mypy 0, pip-audit bloquant, 0 vulnĂ©rabilitĂ© (seule exception documentĂ©e : PYSEC-2026-1325 ecdsa, sans correctif upstream, JWT HS256 uniquement).
  • T7 livrĂ©e (v2.28.15) : semgrep bloquant sur ruleset 100 % local semgrep-rules/ (8 rĂšgles, 0 finding, contrĂŽle nĂ©gatif OK) ; trivy Ă©cartĂ© (binaire + DB rĂ©seau, couche Python couverte).
  • T8 livrĂ©e (v2.28.15, fin BUG-034) : cookies Secure auto (true|false|auto, X-Forwarded-Proto sous TRUST_PROXY, warning affinĂ©, TRUST_PROXY=true en prod) ; CORSMiddleware same-origin explicite ; style-src 'unsafe-inline' conservĂ© assumĂ© (189 style= + 343 el.style, T5c ayant verrouillĂ© script-src).
  • Description : renforcer le pipeline (.gitea/workflows/ci.yml, desktop-build.yml) pour le rendre bloquant par dĂ©faut et accompagner les phases 1 → 3. Constat 2026-09-26 : job security non bloquant (bandit/pip-audit en || echo, ni semgrep ni trivy), E2E limitĂ© Ă  chromium-desktop, 5 suites frontend hors CI.
  • Sous-tĂąches :
    • Jobs CI sĂ©curitĂ© bloquants (bandit/semgrep/trivy, audits pip/npm) + tests E2E XSS (page de partage + lecteur markdown) — T4 livrĂ©e : tests/e2e/xss.spec.js (BUG-021/022, 2/2 vert) + scripts/e2e-server.ps1 (cycle de vie serveur E2E avec progression start|stop|status|logs) + validation locale projet chromium-desktop : 108/108 verts (obsigate 44, split 37, viewers 24, xss/header 3), mobiles ciblĂ©s 10/10
    • Tests de concurrence (users.json), fuzzing de timing regex, couverture des composants critiques ; intĂ©grer au CI les 5 suites frontend hors CI (upload, pretty, media-viewer, mfa-settings, config-ai-keys) — T2 livrĂ©e (v2.28.2) : tests/test_hardening_concurrency.py (users.json concurrent + budget temps regex) ; 5 suites au CI (T1)
    • Finir BUG-034 (migration CSP nonce, conversion des handlers inline), Secure cookies Ă  true par dĂ©faut, politique CORS same-origin explicite ; confirmer la rotation de la clĂ© DeepSeek (BUG-006, clĂ© dans l'historique Git) — T3 livrĂ©e (v2.28.3) (helper + avertissement + CORS attestĂ©) ; T5a livrĂ©e (v2.28.6) (16 handlers inline → listeners, CSP inchangĂ©e) ; T5b livrĂ©e : nonce frais par rĂ©ponse (backend/csp.py, script-src), injection dans les 6 pages HTML (dont nouvelle route /excalidraw-editor.html), unsafe-inline conservĂ© (inerte) ; T5c livrĂ©e (v2.28.13) (script-src sans unsafe-inline) ; T8 livrĂ©e (v2.28.15) (fin BUG-034 : Secure auto + CORS explicite ; style-src rĂ©siduel assumĂ© ; rotation DeepSeek BUG-006 toujours cĂŽtĂ© utilisateur)
    • Revue pĂ©riodique des dĂ©pendances ; documentation utilisateur FR/EN synchronisĂ©e ; contrĂŽle automatisĂ© de la conformitĂ© au DoD — T6/T9 livrĂ©es (v2.28.15) (pip-audit 0, npm audit 0, locales FR/EN 2213 clĂ©s paritĂ© testĂ©e test_i18n_parity.py, gardes test_version.py + test_ci_workflow.py)
    • Revue pĂ©riodique des dĂ©pendances ; documentation utilisateur FR/EN synchronisĂ©e ; contrĂŽle automatisĂ© de la conformitĂ© au DoD

✅ ComplĂ©tĂ© — index

Détail complet dans docs/archive/COMPLETED_v1-v2.md et docs/features/. Cette table est la seule source de navigation ; ne pas re-détailler les items livrés ici.

# Domaine / fonctionnalité Version Détails
152 Viewer XLSX — affichage multi-feuilles, Ă©dition des cellules, tĂ©lĂ©chargement 2.27.0 archive
BUG-047 Versionnage — source unique VERSION + bump SemVer automatique au commit (hooks + tag) 2.3.0 DEVELOPMENT_AND_RELEASES.md
90 Barre d'actions du document — regroupement fonctionnel + spacers 2.3.0 archive
89 Drag & drop complet de fichiers/dossiers & intégration Assistant IA 2.3.0 features/drag-and-drop-ai.md
1–8 Fondations (FastAPI, TF-IDF + stemming, watchdog, SPA, sĂ©curitĂ©, path traversal, gzip, PWA) 1.0.0→1.4.0 archive
9–20 UX & productivitĂ© (share, webhooks, dashboard, conflits, backlinks, redaction, backups, graphe, header, aperçu) 1.5.0→1.6.0 archive
21–22 Architecture (split app.js → 16 modules, validateur imports CI) 1.5.1 archive
23–25 CI/CD & qualitĂ© (Gitea Actions, Ruff/Mypy/Bandit/Pip-audit, pytest) 1.6.0 archive
26–29 AI Editor (toolbar, multi-provider, 16 endpoints, auto-save) 1.7.0 archive
30–39 FonctionnalitĂ©s avancĂ©es (export PDF, palette, mobile, drag & drop, filtres, indexation non-bloquante) 1.8.0→1.9.0 archive
40–46 Gestion des backups (diff, gestionnaire, purge, auto, rĂ©tention) 1.9.0 archive
47–57 Mermaid.js (22 templates, live preview, thĂšmes, zoom, plein Ă©cran, prĂ©-processeur Obsidian) 2.0.0 archive
58 Tests E2E Playwright (44 desktop + 12 mobile, CI) 2.0.0 archive
59 Mode hors-ligne PWA complet (IndexedDB, file de synchro, conflits) 2.0.0 archive
63 Internationalisation i18n FR/EN 2.0.0 archive
65 ThÚmes personnalisés (light/dark/high-contrast/sepia, import/export) 2.0.0 archive
66 Export multi-formats (HTML, MD bundle, ePub) 2.0.0 archive
71 Tableau de bord administrateur 2.0.0 archive
64 MFA (TOTP + WebAuthn + recovery codes) 2.1.0 archive
74 Support complet des documents PDF 2.1.0 features/pdf.md
75 Éditeur multi-panneaux (Split View) 2.1.0 features/split-view.md
61 Plugins systĂšme (sandbox Web Worker, hooks, 9 endpoints) 2.2.0 archive
67 Notifications web — Push API 2.2.0 archive
68 Health check enrichi 2.2.0 archive
72 API publique documentĂ©e — OpenAPI 3.1 2.2.0 archive
76 BooksLM — Console AI contextuelle par rĂ©pertoire 2.2.0 features/bookslm.md
78 Éditeur Excalidraw 2.2.0 features/excalidraw.md
62 Collaboration temps rĂ©el — Édition simultanĂ©e (Yjs/CRDT, WebSocket, awareness) 2.3.0 features/collaboration.md
79 Assistant IA — Outils (function calling) & serveur MCP 2.3.0 features/ai-tools-mcp.md
80 Assistant IA — Rendu Markdown, liens fichiers/paths & sessions 2.3.0 features/ai-assistant-ux.md
81 Assistant IA — Commandes (@, /), skills, images & capacitĂ©s des modĂšles 2.3.0 features/ai-assistant-commands.md
82 Assistant IA — Section « Fournisseur & modĂšle » compacte (recherche modĂšle + info capacitĂ©s, BUG-043) 2.3.0 features/ai-provider-picker.md
69 Éditeur mobile natif — Interface tactile optimisĂ©e 2.3.0 features/mobile-editor.md
70 Recherche sĂ©mantique — Embeddings vectoriels (hybride TF-IDF + RRF) 2.3.0 features/semantic-search.md
77 Application Desktop native — Tauri đŸ”” en cours features/desktop-tauri.md
84 Consolidation & sĂ©curitĂ© — revue statique 2026-09-13 (phase 1, BUG-021→034) 2.3.0 archive
83 Barre d'outils d'Ă©dition mobile — ruban style Obsidian Android 2.3.0 archive
88 Assistant IA — contexte applicatif (documents ouverts, rĂ©pertoire, recherche, fichiers rĂ©cents) & liens de fichiers fiables (BUG-041, BUG-042) 2.3.0 features/ai-app-context.md
91 Assistant IA — Zone de discussion façon Notion : post ancrĂ© en haut, fournisseur/modĂšle discret & barre d'actions 2.3.0 features/ai-assistant-conversation-ux.md
93 Édition inline — « Editer » et « Forge » remplacent la vue lecture (assistant IA qui met le document Ă  jour) 2.3.0 features/editeur-inline.md
94 Assistant IA — Bouton de soumission arrondi + icĂŽne renouvelĂ©e (arrow-up) 2.4.0 features/ai-assistant-history.md
95 Assistant IA — Historique permanent des conversations (persistance backend) 2.4.0 features/ai-assistant-history.md
96 Assistant IA — Accùs rapide à l'historique depuis la sidebar de navigation 2.4.0 features/ai-assistant-history.md
97 Assistant IA — Panneau « + » extensible (fichiers, Deep Research, contextes, skills
) 2.4.0 features/ai-assistant-history.md
98 Assistant IA — Filtre de recherche dans la sidebar « Historique IA » 2.5.0 features/ai-assistant-history.md
99 Sidebar — Filtrage des vues « RĂ©cents » et « Sauvegardes » 2.6.0 features/sidebar-filters.md
100 Assistant IA — Deep Research en pastille (au lieu du texte injectĂ©) 2.6.0 features/ai-assistant-history.md
101 Forge — Assistant IA partagĂ© (bouton AI Panel = assistant, fournisseur/modĂšle configurĂ©, autocomplĂ©tion) + plein Ă©cran Forge/Editer 2.8.0 features/forge-assistant.md
BUG-057 Assistant IA — bouton « Ajouter » fonctionnel dans l'Ă©diteur Forge (en plus d'« Editer ») 2.9.0 archive
102 Assistant IA — bouton « Ajouter la section » par bloc de code (insertion du bloc seul) 2.9.0 archive
92 Assistant IA — ÉcosystĂšme d'outils phase 2 (recherche Ă  clĂ©, cache/retry, Playwright, crawl, Gitea/GitHub, documents XLSX/DOCX/CSV/PDF) 2.10.0 features/ai-tools-roadmap.md
103 Configuration — clĂ©s utilisateur des sources connectĂ©es & recherche Ă  clĂ© (page Configurations, data/api_keys.json, prioritĂ© sur l'env) 2.11.0 features/ai-tools-roadmap.md
104 Configuration — Redesign UI de la section « ClĂ©s API IA » : recherche fournisseurs, carte dĂ©faut 2 colonnes + badges de capacitĂ©s, cartes dĂ©pliables, footer d'actions sticky 2.12.0 features/ai-keys-ui.md
105 Guide d'utilisation — audit de couverture complet, tĂ©lĂ©chargement Markdown/PDF, guide desktop Ă©largi, section Architecture (Mermaid) + BUG-067 2.13.0 features/guide-coverage-105.md
106 Assistant IA — Actions instantanĂ©es contextuelles, catalogue « Toutes les actions » & frontmatter complet 2.14.0 features/ai-quick-actions.md
107 Configuration — Gestion des clĂ©s API & MCP : crĂ©ation/rĂ©vocation de jetons longue durĂ©e (1 j, 1 mois, 6 mois, 1 an, sans fin), une seule clĂ© pour l'API REST et le serveur MCP, « derniĂšre utilisation », store data/api_tokens.json sans secret persistĂ© 2.15.0 features/api-mcp-tokens-107.md
86 Optimisation globale des performances (phase 3) — scan diffĂ©rentiel, excalidraw diffĂ©rĂ©, garde-fou replace (inverted index / PDF lazy / caps regex dĂ©jĂ  livrĂ©s via BUG-033/040/025) 2.16.0 features/perf-phase3-86.md
108 Support complet des images — arborescence, visionneuse (zoom/pan/navigation/miniatures), indexation nom+mĂ©tadonnĂ©es, media_types.py, filtre ext:, SVG sandbox 2.17.0 features/image-support.md
109 Support audio & vidĂ©o — lecteurs HTML5 intĂ©grĂ©s, streaming HTTP Range (/api/media), fallback codec/taille 2.18.0 features/media-viewers-109.md
110 Lecteur mĂ©dia persistant « Now Playing » — Ă©lĂ©ment partagĂ© tĂ©lĂ©portĂ© (inline ⇄ dock), Media Session, mini-vidĂ©o PiP, mobile, reprise 2.19.0 features/media-viewers-109.md
111 Visionneuse d'images — navigation fluide : image ajustĂ©e au cadre, navigation en place (cache annuaire + prĂ©chargement), pellicule persistante, flĂšches latĂ©rales au survol 2.20.0 features/image-navigation-111.md
112 En-tĂȘte allĂ©gĂ© & compte en sidebar — version dans le menu Options, retrait utilisateur/dĂ©connexion du header, section compte en bas de la sidebar, pellicule d'images dĂ©filable (molette + flĂšches) 2.21.0 features/header-user-sidebar-112.md
113 Configuration — ordre naturel des sections (Profil 1er, À propos dernier, TOC = page) & avatar utilisateur (import PNG/JPG/WEBP, persistance serveur, cercle sidebar) 2.22.0 features/settings-order-avatar-113.md
114 Configuration — refonte mobile-responsive (modale plein Ă©cran 100dvh, sommaire en drawer coulissant, cibles tactiles ≄ 44 px, inputs 16 px anti-zoom, sauvegarde sticky, MFA 1 colonne, purge i18n/HTML) 2.23.0 features/settings-mobile-114.md
BUG-078 Fichiers de code — coloration syntaxique restaurĂ©e (feuilles highlight.js basculĂ©es sur le mode de thĂšme et non la clĂ©) 2.25.0 features/viewer-toolbar-highlight-avatars.md
115 Viewer — barre d'outils de lecture Ă©pinglĂ©e au dĂ©filement 2.25.0 features/viewer-toolbar-highlight-avatars.md
117 Configuration — avatars prĂ©dĂ©finis dans le profil utilisateur (12 images) 2.25.0 features/viewer-toolbar-highlight-avatars.md
85 Refonte architecturale — dĂ©coupage du monolithe (14 routers, main.py 4 827 → ~750 lignes), stores JSON verrouillĂ©s, rate-limit SQLite optionnel 2.27.2→2.27.13 features/archi-refonte-85.md

📊 RĂ©sumĂ© des efforts

Priorité Items Effort total estimé
✅ ComplĂ©tĂ© #1 → #59, #61–72, #74–76, #78–86, #88–93, #94–100, #102–115, #117, #92 ~141 jours rĂ©alisĂ©s
đŸ”” Finitions #77 Desktop : 6 tests E2E manuels (protocole) — signature Windows non retenue (dĂ©cision 2026-09-26) ~0,5-1 jour
âšȘ P4 reportĂ© #73 Sync — reportĂ© (dĂ©cision 2026-09-26), hors chemin critique 6-8 jours si rĂ©activĂ©
âšȘ P0/P1 prioritaire #87 CI/CD (BUG-035 → BUG-040 corrigĂ©s, #86 livrĂ©) ~3-5 jours
âšȘ P0/P1/P2 backlog #153 Visionneuse & Ă©dition XLSX — complĂ©tude (P0 ✅ A1-A4 ; P1 ✅ A5, A8-A10, A12, A9bis — reste A6-A7 ; A13-A17 2-4 j) 2-4 jours restants
Total chemin critique #77 fin + #87 ~4-6 jours

Notes

  • DĂ©cisions 2026-09-26 : axe prioritaire = dette & sĂ©curitĂ© (#85/#87) ; #73 Sync reportĂ© (P4, hors chemin critique) ; desktop livrĂ© non signĂ© + doc SmartScreen.
  • Ajout 2026-09-27 : #153 ouvert Ă  la suite de l'audit de la visionneuse XLSX (limitations, risques de perte de donnĂ©es, pĂ©rimĂštre IA/recherche) — dĂ©tail et critĂšres dans features/xlsx-viewer.md.
  • ClĂŽture #85 (v2.27.13) : monolithe dĂ©coupĂ© (T1→T9), stores verrouillĂ©s + rate-limit SQLite (T10), fiche docs/features/archi-refonte-85.md.
  • Les items P3/P4 ne sont pas ordonnĂ©s par prioritĂ© interne — Ă  raffiner selon les retours utilisateurs.
  • L'effort inclut le dĂ©veloppement + tests unitaires + intĂ©gration CI, mais pas la documentation utilisateur.
  • Les items marquĂ©s 🟱 (nice-to-have) sont de bons candidats pour des contributions externes.
  • Maintenance de ce fichier : quand un item passe Ă  ✅, dĂ©placer son dĂ©tail vers docs/features/<slug>.md (grosse feature) ou docs/archive/COMPLETED_v1-v2.md (item court), ajouter une ligne dans l'index « ComplĂ©tĂ© », et consigner la version dans le CHANGELOG.