feat(translation): tunable acceptance floor (0.90) + per-post sticky override (#155) #210
Reference in New Issue
Block a user
Delete Branch "dev"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Makes the translation gate strict-but-tunable and adds a per-post manual override, so the operator can roll back the confidently-mis-flagged translations the old fixed 0.80 floor couldn't catch.
Why: a probe (fresh == cached, verified) showed Interpreter still confidently mis-detects short ASCII English like "… WIP Part 1" as German at 0.86 — above the old floor — so it was accepted and re-translate reproduced it. Confidence alone can't separate the 0.86 collision (genuine German lands there too), and single-word mis-flags sit at a confident 1.0 no floor catches.
Two levers:
ImportSettings.translation_min_confidence, default 0.90, in the Translation card) — tunable with no redeploy. The gate reads it per-run.Post.translation_override: auto / force / original).forcestores a translation even below the floor;originalkeeps the original and clears any stored translation. The sweep honors it every run and_reset_translationsskipsoriginal, so it survives a Re-translate-all.POST /api/posts/<id>/translation-overrideapplies it immediately (translate now if the service is up, else queue). UI:PostTranslationControlon the posts-feed card.Rollback recipe this enables: raise the floor → "Re-translate all" → the 0.86 mis-flags are rejected and restored to the original; force / keep-original handle the residual.
Migration 0084 — adds both columns (+ a CHECK on the override). Feed + provenance serializers expose
translation_override.Commit
aea2701. CI green on dev tip (run 2122: lint + unit + integration w/ migration 0084 + frontend build). +581/−54 across 16 files.Post-merge: curator
:latestredeploy runs migration 0084 automatically.🤖 Generated with Claude Code
https://claude.ai/code/session_01CgZP9v2otxVJymiYsnVuMy