5 Commits

Author SHA1 Message Date
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