feat(translate): add cache_hits counter — backend + frontend
Backend: - TranslationRun model: add cache_hits Integer column (default 0) - TranslationRunResponse schema: add cache_hits field - _helpers.py/_run_list_routes.py/orchestrator_aggregator.py: include cache_hits in all run API responses - _batch_proc.py: count pre_rows served from translation cache per batch, return cache_hits in batch result - executor.py: accumulate cache_hits across batches, persist to run - Alembic migration: dabc9709 — add cache_hits column to translation_runs Frontend: - translationRun.svelte.ts: add cacheHits to store state, WS handler, polling handler - TranslationRunProgress.svelte: 5-col stats grid with purple Cache card - TranslationRunGlobalIndicator.svelte: 5-col stats with Cache - TranslationRunResult.svelte: 5-col detail stats with Cache card - History page: cache_hits shown in run list row + detail panel Visual: cache hits shown in purple alongside green/yellow/red metrics (total/success/failed/skipped). Visible during run + in history. Tests: backend 69/69 translate tests ✅, frontend 698/698 tests ✅, frontend build ✅
This commit is contained in:
@@ -23,6 +23,7 @@ def _run_to_response(run: Any) -> dict:
|
||||
"successful_records": run.successful_records or 0,
|
||||
"failed_records": run.failed_records or 0,
|
||||
"skipped_records": run.skipped_records or 0,
|
||||
"cache_hits": run.cache_hits or 0,
|
||||
"insert_status": run.insert_status,
|
||||
"superset_execution_id": run.superset_execution_id,
|
||||
"config_snapshot": run.config_snapshot,
|
||||
|
||||
@@ -104,6 +104,7 @@ async def list_runs(
|
||||
"successful_records": r.successful_records or 0,
|
||||
"failed_records": r.failed_records or 0,
|
||||
"skipped_records": r.skipped_records or 0,
|
||||
"cache_hits": r.cache_hits or 0,
|
||||
"insert_status": r.insert_status,
|
||||
"superset_execution_id": r.superset_execution_id,
|
||||
"config_hash": r.config_hash,
|
||||
|
||||
Reference in New Issue
Block a user