fix(version): BUG-047 la version suit chaque livraison (source unique VERSION + bump SemVer automatique)
VERSION (racine) devient la source unique de verite MAJEUR.MINEUR.CORRECTIF, incrementee a chaque commit par le hook prepare-commit-msg (BREAKING -> majeur, feat -> mineur, sinon correctif) ; post-commit rattache les fichiers derives au commit et cree le tag vX.Y.Z, publie au push (push.followTags). Tous les derives sont resynchronises : package.json, desktop Tauri, README.md/README.fr.md, docs/ROADMAP.md, CHANGELOG.md. Backend, image Docker et desktop lisent le meme fichier (plus de numero code en dur). Outils : scripts/bump_version.py, scripts/install-hooks.sh. Tests : tests/test_version.py (46, garde-fou de coherence globale).
This commit is contained in:
+33
-5
@@ -5,13 +5,17 @@ Toutes les modifications notables d'ObsiGate sont documentées dans ce fichier.
|
||||
Format basé sur [Keep a Changelog](https://keepachangelog.com/fr/1.1.0/),
|
||||
et [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
> **En cours de développement** : les changements non publiés sont dans la section
|
||||
> [Unreleased](#unreleased). La dernière version publiée est **2.2.1**.
|
||||
> **En cours de développement** : les changements à venir sont listés dans la section
|
||||
> [Unreleased](#unreleased). La dernière version livrée est **2.3.0**.
|
||||
|
||||
---
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
---
|
||||
|
||||
## [2.3.0] — 2026-09-16
|
||||
|
||||
### Ajouté
|
||||
|
||||
- **#89 Drag & Drop complet de fichiers/dossiers & intégration Assistant IA** — solution
|
||||
@@ -87,9 +91,13 @@ et [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
lecture (bandeau, métadonnées, tags et contenu). L'overlay reste monté mais neutralisé
|
||||
(transparent, sans capture des clics, `z-index` conservé) car le ruban d'édition mobile y est
|
||||
ancré. Retour à la lecture par ✓ (sauvegarde), ✕, Échap ou l'ouverture d'un autre fichier —
|
||||
un garde-fou dans `renderFile()` libère proprement la session (destruction CodeMirror/Yjs,
|
||||
retrait de l'iframe Forge) ; l'overlay n'est conservé qu'en repli, quand la cible n'est pas le
|
||||
document affiché (ex. fichier créé depuis la palette). Conséquence directe : l'éditeur ne
|
||||
trois garde-fous libèrent proprement la session (destruction CodeMirror/Yjs, retrait de
|
||||
l'iframe Forge) avant qu'un rendu concurrent n'efface son DOM : `renderFile()`, l'activation
|
||||
d'onglet (`TabManager.activate`, `PaneTabManager.activate`, qui vident la zone avant de
|
||||
rendre) et l'événement SSE `index_updated` (un fichier modifié hors de l'app recharge le
|
||||
**tampon de l'éditeur** au lieu de re-rendre la vue lecture). L'overlay n'est conservé qu'en
|
||||
repli, quand la cible n'est pas le document affiché (ex. fichier créé depuis la palette).
|
||||
Conséquence directe : l'éditeur ne
|
||||
recouvre plus le panneau de l'assistant IA, qui peut donc mettre le document à jour **sous
|
||||
les yeux de l'utilisateur** — `app_context.editing` annonce au modèle le document en cours
|
||||
d'édition (et sa surface), et toute écriture d'outil (`edit_file`, `append_to_file`,
|
||||
@@ -101,6 +109,26 @@ et [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
Tests : `tests/frontend/editor-inline.test.mjs` (19), `tests/test_bookslm.py::TestGeneralPrompt` (3 nouveaux).
|
||||
|
||||
### Corrigé
|
||||
|
||||
- **BUG-047 — La version affichée ne suivait pas les livraisons** : la version
|
||||
provenait du **dernier tag git**, or aucun tag n'était créé lors des livraisons
|
||||
→ l'application restait bloquée sur `2.2.1` alors que 66 commits avaient été
|
||||
livrés (et les numéros codés en dur divergeaient : `package.json` 1.0.0,
|
||||
desktop Tauri 2.0.0, `Dockerfile` 2.2.1, README 1.7.0). Le fichier **`VERSION`
|
||||
(racine du dépôt) devient la source unique de vérité** (`MAJEUR.MINEUR.CORRECTIF`),
|
||||
incrémenté **automatiquement à chaque commit** par le hook versionné
|
||||
`.githooks/prepare-commit-msg` (`!:`/`BREAKING CHANGE` → MAJEUR, `feat` → MINEUR, sinon
|
||||
CORRECTIF) ; `.githooks/post-commit` crée le tag `vX.Y.Z` et `push.followTags`
|
||||
le publie à chaque push. Tous les dérivés sont resynchronisés dans le même
|
||||
commit : `package.json`, desktop Tauri (`tauri.conf.json`, `Cargo.toml`,
|
||||
`Cargo.lock`), `docs/ROADMAP.md`, `README.md`/`README.fr.md` et rotation de
|
||||
`CHANGELOG.md` (`[Unreleased]` → `[X.Y.Z] — date`). Le backend
|
||||
(`backend/version.py`), l'image Docker (`COPY VERSION`) et le desktop Tauri
|
||||
lisent ce même fichier : plus aucun numéro codé en dur dans le pipeline.
|
||||
Outils : `scripts/bump_version.py` (+ `scripts/bump_version.sh`),
|
||||
`scripts/install-hooks.sh`. Tests : `tests/test_version.py`, dont un garde-fou
|
||||
de cohérence globale (VERSION ↔ package.json ↔ desktop ↔ CHANGELOG ↔ ROADMAP ↔
|
||||
README). Vérifié : `curl /api/health` sur l'instance de test → `2.3.0`.
|
||||
- **BUG-045 — Double barre de défilement dans l'éditeur « Editer »** : sur les
|
||||
documents longs, `#editor-body` (qui gardait `overflow:auto`) et le scroller
|
||||
CodeMirror débordaient simultanément — la barre d'outils IA empilée sous un
|
||||
|
||||
Reference in New Issue
Block a user