10 Commits

Author SHA1 Message Date
70f8f27abb fix: kb_list only show org KBs (no NULL); tag_form close popup before refresh (remove alert) 2026-08-06 13:40:30 +08:00
7b99ebd16e fix: add import os in delete_kb; kb_list org filter + DynamicColumn layout 2026-08-06 13:37:30 +08:00
d9e1e77341 refactor: delete KB uses PopupWindow confirm form instead of JS confirm (no inline script) 2026-08-05 18:20:23 +08:00
ee4bf7548a fix: delete script — assign JSON-safe name to JS var, no \n in string, no inline concat 2026-08-05 18:12:27 +08:00
c0c5ba831f fix: escape KB name directly for JS single-quoted string, bypassing json.dumps double-quote entanglement 2026-08-05 17:40:35 +08:00
ce457babe7 fix: rename_kb returns json.dumps; delete btn uses pre-computed safe_name 2026-08-05 17:30:39 +08:00
e1f0c406ac fix(kb): escape namestr with json.dumps in delete button JS to prevent SyntaxError
Root cause: namestr directly concatenated into JS confirm() string broke
when KB name contained quotes or special chars. The SyntaxError prevented
event.stopPropagation() from executing, which caused the card click to
also fire (navigating to detail.ui).
2026-08-05 17:15:13 +08:00
5de0a87708 fix(kb): rename 403 (Jinja->Python), delete JS error (stopPropagation), card click restore
- rename_kb_form.dspy: {{entire_url(...)}} Jinja syntax invalid in .dspy, use Python entire_url()
- kb_list.dspy: card VBox click restored (navigates to detail.ui)
- rename button: add event.stopPropagation() script before urlwidget
- delete button: add event.stopPropagation(), use json.dumps for namestr safety
2026-08-05 16:57:08 +08:00
8f1f75c947 feat(kb): add rename and delete knowledge base
- kb_list.dspy: add per-card rename (popup form) and delete (confirm+cascade) buttons
- rename_kb_form.dspy: popup form with name + description fields
- rename_kb.dspy: UPDATE knowledge_bases handler
- delete_kb.dspy: cascade delete (docs, chunks, media_tags, tags, files) handler
2026-08-05 16:27:32 +08:00
6878b58c95 refactor: kb cards via module-local kb_list.dspy (drop /api/kb/list dep); detail.ui file list -> filler+VScrollPanel no fixed height 2026-08-04 16:14:45 +08:00