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]>
26 KiB
26 KiB
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.
- Méthode de livraison à appliquer pour toute tùche : DELIVERY_WORKFLOW.md
- Historique des versions : CHANGELOG.md
- Détail des fonctionnalités livrées : docs/archive/COMPLETED_v1-v2.md
- Fiches détaillées par feature : docs/features/
- Bugs / TODO : ISSUES_TODOLIST.md
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 dansdocs/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,
pubkeyrenseignée,createUpdaterArtifactsactivé, secrets CI cùblés - Manifeste
latest.jsongĂ©nĂ©rĂ© parscripts/updater_manifest.py(intĂ©grĂ© Ăpublish_release.py), endpoint updater pointĂ© surmain - 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
- Signature de l'updater Tauri (gratuit) : paire de clés générée,
đ” 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 = 40sans 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 + 409xlsx_lossy_contentsansforce(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-inallow_formula+ boutonf(x)) â BUG-088
- A1 Alerte de fidélité avant écriture :
- 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
theadsticky + 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 FRJJ/MM/AAAAjour-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=Trueseulement 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 (
.xlsmaveckeep_vba,.xls,.ods,.csvéditable) - A17 Vue « tableau de bord » (plages nommées, TCD, KPI par feuille, actions IA)
- P0 â garde-fous d'Ă©criture (đŽ, 2-3 j) â đą livrĂ©
- 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 commeBUG-NNNdans 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 (
nosecjustifiĂ©s B324/B404/B603/B607/B406, B105 exclu commepyproject),npm auditbloquant (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 (
castmistune 3 sites) â suite 1359 passed, ruff/mypy 0,pip-auditbloquant, 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
Secureauto (true|false|auto,X-Forwarded-ProtosousTRUST_PROXY, warning affiné,TRUST_PROXY=trueen prod) ;CORSMiddlewaresame-origin explicite ;style-src 'unsafe-inline'conservé assumé (189style=+ 343el.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 : jobsecuritynon bloquant (bandit/pip-auditen|| 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 progressionstart|stop|status|logs) + validation locale projetchromium-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),
Securecookies Ătruepar 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-inlineconservĂ© (inerte) ; T5c livrĂ©e (v2.28.13) (script-srcsansunsafe-inline) ; T8 livrĂ©e (v2.28.15) (fin BUG-034 : Secure auto + CORS explicite ;style-srcrĂ©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-audit0,npm audit0, locales FR/EN 2213 clés parité testéetest_i18n_parity.py, gardestest_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
- Jobs CI sĂ©curitĂ© bloquants (bandit/semgrep/trivy, audits pip/npm) + tests E2E XSS (page de partage + lecteur markdown) â T4 livrĂ©e :
â 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) oudocs/archive/COMPLETED_v1-v2.md(item court), ajouter une ligne dans l'index « Complété », et consigner la version dans le CHANGELOG.