Show each extension's own prompt, not only the batch script.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Towsty
2026-08-31 18:45:17 -05:00
co-authored by Cursor
parent 6624fb6f93
commit d4bcf8482e
4 changed files with 23 additions and 4 deletions
+1 -1
View File
@@ -2,7 +2,7 @@
<dl v-if="rows.length" class="mt-2 grid grid-cols-[7.25rem_minmax(0,1fr)] gap-x-3 gap-y-1 text-[11px] leading-snug"> <dl v-if="rows.length" class="mt-2 grid grid-cols-[7.25rem_minmax(0,1fr)] gap-x-3 gap-y-1 text-[11px] leading-snug">
<template v-for="row in rows" :key="row.label"> <template v-for="row in rows" :key="row.label">
<dt class="text-zinc-500">{{ row.label }}</dt> <dt class="text-zinc-500">{{ row.label }}</dt>
<dd class="min-w-0 break-words text-zinc-300">{{ row.value }}</dd> <dd class="min-w-0 whitespace-pre-wrap break-words text-zinc-300">{{ row.value }}</dd>
</template> </template>
</dl> </dl>
<p v-else class="mt-2 text-[11px] text-zinc-600">{{ empty }}</p> <p v-else class="mt-2 text-[11px] text-zinc-600">{{ empty }}</p>
+12
View File
@@ -1666,6 +1666,12 @@
@blur="saveRename(item)" @blur="saveRename(item)"
> >
<p v-else class="min-w-0 flex-1 truncate text-sm font-medium">{{ item.name || item.prompt }}</p> <p v-else class="min-w-0 flex-1 truncate text-sm font-medium">{{ item.name || item.prompt }}</p>
<PromptPreviewTip
v-if="item.prompt"
:text="item.prompt"
:aria-label="'Copy prompt for ' + (item.name || 'this clip')"
@copy="copyPrompt"
/>
</div> </div>
<p class="truncate text-xs text-zinc-500">{{ clipMetaLine(item) }}</p> <p class="truncate text-xs text-zinc-500">{{ clipMetaLine(item) }}</p>
<PermanenceRefStrip <PermanenceRefStrip
@@ -1839,6 +1845,12 @@
@blur="saveRenameStill(item)" @blur="saveRenameStill(item)"
> >
<p v-else class="min-w-0 flex-1 truncate text-sm font-medium">{{ stillTitle(item) }}</p> <p v-else class="min-w-0 flex-1 truncate text-sm font-medium">{{ stillTitle(item) }}</p>
<PromptPreviewTip
v-if="item.prompt"
:text="item.prompt"
:aria-label="'Copy prompt for ' + stillTitle(item)"
@copy="copyPrompt"
/>
</div> </div>
<p class="truncate text-xs text-zinc-500">{{ stillMetaLine(item) }}</p> <p class="truncate text-xs text-zinc-500">{{ stillMetaLine(item) }}</p>
<div class="mt-1.5 flex flex-wrap items-center gap-3"> <div class="mt-1.5 flex flex-wrap items-center gap-3">
+6 -2
View File
@@ -479,8 +479,12 @@ const focusedNavIndex = computed(() => {
return index < 0 ? 0 : index return index < 0 ? 0 : index
}) })
const detailPrompt = computed(() => { const detailPrompt = computed(() => {
if (focused.value?.kind === 'clip') return focused.value.group?.head.prompt || '' if (focused.value?.kind === 'clip' && focused.value.group) {
return focused.value?.stillGroup?.head.prompt || '' const item = focused.value.group.parts.find(part => part.id === focusedPartId.value) || focused.value.group.head
return item.prompt || ''
}
const still = focused.value?.stillGroup?.parts.find(part => part.id === focusedPartId.value) || focused.value?.stillGroup?.head
return still?.prompt || ''
}) })
const detailMeta = computed(() => { const detailMeta = computed(() => {
const entry = focused.value const entry = focused.value
+4 -1
View File
@@ -141,9 +141,10 @@ export function stillModeLabel(still: { filename?: string; settings?: StillGener
return '' return ''
} }
export function stillSettingsRows(still: { width?: number; height?: number; settings?: StillGenerationSettings | null }) { export function stillSettingsRows(still: { prompt?: string; width?: number; height?: number; settings?: StillGenerationSettings | null }) {
const settings = still.settings const settings = still.settings
const rows: SettingsRow[] = [] const rows: SettingsRow[] = []
if (still.prompt?.trim()) rows.push({ label: 'Prompt', value: still.prompt.trim() })
const mode = stillModeLabel(still) const mode = stillModeLabel(still)
if (mode) rows.push({ label: 'Mode', value: mode }) if (mode) rows.push({ label: 'Mode', value: mode })
if (!settings) return rows if (!settings) return rows
@@ -201,6 +202,7 @@ function videoWorkflowLabel(workflow?: string) {
} }
export function clipSettingsRows(clip: { export function clipSettingsRows(clip: {
prompt?: string
width?: number width?: number
height?: number height?: number
duration?: number duration?: number
@@ -218,6 +220,7 @@ export function clipSettingsRows(clip: {
loraStack?: LoraStackItem[] loraStack?: LoraStackItem[]
}) { }) {
const rows: SettingsRow[] = [] const rows: SettingsRow[] = []
if (clip.prompt?.trim()) rows.push({ label: 'Prompt', value: clip.prompt.trim() })
const workflow = videoWorkflowLabel(clip.workflow) const workflow = videoWorkflowLabel(clip.workflow)
if (workflow) rows.push({ label: 'Workflow', value: workflow }) if (workflow) rows.push({ label: 'Workflow', value: workflow })
if (clip.width && clip.height) rows.push({ label: 'Size', value: `${clip.width}×${clip.height}` }) if (clip.width && clip.height) rows.push({ label: 'Size', value: `${clip.width}×${clip.height}` })