feat(translation): manueller Übersetzungs-Button im Dashboard
Fremdsprachige Artikel ohne deutsche Fassung lassen sich jetzt manuell über das Verwaltungs-Dashboard übersetzen. Hintergrund: die automatische Übersetzung im Monitor wurde deaktiviert (TRANSLATOR_ENABLED=false), nachdem ein sehr großer Lauf den Refresh-Worker blockiert hatte. - translation_agent.py: Verwaltungs-Adaption des Monitor-Translators (Haiku-Batches), Imports auf shared.agents.claude_client umgestellt - routers/translation.py: Endpoints /api/translation/status, /run und /cancel. Der Lauf läuft als entkoppelter Hintergrund-Task, blockiert keinen Request und ist jederzeit abbrechbar - Dashboard-Karte mit Fortschrittsbalken, Aufwandsschätzung vorab und Abbrechen-Button - test_imports.py: neuen Router in den Smoke-Test aufgenommen Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Dieser Commit ist enthalten in:
@@ -10,7 +10,7 @@ def test_main_app_imports():
|
||||
def test_all_routers_importable():
|
||||
"""Bei Syntax-Fehlern in einem Router crasht das Ganze - hier fangen wir das ab."""
|
||||
for mod in ("auth", "organizations", "licenses", "users",
|
||||
"dashboard", "sources", "token_usage", "audit"):
|
||||
"dashboard", "sources", "token_usage", "audit", "translation"):
|
||||
m = importlib.import_module(f"routers.{mod}")
|
||||
assert hasattr(m, "router"), f"routers/{mod} hat keinen router-Objekt"
|
||||
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren