diff options
| -rw-r--r-- | bot.go | 23 | ||||
| -rw-r--r-- | bot_test.go | 2 | ||||
| -rw-r--r-- | tui.go | 13 |
3 files changed, 26 insertions, 12 deletions
@@ -124,18 +124,19 @@ func processMessageTag(msg models.RoleMsg) models.RoleMsg { // For simplicity, if knownTo is not nil, replace. if knownTo != nil { msg.KnownTo = knownTo - } - // Ensure sender role is in KnownTo - if msg.Role != "" { - senderAdded := false - for _, k := range msg.KnownTo { - if k == msg.Role { - senderAdded = true - break + // Only ensure sender role is in KnownTo if there was a tag + // This means the message is intended for specific characters + if msg.Role != "" { + senderAdded := false + for _, k := range msg.KnownTo { + if k == msg.Role { + senderAdded = true + break + } + } + if !senderAdded { + msg.KnownTo = append(msg.KnownTo, msg.Role) } - } - if !senderAdded { - msg.KnownTo = append(msg.KnownTo, msg.Role) } } return msg diff --git a/bot_test.go b/bot_test.go index d5b4b0a..3dabc15 100644 --- a/bot_test.go +++ b/bot_test.go @@ -436,7 +436,7 @@ func TestProcessMessageTag(t *testing.T) { wantMsg: models.RoleMsg{ Role: "Alice", Content: "Hello everyone", - KnownTo: []string{"Alice"}, + KnownTo: nil, }, }, { @@ -93,6 +93,7 @@ var ( [yellow]Alt+4[white]: edit msg role [yellow]Alt+5[white]: toggle system and tool messages display [yellow]Alt+6[white]: toggle status line visibility +[yellow]Alt+7[white]: toggle role injection (inject role in messages) [yellow]Alt+8[white]: show char img or last picked img [yellow]Alt+9[white]: warm up (load) selected llama.cpp model @@ -828,6 +829,18 @@ func init() { } updateStatusLine() } + // Handle Alt+7 to toggle injectRole + if event.Key() == tcell.KeyRune && event.Rune() == '7' && event.Modifiers()&tcell.ModAlt != 0 { + injectRole = !injectRole + status := "disabled" + if injectRole { + status = "enabled" + } + if err := notifyUser("injectRole", fmt.Sprintf("Role injection %s", status)); err != nil { + logger.Error("failed to send notification", "error", err) + } + updateStatusLine() + } if event.Key() == tcell.KeyF1 { // chatList, err := loadHistoryChats() chatList, err := store.GetChatByChar(cfg.AssistantRole) |
