Retry failed automatic translations once.

This commit is contained in:
2026-08-01 12:18:54 +02:00
parent b25691ddac
commit c4e5dbb8e6
13 changed files with 642 additions and 75 deletions

View File

@@ -27,6 +27,13 @@ surface AiEngine {
-- The active endpoint's response, parsed into per-field suggestions
}
surface AutoTranslationRuntime {
facing _: AiRuntime
provides: PostAutoTranslateAttemptFailed(post_id, language, reason)
provides: PostAutoTranslateRetryFailed(post_id, language, reason)
}
-- ─── AI operation gating ────────────────────────────────────
--
-- All AI operations route through the active endpoint for the current
@@ -130,6 +137,18 @@ rule AutoTranslationChain {
-- languages enqueues nothing (empty set).
}
rule RetryFailedAutoTranslationOnce {
when: PostAutoTranslateAttemptFailed(post_id, language, reason)
ensures: ToastShown(message_key: "engine.autoTranslationRetrying")
ensures: PostAutoTranslateRetried(post_id, language, maximum_attempts: 2)
}
rule ReportFailedAutoTranslationRetry {
when: PostAutoTranslateRetryFailed(post_id, language, reason)
ensures: BackgroundTaskFailed(post_id, language, reason)
ensures: ToastShown(level: "error", reason: reason)
}
rule MediaMetadataTranslationCascade {
when: PostAutoTranslateCompleted(post_id, language)
let saved_post = post/Post{id: post_id}