summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGrail Finder <wohilas@gmail.com>2025-07-20 15:57:01 +0300
committerGrail Finder <wohilas@gmail.com>2025-07-20 15:57:01 +0300
commit6c0a290cecf16d96ae95aa8bd3c88fab87bc038d (patch)
treecb429049e5f52eced68ccef2b9f0f8440286d7b5
parente4b8a89f25b1dd2a6ab7a29471e88522c0b08148 (diff)
Fix: new chat from jsonHEADmaster
-rw-r--r--pngmeta/metareader.go6
-rw-r--r--tables.go11
2 files changed, 11 insertions, 6 deletions
diff --git a/pngmeta/metareader.go b/pngmeta/metareader.go
index 369345a..8d3059e 100644
--- a/pngmeta/metareader.go
+++ b/pngmeta/metareader.go
@@ -2,11 +2,11 @@ package pngmeta
import (
"bytes"
- "gf-lt/models"
"encoding/base64"
"encoding/json"
"errors"
"fmt"
+ "gf-lt/models"
"io"
"log/slog"
"os"
@@ -100,7 +100,7 @@ func ReadCard(fname, uname string) (*models.CharCard, error) {
return charSpec.Simplify(uname, fname), nil
}
-func readCardJson(fname string) (*models.CharCard, error) {
+func ReadCardJson(fname string) (*models.CharCard, error) {
data, err := os.ReadFile(fname)
if err != nil {
return nil, err
@@ -134,7 +134,7 @@ func ReadDirCards(dirname, uname string, log *slog.Logger) ([]*models.CharCard,
}
if strings.HasSuffix(f.Name(), ".json") {
fpath := path.Join(dirname, f.Name())
- cc, err := readCardJson(fpath)
+ cc, err := ReadCardJson(fpath)
if err != nil {
return nil, err // better to log and continue
}
diff --git a/tables.go b/tables.go
index c4c97b9..ad39396 100644
--- a/tables.go
+++ b/tables.go
@@ -144,13 +144,18 @@ func makeChatTable(chatMap map[string]models.Chat) *tview.Table {
return
}
// Reload card from disk
+ newCard := &models.CharCard{}
newCard, err := pngmeta.ReadCard(cc.FilePath, cfg.UserRole)
if err != nil {
logger.Error("failed to reload charcard", "path", cc.FilePath, "error", err)
- if err := notifyUser("error", "failed to reload card: "+cc.FilePath); err != nil {
- logger.Warn("failed to notify", "error", err)
+ newCard, err = pngmeta.ReadCardJson(cc.FilePath)
+ if err != nil {
+ logger.Error("failed to reload charcard", "path", cc.FilePath, "error", err)
+ if err := notifyUser("error", "failed to reload card: "+cc.FilePath); err != nil {
+ logger.Warn("failed to notify", "error", err)
+ }
+ return
}
- return
}
// Update sysMap with fresh card data
sysMap[agentName] = newCard