Fix: show last attached img on ctrl+j
This commit is contained in:
18
llm.go
18
llm.go
@@ -9,29 +9,17 @@ import (
|
||||
)
|
||||
|
||||
var imageAttachmentPath string // Global variable to track image attachment for next message
|
||||
var lastImg string // for ctrl+j
|
||||
|
||||
// SetImageAttachment sets an image to be attached to the next message sent to the LLM and updates UI
|
||||
// SetImageAttachment sets an image to be attached to the next message sent to the LLM
|
||||
func SetImageAttachment(imagePath string) {
|
||||
imageAttachmentPath = imagePath
|
||||
// Update the UI to show image is attached (call function from tui.go)
|
||||
// UpdateImageAttachmentStatus(imagePath)
|
||||
}
|
||||
|
||||
// SetImageAttachmentWithoutUI sets an image to be attached without UI updates (for internal use where UI updates might cause hangs)
|
||||
func SetImageAttachmentWithoutUI(imagePath string) {
|
||||
imageAttachmentPath = imagePath
|
||||
lastImg = imagePath
|
||||
}
|
||||
|
||||
// ClearImageAttachment clears any pending image attachment and updates UI
|
||||
func ClearImageAttachment() {
|
||||
imageAttachmentPath = ""
|
||||
// Update the UI to clear image attachment status (call function from tui.go)
|
||||
// UpdateImageAttachmentStatus("")
|
||||
}
|
||||
|
||||
// ClearImageAttachmentWithoutUI clears any pending image attachment without UI updates
|
||||
func ClearImageAttachmentWithoutUI() {
|
||||
imageAttachmentPath = ""
|
||||
}
|
||||
|
||||
type ChunkParser interface {
|
||||
|
||||
@@ -838,7 +838,7 @@ func makeFilePicker() *tview.Flex {
|
||||
// For image files, set it as an attachment for the next LLM message
|
||||
// Use the version without UI updates to avoid hangs in event handlers
|
||||
logger.Info("setting image", "file", itemText)
|
||||
SetImageAttachmentWithoutUI(filePath)
|
||||
SetImageAttachment(filePath)
|
||||
logger.Info("after setting image", "file", itemText)
|
||||
statusView.SetText("Image attached: " + filePath + " (will be sent with next message)")
|
||||
logger.Info("after setting text", "file", itemText)
|
||||
|
||||
8
tui.go
8
tui.go
@@ -814,18 +814,18 @@ func init() {
|
||||
}
|
||||
if event.Key() == tcell.KeyCtrlJ {
|
||||
// show image - check for attached image first, then fall back to agent image
|
||||
if imageAttachmentPath != "" {
|
||||
if lastImg != "" {
|
||||
// Load the attached image
|
||||
file, err := os.Open(imageAttachmentPath)
|
||||
file, err := os.Open(lastImg)
|
||||
if err != nil {
|
||||
logger.Error("failed to open attached image", "path", imageAttachmentPath, "error", err)
|
||||
logger.Error("failed to open attached image", "path", lastImg, "error", err)
|
||||
// Fall back to showing agent image
|
||||
loadImage()
|
||||
} else {
|
||||
defer file.Close()
|
||||
img, _, err := image.Decode(file)
|
||||
if err != nil {
|
||||
logger.Error("failed to decode attached image", "path", imageAttachmentPath, "error", err)
|
||||
logger.Error("failed to decode attached image", "path", lastImg, "error", err)
|
||||
// Fall back to showing agent image
|
||||
loadImage()
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user