core: Router bleibt bei Embedding-Ausfall lauffähig (Stufe 0) und erholt sich selbst
ci / compose (push) Failing after 3s
ci / test (push) Failing after 13m22s

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-12 00:55:25 +02:00
co-authored by Claude Opus 5.5
parent f27c63b711
commit 96209d684d
3 changed files with 45 additions and 5 deletions
+22
View File
@@ -131,3 +131,25 @@ def test_conflict_with_reranker_trusts_reranker(registry, library, embedder):
assert Signal.SKILL_CONFLICT in d.signals
assert "Reranking aktiv" in d.reasons
assert d.skill == "rechnung-extrahieren" and d.stage == 1
class FlakyEmbedder:
def __init__(self, inner):
self.inner = inner
self.down = True
def embed(self, texts):
if self.down:
raise ConnectionError("embed-default weg")
return self.inner.embed(texts)
def test_embedding_outage_degrades_to_strong_and_recovers(registry, library, embedder):
flaky = FlakyEmbedder(embedder)
r = Router(registry, library, flaky) # Start ohne Embedding darf nicht abstürzen
assert r.index_error
d = r.route(RECHNUNG)
assert d.stage == 0 and any("Embedding nicht verfügbar" in x for x in d.reasons)
flaky.down = False
d = r.route(RECHNUNG)
assert d.stage == 1 and r.index_error is None