feat(editeur): #93 edition inline — Editer/Forge remplacent la vue lecture
Le conteneur d'edition (#editor-container, CodeMirror ou iframe Forge) est deplace dans la zone de contenu du document (#content-area ou pane active) au lieu de l'overlay plein ecran : le mode edition remplace la vue lecture. L'overlay reste monte (transparent, pointer-events: none) car le ruban d'edition mobile y est ancre ; il ne sert plus que de repli quand la cible n'est pas le document affiche. Garde-fou dans renderFile() pour liberer proprement la session (destroy CodeMirror/Yjs, retrait de l'iframe Forge) ; forge-close passe par closeEditor() ; cache d'onglet invalide au retour en lecture. Assistant IA : app_context.editing annonce le document en cours d'edition (frontend bookslm.js + backend bookslm.py), et chaque ecriture d'outil (edit_file, append_to_file, create_file, restore_backup) recharge le document affiche (obsigate:file-written) — tampon CodeMirror remplace avec auto-save neutralisee, parent-reload pour l'iframe Forge, re-rendu de la vue lecture sinon. Tests : tests/frontend/editor-inline.test.mjs (19), tests/test_bookslm.py::TestGeneralPrompt (3 nouveaux). Fiche : docs/features/editeur-inline.md.
This commit is contained in:
@@ -78,6 +78,28 @@ et [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
Tests : `tests/frontend/ai.test.mjs` (82), `tests/test_bookslm.py::TestToolEventSources` (4),
|
||||
`tests/test_web_tools.py` (10).
|
||||
|
||||
### Modifié
|
||||
|
||||
- **#93 Édition inline — « Editer » et « Forge » remplacent la vue lecture** : le conteneur
|
||||
d'édition (`#editor-container`, CodeMirror ou iframe Forge) est déplacé **dans la zone de
|
||||
contenu du document** (`#content-area`, ou le panneau actif en vue fractionnée) au lieu
|
||||
d'être affiché dans l'overlay plein écran : le mode édition **remplace** le document en mode
|
||||
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
|
||||
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`,
|
||||
`create_file`, `restore_backup`) recharge le document affiché depuis le disque
|
||||
(`obsigate:file-written`) : le tampon de l'éditeur est rafraîchi au lieu d'écraser la
|
||||
modification de l'assistant par son auto-sauvegarde, et l'iframe Forge reçoit
|
||||
`parent-reload`. Aucun identifiant DOM n'a changé (autosave, collab Yjs, barre IA, aperçu
|
||||
Mermaid, Forge intacts). Fiche : [docs/features/editeur-inline.md](./docs/features/editeur-inline.md).
|
||||
Tests : `tests/frontend/editor-inline.test.mjs` (19), `tests/test_bookslm.py::TestGeneralPrompt` (3 nouveaux).
|
||||
|
||||
### Corrigé
|
||||
|
||||
- **#91 — Bulle utilisateur trop étroite & ancre d'envoi retardée** : le plafond de
|
||||
|
||||
Reference in New Issue
Block a user