- Carte compositeur : en-tête + colonne d'arrivée, champ
pleine largeur, bouton primaire ; neutralise le
display:flex imposé par .board-toolbar aux formulaires.
- 'Ajouter une description' devient un <details> natif :
aucun JS requis, insensible au cache et aux erreurs de
scripts (le bouton 0.31.0 pouvait rester inerte).
- Assets du board versionnés (?v=APP_VERSION) contre les
mélanges de cache après redéploiement ; Ctrl+Entrée.
- Vérifié en Chromium réel sur le vrai board (captures
contrôlées) ; 261 tests verts.
- Tiroir : édition du titre et de la description (PATCH
forge, journal 'edited', EVENT_TYPES étendu), création
avec description dépliable.
- Pièces jointes Gitea de bout en bout : client
list/upload/delete/download (le téléchargement suit
browser_download_url — l'endpoint asset ne sert que du
JSON, attrapé au smoke réel), routes proxifiées avec
CSRF et plafond 25 Mio, UI liste/envoi/suppression ;
GitHub : supports_attachments=False, message propre.
- Clic carte en délégation d'événement : les écouteurs par
carte mouraient au premier rafraîchissement live.
- 261 tests verts (7 nouveaux, palier 21) ; cycle réel
complet validé sur une issue jetable du vrai Gitea
(création, édition, envoi, téléchargement, suppression).