fix: og:image et twitter:image en URL absolue (v7.69.1)
FlowDeck CI / lint (push) Successful in 1m34s
FlowDeck CI / test (push) Failing after 3h12m7s
FlowDeck CI / docker (push) Skipped

Les meta `og:image` / `twitter:image` ajoutés en v7.69.0 pointaient vers une
URL relative (`/static/img/logo-512.jpg`). Les crawlers — LinkedIn, Slack,
Discord, iMessage — ignorent une URL relative : la carte de partage de FlowDeck
était donc vide partout où un lien est collé.

Correction via le motif déjà en place dans `app/templating.py` : un global
Jinja `app_base_url()` construit à partir de `settings.app_base_url`, qui est
LA MÊME source que les liens de partage de pages (`collaboration.py:32`).
Si cette valeur est mal renseignée, ces liens l'étaient déjà — comportement
cohérent plutôt qu'une deuxième source de vérité à maintenir.

Lecture paresseuse de `settings` dans la fonction, à l'image de
`_plugin_enabled` : un import au chargement du module créerait un import
circulaire.

Rendu vérifié sur l'instance déployée :
  og:image" content="http://localhost:8080/static/img/logo-512.jpg

Tests : `test_og_image_url_is_absolute_via_base_url` vérifie le global ET
l'absence de la forme relative dans les deux templates. Piège évité au passage
— la forme absolue CONTIENT l'ancienne en sous-chaîne, donc l'assertion
négative porte sur `content="/static/img/` (le guillemet avant la barre) et
non sur l'URL complète.

pytest 1413 passed / 0 failed · ruff OK · OpenAPI 526 chemins / 7.69.1
e2e 14/14 verts sur l'instance redéployée
This commit is contained in:
2026-10-08 19:00:13 -04:00
parent 3d3b46b58b
commit 674baf6954
9 changed files with 44 additions and 9 deletions
+11
View File
@@ -1,5 +1,16 @@
# Changelog - FlowDeck
## v7.69.1 (2026-10-08) — `og:image` en URL absolue
### Fixed
- **`og:image` / `twitter:image` étaient des URL relatives** — les crawlers
(LinkedIn, Slack, Discord, iMessage…) ignorent une URL relative : la carte de
partage était vide. → global Jinja `app_base_url()` construit à partir de
`settings.app_base_url`, **la même source que les liens de partage de pages**
(`collaboration.py`) : si elle est mal renseignée, ces liens l'étaient déjà.
Lecture paresseuse, comme `_plugin_enabled`, pour éviter l'import circulaire.
## v7.69.0 (2026-10-08) — La sélection multi-blocs fonctionne enfin (+ identité visuelle)
### Fixed