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:
@@ -11,7 +11,7 @@ from fastapi.staticfiles import StaticFiles
|
||||
from fastapi.responses import FileResponse
|
||||
|
||||
from config import STATIC_DIR, PORT
|
||||
from routers import auth, organizations, licenses, users, dashboard, sources, token_usage, audit
|
||||
from routers import auth, organizations, licenses, users, dashboard, sources, token_usage, audit, translation
|
||||
|
||||
logging.basicConfig(
|
||||
level=logging.INFO,
|
||||
@@ -42,6 +42,7 @@ app.include_router(dashboard.router)
|
||||
app.include_router(sources.router)
|
||||
app.include_router(token_usage.router)
|
||||
app.include_router(audit.router)
|
||||
app.include_router(translation.router)
|
||||
|
||||
# --- Statische Dateien ---
|
||||
app.mount("/static", StaticFiles(directory=STATIC_DIR), name="static")
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren