Fix: avoid panic on deleting from empty slice

This commit is contained in:
Grail Finder
2025-12-08 18:05:48 +03:00
parent 0911d6e640
commit 1e9e32ee95

12
tui.go
View File

@@ -718,6 +718,12 @@ func init() {
} }
if event.Key() == tcell.KeyF2 { if event.Key() == tcell.KeyF2 {
// regen last msg // regen last msg
if len(chatBody.Messages) == 0 {
if err := notifyUser("info", "no messages to regenerate"); err != nil {
logger.Error("failed to send notification", "error", err)
}
return nil
}
chatBody.Messages = chatBody.Messages[:len(chatBody.Messages)-1] chatBody.Messages = chatBody.Messages[:len(chatBody.Messages)-1]
// there is no case where user msg is regenerated // there is no case where user msg is regenerated
// lastRole := chatBody.Messages[len(chatBody.Messages)-1].Role // lastRole := chatBody.Messages[len(chatBody.Messages)-1].Role
@@ -736,6 +742,12 @@ func init() {
colorText() colorText()
return nil return nil
} }
if len(chatBody.Messages) == 0 {
if err := notifyUser("info", "no messages to delete"); err != nil {
logger.Error("failed to send notification", "error", err)
}
return nil
}
chatBody.Messages = chatBody.Messages[:len(chatBody.Messages)-1] chatBody.Messages = chatBody.Messages[:len(chatBody.Messages)-1]
textView.SetText(chatToText(cfg.ShowSys)) textView.SetText(chatToText(cfg.ShowSys))
colorText() colorText()