summaryrefslogtreecommitdiff
path: root/tables.go
diff options
context:
space:
mode:
Diffstat (limited to 'tables.go')
-rw-r--r--tables.go31
1 files changed, 19 insertions, 12 deletions
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)