Repository navigation
v0.4.5 — Cold-Start-Fix
Cold-Start-Fix: Add-on wirkt nicht mehr "tot" beim Container-Start
Auf einer frisch gestarteten HA-Instanz wirkte das Add-on nach Container-Restart bis zu ~30 s wie eingefroren — der Ingress-Tab lieferte 502, obwohl der Container "running" war. Ursache: das sentence-transformers-Modell (~10–30 s auf aarch64) und das Anlegen der Qdrant-Collection liefen synchron im FastAPI-Lifespan, blockierten damit uvicorn vom Port-Bind, und HA-Ingress proxied auf einen nicht-gebundenen Port.
Behoben
app/main.pytrennt Initialisierung in zwei Phasen: leichte Services (LLM-Client, SQLite-Conversation-Store) bleiben im Lifespan-Critical-Path; Embedder, Qdrant-Collection, Watcher und der Initial-Reconcile wandern in einen einzelnen Background-Task. Ein neuesStartupState(phase, error)-Objekt aufapp.state.startuptrackt den Fortschritt:loading_embedder→creating_collection→indexing→ready. Lifespan yieldet jetzt in <1 s, uvicorn bindet Port 8000 sofort, die SPA lädt direkt.app/api.py—/api/statusreturnt während des Background-Tasks{status: "initializing", phase: ...}, bei einem Crash{status: "error", error: ...}, und in fully-ready-State weiterhin das gewohnte{status: "ok"}-Schema (Test-Apps ohneStartupStatesind unverändert). 503er auf/api/queryund/api/reindexliefern jetzt einenRetry-After: 5-Header.app/ui/app.jspollt/api/statusalle 1.5 s solange die Phase initialisierend ist, surface den jeweiligen Phasentext im Index-Pill ("Lädt Modell …" / "Bereitet Index vor …" / "Indiziert (N) …"), und sperrt den Composer mit erklärendem Placeholder bis zur Phaseindexing. Abindexingist die Eingabe wieder offen — Queries laufen gegen den teilweise befüllten Index, gleiche Semantik wie der Background-Reconcile in v0.4.4.
Hinweise
- 95 Tests grün (vorher 91). Vier neue Tests decken die
initializing/failed/ready-Branches und denRetry-After-Header ab. - Nicht via echtem
docker runvalidiert: das CI baut weiterhin nur das Image, startet keinen Container — gleiche Lücke wie bei den v0.4.1–v0.4.3-Hotfix-Cycles. Falls der Cold-Start auf realer HA-Supervisor-Instanz regrediert, kommt ein v0.4.6-Hotfix hinterher.