Files
flowdeck/ROADMAP.md
T
bruno 9422753e8b
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
Add Notion databases and views guide
2026-07-20 15:48:11 -04:00

358 lines
16 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Roadmap FlowDeck — Notion Clone
> **Vision**: Copie conforme de l'UI/UX Notion, intégrée à Gitea/GitHub.
> **MVP en production** : v4.0.0 — authentification locale/OAuth, pages blocs, sidebar, library, share/publish, intégrations.
> **Branche principale** : `main` (production) · `develop` (intégration) · `feat/*` (features).
## 🏗️ Stratégie de branches
```
main ──●────────────●────── production (tags vX.Y.Z)
\ /
develop ●──●──●──●────── intégration continue
\ \ \
feat/xxx ● ● ●──── feature branches
```
- **`main`** : code en production, déploiement Docker automatique
- **`develop`** : branche d'intégration, merges des `feat/*`
- **`feat/<nom>`** : une branche par feature/fix, PR → code review → merge dans `develop`
- **Tags** `vX.Y.Z` sur `main` pour chaque release
**Workflow** :
```bash
git checkout -b feat/mon-truc develop
# ... coder, commit, push ...
# Créer une PR feat/mon-truc → develop sur Gitea
# Après review + CI verte → merge
# Pour release: PR develop → main + tag vX.Y.Z
```
**Règles** :
- Ne jamais commiter directement sur `main`
- Une branche = une feature / un fix
- Tests passent avant merge (CI Gitea Actions)
- Commit + push après chaque modification significative
---
## Completed
### v0.2.0 ✅ — Base
Dashboard + Board Kanban + Gitea sync + Notes + Docker
### v0.3.0 ✅ — Auth
OAuth2 Gitea, token par utilisateur, CSRF, rate limiting, webhooks
### v0.4.0 ✅ — UI Notion
Layout 3 zones (sidebar 240px + topbar 44px), dark mode, CSS 31KB, Alpine.js
### v0.5.0 ✅ — Kanban
Colonnes, groupes, cartes enrichies, drag&drop, modale détail, checklists, commentaires
### v0.6.0 ✅ — Table View
6 colonnes triables, groupes rétractables
### v0.7.0 ✅ — Filtres & Tri
Filtres cumulables AND, status dropdown, sort multi-critères
### v0.8.0 ✅ — Vues Spéciales
Status Overview (donut SVG), Team Load (barres), Detailed Board
### v0.9.0 ✅ — Backend
Propriétés custom, AI keywords, sync API, 12 tables DB
### v1.0.0 ✅ — Production
- [x] FastAPI lifespan (deprecation fix)
- [x] 28 tests — 5 vues, filtres, tris, APIs, CSRF, CORS, DB
- [x] CI/CD Gitea Actions (`.gitea/workflows/ci.yml`)
- [x] CHANGELOG.md, ARCHITECTURE.md à jour
- [x] Version 1.0.0 partout (main.py, api.py, health)
- [x] Tag git v1.0.0
### v1.1.0 ✅ — Pages & Sidebar
- [x] Pages Markdown avec arbre imbriqué (parent_id, sort_order)
- [x] Block editor mode (content_format='blocks', JSON storage)
- [x] Soft delete → Trash → Restore → Permanent delete
- [x] Drag & drop réorganisation pages
- [x] Sidebar Notion-style avec sections Recents/Private/Shared
- [x] "+ New page" footer button
- [x] Workspace header avec avatar + chevron toggle
### v1.2.0 ✅ — Éditeur Notion
- [x] Slash menu (/) 15 commandes fonctionnelles
- [x] Navigation clavier (flèches, Enter, Escape)
- [x] Placeholders Notion-style (Heading 1/2/3/4, Toggle, Quote, Code)
- [x] Suppression outline blanc sur les blocs
- [x] Heading 4 support
- [x] Breadcrumbs contextuels (workspace > projet > page)
### v1.3.0 ✅ — Database Concept
- [x] Tables `collections`, `collection_pages`, `collection_views`
- [x] Rétrocompatibilité Gitea via `GiteaBoardCompat`
- [x] Router `/db` — API CRUD collections + pages (12 endpoints)
- [x] 34/34 tests passent
### v1.4.0 ✅ — Propriétés Avancées
- [x] Table `collection_properties` — 21 types Notion
- [x] Service `property_types.py` — validation, formatage, auto-values
- [x] 38/38 tests passent
### v1.5.0 ✅ — Relations & Rollups
- [x] Type `relation` — lien bidirectionnel entre collections
- [x] Type `rollup` — aggregation via relation (COUNT, SUM, AVG, etc.)
- [x] Type `formula` — moteur d'expressions (19 fonctions)
- [x] Formula engine + Rollup engine
- [x] 43/43 tests passent
### v1.6.0 ✅ — Vues Manquantes
- [x] Calendar, Gallery, List, Timeline, Table views
- [x] View tabs navigation
- [x] 49/49 tests passent
### v1.7.0 ✅ — Vues Améliorées
### v1.8.0 ✅ — Sub-items & Dépendances
- [x] View config API, Save view as
- [x] Sub-items (parent_id auto-référence)
- [x] Status aggregate, Dependencies (blocking constraint)
- [x] 56/56 tests passent
### v1.9.0 ✅ — My Tasks & Dashboard Unifié
- [x] Vue `/my-tasks` — agrège pages assignées à l'utilisateur
- [x] Groupement par collection, filtres globaux
- [x] 60/60 tests passent
### v2.0.0 ✅ — Éditeur Complet & Multi-Utilisateurs
- [x] Workspaces, Comments, Page History, Favorites
- [x] Database Templates, Page Templates, CSV Import/Export
- [x] Public Sharing
- [x] 67/67 tests passent
### v2.1.0 ✅ — Workspace Local & Arborescence
### v2.2.0 ✅ — Tags & Recherche Avancée
### v2.3.0 ✅ — Multi-Vues Workspace & Preview Panel
### v2.4.0 ✅ — Tags Personnalisés par Utilisateur
### v2.5.0 ✅ — Administration Avancée
### v2.6.0 ✅ — My Account & Auth Locale
### v2.7.0 ✅ — Intégration Gitea Phase 1
### v2.7.1 ✅ — Private Pages Gitea
### v2.8.0 ✅ — Gitea Phase 2
- [x] Créer fichiers dans le repo (New file UI + API PUT)
- [x] Upload fichiers binaires (POST /upload, drag-drop)
- [x] Syntax highlighting via Prism.js CDN
- [x] Labels Gitea → tags FlowDeck (POST /sync-labels, 16 labels importés)
- [x] Historique commits par fichier (GET /commits?path=)
### v2.9.0 ✅ — GitHub OAuth Provider
- [x] GitHubProvider dans `app/auth/providers.py`
- [x] GitHubAdapter dans `app/services/github_adapter.py`
- [x] Config GitHub dans `.env.example`
### v3.0.0 ✅ — UX Professionnelle
- [x] Multi-sélection (checkboxes + Shift/Ctrl-click dans le sidebar)
- [x] Raccourcis clavier (Ctrl+N, F2, Delete, Escape, Ctrl+S)
- [x] Inline rename (double-clic → champ inline)
- [x] Loading skeletons (animations pulse dans workspaces + file viewer)
- [x] Grid/card view (mode grille/vignettes)
- [x] Table sorting (tri par colonnes)
- [x] Sélecteur de vue: Tree, List, Details, Title, Content (5 modes)
- [x] Preview Panel latéral (contenu, métadonnées, tags, actions)
- [x] Tri par date (Oldest/Newest)
### v4.0.0 ✅ — Accounts, Integrations & Sharing (MVP)
- [x] `auth_method` sur users (local/gitea/github)
- [x] Badge OAuth dans sidebar
- [x] Settings page avec Connect/Disconnect Gitea + GitHub
- [x] Sidebar rules (Private = distant seulement, Trash local-only)
- [x] Library page avec tabs + filtres source (All/Local/Gitea/GitHub)
- [x] Modale Share (2 tabs: Share + Publish)
- [x] Page publique `/p/<slug>` (no auth, rendu HTML)
- [x] Table `page_shares`, colonnes `is_published`, `is_shared`, `share_mode`
- [x] Table `recents` — tracking automatique
- [x] Édition unifiée local/distant (même UI, bouton Commit pour Gitea)
- [x] 133 tests passent
---
## 🔜 Prochaines versions
### v4.0.1 — Onboarding & Polish ✅ (2026-07-18)
> **Objectif** : rendre l'app utilisable dès la première visite, sans friction. **COMPLETED**.
- [x] **Landing page `/` pour visiteurs non-auth** — template `landing.html`, design Notion dark
- [x] **Page `/auth/register` GET** — formulaire d'inscription dédié (tab register actif)
- [x] **Redirection `/` intelligente** — non-auth → landing, auth sans Gitea → local workspace, auth+Gitea → dashboard
- [x] **Empty states** — déjà présents dans local workspace (« Welcome to your Workspace »)
- [x] **Page 404 stylisée** — thème Notion sombre, JSON pour `/api/*`, HTML pour le reste
- [x] **Unifier les routes API** — `/api/pages` GET/POST → 307 redirect vers `/board/api/pages`
- [x] **Page Settings** — lien déjà présent dans le menu utilisateur (Settings → `/accounts/settings`)
### v4.0.2 — Qualité & Robustesse ✅ (2026-07-18)
> **Objectif** : zéro crash, zéro regression, DX impeccable.
- [x] **Gestion d'erreurs** — try/catch dans create_page, message user-friendly (500 JSON)
- [x] **Validation inputs** — login/register déjà validés, titre vide → "Untitled"
- [x] **Rate limiting** — 100 req/min/IP déjà en place, testé OK
- [x] **Session expiry UX** — redirect avec ?expired=1, bannière sur la page login
- [ ] **CSRF token refresh** — après expiration session (à faire)
- [x] **Mobile responsive** — sidebar slide-in, modales centrées, landing adaptative
- [x] **Tests de non-régression** — +10 tests (landing, register, 404, validation, duplicate, expiry)
- [x] **143 tests passent**
---
### v4.1.0 — Content Blocks enrichis (Notion Parity Tier 2)
> **Objectif** : parité d'édition avec Notion.
- [ ] **Callout blocks** — boîtes colorées (info, warning, tip, success)
- [ ] **Table of contents** — auto-généré depuis les headings
- [ ] **Math equations** — LaTeX / KaTeX inline + block
- [ ] **Toggle lists** — contenu expandable/collapsible (déjà partiel)
- [ ] **Multi-colonnes** — layout flexible (2, 3 colonnes)
### v4.2.0 — Export
- [ ] **Export Markdown** — avec images et sous-pages (déjà partiel dans editor)
- [ ] **Export PDF** — mise en page fidèle, table des matières
- [ ] **Export HTML** — site statique standalone
### v4.3.0 — Collaboration
- [ ] **Inline comments** — commentaires sur sélection de texte
- [ ] **@mentions** — notifier un utilisateur → page/commentaire
- [ ] **Email notifications** — changements, mentions
### v4.4.0 — Embeds & Rich Media
- [ ] **Embeds** — YouTube, Figma, Google Maps, Twitter, etc.
- [ ] **Image lightbox** — clic pour agrandir, navigation
- [ ] **Bookmark cards** — aperçu riche des liens (OG metadata)
### v4.5.0 — Kanban Adaptable
- [ ] Colonnes configurables par utilisateur
- [ ] Cartes configurables (choisir propriétés affichées)
- [ ] Couverture de carte (image, icône, couleur)
- [ ] WIP limits par colonne
### v4.6.0 — Calendar & Meetings
- [ ] Vue Calendrier drag & drop
- [ ] Récurrence d'événements
- [ ] Template Meeting Notes
### v4.7.0 — FlowDeck Agent (Agent IA natif)
**Objectif :** Un agent IA intégré à FlowDeck, capable de planifier, rechercher et **agir** directement sur les workspaces — collections, pages, propriétés, vues, issues Gitea. Inspiré de Notion Agent (2026).
**Documentation :**
[`docs/Flowdeck_Agent_integration.md`](docs/Flowdeck_Agent_integration.md) (702 lignes) ·
[`docs/Guide_Complet_Notion_Agent_2026.md`](docs/Guide_Complet_Notion_Agent_2026.md) (464 lignes)
#### Concept
Là où un assistant IA classique répond (`prompt → réponse`), FlowDeck Agent **réalise** :
`objectif → planification → collecte contexte → actions API → résultat`
| Notion AI | FlowDeck Agent |
|-----------|----------------|
| Répond, résume, réécrit | Planifie, recherche, **agit** |
| Bloc de texte | Crée collections, pages, propriétés, vues |
| Sans état | Historique conversation + snapshots rollback |
| Aucune action DB | Modifie le workspace via API FastAPI existantes |
#### Fonctionnalités clés
- [ ] **Interface conversationnelle** — panneau agent dans le sidebar (🤖 Agents) + popup chat
- [ ] **Boucle ReAct** — Raisonnement → Action → Observation → itération (max 12 tours)
- [ ] **Streaming SSE** — affichage temps réel du raisonnement et des actions
- [ ] **10+ outils actionnables** — search, read/write collections/pages, views, properties, Gitea sync
- [ ] **Permissions** — même ACL que l'utilisateur (`PermissionManager`), audit log + rollback
- [ ] **Contexte automatique** — workspace actif, pages mentionnées, fichiers uploadés
- [ ] **Custom agents** — instructions, modèle, outils, scope par agent
- [ ] **Déclencheurs** — planifiés, webhooks, événements workspace
- [ ] **Skills réutilisables** — templates d'instructions + outils (ex: "Rédiger rapport hebdo")
- [ ] **Multi-LLM** — GPT, Claude, Gemini, modèles locaux (Ollama)
#### Architecture (nouveaux composants)
```
app/
├── routers/agent.py — /api/agent/* (run, conversations, tools)
├── services/agent_engine.py — Orchestrateur ReAct + boucle tool calls
├── services/llm_client.py — Abstraction multi-fournisseur LLM
├── services/tool_registry.py — 10+ outils wrappant les API existantes
├── services/context_builder.py — Collecte contexte workspace
└── templates/
├── agent_panel.html — Panneau conversation Alpine.js
└── agent_message.html — Fragment message (streaming)
```
#### Nouvelles tables
| Table | Rôle |
|-------|------|
| `agents` | Config agent (nom, instructions, modèle, tools scope) |
| `agent_conversations` | Sessions (titre, agent, workspace, statut) |
| `agent_messages` | Messages (role, content, tool_calls, artifacts) |
| `agent_actions` | Journal d'audit (tool, args, result, undo_snapshot) |
| `agent_skills` | Skills réutilisables (nom, prompt template, outils) |
| `agent_triggers` | Déclencheurs (cron, webhook, event, agent cible) |
#### Cas d'usage FlowDeck
- **Créer un CRM complet** — agent crée collection, propriétés, vues, exemples
- **Résumer les notes de réunion** — lit les pages, synthétise, crée une page résumé
- **Générer des OKR** — crée la database OKR avec relations et vues
- **Analyser un repo Gitea** — lit les issues, crée un dashboard de suivi
- **Rédiger un rapport hebdomadaire** — agrège les pages modifiées, génère le rapport
#### Plan de migration (5 phases)
1. **Phase 1 — Core Agent** : AgentEngine + LLMClient + 3 outils (search, read, create) + SSE streaming
2. **Phase 2 — UI** : agent_panel.html, historique conversations, sélecteur de modèle
3. **Phase 3 — Outils avancés** : 7 outils supplémentaires (views, properties, Gitea, uploads)
4. **Phase 4 — Autonomie** : custom agents, skills, déclencheurs planifiés
5. **Phase 5 — Plateforme** : API publique agent → intégrations tierces, marketplace skills
#### Limitations (v1)
- Pas de modification concurrente (lock optimiste DB)
- Pas d'appels API externes non-FlowDeck (sandbox strict)
- Budget tokens max par conversation (500k tokens)
- Timeout 5 minutes par run
### v4.8.0 — Command Palette & Recherche
- [ ] **Command palette** — Ctrl+K / Ctrl+P recherche universelle
- [ ] **Quick actions** — navigation, création, commandes
### v4.9.0 — Automations
- [ ] **Database automations** — if-this-then-that
- [ ] **Buttons** — cliquables déclenchant actions
### v4.10.0 — Database Avancée
- [ ] Inline databases dans n'importe quelle page
- [ ] Templates de database (Project tracker, CRM…)
- [ ] Validation des propriétés (required, unique, min/max)
---
## v5.0.0 — Pro (futur)
- [ ] **PWA** — Progressive Web App, offline support
- [ ] **SSO/SAML** — enterprise authentication
- [ ] **Granular permissions** — page-level, property-level access control
- [ ] **Web Clipper** — extension navigateur
- [ ] **API publique** — REST API + webhooks documentés
- [ ] **Realtime editing** — WebSocket, curseurs multi-utilisateurs
- [ ] **Synced blocks** — bloc synchronisé entre plusieurs pages
---
## Résumé des phases
```
v0.x–v1.x ✅ v2.x ✅ v3.0.0 ✅ v4.0.0 ✅ v4.0.1 ✅
Base + Kanban Éditeur + Gitea UX Pro MVP Onboarding
+ DB + Auth + Workspaces + Multi-select Accounts & Polish
+ UI Notion + Tags + Admin + Sharing COMPLETED
+ GitHub OAuth + Library
v4.0.2 ✅ v4.1.0 ⬜ v4.2.0 ⬜ v4.3.0 ⬜ v4.4–4.7 ⬜ v5.0.0 ⬜
Quality Blocks Export Collab Notion Pro
& Tests enrichis PDF/MD @mentions Parity (futur)
⬜ v4.7.0: FlowDeck Agent (IA native)
```
*Dernière mise à jour: 2026-07-20 — v4.7.0 FlowDeck Agent ajouté, ARCHITECTURE.md v4.0 synchronisé*