feat(v2): Feedback-Widget mit Audit-Trail + Screenshot + direkter Gitea-Anbindung
- Component v2/components/feedback_widget.html: Button unten links oberhalb der
Queue, Klick oeffnet Modal mit vorausgefuellten Kontext-Feldern (URL,
Drucksache, Viewport, User-Agent, letzte 15 Klicks, letzte 10 Console-Errors,
letzte 5 Page-Loads). Eingaben: Titel, Beschreibung, optional Screenshot
- Audit-Trail-Sammler in localStorage (Ringbuffer 30 Klicks, 10 Errors)
- Screenshot via self-hosted html2canvas 1.4.1 (194 KB unter app/static/v2/lib/)
- Backend POST /api/feedback (rate-limit 5/h):
- validiert + html-strippt Inputs
- erstellt Gitea-Issue per API mit Label 'feedback' (Label wird idempotent angelegt)
- laedt Screenshot als Issue-Asset hoch (Gitea Issue-Attachment-API)
- 4 neue Settings: gitea_token, gitea_api_url, gitea_repo_owner, gitea_repo_name
- Server .env um GITEA_TOKEN ergaenzt
- 10 neue Unit-Tests (mit gemocktem httpx)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>