This website requires JavaScript.
000b3c0b10
fix: tag save blocks browser — capture 'this' before fetch (then callback 'this' is window, causing infinite loop)
main
yumoqing
2026-08-06 16:06:43 +08:00
26c8d6b77a
fix: save_tags return empty — fetch URL missing _webbricks_=1 (dspy returns HTML without it)
yumoqing
2026-08-06 15:55:10 +08:00
fb706f72d9
bugfix
yumoqing
2026-08-06 14:59:55 +08:00
bbf5b5f257
fix: tag save — close popup + location.reload (PopupWindow.clear_widgets breaks popup)
yumoqing
2026-08-06 14:45:26 +08:00
87ce210b58
fix: save_tags shows close button to dismiss popup after result
yumoqing
2026-08-06 14:37:11 +08:00
13b36df084
fix: tag save → backend save_tags.dspy returns widget, replaces popup content (no reload)
yumoqing
2026-08-06 14:14:42 +08:00
ee0a563e92
fix: KB card buttons stick to bottom via filler; tag save uses reload instead of fragile DOM refresh
yumoqing
2026-08-06 14:09:30 +08:00
e2d17b630b
fix: rename form use 'value' not 'defaultValue' for Form pre-fill
yumoqing
2026-08-06 13:57:05 +08:00
14c72e29d7
fix: index.ui new_kb_form URL missing /rag/ prefix → use relative path
yumoqing
2026-08-06 13:55:35 +08:00
09336b3c10
fix: tag_list_panel use cheight instead of filler for proper scrolling
yumoqing
2026-08-06 13:51:57 +08:00
861cf0af19
fix: all popups close before action (rename, delete, tags)
yumoqing
2026-08-06 13:48:51 +08:00
017500e147
fix: storage_stats join knowledge_bases for org-consistent doc count; clean orphaned docs
yumoqing
2026-08-06 13:44:57 +08:00
70f8f27abb
fix: kb_list only show org KBs (no NULL); tag_form close popup before refresh (remove alert)
yumoqing
2026-08-06 13:40:30 +08:00
7b99ebd16e
fix: add import os in delete_kb; kb_list org filter + DynamicColumn layout
yumoqing
2026-08-06 13:37:30 +08:00
52bdc7ce40
fix: delete_kb returns urlwidget (not JSON), so bricks can render redirect to index.ui
yumoqing
2026-08-05 19:03:14 +08:00
d9e1e77341
refactor: delete KB uses PopupWindow confirm form instead of JS confirm (no inline script)
yumoqing
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
yumoqing
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
yumoqing
2026-08-05 17:40:35 +08:00
ce457babe7
fix: rename_kb returns json.dumps; delete btn uses pre-computed safe_name
yumoqing
2026-08-05 17:30:39 +08:00
e1f0c406ac
fix(kb): escape namestr with json.dumps in delete button JS to prevent SyntaxError
yumoqing
2026-08-05 17:15:13 +08:00
5de0a87708
fix(kb): rename 403 (Jinja->Python), delete JS error (stopPropagation), card click restore
yumoqing
2026-08-05 16:57:08 +08:00
37fc233df2
fix: handle NULL org_id in rename/delete KB handlers (OR org_id IS NULL)
yumoqing
2026-08-05 16:46:16 +08:00
8f1f75c947
feat(kb): add rename and delete knowledge base
yumoqing
2026-08-05 16:27:32 +08:00
1dd59f7caa
feat(tags): multi-select tag list + dedup create + tag_sync endpoint
yumoqing
2026-08-05 15:36:44 +08:00
371afae84a
fix: file list action buttons spacing 6px->14px; drop analysis button; legacy /api/doc/upload now saves via FileStorage (flat files/ layout caused 404)
yumoqing
2026-08-05 12:17:25 +08:00
267fd276c5
fix: escape literal % in LIKE patterns (aiomysql %-format conflict -> TypeError)
yumoqing
2026-08-05 11:55:18 +08:00
3cb591ed92
feat: detail.ui face/voiceprint media card popups (DynamicColumn, image/audio playback) + tag buttons on cards and file list rows (tag_form.dspy -> add_tag.dspy, refresh media panel)
yumoqing
2026-08-05 10:55:50 +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
yumoqing
2026-08-04 16:14:45 +08:00
548fc6013e
feat: per-org storage quota enforcement — org_storage_limits table, upload rejection, UI display
yumoqing
2026-08-04 15:36:53 +08:00
f160589370
bugfix
yumoqing
2026-08-04 14:40:18 +08:00
020c84bdfc
bugfix
yumoqing
2026-08-04 14:34:10 +08:00
0bd425a2aa
feat: put search results in VScrollPanel with filler layout (no fixed height)
yumoqing
2026-08-04 14:04:07 +08:00
7993b186da
fix: stop double-encoding keyword - pass raw value as httpcall params (CRUD style); defensive unquote fallback in dspy for legacy cached UI
yumoqing
2026-08-04 11:33:52 +08:00
dfad26d3c7
feat: hybrid search - add keyword LIKE recall merged with vector results, mark kw hits
yumoqing
2026-08-03 19:19:32 +08:00
bd03743c6f
fix: use resultValue() not getValue() for kb selector - getValue returns object, broke kb_id in URL
yumoqing
2026-08-03 18:52:34 +08:00
2d4ff6a19f
debug: log incoming params_kw in search_result.dspy
yumoqing
2026-08-03 18:34:50 +08:00
84448259e2
fix: GPU URLs need :10443, create VDB collection before upsert, align VDB id with chunk id
yumoqing
2026-08-03 17:02:06 +08:00
598f5c5c23
sync: add batch_ingest.dspy from test env
yumoqing
2026-08-03 10:40:25 +08:00
8ab8987776
chore: remove debug traces from upload_file.dspy
yumoqing
2026-07-31 18:59:15 +08:00
5bf3ef3822
trace: check if DBPools blocks in background task
yumoqing
2026-07-31 18:56:51 +08:00
2f7acc8120
debug: trace background_reco execution in upload_file.dspy
yumoqing
2026-07-31 18:53:31 +08:00
8dad4e9b5e
feat: async upload — return immediately, ingest in background
yumoqing
2026-07-31 18:17:47 +08:00
cdc02e31e4
fix: search.ui - call buildUrlwidgetHandler result to actually fire HTTP request
yumoqing
2026-07-31 16:35:10 +08:00
7792aa913e
fix: search.ui - code→UiCode widgettype + bricks.app.root→this.parent for urlwidget sub-page
yumoqing
2026-07-31 16:14:53 +08:00
7badd6e683
fix: search.ui getWidgetById 用 this 替代 bricks.app.root
yumoqing
2026-07-31 15:48:55 +08:00
a644e41de3
fix: search.ui buildUrlwidgetHandler 参数顺序错误导致 TypeError
yumoqing
2026-07-31 15:04:43 +08:00
0cb6f34135
fix: search_result.dspy 用 StreamHttpClient + try/except 替代裸 aiohttp
yumoqing
2026-07-31 14:59:18 +08:00
0d6acfb4ef
feat: analysis cards with face/voiceprint results + tag system
yumoqing
2026-07-31 14:58:21 +08:00
9b3cfb86c0
refactor: 用 StreamHttpClient 替代 aiohttp — DSPY 预置全局变量
yumoqing
2026-07-31 13:45:42 +08:00
848644f229
fix: import aiohttp — 原代码所有 aiohttp 调用被 except:pass 静默吞掉 NameError
yumoqing
2026-07-31 13:31:52 +08:00
d92275d811
fix: actually remove unused var tree in detail.ui
yumoqing
2026-07-30 18:25:16 +08:00
df8d220308
fix: return type consistency + textAlign→halign + remove unused var (Agent 2 review)
yumoqing
2026-07-30 18:24:04 +08:00
1cb82b912d
add text extraction for PDF/DOCX/PPTX/XLSX and MP4 keyframe CLIP embedding in upload_file.dspy
yumoqing
2026-07-30 18:06:26 +08:00
c6110522c1
fix: root folder upload __root__ → empty string
yumoqing
2026-07-30 18:00:00 +08:00
5b1fb8e564
fix: try/except around DB queries (Agent 2 review)
yumoqing
2026-07-30 17:43:18 +08:00
a440887028
fix: search bind passes {options:{url:...}} to buildUrlwidgetHandler
yumoqing
2026-07-30 17:28:30 +08:00
448645b0e2
fix: delete reloads file_list.dspy instead of delete response
yumoqing
2026-07-30 17:13:58 +08:00
89cb31897b
fix: restore col widths + absolute delete URL + _webbricks_=1
yumoqing
2026-07-30 17:04:49 +08:00
5ec01c3b18
fix: restore tree root node (📁 根目录)
yumoqing
2026-07-30 16:55:19 +08:00
8e1ef924e5
fix: download URL /idfile prefix, delete uses fetch, filename left-aligned
yumoqing
2026-07-30 16:17:20 +08:00
40cf8f3291
fix: int(total_size) + json.dumps default=str (Agent 2 review)
yumoqing
2026-07-30 16:02:53 +08:00
eaa8d37816
fix: storage stats use int for doc/chunk counts
yumoqing
2026-07-30 15:48:58 +08:00
f968f9f578
feat: dynamic storage stats display via storage_stats.dspy
yumoqing
2026-07-30 15:45:07 +08:00
f63f742f8e
fix: restore del_url line in file_list.dspy
Hermes
2026-07-30 15:06:20 +08:00
c1a8f1643a
fix: download URL uses file_path directly (/idfile/{id}.{ext})
Hermes
2026-07-30 14:49:19 +08:00
908480f35e
fix: file_url uses file_path directly with /idfile prefix
Hermes
2026-07-30 14:24:49 +08:00
eed6da7667
fix: file download/view URL uses /idfile/{doc_id}.{ext}
Hermes
2026-07-30 14:20:22 +08:00
f06063c0b5
fix: search page — use script bind to avoid datawidget crash
Hermes
2026-07-30 13:55:06 +08:00
a481130810
feat: search page + KB selector + file upload, pipeline module
Hermes
2026-07-30 13:53:17 +08:00
bd66e00a7a
fix: use env.save_file/realpath instead of importing FileStorage in DSPY
yumoqing
2026-07-30 10:38:06 +08:00
3f3743842e
fix: use FileStorage for upload/delete — hashed paths /idfile/191/193/197/97/xxx.txt
yumoqing
2026-07-29 18:15:06 +08:00
c14588f33b
fix: file list truncation+tooltip, fixed column widths, view/download/delete fix
yumoqing
2026-07-29 17:14:38 +08:00
0385670e38
fix: restore detail.ui with upload zone + upload_file.dspy
yumoqing
2026-07-29 16:59:58 +08:00
224496ae0e
fix: file_list alignment + view/download/delete actions
yumoqing
2026-07-29 16:41:32 +08:00
ac75d75ec4
fix: detail.ui restore tree + file_list.dspy with node_selected bind
Hermes
2026-07-28 15:07:07 +08:00
c2f0d4e8a7
fix: detail.ui sidebar overflow hidden — prevent tree nodes from expanding menu width
yumoqing
2026-07-27 18:51:19 +08:00
850e96e0ea
feat: uapi-based unified search with text+media, multi-KB, rerank
yumoqing
2026-07-27 14:08:47 +08:00
f494eaa686
feat: uapi-based RAG ingest pipeline + improved delete cleanup
yumoqing
2026-07-27 13:49:41 +08:00
50b2e35e7b
feat: replace hardcoded VDB/Graph calls with uapi-based async functions
yumoqing
2026-07-27 12:10:28 +08:00
fbba95e683
fix: /rag/ prefix in all module URLs
yumoqing
2026-07-24 14:34:36 +08:00
0712856f09
add pyproject.toml
yumoqing
2026-07-24 13:48:13 +08:00
e2c70c23c1
clean: remove conf directory
yumoqing
2026-07-24 13:45:39 +08:00
5664508234
fix: wwwroot/json/models/conf at repo root (Sage module convention)
yumoqing
2026-07-24 13:39:39 +08:00
8bef57b89e
fix: move code into rag/ subpackage for find_packages()
yumoqing
2026-07-24 13:36:54 +08:00
796df405b4
fix: move CRUD json to json/, keep models/ for DB defs
yumoqing
2026-07-24 13:35:13 +08:00
93fa95ea69
fix: rename init_ragserver → init_rag_module
yumoqing
2026-07-24 13:26:57 +08:00
84f3d6e284
init: RAG business module
yumoqing
2026-07-24 13:24:20 +08:00