diff --git a/CHANGELOG.md b/CHANGELOG.md index c7abea9..11a74cd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,36 @@ # Changelog - FlowDeck +## v7.59.0 (2026-10-07) — Mobile : drawer réglable, side-nav settings, aide refondue + +### Fixed + +- **Scroll souris du drawer sidebar mobile** — `display:block` du breakpoint + ≤768px cassait le `flex:1` de `.sidebar-scroll` (hauteur = contenu, jamais + de zone scrollable). Remis en `display:flex;flex-direction:column`. +- **Rate limiter du routeur de test** — fenêtre remise à zéro à chaque login + : suite e2e via un seul login `beforeAll` + cookies `storageState`. + +### Changed + +- **Settings mobile : le menu devient une side-navigation gauche** ouverte + par un hamburger (`.settings-menu-btn`) avec backdrop, au lieu des onglets + horizontaux ; fermeture auto au choix de section. Squelette panneau + (overlay/panel/nav) extrait de `settings.html` vers + `/static/css/settings.css` partagé avec l'aide. +- **Page `/help` refondue au complet** — ancien monologue HTML inline de la + route remplacé par `app/templates/help.html` : même panneau 2 colonnes que + settings, nav latérale en 13 sections couvrant toute l'app (démarrer, + éditeur, bases & vues, tâches/dépendances, workspaces/forges, collaboration, + bibliothèque/recherche, agent IA & automations, API v2/webhooks/clipper, + PWA offline, comptes & SSO, raccourcis, tips) ; `static/js/help.js` + (`Alpine.data helpInit`). + +### Tests + +- Gate e2e `mobile_regression.spec.js` : 6/6 (drawer + wheel scroll + + side-nav settings + aide mobile/desktop) · `test_app.py` + + `test_pwa_offline.py` : 230/230. + ## v7.58.0 (2026-10-06) — Add plugins : catalogue on/off à effet réel (phase 8/8) ### Added diff --git a/VERSION b/VERSION index 70e2b22..5ce8bfd 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -7.58.0 +7.59.0 diff --git a/app/main.py b/app/main.py index 6dde682..a0f5413 100644 --- a/app/main.py +++ b/app/main.py @@ -186,7 +186,7 @@ async def lifespan(_app: FastAPI): app = FastAPI( title="FlowDeck", - version="7.58.0", + version="7.59.0", docs_url="/docs", redoc_url="/redoc", lifespan=lifespan, diff --git a/app/routers/dashboard/pages_html.py b/app/routers/dashboard/pages_html.py index f0b9526..3215b2d 100644 --- a/app/routers/dashboard/pages_html.py +++ b/app/routers/dashboard/pages_html.py @@ -251,209 +251,10 @@ def accounts_page(request: Request): @router.get("/help", response_class=HTMLResponse) def help_page(request: Request): - """Comprehensive help & documentation page.""" + """Help & documentation page — settings-style panel with side navigation.""" from app.templating import ENV - env = ENV sidebar = _sidebar_data(request, []) - # Render via a block-based template so content_html lands in {% block content %} - block_tpl = env.from_string( - '{% extends "base.html" %}{% block content %}{{ content_html|safe }}{% endblock %}' - ) - return HTMLResponse(block_tpl.render( - **sidebar, - request=request, - page_title="Help", - title_prefix="Help", - page_icon="❓", - content_html=""" -
Everything you need to know about your Notion-style workspace with Gitea & GitHub integration.
-FlowDeck is your private, self-hosted workspace. Create pages, organize projects, and integrate with your Git forge.
-Notion-style block editor with slash commands, markdown shortcuts, and rich formatting.
-Organize your work into separate workspaces. Each has its own pages and files.
-Connect your Gitea account to access repositories directly from FlowDeck.
-Share pages with collaborators or publish them to the web.
-/p/your-slugFind all your content in one place with powerful filtering.
-Install FlowDeck as an app and keep working without a connection.
-
-FlowDeck supports three authentication methods:
-Local Email + password — create an account on the login page.
-Gitea OAuth Login with your Gitea account. Your repos appear as workspaces.
-GitHub OAuth Login or link your GitHub account in Settings → Integrations.
-Tip: You can connect Gitea/GitHub to an existing local account — your identity stays as your local user.
-
-SSO Enterprise SSO (v6.7.0) — sign in with your organization account.
-For administrators: open Settings → Admin → SSO / Enterprise and pick a provider:
-• SAML 2.0 — paste the IdP Entity ID, SSO URL and signing certificate, then give the IdP this
-/auth/saml/metadata link (it contains the SP Entity ID, ACS URL and certificate).
-• OpenID Connect — paste the Issuer URL, Client ID and Client Secret (PKCE is used, scopes default to openid profile email).
-• Provisioning — accounts are created automatically on first login, groups from the IdP map to workspace roles,
-and SSO only disables local login (admins keep their local door). Every attempt is audited in
-Settings → Admin → SSO / Enterprise (login history).
-
-FlowDeck is a Progressive Web App: pages you visited stay available offline and your
-edits are saved locally, then synchronised when the connection returns.
-Install: open your browser menu and choose Install app (Chrome/Edge) or
-Add to Home Screen (Safari/iOS). FlowDeck then opens in its own window.
-Offline editing: while offline, the editor stores changes in the browser
-(IndexedDB) and shows an offline banner with the number of pending changes. A
-⟳ icon appears next to pages that have unsynced edits.
-Reconnection: the queue is replayed automatically (and via Background Sync).
-A spinner badge appears while syncing, followed by a confirmation toast.
-Conflicts: if a page changed on the server, the latest edit wins and a notice is
-shown. If a page was deleted server-side, your offline copy is recreated as an orphan
-page. If a page with the same title already exists, the offline copy is renamed
-“Title (copie offline)”.
-
-FlowDeck exposes a full REST API under /api/v2 for third-party integrations.
-Auth: create a token in Settings → API tokens, then send it as
-Authorization: Bearer <token>. Tokens carry scopes
-read, write or admin (a higher scope implies the lower ones).
-Features: CRUD on collections, pages, properties, views, comments, notifications,
-favorites, tags, sharing, sprints and templates; pagination (?limit=&offset= +
-X-Total-Count), filters (filter[prop]=value), sorting, full-text search
-(/api/v2/search), idempotency (Idempotency-Key) and RFC 7807 error bodies.
-Reference: interactive OpenAPI docs at /docs
-(also /redoc, docs/openapi-v2.json).
-
-• Toggle the sidebar with the « button in the top-left corner.
-• Switch between workspaces using the dropdown menu in the sidebar header.
-• The Private section appears when a remote workspace is active — files here stay local.
-• Hover over any sidebar item to see action buttons (favorite, share, delete).
-• Use Ctrl+Click or Shift+Click to multi-select items in the sidebar.
-
FlowDeck is your private, self-hosted Notion-style workspace — pages, databases, and Git-forge (Gitea / GitHub) integration in one app.
+/workspaces) to pick or create a workspace — local or connected to a forge.Notion-style block editor: every line is a block you can drag, convert, and nest.
+/ for the slash menu — headings, callouts, toggles, code, math (KaTeX), tables, images, embeds, ToC…# heading, - bullet, 1. numbered, > quote, [] todo, ``` code.Collections are databases with a JSON schema, independent of Gitea. 21 property types: title, text, number, select, multi-select, status, date, person, checkbox, url, email, phone, files, unique_id, relation, rollup, formula, and auto-properties.
+Organize work into separate workspaces, each with its own page tree, collections and members.
+/data)./p/your-slug)./library) — tabs for Recents, Favorites, Shared, Published, with filtering./trash) — soft-deleted pages, 30-day retention, restore or purge./api/v2/search./ gallery./api/v2: CRUD on collections, pages, properties, views, comments, notifications, favorites, tags, sharing, sprints, templates. Bearer tokens (Settings → API tokens) with scopes read/write/admin, pagination, filters, sorting, idempotency keys, RFC 7807 errors. Interactive docs at /docs./api/v2/agents/*: agents, conversations, synchronous JSON run, action journal with rollback, external trigger.FlowDeck is a Progressive Web App: pages you visited stay available offline and your edits are saved locally, then synchronised when the connection returns.
+
+ Local Email + password — create an account on the login page.
+ Gitea OAuth / GitHub OAuth — sign in with your forge; your repos become workspaces. You can link a forge to an existing local account — your identity stays local.
+ SSO Enterprise SSO — in Settings → Admin → SSO / Enterprise:
+
/auth/saml/metadata link.openid profile email).Sessions and API tokens are managed in Settings → Sessions / API tokens.
+