Files
flowdeck/WORKLOAD.md
T
bruno aa88cf6665
FlowDeck CI / docker (push) Successful in 1m52s
FlowDeck CI / lint (push) Successful in 2m15s
FlowDeck CI / test (push) Successful in 15m22s
fix: anti-FOUC au chargement complet (x-cloak sur .app-layout) + nettoyage (v7.45.4)
- Symptôme rapporté : clic sur Home → rafale de menus/fenêtres + bande rouge
  « You are offline. Changes will sync when connection is restored. ».
- Constat : le masquage de v7.45.3 ne couvrait QUE les swaps partiels fdLoad.
  Un chargement COMPLET de document (F5, première visite, navigation servie par
  le service worker) peignait toute l'app tant qu'Alpine n'avait pas initialisé
  .app-layout : sidebar brute (sections ouvertes, menu utilisateur) + zone brute
  dont la bande hors ligne (aucun x-cloak dessus). Le symptôme Home n'est par
  ailleurs PAS rejouable en navigateur frais (nav, clic Home en ligne/hors
  ligne, plein chargement → 0 frame de contenu brut, 0 erreur console).
- Fix : x-cloak sur le nœud racine Alpine .app-layout (base.html) — sidebar +
  zone + bandeau masqués jusqu'au montage d'appState(), retrait par Alpine à
  l'init. Le probe asserte que l'attribut est bien retiré et que le node est
  visible en fin de parcours (garde-fou contre la page blanche).
- Suppression de la classe fd-navigating (posée à chaque fdLoad, aucune règle
  CSS dans le dépôt → code mort).
- e2e/probe_nav_perf.spec.js : 4 scénarios avec assertions (nav 5 pages, clic
  Home réel, Home hors ligne avec SW, plein chargement 3 pages) + capture
  screenshot auto si contenu brut + collecte console.

Gates : probe_nav_perf 4/4 · regression_partial_nav + regression_editor_mount
+ regression_logout_dnd + smoke = 6 passed (errs=0 sur 7 pages × 3 passages) ·
pytest 1094 passed · ruff OK · OpenAPI 7.45.4.
2026-10-03 00:54:28 -04:00

4.8 KiB
Raw Blame History

WORKLOAD — FlowDeck Notion Clone

Début: 2026-07-08 | Version: v7.45.4 (anti-FOUC : x-cloak sur .app-layout = plus de sidebar brute ni de bande rouge hors ligne au chargement complet, classe morte fd-navigating supprimée, probe étendu à 4 scénarios avec assertions) | Statut: EN COURS 🔄 Cible: parité Notion + intégration forge · Follow-ups v7.3 livrés: sidebar teamspaces, notif page.updated, charts number + dashboards multi-DB, unfurl forge, UI Settings → Audit — voir ROADMAP.md § v7.3.0

Avancement Global

Version Description Statut Tests
v0.2–v0.9 Base → Backend ✅ —
v1.0 Production (lifespan, CI/CD) ✅ 28/28
v1.1 Pages & Sidebar Notion ✅ —
v1.2 Éditeur Notion (slash menu, blocs) ✅ —
v1.3 Database Concept (collections) ✅ 34/34
v1.4 Propriétés Avancées (21 types) ✅ 38/38
v1.5 Relations, Rollups, Formulas ✅ 43/43
v1.6 Vues (Calendar, Gallery, List, Timeline) ✅ 49/49
v1.7 Vues Améliorées (view config, save-as) ✅ —
v1.8 Sub-items & Dépendances ✅ 56/56
v1.9 My Tasks Dashboard ✅ 60/60
v2.0 Multi-User + Editor Complete ✅ 67/67
v2.1 Public API, Webhooks, PWA ✅ 73/73
v2.2 Share/Publish, Favorites, Library ✅ 73/73
v3.0 Auth locale, Multi-Forge, Standalone ✅ —
v4.x–v5.x MVP → Agent IA, palette, automations, import, calendrier, wiki-links, synced blocks ✅ 523+
v6.0–v6.3 PWA offline, permissions granulaires, web clipper, API publique v2 ✅ 668+
v6.4.0 Realtime production (merge 3-voix, broadcast non bloquant) ✅ 749+
v6.5.0–v6.5.1 Synced blocks production (databases/vues) + webhooks v2 complets ✅ 749
v6.6.0 Agent phase 5 — API publique agent & skill marketplace ✅ 764+
v6.7.0 SSO / SAML + OIDC entreprise (Enterprise Auth) ✅ 802
v6.8.0 Sites multi-pages + Forms publics (doc) ✅ 20
v6.9.0 Recherche hybride + Ask AI RAG (doc) ✅ 24
v7.0.0 Automations multi-étapes + Workers lite (doc) ✅ 31
v7.1.0 Calendar sync + Meeting Notes (doc) ✅ 15
v7.2.0 SCIM + 2FA + Audit UI + gouvernance agents (doc) ✅ 52
v7.3.0 Teamspaces + Verified + Polish + follow-ups (doc) ✅ 72

Suites de régression : test_v72_enterprise.py (52) + test_v73_wiki_polish.py (72) = 124 verts · suite complète -n auto = 1016 passed. Follow-ups v7.3 livrés (voir § v7.3.0 du ROADMAP.md): sidebar par teamspace, charts number/multi-DB, notif page.updated aux followers, unfurl gitea:/github:, page Settings → Audit — + 21 casses SSO corrigées (install python3-saml/authlib).

Blocs Complétés

Bloc Features Statut
Bloc 1 Database Concept ✅ 6/6
Bloc 2 Propriétés Avancées ✅ 14/14
Bloc 3 Vues Manquantes ✅ 10/10
Bloc 4 Sub-items & Dépendances ✅ 7/7
Bloc 5 My Tasks ✅ 7/7
Bloc 6 Éditeur Complet ✅ 8/8
Bloc 7 Fonctions Transversales ✅

Total: 52/52 features (100%)

Architecture

Tables (21)

users, user_tokens, boards, cards, notes, col_mapping, checklists, checklist_items, project_properties, property_values, ai_keywords, pages, collections, collection_pages, collection_views, collection_properties, workspaces, workspace_members, comments, page_history, favorites, database_templates, page_templates, webhook_subscriptions

Routeurs (11)

dashboard, board, notes, api, auth, webhooks, collections, my_tasks, workspace, public_api + app-level routes

Services (6)

GiteaClient, FormulaEngine, RollupEngine, GiteaBoardCompat, property_types, webhook_outbound

Endpoints (85+)

CRUD collections/pages, 5 vues HTML, relations/rollups/formulas, sub-items/dependencies, my-tasks, workspaces, comments, history, favorites, templates, CSV import/export, public sharing, public API v1, webhooks, PWA manifest

Stack

  • Backend: Python 3.12 + FastAPI + httpx
  • Frontend: Jinja2 + HTMX + Alpine.js + SortableJS + CSS 31KB
  • BDD: SQLite WAL mode, 21 tables, foreign keys ON
  • Auth: OAuth2 Gitea + sessions signed (itsdangerous) + token API
  • Déploiement: Docker (python:3.12-slim), docker-compose, port 8080
  • Tests: pytest, 764+ tests, TestClient avec SQLite temporaire
  • CI/CD: Gitea Actions (.gitea/workflows/ci.yml)