summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--models/models.go3
-rw-r--r--tables.go9
-rw-r--r--tools.go1
3 files changed, 11 insertions, 2 deletions
diff --git a/models/models.go b/models/models.go
index 30ec5f5..d15e0d1 100644
--- a/models/models.go
+++ b/models/models.go
@@ -167,7 +167,6 @@ func (m *RoleMsg) UnmarshalJSON(data []byte) error {
}
func (m *RoleMsg) ToText(i int) string {
- icon := fmt.Sprintf("(%d)", i)
// Convert content to string representation
var contentStr string
if !m.hasContentParts {
@@ -193,7 +192,7 @@ func (m *RoleMsg) ToText(i int) string {
// since icon and content are separated by \n
contentStr, _ = strings.CutPrefix(contentStr, m.Role+":")
// if !strings.HasPrefix(contentStr, m.Role+":") {
- icon = fmt.Sprintf("(%d) <%s>: ", i, m.Role)
+ icon := fmt.Sprintf("(%d) <%s>: ", i, m.Role)
// }
textMsg := fmt.Sprintf("[-:-:b]%s[-:-:-]\n%s\n", icon, contentStr)
return strings.ReplaceAll(textMsg, "\n\n", "\n")
diff --git a/tables.go b/tables.go
index 59220be..eb3d315 100644
--- a/tables.go
+++ b/tables.go
@@ -23,6 +23,15 @@ func makeChatTable(chatMap map[string]models.Chat) *tview.Table {
chatList[i] = name
i++
}
+ // Sort chatList by UpdatedAt field in descending order (most recent first)
+ for i := 0; i < len(chatList)-1; i++ {
+ for j := i + 1; j < len(chatList); j++ {
+ if chatMap[chatList[i]].UpdatedAt.Before(chatMap[chatList[j]].UpdatedAt) {
+ // Swap chatList[i] and chatList[j]
+ chatList[i], chatList[j] = chatList[j], chatList[i]
+ }
+ }
+ }
// Add 1 extra row for header
rows, cols := len(chatMap)+1, len(actions)+4 // +2 for name, +2 for timestamps
chatActTable := tview.NewTable().
diff --git a/tools.go b/tools.go
index 2eafaf5..dbf8310 100644
--- a/tools.go
+++ b/tools.go
@@ -330,6 +330,7 @@ func memorise(args map[string]string) []byte {
Topic: args["topic"],
Mind: args["data"],
UpdatedAt: time.Now(),
+ CreatedAt: time.Now(),
}
if _, err := store.Memorise(memory); err != nil {
logger.Error("failed to save memory", "err", err, "memoory", memory)