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 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) {
|
func SetImageAttachment(imagePath string) {
|
||||||
imageAttachmentPath = imagePath
|
imageAttachmentPath = imagePath
|
||||||
// Update the UI to show image is attached (call function from tui.go)
|
lastImg = imagePath
|
||||||
// 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
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ClearImageAttachment clears any pending image attachment and updates UI
|
// ClearImageAttachment clears any pending image attachment and updates UI
|
||||||
func ClearImageAttachment() {
|
func ClearImageAttachment() {
|
||||||
imageAttachmentPath = ""
|
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 {
|
type ChunkParser interface {
|
||||||
|
|||||||
@@ -838,7 +838,7 @@ func makeFilePicker() *tview.Flex {
|
|||||||
// For image files, set it as an attachment for the next LLM message
|
// 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
|
// Use the version without UI updates to avoid hangs in event handlers
|
||||||
logger.Info("setting image", "file", itemText)
|
logger.Info("setting image", "file", itemText)
|
||||||
SetImageAttachmentWithoutUI(filePath)
|
SetImageAttachment(filePath)
|
||||||
logger.Info("after setting image", "file", itemText)
|
logger.Info("after setting image", "file", itemText)
|
||||||
statusView.SetText("Image attached: " + filePath + " (will be sent with next message)")
|
statusView.SetText("Image attached: " + filePath + " (will be sent with next message)")
|
||||||
logger.Info("after setting text", "file", itemText)
|
logger.Info("after setting text", "file", itemText)
|
||||||
|
|||||||
8
tui.go
8
tui.go
@@ -814,18 +814,18 @@ func init() {
|
|||||||
}
|
}
|
||||||
if event.Key() == tcell.KeyCtrlJ {
|
if event.Key() == tcell.KeyCtrlJ {
|
||||||
// show image - check for attached image first, then fall back to agent image
|
// show image - check for attached image first, then fall back to agent image
|
||||||
if imageAttachmentPath != "" {
|
if lastImg != "" {
|
||||||
// Load the attached image
|
// Load the attached image
|
||||||
file, err := os.Open(imageAttachmentPath)
|
file, err := os.Open(lastImg)
|
||||||
if err != nil {
|
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
|
// Fall back to showing agent image
|
||||||
loadImage()
|
loadImage()
|
||||||
} else {
|
} else {
|
||||||
defer file.Close()
|
defer file.Close()
|
||||||
img, _, err := image.Decode(file)
|
img, _, err := image.Decode(file)
|
||||||
if err != nil {
|
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
|
// Fall back to showing agent image
|
||||||
loadImage()
|
loadImage()
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user