La Content-Security-Policy stricte bloquait le CDN jsdelivr, donc Alpine ne
se chargeait pas : menu profil toujours ouvert et app de respiration KO.
Alpine est desormais bundle par Vite (servi depuis 'self') → compatible CSP,
sans dependance externe.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Le formulaire 'fire-and-forget' devient un vrai systeme de suivi :
- table locale tickets (user <-> numero d'issue Gitea)
- liste 'Mes tickets' avec etat (En cours / Resolu) et jalon
- page de suivi : etat, labels, jalon, fil de discussion (commentaires)
- reponse depuis le web (ajoute un commentaire sur l'issue Gitea)
- controle d'acces : un utilisateur ne voit que ses propres tickets
- GiteaIssueService etendu (getIssue, getComments, addComment)
- remplace l'ancien SuggestionController ; 5 tests de bout en bout
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Formulaire de suggestions/signalements (utilisateur connecte) qui cree une
issue dans le depot Gitea via son API v1 :
- GiteaIssueService (appel API), SuggestionController (validation + creation)
- vue suggestions/create au style DSFR, lien dans la sidebar (@auth)
- config services.gitea + variables GITEA_URL/TOKEN/REPO
- tests de bout en bout (auth, validation, appel API mocke)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>