summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGrail Finder <wohilas@gmail.com>2026-03-08 08:50:50 +0300
committerGrail Finder <wohilas@gmail.com>2026-03-08 08:50:50 +0300
commite0201886f80528790c3a05864da66bafdf07f9d8 (patch)
tree8af44a14ad3ea69e3df570b4542caf3d98b33ed6
parent5b175c12a63099525444ab455b333c8a6579bd78 (diff)
Enha (rag): keep page open until user closes it
-rw-r--r--rag/rag.go2
-rw-r--r--tables.go31
-rw-r--r--tui.go1
3 files changed, 20 insertions, 14 deletions
diff --git a/rag/rag.go b/rag/rag.go
index 3db4303..e47e3d6 100644
--- a/rag/rag.go
+++ b/rag/rag.go
@@ -24,7 +24,7 @@ const ()
var (
// Status messages for TUI integration
LongJobStatusCh = make(chan string, 100) // Increased buffer size for parallel batch updates
- FinishedRAGStatus = "finished loading RAG file; press Enter"
+ FinishedRAGStatus = "finished loading RAG file; press x to exit"
LoadedFileRAGStatus = "loaded file"
ErrRAGStatus = "some error occurred; failed to transfer data to vector db"
)
diff --git a/tables.go b/tables.go
index baa1c36..5042c7c 100644
--- a/tables.go
+++ b/tables.go
@@ -243,11 +243,9 @@ func makeRAGTable(fileList []string, loadedFiles []string) *tview.Flex {
for _, f := range loadedFiles {
loadedSet[f] = true
}
-
// Build merged list: files from ragdir + orphaned files from DB
ragFiles := make([]ragFileInfo, 0, len(fileList)+len(loadedFiles))
seen := make(map[string]bool)
-
// Add files from ragdir
for _, f := range fileList {
ragFiles = append(ragFiles, ragFileInfo{
@@ -258,7 +256,6 @@ func makeRAGTable(fileList []string, loadedFiles []string) *tview.Flex {
})
seen[f] = true
}
-
// Add orphaned files (in DB but not in ragdir)
for _, f := range loadedFiles {
if !seen[f] {
@@ -376,7 +373,6 @@ func makeRAGTable(fileList []string, loadedFiles []string) *tview.Flex {
}
errCh := make(chan error, 1) // why?
go func() {
- defer pages.RemovePage(RAGPage)
for {
select {
case err := <-errCh:
@@ -417,7 +413,6 @@ func makeRAGTable(fileList []string, loadedFiles []string) *tview.Flex {
}
return
}
- // defer pages.RemovePage(RAGPage)
tc := fileTable.GetCell(row, column)
tc.SetTextColor(tcell.ColorRed)
fileTable.SetSelectable(false, false)
@@ -430,7 +425,6 @@ func makeRAGTable(fileList []string, loadedFiles []string) *tview.Flex {
f := ragFiles[row-1]
// Handle "-" case (orphaned file with no delete option)
if tc.Text == "-" {
- pages.RemovePage(RAGPage)
return
}
switch tc.Text {
@@ -441,14 +435,14 @@ func makeRAGTable(fileList []string, loadedFiles []string) *tview.Flex {
if err := ragger.LoadRAG(fpath); err != nil {
logger.Error("failed to embed file", "chat", fpath, "error", err)
showToast("RAG", "failed to embed file; error: "+err.Error())
- app.QueueUpdate(func() {
- pages.RemovePage(RAGPage)
- })
return
}
showToast("RAG", "file loaded successfully")
app.QueueUpdate(func() {
pages.RemovePage(RAGPage)
+ loadedFiles, _ := ragger.ListLoaded()
+ chatRAGTable := makeRAGTable(fileList, loadedFiles)
+ pages.AddPage(RAGPage, chatRAGTable, true, true)
})
}()
return
@@ -458,14 +452,14 @@ func makeRAGTable(fileList []string, loadedFiles []string) *tview.Flex {
if err := ragger.RemoveFile(f.name); err != nil {
logger.Error("failed to unload file from RAG", "filename", f.name, "error", err)
showToast("RAG", "failed to unload file; error: "+err.Error())
- app.QueueUpdate(func() {
- pages.RemovePage(RAGPage)
- })
return
}
showToast("RAG", "file unloaded successfully")
app.QueueUpdate(func() {
pages.RemovePage(RAGPage)
+ loadedFiles, _ := ragger.ListLoaded()
+ chatRAGTable := makeRAGTable(fileList, loadedFiles)
+ pages.AddPage(RAGPage, chatRAGTable, true, true)
})
}()
return
@@ -476,6 +470,19 @@ func makeRAGTable(fileList []string, loadedFiles []string) *tview.Flex {
return
}
showToast("chat deleted", fpath+" was deleted")
+ app.QueueUpdate(func() {
+ pages.RemovePage(RAGPage)
+ newFileList, _ := os.ReadDir(cfg.RAGDir)
+ loadedFiles, _ := ragger.ListLoaded()
+ var newFiles []string
+ for _, f := range newFileList {
+ if !f.IsDir() {
+ newFiles = append(newFiles, f.Name())
+ }
+ }
+ chatRAGTable := makeRAGTable(newFiles, loadedFiles)
+ pages.AddPage(RAGPage, chatRAGTable, true, true)
+ })
return
default:
pages.RemovePage(RAGPage)
diff --git a/tui.go b/tui.go
index 482050a..04ce38e 100644
--- a/tui.go
+++ b/tui.go
@@ -50,7 +50,6 @@ var (
helpPage = "helpPage"
renamePage = "renamePage"
RAGPage = "RAGPage"
- RAGLoadedPage = "RAGLoadedPage"
propsPage = "propsPage"
codeBlockPage = "codeBlockPage"
imgPage = "imgPage"