Drop the media translation delete button from the spec; scripting API remains the only delete path.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Bauer, Georg
2026-07-22 15:15:47 +02:00
parent 2bf95bfcd0
commit 5968cf47ba
3 changed files with 6 additions and 15 deletions

View File

@@ -224,7 +224,6 @@ config {
ConfirmationAssignment(action: "menu_item_delete", pattern: none), ConfirmationAssignment(action: "menu_item_delete", pattern: none),
ConfirmationAssignment(action: "metadata_diff_field_sync", pattern: none), ConfirmationAssignment(action: "metadata_diff_field_sync", pattern: none),
ConfirmationAssignment(action: "import_execute", pattern: none), ConfirmationAssignment(action: "import_execute", pattern: none),
ConfirmationAssignment(action: "media_translation_delete", pattern: none),
ConfirmationAssignment(action: "media_unlink", pattern: none) ConfirmationAssignment(action: "media_unlink", pattern: none)
} }
} }

View File

@@ -105,7 +105,6 @@ surface MediaEditorSurface {
MediaLinkToPostRequested(editor.media_id) MediaLinkToPostRequested(editor.media_id)
MediaTranslationEditClicked(editor.media_id, language) MediaTranslationEditClicked(editor.media_id, language)
MediaTranslationRefreshClicked(editor.media_id, language) MediaTranslationRefreshClicked(editor.media_id, language)
MediaTranslationDeleteClicked(editor.media_id, language)
MediaUnlinkPostRequested(editor.media_id, post_id) MediaUnlinkPostRequested(editor.media_id, post_id)
MediaDeleteConfirmed(editor.media_id) MediaDeleteConfirmed(editor.media_id)
TranslationEditModalSaved(editor.media_id, language, title, alt, caption) TranslationEditModalSaved(editor.media_id, language, title, alt, caption)
@@ -140,7 +139,10 @@ surface MediaEditorSurface {
@guarantee TranslationsSection @guarantee TranslationsSection
-- Shown only when language is set. -- Shown only when language is set.
-- List of existing translations: flag emoji + language name + title. -- List of existing translations: flag emoji + language name + title.
-- Per-translation actions: click to edit (opens modal), refresh button, delete button. -- Per-translation actions: click to edit (opens modal), refresh button.
-- No delete action; translations are only removed via the scripting
-- API (script.allium bds.media.delete_translation) or when the
-- media item itself is deleted.
-- "No translations" message when list is empty. -- "No translations" message when list is empty.
@guarantee TranslationEditModal @guarantee TranslationEditModal
@@ -306,15 +308,3 @@ rule MediaTranslationRefresh {
-- overwrites the existing translation fields and rewrites the -- overwrites the existing translation fields and rewrites the
-- translated sidecar -- translated sidecar
} }
rule MediaTranslationDelete {
when: MediaTranslationDeleteClicked(media_id, language)
let item = media/Media{id: media_id}
let translation = media/MediaTranslation{media: item, language: language}
-- No confirmation dialog (action_patterns.allium
-- confirmation_assignments: media_translation_delete)
ensures: not exists translation
ensures: MediaTranslationDeleted(item, language)
-- engine_side_effects.allium DeleteMediaTranslationSideEffects
-- deletes the translated sidecar {path}.{lang}.meta
}

View File

@@ -280,6 +280,8 @@ rule UpsertMediaTranslationSideEffects {
rule DeleteMediaTranslationSideEffects { rule DeleteMediaTranslationSideEffects {
when: MediaTranslationDeleted(media, language) when: MediaTranslationDeleted(media, language)
-- No UI affordance; reached only via the scripting API
-- (script.allium bds.media.delete_translation)
ensures: TranslatedSidecarDeleted(media, language) ensures: TranslatedSidecarDeleted(media, language)
} }