Zwei Fehler, beide erst im Browser sichtbar:
1. /docs blieb weiss. FastAPI holt Swagger von cdn.jsdelivr.net, und die
in Phase 3 eingeführte CSP (script-src 'self') blockiert das zu Recht.
Die Dateien liegen jetzt unter app/static/swagger/ im Repository - das
funktioniert auch ohne Internet und ruft keinen fremden Server auf, aus
demselben Grund, aus dem die Kantone-App ihre Schriften lokal ausliefert.
Das Favicon holte FastAPI ebenfalls von aussen; auch das ist jetzt lokal.
2. Die Wurzel / lieferte ein nacktes 404-JSON - im Browser sieht das aus
wie eine kaputte Anwendung. Jetzt eine schlichte Platzhalter-Seite, bis
die Galerie in Phase 4 steht.
Ausserdem beim Testen aufgefallen: eine lokale .env-Datei reicht
ADMIN_PASSWORD auch dann herein, wenn die Umgebungsvariable gelöscht wird -
bei pydantic-settings haben Umgebungsvariablen Vorrang, ein leerer Wert
überstimmt die Datei, ein Löschen nicht. Der Test setzt jetzt leer statt zu
löschen; im Betrieb ist das dieselbe Falle.
Der neue Test prüft, dass /docs keinen einzigen Verweis auf einen fremden
Host enthält - genau das würde sonst unbemerkt wieder hereinrutschen.
61 Tests, alle grün.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GR4bNaj9GtRu57J4Niii8o