fix: le bouton close de Settings ferme en un clic (v7.69.4)
Le bouton close de Settings devait être cliqué deux fois. Symptomatique depuis
le menu utilisateur ; depuis /workspaces ça marchait.
Cause : closeSettings() faisait history.back() PUIS window.location.reload()
après un délai FIXE de 100 ms. Le retour est une navigation asynchrone : quand
elle n'est pas terminée en 100 ms, le reload() retombe sur /settings et le
panneau « se ferme puis revient ». La profondeur d'historique diffère selon le
parcours — d'où le caractère intermittent et le fait que /workspaces
échappait au symptôme.
Correctif : location.replace() vers la page d'origine. Une seule navigation
déterministe — ni history.back(), ni popstate, ni rechargement différé. Aucun
chemin ne peut plus se terminer sans navigation. Effet secondaire assumé et
souhaitable : « Retour » ne rouvre plus Settings.
La branche window.opener ne fait plus de return inconditionnel : window.close()
échoue en silence quand l'onglet n'a pas été ouvert par du script, et l'ancien
code abandonnait alors sans navigation de repli — le bouton semblait mort.
CONTRÔLE NÉGATIF FAIT — le même spec a été exécuté contre deux builds :
ancien closeSettings() -> le parcours menu-utilisateur ÉCHOUE
(Received: "…/settings"), /workspaces passe ;
correctif -> les deux passent.
Le test verrouille aussi que le panneau position:fixed n'est plus peint
(.settings-overlay absent), qui est le symptôme exact rapporté.
Correction de diagnostic : le diagnostic posé en v7.69.3 (« Alpine ne lie pas
le composant x-data="settingsInit()" ») était FAUX — un artefact de mon banc
d'essai target="_blank", pas le parcours réel. La page étant réactive après le
premier clic, le handler s'exécutait bien. ROADMAP.md et CHANGELOG.md § v7.69.3
corrigés pour ne pas laisser une piste fausse en héritage.
pytest 1421 passed / 0 failed · ruff OK · OpenAPI 526 chemins / 7.69.4
e2e 18/18 verts sur l'instance déployée
This commit is contained in:
+39
-5
@@ -1,5 +1,41 @@
|
||||
# Changelog - FlowDeck
|
||||
|
||||
## v7.69.4 (2026-10-08) — Le close de Settings ferme vraiment
|
||||
|
||||
### Fixed
|
||||
|
||||
- **Le bouton close de Settings devait être cliqué deux fois** — symptomatique
|
||||
depuis le menu utilisateur ; depuis `/workspaces` ça marchait.
|
||||
- Cause : `closeSettings()` faisait `history.back()` **puis**
|
||||
`window.location.reload()` après un délai **fixe de 100 ms**. Le retour est
|
||||
une navigation asynchrone : quand elle n'est pas terminée en 100 ms, le
|
||||
`reload()` retombe sur `/settings` et le panneau « se ferme puis revient ».
|
||||
La profondeur d'historique diffère selon le parcours, d'où le caractère
|
||||
intermittant et le fait que `/workspaces` échappait au symptôme.
|
||||
- → `location.replace()` vers la page d'origine : **une seule navigation
|
||||
déterministe**, ni `history.back()`, ni `popstate`, ni rechargement différé.
|
||||
Plus aucun chemin ne peut se terminer sans bouger. Effet secondaire
|
||||
souhaitable : « Retour » ne rouvre plus Settings.
|
||||
- La branche `window.opener` ne fait plus de `return` inconditionnel :
|
||||
`window.close()` échoue en silence quand l'onglet n'a pas été ouvert par du
|
||||
script, et l'ancien code abandonnait alors sans navigation de repli.
|
||||
|
||||
### Tests
|
||||
|
||||
- `e2e/v7694_settings_close.spec.js` — **contrôle négatif fait** : le même
|
||||
spec a été exécuté contre deux builds.
|
||||
- ancien `closeSettings()` → le parcours menu-utilisateur **échoue**
|
||||
(`Received: "…/settings"`), `/workspaces` passe ;
|
||||
- correctif → **les deux passent**.
|
||||
Le test verrouille aussi que le panneau `position:fixed` n'est plus peint
|
||||
(`.settings-overlay` absent), qui est le symptôme exact rapporté.
|
||||
|
||||
### Correctifs de diagnostic
|
||||
|
||||
- Le diagnostic posé en v7.69.3 (« Alpine ne lie pas le composant ») était
|
||||
**faux** — un artefact de mon banc d'essai `target="_blank"`, pas le parcours
|
||||
réel. Corrigé dans `ROADMAP.md`.
|
||||
|
||||
## v7.69.3 (2026-10-08) — La section Aide est positionnée comme Settings
|
||||
|
||||
### Fixed
|
||||
@@ -21,11 +57,9 @@
|
||||
surcharge inline et l'identité de balise avec Settings ;
|
||||
`e2e/v7693_help_positioning.spec.js` compare les géométries calculées.
|
||||
|
||||
> **Non traité dans ce lot** : le double-clic sur le bouton close de Settings.
|
||||
> Cause racine identifiée mais correctif NON appliqué — Alpine ne lie pas le
|
||||
> composant `x-data="settingsInit()"` dans certains contextes, donc
|
||||
> `@click="closeSettings()"` est inerte au premier clic. Détail et prochaine
|
||||
> étape dans `ROADMAP.md § v7.69.3`.
|
||||
> **Corrigé en v7.69.4** : le double-clic sur le bouton close de Settings.
|
||||
> Le diagnostic porté ici (« Alpine ne lie pas le composant ») était **faux**,
|
||||
> voir `CHANGELOG.md § v7.69.4`.
|
||||
|
||||
## v7.69.2 (2026-10-08) — Le favicon est enfin le vrai logo
|
||||
|
||||
|
||||
Reference in New Issue
Block a user