Administrator
7d8656bfde
fix xdfx task start context recovery
2026-06-29 17:45:46 +08:00
Administrator
b0db8cc3d8
feat: 优化定时任务 Markdown 阅读页
2026-06-29 17:08:38 +08:00
Administrator
0c663f5f7c
Merge remote-tracking branch 'origin/master' into ji-dev
2026-06-29 16:43:45 +08:00
Administrator
d39b58255d
并发版
2026-06-29 16:09:51 +08:00
Administrator
cd2ca406a5
Merge branch 'master-dev' into ji-dev
2026-06-29 15:12:24 +08:00
Administrator
637be00946
feat: improve agent skill selection
2026-06-29 15:09:27 +08:00
Administrator
0dd93421c4
feat: enhance public task markdown preview
2026-06-29 14:42:47 +08:00
Administrator
e27321cb23
feat: enhance public task markdown preview
2026-06-29 14:40:26 +08:00
Administrator
2d3033434b
Fix async thread title generation flow
2026-06-28 18:09:48 +08:00
Administrator
d522498cc9
ji
2026-06-28 00:23:01 +08:00
Administrator
a046d19ce1
fix: improve model concurrency limiting
2026-06-27 18:57:01 +08:00
Administrator
aca089e8ef
feat: add per-model concurrency limits
2026-06-27 18:57:01 +08:00
Administrator
6fdca41a1d
Merge branch 'ji' into master
2026-06-27 15:13:45 +08:00
Administrator
c978a25b7f
Fix 3qfx task context fallback
2026-06-27 15:12:28 +08:00
Administrator and Claude Opus 4.8
5f01e8dd03
feat(message-token-usage): 速度条图例按当前速度只显示对应颜色
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-25 20:29:26 +08:00
Administrator and Claude Opus 4.8
fe7c6cb8f7
feat(open-3qfx): 开放接口按 taskId 直接发起 3qfx 第一次问答
...
新增 POST /api/open/3qfx/ask(无需登录,/api/open/ 白名单 + CSRF 豁免):
只传一个 taskId,后端解析 3Q 业务配置的智能体 + 按 id 拉取 cop-task-detail
拼出与前端一致的开场白,新建带 metadata.{taskId,agent_id} 的真实会话并后台
启动持久化运行,立即返回 thread_id(随后在 3qfx 任务工作区对话列表观看)。
- start_run() 增加 keyword-only enforce_access(默认 True);开放接口传 False
绕过按当前(无)登录用户的智能体可见性校验
- task_deeplink 配置新增 cop_task_detail_url / _authorization / _test + mock
- tests/test_open_3qfx.py(10 项,tests/ 被 .gitignore 故未入库)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-25 19:19:17 +08:00
Administrator and Claude Opus 4.8
d35d121261
feat(auth): 登录白名单也拦「接口问答」(已登录的 run 接口按用户放行)
...
开关开启时,未放行用户(非 admin)即便持旧 token,直接调发起问答的 run 接口
(/api/threads/{id}/runs[/stream|/wait]、/api/runs/{stream|wait})也返回 403,
不止拦登录。在 AuthMiddleware 解析出 user 后仅对问答 run 请求复用
enforce_user_approved;GET 列表/join/cancel/feedback 及普通浏览不受影响;
内部/渠道调用与无鉴权 /api/open/chat 不在此范围。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-25 17:37:47 +08:00
Administrator
0aa55eb333
Merge branch 'ji' of http://192.168.0.200/knowledge-base-bj/deerflow-server into ji
2026-06-25 16:09:51 +08:00
Administrator and Claude Opus 4.8
1d1ab384ef
feat(auth): 登录白名单(注册后管理员审批放行 + 全局开关)
...
用户仍可自助注册,普通账号默认 approved=False(待审批),admin 建号即 True;
存量用户迁移回填 True 避免锁死。系统设置 login_whitelist.enabled 总开关:关=
所有人可登录,开=仅已放行用户(或 admin)可登录。三登录端点建号后、发 token 前
经 enforce_user_approved 拦截,未放行返回 403 PENDING_APPROVAL。管理员在「白名单
管理」页(设置下拉入口)切总开关 + 逐用户放行。取消放行只拦下次登录。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-25 16:09:38 +08:00
Administrator and Claude Opus 4.8
acc29c8121
fix(middlewares): 标题模型推理不再泄漏到 UI 流 + open/ephemeral 会话避免无谓 DB 访问
...
- title: 标题模型用隔离 config(不继承父级 streaming callbacks),force_disable_thinking,<think> 块清洗,避免推理 token 进入实时流/运行日志
- uploads: 无文件的普通对话轮次直接跳过,不再解析线程归属(避免命中 DB)
- thread_data: ephemeral 会话用当前登录用户解析数据目录
- thread_paths: open-/__skill-review__ 等合成线程视为 local-only,直接用当前用户
- frontend: 新增 build:test 构建脚本
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-24 21:20:12 +08:00
Administrator
4fc3d7dae2
Merge remote-tracking branch 'origin/master' into ji
2026-06-23 20:57:01 +08:00
Administrator
6f0f9fb1fc
Merge branch 'ji' of http://192.168.0.200/knowledge-base-bj/deerflow-server into ji
...
# Conflicts:
# CLAUDE.md
2026-06-23 20:52:39 +08:00
Administrator and Claude Opus 4.8
df9c59e21c
feat(y-log): 问答按 LLM 调用各记一条 + 全量补齐各 API 操作埋点
...
- 问答日志从「每轮 onFinish 一条」改为 useThreadStream onLangChainEvent
监听 on_chat_model_end,每次大模型调用结束各上报一条(含子代理)
- 广覆盖各 API client 成功路径:查看(view)/查询(search)/新增(create)/
编辑(edit)/删除(delete)/启停(enabled·disabled)/导入导出,补齐此前
整模块零埋点与漏掉的单条详情 GET;跳过高频 typeahead/轮询/bootstrap
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-23 20:42:54 +08:00
Administrator and Claude Opus 4.8
6131eda219
feat(y-log): 问答按 LLM 调用各记一条 + 全量补齐各 API 操作埋点
...
- 问答日志从「每轮 onFinish 一条」改为 useThreadStream onLangChainEvent
监听 on_chat_model_end,每次大模型调用结束各上报一条(含子代理)
- 广覆盖各 API client 成功路径:查看(view)/查询(search)/新增(create)/
编辑(edit)/删除(delete)/启停(enabled·disabled)/导入导出,补齐此前
整模块零埋点与漏掉的单条详情 GET;跳过高频 typeahead/轮询/bootstrap
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-23 20:41:07 +08:00
Administrator
053d3e300e
Merge branch 'ji' into master (操作日志 Y-Log 上报)
...
# Conflicts:
# CLAUDE.md
2026-06-23 19:22:53 +08:00
Administrator and Claude Opus 4.8
d2be3b206d
feat(y-log): 操作日志上报(前端直连 + 后端公开只读下发地址)
...
- 后端新增 y_log 公开只读配置:YLogConfig + AppConfig.y_log +
GET /api/public/config/y-log,地址写在 config.yaml(mtime 热重载)
- 前端核心 src/core/log/:writeYLog(双门控/异步即发即忘/永不抛错/
去ip-host/对象序列化裁剪/optResult恒0)+ 配置加载 + token1 隔离存取
- 登录(token)持久化 token1 并报登录、登出先报后清;启动预热配置
- 各 API client 成功路径埋点:敏感词/菜单/按钮/技能地址/轻应用、
会商草稿+任务草稿+后台任务、智能体/定时任务/知识库、Word导出,
以及问答完成钩子(ChatPage/AgentChatPage onFinish)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-23 17:46:08 +08:00
Administrator
593daa91ec
Merge branch 'ji' into master
2026-06-19 15:43:23 +08:00
Administrator
4b2a93a542
Merge branch 'ji' into master
...
合并 md/产物按对话创建者解析路径修复(切换账号找不到文件)与 master 现有前端改动。
2026-06-19 14:39:54 +08:00
Administrator and Claude Opus 4.8
23e6685977
fix(task-deeplink): 共享任务对话的 md/产物按对话创建者解析路径,修复切换账号后找不到文件
...
xdfx/rwfx/3qfx 任务深链对话按 metadata.taskId 全局共享、不区分用户,但生成的
md/artifacts 与上传文件物理存在 users/{user_id}/threads/{thread_id}/ 下,user_id
之前取当前登录账号。导致 A 账号生成的文件,B 账号打开同一共享对话时后端去
users/B/ 找 → 404「找不到」。
新增 deerflow/runtime/thread_paths.py(resolve_path_user_id /
aresolve_path_user_id):带 taskId 的共享对话统一解析到对话创建者
(threads_meta.user_id),个人对话仍走当前登录(行为不变)。在所有线程文件路径关口替换:
写入源 ThreadDataMiddleware、present_files、uploads(manager+middleware+router)、
产物读写(path_utils → artifacts/skills router)、嵌入式 client.get_artifact。
正向结果进程内缓存;无 DB/内存态/无行均安全回退到当前登录。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-19 14:35:22 +08:00
Administrator and Claude Opus 4.8
f762a76ecf
feat: 任务工作区 UI 细化(底部按钮主题色/左上业务名/右侧智能体信息默认收起/xdfx目的弹框按行动id解析)
...
- 底部「快捷跳转」按钮改用主题色 var(--color-main)(随红/蓝主题自适配),hover 用 --brand-950
- 三个工作区左上角标明当前分析页面(任务分析/三情分析/行动分析)
- 进入任务工作区(taskGate/taskBind)时右侧「智能体信息」面板默认收起(AgentDetailPanel defaultCollapsed)
- xdfx「弹框查看」目的树:先用行动id换回任务id 再查(TaskPurposeDialog resolveFromActionId);
仅深链原始行动id(≠任务id)时触发,切换业务进入不误解析
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-18 16:19:02 +08:00
Administrator and Claude Opus 4.8
095469b8a9
feat: 任务深链对话(metadata.taskId)全局共享、不区分用户
...
任务工作区(rwfx/3qfx/xdfx)的对话改为按 taskId(+agent_id) 全局共享、跨用户可见可续聊,
不再按创建者隔离;普通个人对话仍按 owner 隔离不变。
- ThreadMetaStore.search/count:metadata 含 taskId 时跳过 owner 过滤(SQL+Memory)
- check_access / _check_ownership / update_metadata / delete / _get_owned_record:
行 metadata 含 taskId 时视为共享,任何登录用户可读/写/续聊/改标题状态/删除
- 覆盖 require_permission(owner_check) + runs 续聊 owner 校验 + 列表
- 测试 tests/test_thread_meta_task_sharing.py(SQL 跨用户可见/隔离/check_access)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-18 15:54:51 +08:00
Administrator and Claude Opus 4.8
16afa9bcbb
feat: 任务工作区可配置跳转按钮(按钮管理) + 底部快捷跳转栏 + 目的树收起/空自动问答
...
- 新增「按钮管理」admin 页(/admin/task-buttons):按业务(rwfx/3qfx/xdfx)配置跳转按钮,
支持改名称/类型(外链·切换业务·目的树弹框)/目标/追加参数名(id·task_id)/任务id·行动id/启停/排序
- 跳转按钮从左侧栏移到工作区底部「快捷跳转」栏:红底白字、靠右、变大;rwfx 历史 4 按钮纳入配置
- 后端新增全局共享 store /api/task-buttons (table task_buttons,admin 整体替换)
- xdfx 行动id/任务id:登录暂存原始行动id,按钮可选追加任一;id 参数名可自定义
- rwfx 清除记录移到「新建对话」下、去掉任务操作框;查询任务目的为空时自动发第一次问答
- 目的树面板默认收起;「弹框查看」抽成可复用 TaskPurposeDialog,可作为按钮配置到任意页面
- 文档(根/后端 CLAUDE.md) + 后端测试 tests/test_task_buttons.py
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-18 15:41:05 +08:00
Administrator
bb2e896fba
Merge branch 'ji' of http://192.168.0.200/knowledge-base-bj/deerflow-server into ji
2026-06-17 17:37:48 +08:00
Administrator and Claude Opus 4.8
0dca637645
style: 任务FX工作区操作区从右下角浮层移入左侧任务栏底部
...
- TaskFloatingActions 重命名为 TaskActionsPanel,挂到对话列表底部
- 不再 absolute 覆盖右侧聊天输入框;编辑/下一步/清除记录改为操作卡片
- 左侧栏样式增强(标题/会话数/选中态高亮)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 17:37:35 +08:00
Administrator and Claude Opus 4.8
ba0ec20532
chore: .env.development 也开启 cop-task-detail mock(VITE_MOCK_COP_TASK_DETAIL=true)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 16:10:57 +08:00
Administrator and Claude Opus 4.8
138a5adb1c
chore: 前端 cop-task-detail 走 mock + 后端 task_deeplink 同步到 backend/config.yaml
...
- frontend-web/.env.production: VITE_MOCK_COP_TASK_DETAIL=true(consumer 外网不可达,登录深链任务详情走本地假数据)
- backend/config.yaml: 补上 task_deeplink 段(test/delete_test=true 走 mock),与外层 config.yaml 对齐;服务器实际加载的是 backend/config.yaml,否则 /api/public/config/task-deeplink 返回空导致 rwfx 目的树闸门失效
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-17 16:08:54 +08:00
Administrator and Claude Opus 4.8
5b610fd807
feat: 上下文压缩支持状态持久化缓存,前端过滤隐藏消息
...
- summarization_middleware 摘要缓存写入 LangGraph thread state,跨进程/重启可复用
- 摘要消息改为 SystemMessage,提示模型静默使用、不泄露
- thread_state 新增 context_summary_cache 字段
- app_config 加载时记录 summarization 配置日志
- config.yaml 压缩触发/保留阈值调整为生产值(token 预算)
- 前端 input-box / message-list 过滤 hide_from_ui 消息
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-16 22:16:06 +08:00
Administrator
b380575f16
Merge remote-tracking branch 'origin/master' into ji
...
# Conflicts:
# frontend-web/src/core/page-layout/sidebar-menu.ts
# frontend-web/src/core/system-settings/api.ts
# frontend-web/src/core/system-settings/hooks.ts
# frontend-web/src/strategy-components/Header.tsx
# offline-backend-20260512/backend/CLAUDE.md
# offline-backend-20260512/backend/app/gateway/routers/system_settings.py
# offline-backend-20260512/backend/packages/harness/deerflow/config/system_settings.py
# offline-backend-20260512/backend/scripts/sql/column_additions_mysql.sql
2026-06-16 20:01:42 +08:00
Administrator and Claude Opus 4.8
c21a1127f8
feat: 提炼模板弹窗加宽,后端配置上下文压缩测试值
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-16 19:50:33 +08:00
Administrator
6a71272b79
Merge remote-tracking branch 'origin/master' into ji
2026-06-12 18:48:20 +08:00
Administrator
b9b55b4e5b
fix: 调整提问导航悬浮索引到右侧居中
2026-06-12 18:48:18 +08:00
Administrator
e74ef4b7dc
Merge branch 'ji' into master
2026-06-12 18:28:13 +08:00
Administrator
2862eee33b
chore: 提交本地修改
2026-06-12 18:09:07 +08:00
Administrator and Claude Opus 4.8
da677f87d5
feat: 公开页背景色支持 iframe 外部配置 + CM助手旁排行榜入口
...
- 新增 usePublicBackground:公开页(排行榜/分享/会商分享/计划任务)支持
嵌套方通过 ?bg=/?text= 查询参数或 postMessage 覆盖背景/文字色
- Header 左上角 CM助手 旁新增「排行榜」按钮,新标签打开公开排行榜页
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-12 12:21:25 +08:00
Administrator
1b86373a54
feat: 知识库标签/实体关联跳转 + 会话重连容错
...
前端:
- Wiki 标签与实体改为可点击,弹出 RelatedNotesDialog 查看关联知识
- 知识库首次进入自动打开最近笔记,避免空白阅读区
- 流式重连识别 "Run not found",清理 sessionStorage 残留 key 并静默回退历史
后端:
- 线程鉴权区分 not found / not accessible,并支持 DB 切换产生的孤儿线程认领
- run 查询/join 在内存未命中时回退持久化存储,重启后返回干净的终止 SSE 而非 404
2026-06-11 23:19:09 +08:00
Administrator and Claude Opus 4.8
e97017b297
feat(agents): 智能体常用问题——侧边栏展示并一键提问
...
新增 common_questions(常用问题)字段:后端贯通 agents_config、
config.yaml 读写与 create/update API,前端 Agent 类型补充字段并在
AgentChatPage 新增 AgentInfoSidebar 组件展示常用问题,点击即填充并提交。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-11 08:34:39 +08:00
Administrator and Claude Opus 4.8
22222308a1
feat(summarization): 非破坏性上下文压缩——保留原始对话仅在请求时瞬态压缩
...
重写 DeerFlowSummarizationMiddleware:将 stock before_model 的
RemoveMessage(REMOVE_ALL_MESSAGES) 改为 no-op,改在 wrap_model_call 中
瞬态压缩为 [summary, *recent],完整原始对话仍保留在 state 中,前端继续
渲染用户真实问答。summary 消息标记 hide_from_ui 且永不持久化,按 thread
缓存以避免每次模型调用都触发 LLM。前端 isHiddenFromUIMessage 额外隐藏旧
版本持久化的 name="summary" 消息。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-11 08:34:28 +08:00
Administrator
7fb3870247
@
...
feat(summarization): 非破坏性上下文压缩——保留原始对话仅在请求时瞬态压缩
重写 DeerFlowSummarizationMiddleware:将 stock before_model 的
RemoveMessage(REMOVE_ALL_MESSAGES) 改为 no-op,改在 wrap_model_call 中
瞬态压缩为 [summary, *recent],完整原始对话仍保留在 state 中,前端继续
渲染用户真实问答。summary 消息标记 hide_from_ui 且永不持久化,按 thread
缓存以避免每次模型调用都触发 LLM。前端 isHiddenFromUIMessage 额外隐藏旧
版本持久化的 name="summary" 消息。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
@
2026-06-11 08:34:09 +08:00
Administrator
87e0ae683e
Merge remote-tracking branch 'origin/master' into ji
...
# Conflicts:
# offline-backend-20260512/backend/app/gateway/app.py
# offline-backend-20260512/backend/config.yaml
# offline-backend-20260512/backend/packages/harness/deerflow/persistence/models/__init__.py
# offline-backend-20260512/backend/packages/harness/deerflow/runtime/checkpointer/async_provider.py
2026-06-10 09:09:26 +08:00
Administrator and Claude Opus 4.8
44c0f6189b
wip: 合并 master 前暂存本地改动
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-10 08:36:47 +08:00
Administrator and Claude Opus 4.8
1ce15fbb15
style(knowledge): 实体改回纯展示(不可点击),chip 精致化
...
按需求去掉点击筛选,实体为静态彩色 chip:色点 + 名称 + 胶囊型类型标签。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-09 20:34:59 +08:00
Administrator and Claude Opus 4.8
f6af9379b7
feat(knowledge): 笔记页实体可点击筛选 + chip 美化
...
- 实体改为按钮:点击即在左侧列表筛出提及该实体的知识(清空来源/状态筛选)
- chip 加阴影/hover 上浮/类型 ring 标签/实体区 Sparkles 图标,更精致
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-09 19:48:20 +08:00
Administrator and Claude Opus 4.8
b70ed38d51
feat(knowledge): 图谱跟随删除 + 笔记页展示实体 + 标签美化
...
图谱不随删除变化的根因:实体/关系删除时从不清理,build_graph 又把所有实体
都当节点,导致已删笔记的实体(六福珠宝/COMEX/CM助手…)永久残留。
- build_graph 只保留被「活笔记」提及的实体,孤儿实体节点不再出现(render 层兜底,
历史脏数据无需迁移即生效)
- delete_note 删除时 clear_note_relations + prune_orphan_entities,DB 同步收敛
- get_note 返回 entities(repo.list_note_entities),笔记详情页展示实体
- 前端:实体按类型彩色 chip 展示(人物/机构/概念/产品/技术/地区…),标签改为 pill 样式
- 测试:get_note 返回实体 + 删除后图谱与实体表同步收敛
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-08 23:39:25 +08:00
Administrator and Claude Opus 4.8
70bb2783b9
chore(knowledge): 每次沉淀必打入口/结果日志,便于确认是否触发
...
success 路径原先完全静默,导致"看不到日志"无法区分"没触发"还是"日志不可见"。
现在每次 capture_thread 至少打 [knowledge] capturing… + 结果/跳过/失败 各一行。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-08 23:11:54 +08:00
Administrator and Claude Opus 4.8
d9fc7c9fdf
chore(knowledge): 沉淀决策日志统一加 [knowledge] 前缀,跳过提到 WARNING 级
...
便于 docker logs 一条 grep 抓全部捕获决策(跳过/回退/失败):
docker logs deerflow-vite-gateway 2>&1 | grep "\[knowledge\]"
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-08 22:55:44 +08:00
Administrator and Claude Opus 4.8
76320ca5a3
fix(knowledge): 模型判定 should_ingest=false 时直接跳过,不再落草稿
...
日志显示寒暄/无效会话并非 LLM 调用失败,而是模型正确返回 should_ingest=false。
上一版把这种情况也当失败回退、堆成草稿,反而把无价值对话存进了库。
- llm_extractor: 模型显式 should_ingest=false 且无 notes → 抛 LLMRejectedIngest
- capture_thread: 捕获后抛 EmptyThreadError → 整条跳过、不入库(寒暄/总结此页这类不再进库)
- 仅当真正失败(API 报错 / 非 JSON)才回退规则抽取并落草稿
- 兼容包装 extract_thread_llm 吞掉该异常返回 None
- 更新测试(should_ingest=false 跳过)+ CLAUDE.md
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-08 22:49:00 +08:00
Administrator and Claude Opus 4.8
4aef81284a
feat(knowledge): 出处标记渲染 + 相关笔记按标签精确匹配 + LLM 回退落草稿
...
A) 前端把 ^[inferred]/^[ambiguous] 渲染成「推测」「存疑」小角标(原先原样显示文本)
B) 相关笔记只按"区分性标签"精确匹配(去掉标题/摘要关键词检索——中文分词导致
助手/知识图谱/页面 等泛词误关联,如「AI助手打招呼」被错误拉进 Related);
无区分性标签则不关联、不渲染 ## Related 段
C) LLM 提炼启用但失败时不再静默回退成"原文堆砌":
- 回退笔记落为 draft(草稿)而非 approved,便于复核
- capture_thread 记 WARNING 并返回 llm_fallback;router 透出该标志
- llm_extractor 在 JSON 解析失败/无 notes 时补充可诊断的 WARNING 日志
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-08 22:22:28 +08:00
Administrator and Claude Opus 4.8
e7ff07debd
feat(knowledge): 项目名改 zncm + 去除元链接噪音 + 创建人显示人名
...
- project_name 默认 deerflow → zncm(config.yaml + 配置默认 + 模块内字面量)
- related_links() 返回空:笔记 Related 不再注入 index/_meta/taxonomy/hub 结构链接,
只保留真实相关笔记的可点 [[标题]];无相关笔记且无来源时不再渲染 ## Related 段
- 移除随之多余的项目 hub 页脚手架(index.md/_meta/taxonomy.md 仍由 obsidian 脚手架保留,可解析)
- GET /notes/{id} 用 auth provider 把 created_by/updated_by(UUID) 解析为邮箱
(created_by_name/updated_by_name),前端 footer 显示人名、解析不到才显示短 id
- 仅对新沉淀笔记生效,现有笔记不动
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-08 21:50:56 +08:00
Administrator and Claude Opus 4.8
df3fac1032
feat(knowledge): 可跳转 wikilink + 真实相关 note + 一对话多页
...
- [[wikilink]] 解析器:note id / vault_path / 标题 / vault 元页 / missing
- 前端 MarkdownRenderer 把非数字 [[...]] 渲染成可点链接,元页弹窗查看,缺失置灰
- vault 脚手架补建项目 hub 页,三个结构性链接(index/taxonomy/hub)始终可跳
- capture 时按标题+摘要+区分性标签检索同主题 note,注入真实 [[标题]] 到 Related + 记 related 图谱边
- LLM 提取支持 notes[] 数组,一次对话拆 1~4 页并按标题互链(multi_note_enabled 开关)
- 新增接口 POST /resolve、GET /notes/{id}/wikilinks、GET /vault-page
- 新增配置 related_notes_enabled / related_notes_limit / multi_note_enabled
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-08 21:20:31 +08:00
Administrator
24db448cfd
Merge branch 'ji' of http://192.168.0.200/knowledge-base-bj/deerflow-server into ji
2026-06-08 19:12:34 +08:00
Administrator and Claude Opus 4.8
e750df3c0d
docs: 知识库阶段二至四(RAG/治理/图谱)更新 CLAUDE.md
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-08 18:33:08 +08:00
Administrator and Claude Opus 4.8
81e4fd92ce
feat(knowledge): 阶段三 知识治理 + 阶段四 图谱增强
...
阶段三(治理):
- sensitive.py:写入前脱敏 token/密钥/手机号/身份证/邮箱(sensitive_redaction_enabled)
- 版本快照:更新前写 knowledge_note_versions;GET /notes/{id}/versions
- dedup.py:标题/摘要 Jaccard + 内容哈希查重;GET /duplicates、POST /merge(来源并入主条目、重复项归档)
- auto_ingest.py:独立后台队列/线程沉淀,不阻塞问答;中间件 after_agent 在 auto_ingest_enabled 时入队;价值判断(最小字符)+ skip_existing 去重;自动沉淀落 draft 待审
阶段四(图谱):
- LLM 抽取 entities/relations;service 存 knowledge_entities/knowledge_relations 并连边
- exporter.build_graph 支持实体节点 + note→entity/entity→entity 边;graph.html/json 增强
- GET /api/knowledge/graph 返回产品图谱数据
前端:知识库页「查重合并」对话框 + 相关 api/hooks
配置:sensitive_redaction_enabled / dedup_similarity_threshold / entity_extraction_enabled
测试:tests/test_knowledge.py 20 passed
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-08 18:31:33 +08:00
Administrator and Claude Opus 4.8
683cc6d76e
feat(knowledge): 阶段二 向量 RAG 与召回注入
...
- embeddings.py:OpenAI 兼容 embedding 客户端,未配置时关键词兜底
- chunking.py + knowledge_embeddings 表:Markdown 分块与向量索引(Python 余弦)
- search.py:keyword/vector/hybrid 三种模式,向量不可用自动降级
- 笔记创建/更新自动重建向量索引;新增 /reindex 维护接口
- KnowledgeRagMiddleware:按对话级开关 knowledge_rag_enabled 注入 <knowledge-context>,接入 lead agent 中间件链(默认随 config.knowledge.rag_enabled)
- service.build_rag_context(wiki-query 风格分层召回)
- 笔记版本快照(knowledge_note_versions)+ GET /notes/{id}/versions
- 前端:聊天页「知识库」对话级 RAG 开关 + 类型字段
- 新增 entities/relations 表(阶段四预置)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-08 18:18:04 +08:00
Administrator and Claude Opus 4.8
8463289f75
feat(knowledge): LLM 提炼陈述式知识(wiki-capture 规范),规则抽取兜底
...
之前沉淀直接堆砌对话原文。现默认用大模型按 wiki-capture 规范提炼为 Context/Finding/Reasoning/Implications/Related 结构化陈述式知识,过滤寒暄与中间推理;LLM 不可用或解析失败时回退规则抽取。新增 llm_extractor.py + 配置 llm_extract_enabled/extract_model_name/extract_max_input_chars。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-08 18:00:46 +08:00
Administrator and Claude Opus 4.8
d06c8d49d7
feat: 工作台左侧导航新增「知识库」入口
...
之前只加在了 strategy shell 的 sidebar-menu,工作台 shell 用的是 WorkspaceNavChatList,这里补上入口指向 /page/workspace/knowledge。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-08 17:55:11 +08:00
Administrator and Claude Opus 4.8
e193c2df21
feat: 接入知识库聊天入口与前端路由
...
在聊天页工具栏接入「保存到知识库」按钮,并补回 /page/workspace/knowledge 列表/详情/图谱路由(此前被回退丢失)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-08 17:43:55 +08:00
Administrator and Claude Opus 4.8
cc99ebba81
feat: 产品内知识库(obsidian-wiki 兼容 vault)
...
后端:新增自包含 deerflow.knowledge 模块(models/repository/schemas/
extractor/sources/markdown_vault/manifest/obsidian_adapter/exporter/
search/service),通过 deps.py 装配为 app.state.knowledge_service,
挂载 /api/knowledge 路由;config.yaml 增加 knowledge 配置段,
AppConfig 注册 KnowledgeConfig,ORM 注册 4 张 knowledge_* 表。
前端:新增知识库页面(KnowledgeBasePage/KnowledgeGraphPage)、
core/knowledge api/hooks/types、聊天侧 knowledge-save-trigger,
侧边栏增加「知识库」入口。
知识库为全局共享,不做 user_id 隔离,写入记录 created_by/updated_by
作为审计。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-08 17:38:28 +08:00
Administrator and Claude Opus 4.8
a53e565e5a
feat: 管理菜单增加「用户排行榜」入口
...
侧边栏综合管理与右上角工作区下拉菜单新增「用户排行榜」(admin only),
指向 /page/strategy/admin/user-leaderboard,并默认展开综合管理分组。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-08 13:47:15 +08:00
Administrator and Claude Opus 4.8
d4a71ce384
feat: 浏览器扩展支持交互式页面操作 (browser_act)
...
在原有只读抓取 (browser_fetch_page) 基础上,新增 observe→act 循环,
让 Agent 能在用户的 Chrome 中实际操作网页:点击/输入/滚动/等待/页内跳转。
后端:
- 新工具 browser_act,按 session 复用标签页,返回带编号的可交互元素清单+正文
- browser_context 任务队列扩展 kind/session_id/action 与 observation 结果
- /api/browser-context 路由下发 act 任务、接收 observation
- BrowserContextConfig 增加 actions_enabled 等开关,tools.py 两级门控
- 接线 app.py 路由挂载、app_config.py 配置字段、config.yaml 工具注册
前端:
- ChatPage 处理「发送当前页」回跳的 browser_context query 参数并自动提交
扩展 (browser-extension/deer-web-clipper):
- shared.js 自包含注入函数 deerObservePage / deerPerformAction
- background.js 按 kind 分发任务,session→tab 映射存 chrome.storage.session
测试:tests/test_browser_act.py(队列往返 + 工具校验 + 模拟扩展成功路径,8 passed)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-08 13:47:00 +08:00
Administrator
0001f86826
feat: 完善公开任务预览和用户问答历史
2026-06-07 21:18:16 +08:00
Administrator and Claude Opus 4.8
e7c745a512
feat: 排行榜日快照分析 + 数据库连接池/索引调优
...
- 排行榜改为按天预计算快照(admin_leaderboard_daily_stats),请求只读取合并,重统计移至后台调度;过去日不可变、当天 TTL 刷新,避免在线聚合长时间占用数据库
- 为 runs/tool_call_metrics/llm_call_metrics/threads_meta 增加面向时间段+用户聚合的复合索引(model __table_args__ + migration 20260608_01)
- 连接池可调:DatabaseConfig 新增 max_overflow / pool_timeout,接入 postgres/mysql 引擎;config.yaml 上调 pool_size=20/max_overflow=20
- 新增手动执行的索引脚本 scripts/sql/leaderboard_indexes_mysql.sql(幂等,适用于已存在数据、create_all 不补索引且 alembic 关闭的部署)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-06 00:52:24 +08:00
Administrator
4df71f32a8
fix: use sqlite backend config
2026-06-05 22:44:21 +08:00
Administrator
92f5cb8fe3
enhance admin leaderboard and previews
2026-06-05 01:51:48 +08:00
Administrator
a5897caec4
enhance leaderboard reporting and grouping
2026-06-05 00:02:05 +08:00
Administrator
88c83b4dd7
refine admin leaderboard experience
2026-06-04 23:41:19 +08:00
Administrator
fe0ede178e
polish admin leaderboard analytics
2026-06-04 21:09:36 +08:00
Administrator
5590f7d85a
style: polish admin user leaderboard
2026-06-04 20:22:37 +08:00
Administrator
8f80b7c1ef
feat: add admin user leaderboard analytics
2026-06-04 19:35:11 +08:00
Administrator
1e4ef070cf
fix: 调整提示词和 agent 管理入口
2026-06-04 18:45:16 +08:00
Administrator and Claude Opus 4.8
e3b0958c23
fix: drive logout from real 401s, not local storage changes
...
apiFetch now redirects to login only on a genuine backend 401 (auth endpoints excluded, only when previously logged in). AuthSyncWatcher no longer treats localStorage.clear()/unrelated writes as a logout, fixing spurious sign-outs (e.g. when uploading skills).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-04 17:41:46 +08:00
Administrator and Claude Opus 4.8
225398972d
fix: add missing axios dependency to frontend-web
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-04 16:53:07 +08:00
Administrator and Claude Opus 4.8
87f764bfa9
feat: improve markdown rendering, artifact file preview, and public scheduled task page
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-04 16:52:30 +08:00
Administrator and Claude Opus 4.8
94c02ded2a
feat: add user preferences, agent name desensitization and related improvements
...
- Add user preferences persistence (model, migration, router, frontend core)
- Add agent name desensitization config
- Add agent_id to user custom prompts with migration
- Enhance agents persistence (base, memory, model, sql) and scheduler service
- Improve frontend agent cards/gallery, scheduled tasks, custom prompt menu
- Add pagination UI component; remove stale package-lock.json
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-04 12:40:18 +08:00
Administrator and Claude Opus 4.8
133054e2dd
feat(skills/settings): 技能复制 + 设置持久化等会话前改动
...
- 技能复制:新增 POST 复制接口(_rewrite_skill_frontmatter_name 重写 frontmatter name + 校验 + 去重),前端 skills api/hooks 与技能设置页配套
- 设置持久化:lastAgentId、线程 RAG 模式锁(settings/index、local)
- i18n(en/zh/types)、agent-card/input-box/message-list 等页面文案与交互微调
- scheduler/element.py 小修
(本批为会话前已存在的工作区改动,按要求一并提交;构建产物 backend.zip 未提交)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-03 11:38:47 +08:00
Administrator and Claude Opus 4.8
adcc5a358b
feat(scheduled-tasks): 新增 HTML 页面定时任务(生成/预览/收藏/技能)
...
后端:
- 新增 task_kind=html_page 任务类型,与普通定时任务并存,配置存 execution_context(无需迁移)
- 执行流水线:智能体检索数据 -> 选定模型渲染 HTML -> 清洗/校验 -> 失败自动修复 -> 完整性闸门(缺 doctype/html/head/body/title 或残留脚本即失败) -> 归档 index.html -> 落库
- 新增 scheduled_html_pages / html_page_favorites 表与 store;收藏去重(不可重复)、可删除、收藏时提取可复用风格
- HTML 预览接口(鉴权 + 公开)、收藏接口
- 渲染注入已启用的 HTML 技能(metadata.kind=html_page);全程使用用户所选模型,去除硬编码 GLM-5
- 定时任务跳过 TitleMiddleware,避免标题生成回退默认模型
前端:
- 创建/编辑弹窗增加任务类型与 HTML 配置(页面要求/限制/参考收藏页/模型下拉)
- 运行详情页与公开页 iframe 沙箱预览 HTML;收藏按钮(已收藏禁用)
- 参考收藏页可选可删
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-03 11:35:38 +08:00
Administrator and Claude Opus 4.8
5c2379577b
fix(auth): token 登录将令牌放入 Authorization: Bearer 头
...
token 换登录调上游 getTokenInfo 时参数传错:原来发静态头
Authorization: Bearer admin + 令牌放 access_token cookie。上游实际
从 Authorization: Bearer <token> 头读取令牌。
- 鉴权头改为 "Bearer "+前端传入 token,删除 access_token cookie
- service_authorization 配置项弃用(保留兼容,不再参与请求)
- 新增回归测试 test_token_login_upstream_call.py
- 同步更新 AUTH_LOGIN.md / CLAUDE.md / config.yaml 注释 / login_config 文档
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-03 11:35:38 +08:00
Administrator and Claude Opus 4.8
c5352f2ee7
本地启动环境修复与配置
...
- config.yaml: checkpointer 连接串改为相对路径(原为他机绝对路径,本地无法创建)
- frontend-web: 补充缺失的 dayjs 直接依赖(lockfile 已有,package.json 缺失)
- .gitignore: 忽略 backend/uv.lock 并取消其跟踪
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-03 11:35:38 +08:00
Administrator and Claude Opus 4.8
f590f672be
feat(skills/settings): 技能复制 + 设置持久化等会话前改动
...
- 技能复制:新增 POST 复制接口(_rewrite_skill_frontmatter_name 重写 frontmatter name + 校验 + 去重),前端 skills api/hooks 与技能设置页配套
- 设置持久化:lastAgentId、线程 RAG 模式锁(settings/index、local)
- i18n(en/zh/types)、agent-card/input-box/message-list 等页面文案与交互微调
- scheduler/element.py 小修
(本批为会话前已存在的工作区改动,按要求一并提交;构建产物 backend.zip 未提交)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-02 23:48:19 +08:00
Administrator and Claude Opus 4.8
d9afaca51f
feat(scheduled-tasks): 新增 HTML 页面定时任务(生成/预览/收藏/技能)
...
后端:
- 新增 task_kind=html_page 任务类型,与普通定时任务并存,配置存 execution_context(无需迁移)
- 执行流水线:智能体检索数据 -> 选定模型渲染 HTML -> 清洗/校验 -> 失败自动修复 -> 完整性闸门(缺 doctype/html/head/body/title 或残留脚本即失败) -> 归档 index.html -> 落库
- 新增 scheduled_html_pages / html_page_favorites 表与 store;收藏去重(不可重复)、可删除、收藏时提取可复用风格
- HTML 预览接口(鉴权 + 公开)、收藏接口
- 渲染注入已启用的 HTML 技能(metadata.kind=html_page);全程使用用户所选模型,去除硬编码 GLM-5
- 定时任务跳过 TitleMiddleware,避免标题生成回退默认模型
前端:
- 创建/编辑弹窗增加任务类型与 HTML 配置(页面要求/限制/参考收藏页/模型下拉)
- 运行详情页与公开页 iframe 沙箱预览 HTML;收藏按钮(已收藏禁用)
- 参考收藏页可选可删
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-02 23:46:20 +08:00
Administrator and Claude Opus 4.8
e1e9be8daa
fix(auth): token 登录将令牌放入 Authorization: Bearer 头
...
token 换登录调上游 getTokenInfo 时参数传错:原来发静态头
Authorization: Bearer admin + 令牌放 access_token cookie。上游实际
从 Authorization: Bearer <token> 头读取令牌。
- 鉴权头改为 "Bearer "+前端传入 token,删除 access_token cookie
- service_authorization 配置项弃用(保留兼容,不再参与请求)
- 新增回归测试 test_token_login_upstream_call.py
- 同步更新 AUTH_LOGIN.md / CLAUDE.md / config.yaml 注释 / login_config 文档
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-02 19:33:38 +08:00
Administrator
247ff86f2f
Merge branch 'ji' of http://192.168.0.200/knowledge-base-bj/deerflow-server into ji
2026-06-02 19:06:42 +08:00
Administrator and Claude Opus 4.8
93543919d4
本地启动环境修复与配置
...
- config.yaml: checkpointer 连接串改为相对路径(原为他机绝对路径,本地无法创建)
- frontend-web: 补充缺失的 dayjs 直接依赖(lockfile 已有,package.json 缺失)
- .gitignore: 忽略 backend/uv.lock 并取消其跟踪
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-01 20:29:29 +08:00