feat(composer): carry reference image names and submit on Enter

Propagate an optional imageName through the agent content pipeline
(frontend types → API → domain → prompt building) so reference images
render with their name instead of a bare "image" label.

Also switch PromptComposer to submit on plain Enter (Shift+Enter for
newline, IME-safe) and add a submitDisabled guard wired from the canvas
and home composers.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-08 08:41:15 +08:00
parent 398dec422d
commit 3c5006e2f3
11 changed files with 34 additions and 7 deletions
+11 -1
View File
@@ -4510,7 +4510,13 @@ func promptFromAgentMessages(messages []design.AgentChatMessage) string {
if builder.Len() > 0 {
builder.WriteString("\n")
}
builder.WriteString("Reference image: ")
builder.WriteString("Reference image")
if imageName := strings.TrimSpace(content.ImageName); imageName != "" {
builder.WriteString(" (")
builder.WriteString(compactReferenceImageName(imageName))
builder.WriteString(")")
}
builder.WriteString(": ")
builder.WriteString(imageURL)
}
}
@@ -4519,6 +4525,10 @@ func promptFromAgentMessages(messages []design.AgentChatMessage) string {
return builder.String()
}
func compactReferenceImageName(value string) string {
return strings.Join(strings.Fields(value), " ")
}
func hasUserPromptTextInAgentMessages(messages []design.AgentChatMessage) bool {
for _, message := range messages {
if strings.TrimSpace(message.Role) != "" && strings.ToLower(strings.TrimSpace(message.Role)) != "user" {