feat: chat — saisie auto-agrandissante, accusé de réception ✓✓, vignette de tuile #192 (BUG-109)
This commit is contained in:
+38
-1
@@ -6,7 +6,7 @@ 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 à venir sont listés dans la section
|
||||
> [Unreleased](#unreleased). La dernière version livrée est **2.60.0**.
|
||||
> [Unreleased](#unreleased). La dernière version livrée est **2.61.0**.
|
||||
|
||||
---
|
||||
|
||||
@@ -14,6 +14,43 @@ et [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
---
|
||||
|
||||
## [2.61.0] — 2026-10-08
|
||||
|
||||
### Ajouté
|
||||
|
||||
- **#192 - Chat : boîte de saisie auto-agrandissante + accusé de réception**
|
||||
- **Saisie auto-agrandissante** : la boîte d'envoi (panneau document +
|
||||
sidebar) est un `textarea` dont la hauteur suit le contenu (plafond
|
||||
160 px puis défilement) — on relit son message entier avant l'envoi.
|
||||
`Entrée` envoie, `Maj+Entrée` saute une ligne, la hauteur repasse à une
|
||||
ligne après l'envoi.
|
||||
- **Accusé de réception** : chaque conversation stocke
|
||||
`{utilisateur: dernier_ts_de_lecture}` ; l'expéditeur voit **✓ envoyé**
|
||||
puis **✓✓ lu** sur ses propres messages (un message est lu dès qu'un
|
||||
*autre* participant ouvre la conversation). Le `GET` d'historique renvoie
|
||||
la carte de lecture, `POST /api/chat/read` la met à jour et la diffuse
|
||||
en SSE (`chat_read`) — les indicateurs basculent en direct.
|
||||
- **Notification** : quand un message passe à ✓✓, l'expéditeur reçoit le
|
||||
toast « {user} a lu votre message » (FR/EN) ; un message reçu pendant
|
||||
l'affichage du canal accuse réception aussitôt.
|
||||
- Verrou global sur le read-modify-write du store de chat (une lecture ne
|
||||
peut plus faire disparaître un message).
|
||||
- Tests : pytest `TestReadReceipts` (7) + JSDOM `filechat.test.mjs` +3
|
||||
(19).
|
||||
|
||||
### Corrigé
|
||||
|
||||
- **BUG-109 - Tuile de lien : l'image de la carte ne s'affichait jamais** —
|
||||
la CSP (`img-src 'self' data: blob:`) bloque toute `og:image` distante et
|
||||
les images relatives étaient résolues contre l'origine d'ObsiGate (404).
|
||||
La vignette est désormais téléversée à l'envoi dans `chat_uploads`
|
||||
(`/api/chat/attachment/<uuid>`, même origine, garde SSRF + plafond 2 Mo +
|
||||
allow-list d'extensions) ; échec du téléchargement → carte conservée sans
|
||||
vignette. Les cartes déjà publiées gardent leur ancien lien (elles
|
||||
étaient déjà muettes).
|
||||
|
||||
---
|
||||
|
||||
## [2.60.0] — 2026-10-08
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user