summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGrail Finder <wohilas@gmail.com>2026-01-17 13:03:30 +0300
committerGrail Finder <wohilas@gmail.com>2026-01-17 13:03:30 +0300
commit3e2a1b6f9975aaa2b9cb45bcb77aac146a37fd3c (patch)
tree04b45c7f86b70ae47491cb057521a8f9387fe5b1
parent0fb59210045792433a7a3796046c8383f2bb8824 (diff)
Fix: KnowTo is added only if tag present
-rw-r--r--bot.go23
-rw-r--r--bot_test.go2
-rw-r--r--tui.go13
3 files changed, 26 insertions, 12 deletions
diff --git a/bot.go b/bot.go
index 3af0ac9..f3fef8c 100644
--- a/bot.go
+++ b/bot.go
@@ -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,
},
},
{
diff --git a/tui.go b/tui.go
index aa9972a..8454d45 100644
--- a/tui.go
+++ b/tui.go
@@ -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)