diff --git a/frontend/src/components/modal/SuggestionItem.vue b/frontend/src/components/modal/SuggestionItem.vue
index 1b79848..c99107a 100644
--- a/frontend/src/components/modal/SuggestionItem.vue
+++ b/frontend/src/components/modal/SuggestionItem.vue
@@ -1,8 +1,8 @@
+ 2026-06-01). The row itself is informational; the green ✓ / red ✗
+ verdict pair + 3-dot alias menu are the action affordances. -->
{{ suggestion.display_name }}
@@ -12,18 +12,32 @@
:title="`Mapped from the tagger's “${suggestion.raw_name}” via an alias`">alias{{ scorePct }}
-
- Accept
-
+
+
+
+
+
+ teleported image modal — #711). Only rendered when an alias action
+ applies — dismiss now lives on the red ✗, so a centroid hit with no
+ alias option has no menu. -->
@@ -42,9 +56,6 @@
>
Remove alias
-
- Dismiss for this image
-
@@ -57,6 +68,12 @@ const props = defineProps({ suggestion: { type: Object, required: true } })
defineEmits(['accept', 'alias', 'remove-alias', 'dismiss'])
const scorePct = computed(() => `${Math.round(props.suggestion.score * 100)}%`)
+// Kebab now only carries alias actions: show it when this suggestion can be
+// aliased (raw model key, not yet aliased) or is already aliased (so it can be
+// un-aliased). Centroid hits (no raw_name, no alias) have an empty menu → hide.
+const hasMenu = computed(() =>
+ Boolean(props.suggestion.raw_name) || Boolean(props.suggestion.via_alias)
+)