Files
busya 0c850886e9 feat(translate): transfer the owner translate module from WIP 233e3936
The owner saved the translate refactor in WIP commit 233e3936
("chore(wip): save owner work in progress (2026-10-14)", parent 30907e66) and asked
for it to be moved onto master (7190786b) as its own change, reviewed on three axes
and merged only after the full verification gate.

Transferred verbatim with `git checkout 233e3936 -- <paths>` (no edits beyond the
fixes listed below, which are recorded in the transfer report):

backend/src/plugins/translate/** (61 files: module split of the LLM service and the
  executor, batch classification/insert rows, executor delegates/dispatch/parallel,
  llm prompting/records/recovery, scheduler execution, sql literals, sqllab
  execution, target schema catalog, token constants, record outcomes/filter
  forwarding, preview/prompt/sql/orchestrator modules, dictionary modules)
backend/src/models/translate.py + translate_identity.py, translate_job_runs.py,
  translate_dictionary_preview.py, translate_metrics_languages.py (same 15 tables and
  columns, split by domain behind a re-export facade; no migration needed)
backend/src/schemas/translate.py + translate_corrections.py, translate_dictionaries.py,
  translate_jobs.py, translate_preview.py, translate_runs.py
backend/src/api/routes/translate/** (dictionary entries split out)
backend/tests/plugins/translate/** (5 new tests incl. import-boundary and terminal-state)
frontend/src/lib/components/translate/** (new Config* sections, CorrectionDictionaryPopup,
  TranslationRunTerminalStatus, runOutcome helper, tests)
frontend/src/lib/api/translate/**, frontend/src/routes/translate/** (list, history,
  dictionaries, job wizard and detail), translation stores and models, i18n translate.json
frontend/e2e translation specs + fixtures/helpers, vitest.translation.config.js,
  playwright.translation-fixture.config.js
docs/tasks/2026-10-02-translation-*.md (7 plan/audit documents)

Fixes found while transferring (each has its own reasoning in the commit body below):
* tests/test_orchestrator_direct_db.py: the WIP replaced the silent direct_db ->
  Superset fallback with a typed failure; the stale test asserted the old fallback and
  is now pinned to the refusal (plus an end-to-end result assertion).
* docs/tasks/2026-10-02-translation-semantics-audit.md: the owner home path was
  replaced with `$REPO_ROOT` so no personal path enters git.

Deliberately NOT transferred (not translate): settings refactor, dashboard-testing,
research scripts, docker/full-flow, .kilo, tools/, other docs.
2026-10-20 20:23:50 +03:00
..