吉鑫升
24a5ca0c06
Merge branch 'ji' of http://192.168.0.200/knowledge-base-bj/deerflow-server into ji
2026-06-05 20:07:03 +08:00
吉鑫升
6eda572f31
tijiaodaim
2026-06-05 20:06:55 +08:00
吉鑫升
1bf1fc6512
增加依赖
2026-06-05 17:36:53 +08:00
吉鑫升
392373b4b7
chore: add qwen model config
2026-06-05 17:32:53 +08:00
吉鑫升
f3def88342
feat: add sqlite checkpoint fallback switch
2026-06-05 17:28:44 +08:00
吉鑫升
690d09a3d1
feat: add workspace view mode settings
2026-06-05 17:21:49 +08:00
吉鑫升
9471e72171
feat: add checkpoint postgres migration admin
2026-06-05 17:16:31 +08:00
吉鑫升 and Claude Opus 4.8
eaa061dd06
feat: 新增技能置顶功能
...
- 后端:新增 PUT /skills/custom/{name}/featured 接口,在 usage 中实现 set_featured 与 featured 字段(与 pinned 正交,仅影响排序)
- 前端:新增 setSkillFeatured API、置顶/取消置顶操作及中英文文案
- ScheduledTasksPage:优化助手选择下拉框的宽度与文本换行
- config.yaml:整理 log_system 配置块
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-05 15:02:50 +08:00
吉鑫升 and Claude Opus 4.8
b117bb1dc2
Revert skill list layout and tune leaderboard report
...
- Revert skill settings to vertical list layout with pinned sorting
- Default leaderboard range 30d -> 7d, hide stats while report generating
- Reframe leaderboard report prompt as user-behavior analysis (cache v5)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-05 11:34:39 +08:00
吉鑫升
0d91c74289
style: enlarge leaderboard report dialog
2026-06-05 11:17:09 +08:00
吉鑫升
d59f9e218f
feat: enhance leaderboard AI report
2026-06-05 11:00:08 +08:00
吉鑫升
22be6325a8
Resolve merge conflicts
2026-06-05 10:28:45 +08:00
吉鑫升
e96cc97462
Merge origin/master into ji
2026-06-05 10:04:11 +08:00
吉鑫升
7657c45aae
Merge branch 'ji' of http://192.168.0.200/knowledge-base-bj/deerflow-server into ji
2026-06-04 19:37:19 +08:00
吉鑫升
e6e0832c8a
chore: commit local changes
2026-06-04 19:35:56 +08:00
吉鑫升
c1336ad5b3
Merge remote-tracking branch 'origin/master' into ji
...
# Conflicts:
# frontend-web/src/components/workspace/settings/memory-settings-page.tsx
# frontend-web/src/core/auth/sync.tsx
2026-06-04 17:49:26 +08:00
吉鑫升
143e0478ef
Merge remote-tracking branch 'origin/ji' into ji
2026-06-04 17:46:50 +08:00
吉鑫升
cbd07c9d1b
chore: update ji branch work
2026-06-04 17:46:11 +08:00
吉鑫升
6c30e649e3
Merge remote-tracking branch 'origin/ji' into ji
2026-06-04 16:59:05 +08:00
吉鑫升
bcebc8d5fb
feat: 支持智能体置顶配置
2026-06-04 16:58:42 +08:00
吉鑫升 and Claude Opus 4.8
1f2b1e3b8a
feat: 删除提问时级联删除其回答,并移除回答上的删除按钮
...
- 删除按钮只保留在用户提问气泡上;AI 回答不再单独提供删除
- 后端 DELETE /messages/{id} 改为按整轮删除:从提问删到下一条提问之前,
返回实际删除的 deleted_ids,保持 checkpoint 合法(无孤立工具结果/回答)
- 前端隐藏后端返回的整批 id,删除后即时消失
- 更新删除相关中英文案
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-04 14:34:52 +08:00
吉鑫升 and Claude Opus 4.8
5d12616211
chore: 将登录失败次数上限从 5 提高到 100
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-04 14:34:42 +08:00
吉鑫升
9704eff9f7
Merge branch 'ji' of http://192.168.0.200/knowledge-base-bj/deerflow-server into ji
2026-06-04 14:28:22 +08:00
吉鑫升 and Claude Opus 4.8
362a8268e8
feat: 支持删除单条聊天消息(用户提问与模型回答)
...
- 后端新增 DELETE /api/threads/{thread_id}/messages/{message_id},从最新 checkpoint 的 messages 通道过滤掉指定 id 并写回新 checkpoint
- 前端 useDeleteMessage 钩子 + DeleteMessageButton(带确认框)组件
- 在用户问题气泡与助手回答工具栏上各加删除按钮,仅对已落库消息显示
- MessageList 本地隐藏已删消息并在切换会话时重置;只读/分享场景禁用删除
- 新增 deleteMessage 相关中英文案
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-04 14:28:11 +08:00
吉鑫升 and Claude Opus 4.8
925675ab54
chore: update ji local changes
...
- frontend: scheduled tasks pages, system-settings api, workspace nav menu
- backend: system_settings router, app_config, log_system_config, config.yaml
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-04 09:18:32 +08:00
吉鑫升
aeef1dca59
Merge remote-tracking branch 'origin/ji' into ji
2026-06-03 19:01:56 +08:00
吉鑫升
a1d460e220
Merge remote-tracking branch 'origin/master' into ji
...
# Conflicts:
# frontend-web/src/components/workspace/messages/message-list-item.tsx
# offline-backend-20260512/backend/app/gateway/app.py
# offline-backend-20260512/backend/packages/harness/deerflow/runtime/scheduler/html_page.py
# offline-backend-20260512/backend/packages/harness/deerflow/runtime/scheduler/service.py
2026-06-03 19:01:45 +08:00
吉鑫升
e2a962de32
chore: update ji local changes
2026-06-03 18:57:49 +08:00
吉鑫升
89cb5ab2f1
Merge remote-tracking branch 'origin/master' into ji
2026-06-02 17:40:56 +08:00
吉鑫升 and Claude Opus 4.8
c484481964
登录鉴权:新增用户名口令门 + token 换登录两种模式
...
- config 新增 auth_login 段(login_config.py):
- username_login.require_password 开启后,用户名直登必须带 ?password=,口令留空默认 123ewq
- token_login 用上游 token 调 getTokenInfo 换用户名再登录,用户名不在库自动注册;含 verify_ssl/ca_cert_path 处理 HTTPS 自签证书
- auth.py:口令门、/login/token 端点、共享 _get_or_create_user_by_username 与 _fetch_username_from_token;登录类报错文案改中文
- auth_middleware:/login/token 加入免鉴权白名单
- 前端 api.ts/LoginPage:透传 ?password=、?authToken=;修复错误体为对象时显示 [object Object] 的问题
- 文档:backend/CLAUDE.md + docs/AUTH_LOGIN.md 接口说明
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-02 17:39:56 +08:00
吉鑫升 and Claude Opus 4.8
5aa1fdca04
识图与文件上传/预览:可配置视觉模型 + 修复上传与回显
...
后端:
- 新增可配置识图模型(config: vision.model_name/prompt/max_tokens)。配置后 view_image 委托该模型识别并返回文字结果,文本主模型也能“看图”;未配置时回退到主模型自带视觉能力。新增 deerflow/models/vision.py 与 VisionConfig。
- 修复 Windows 上传全部报 unsafe:open_upload_file_no_symlink 不再强制要求 POSIX 专有的 O_NOFOLLOW,缺失时降级(仍用 lstat/fstat 防符号链接),Windows 追加 O_BINARY。
- 修复 normalize_input 丢弃 human 消息 additional_kwargs:保留 files/client_ts 等,使上传文件能回传到 UI 并被 UploadsMiddleware 识别。
- 约束 agent 行为:上传图片时引导只用 view_image,禁止用 read_file/grep/bash/python 解析图片字节;view_image 工具说明同步加固。
- 启用文档转换(uploads.auto_convert_documents),PDF/Word/Excel/PPT 自动转 Markdown 供 read_file/grep 读取。
- 订正若干模型错误的 supports_vision 标记。
前端:
- 修复上传文件不回显:parseUploadedFiles 不再因 "(empty)" 提前返回。
- 修复 artifact 401 破图:改用带 Authorization 头的 apiFetch 取 blob 显示(新增 useAuthedObjectUrl)。
- 新增上传文件预览弹窗:点击卡片可查看图片/文本/Markdown、Office(读转换后的 .md)、PDF;文件卡片改为可点击。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-02 16:43:53 +08:00
吉鑫升
43cbcd86be
Merge remote-tracking branch 'origin/master' into ji
2026-06-01 17:11:08 +08:00
吉鑫升
bc7622b0bd
Merge remote-tracking branch 'origin/master' into ji
2026-06-01 16:59:56 +08:00
吉鑫升 and Claude Opus 4.8
c860ee85f7
技能展示适配:支持多结果集(result sets)渲染
...
- 后端 extensions_config 新增 SkillDisplayResultSetConfig,SkillDisplayConfig 增加 resultSets 字段
- threads 引用响应增加 resultSetKey / resultSetLabel,runtime/references 适配多结果集
- 前端 skill-display 适配器/运行时/类型支持多结果集渲染,聊天框、消息组、技能展示面板相应更新
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-01 16:42:39 +08:00
吉鑫升
00e74a5e45
Merge remote-tracking branch 'origin/master' into ji
...
# Conflicts:
# offline-backend-20260512/backend/app/gateway/services.py
2026-05-29 18:36:29 +08:00
吉鑫升 and Claude Opus 4.7
2c136c1fde
参考文献模式合并为单一 referenceBatch 并统一连续编号
...
将同一轮检索结果合并为一个 referenceBatch,由系统统一从 [1] 连续编号,避免每个检索词各自重新编号;提示词引导优先并行检索后再作答。智能体列表接口并发加载技能等轻量信息以渲染卡片徽章,并新增参考文献相关测试。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-29 11:31:31 +08:00
吉鑫升 and Claude Opus 4.7
78f6e37f76
新增智能体收藏、定时任务必须生成MD校验、问答时间显示及账号绑定的常用提示词
...
- 智能体支持从广场收藏到「我的」(新增 agent_favorites 表与收藏/取消收藏接口)
- 定时任务新增「必须生成Markdown文件」开关:注入提示词并校验生成的 .md 文件且正文超过100字,否则记为失败(存于 execution_context,无需迁移)
- 聊天问答展示时间(年月日 时分):问题在右下角、回答在左下角
- 常用提示词改为与账号绑定(新增 user_custom_prompts 表与 /api/user-prompts 接口),仅在首页输入框上方以居中标签 + 轮播展示,齿轮置于最右侧管理
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-28 18:29:32 +08:00
吉鑫升 and Claude Opus 4.7
dac5ff38db
技能展示配置持久化并适配引用来源,新增技能文件预览组件
...
- 后端将技能展示适配配置存入数据库,引用批次按持久化映射进行适配
- 前端新增技能文件预览弹窗与文件树组件,完善技能来源展示
- 修正 .gitignore 中宽泛的 skills/ 规则误忽略前端组件目录的问题
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-28 18:29:10 +08:00
吉鑫升
a35aeee6a2
代码提交
2026-05-28 18:28:57 +08:00
吉鑫升
2688cda6b5
忽略RAG调试日志
2026-05-28 18:28:57 +08:00
吉鑫升
f668133297
实现RAG参考文献显示模式
2026-05-28 18:28:57 +08:00
吉鑫升 and Claude Opus 4.7
89bd07be92
管理员智能体/技能管理 + 跨标签登录同步 + 上游响应异常重试
...
- 「设置和更多」新增「智能体管理」「技能管理」入口,与定时任务管理同级;
独立的 AdminAgentsPage/AdminSkillsPage 复用 AgentCard/SkillRow,
管理员可查看并编辑/删除所有用户的智能体与技能。
- 后端 /api/agents、/api/skills 增加 ?admin=true 越权列表;agents 端
放宽 _get_editable_or_raise 让管理员可编辑/删除任意智能体;新增
list_all/update_any/delete_any(agents)与 list_all(skills)。
- 新增 AuthSyncWatcher:监听 localStorage["deerflow.auth"] 的 storage
事件,user_id 变化时自动 reload,修复多标签切换登录后老页面点击
「新对话」偶发 404 的问题。
- LLMErrorHandlingMiddleware 将 bad_response_status_code / JSON
decode 等上游网关乱码识别为可重试的 upstream 类故障。
- 侧边栏「任务管理」改名为「定时任务」。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-28 18:28:49 +08:00
吉鑫升 and Claude Opus 4.7
a5fb806028
轮换 LLM 凭证与默认模型(DeepSeek → zai-org/GLM-5-FP8)
...
- backend/config.yaml、config.yaml 把默认模型从 deepseek-chat 切到
zai-org/GLM-5-FP8(modal endpoint),并轮换对应 API key / Bearer
- .env 同步更新
注意:这些文件包含真实凭证,应用部署时务必通过 .env 或私有 config
覆盖,不要把仓库里的版本直接用于生产。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-28 18:28:49 +08:00
吉鑫升 and Claude Opus 4.7
83714f628b
私密/公开互斥兜底 + 智能体搜索按显示后名称匹配 + 多处小修
...
- 后端 update_agent / set_agent_private 增加兜底:is_private=true 时强制
published=false,杜绝同时落在公开+私密两个广场的灰色态
- agent-card 编辑弹窗暴露 editIsPrivate 开关,与公开发布开关在前端互斥校验
- agent-gallery 智能体模糊搜索改为前端针对 desensitize() 后的名字比对,
解决脱敏显示与原始名字不一致导致看似搜索失效的问题
- useUpdateAgent 在 onSuccess 立刻把新数据 patch 进所有 ["agents"] 列表
缓存,卡片在后台 refetch 完成前先行 re-render,避免「切换私密/发布后
好像没反应」的体感延迟
- useGlobalShortcuts 对 event.key 为 undefined(IME 合成 / 扩展注入)做
容错,否则会抛 TypeError 把后续所有快捷键吃掉
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-28 18:28:49 +08:00
吉鑫升 and Claude Opus 4.7
ae3e2fb4e8
默认主题改为浅色 + 管理员可配置全局默认主题
...
- system_settings 新增 AppearanceSettings(default_theme),默认为 light,
对应 GET /api/system-settings/appearance(任何人可读)+ PUT(admin 可写)
- App.tsx 把 NextThemesProvider 的 defaultTheme 从 dark 改为 light,并把
QueryClientProvider 提到 ThemeProvider 外层以便后者使用 useQuery
- ThemeContext 新增 localStorage 标志 strategy-theme-user-set:用户调用
toggleTheme / setTheme 时打标;每次启动若标志未设,则跟随 admin 配置的
default_theme 同步主题,admin 改动用户刷新即生效;标志一旦存在永远尊重
用户个人选择
- legacy 'theme' 键迁移视为用户显式选择,避免老用户被新默认覆盖
- frontend system-settings api/hook 增 appearance 拉取与更新
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-28 18:28:49 +08:00
吉鑫升
650102cedb
feat: improve citation display and skill persistence
2026-05-28 18:28:45 +08:00
吉鑫升 and Claude Opus 4.7
61babbdf7d
技能展示样本运行器 + 参考文献来源过滤调整
...
- skills 路由新增 _run_skill_python_sample,按本地 Python 候选实际执行
技能脚本,作为展示适配器的真实样本来源
- skill-display 运行时与适配器调整,参考文献收集放宽起始消息约束
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-28 18:28:41 +08:00
吉鑫升 and Claude Opus 4.7
3734b6a05f
新增智能体私密广场(is_private + 管理员密码门控)
...
- agents 表新增 is_private 列与迁移 20260526_01;列表 filter 拆分为公开
广场用的 _listing_filter(剔除私密)与单条访问用的 _visible_filter(保留可达)
- system_settings 增 PrivateSquareSettings(enabled + password_hash),
对应 GET/PUT /api/system-settings/private-square 由管理员管理
- /api/agents 接口:列表/创建/更新新增 is_private 字段;新增
POST /api/agents/private-square/list(密码校验后返回私密智能体)与
PUT /api/agents/{id}/private(管理员跨用户搬动智能体)
- 前端「智能体」页签新增「私密广场」入口(密码校验 + sessionStorage 缓存 +
锁定按钮),卡片增加紫色私密徽章与盾牌切换按钮(owner 自助 / 管理员跨用户),
「广场」与首页推荐候选均剔除私密智能体
- 新增管理员配置页 /settings/private-square 与侧边栏入口
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-28 18:28:41 +08:00
吉鑫升 and Claude Opus 4.7
0256d527f0
技能展示适配持久化 + 参考文献收集与新对话流式修复
...
- 后端新增 skill_display_adapters 表,持久化每个技能的 display 配置与 sample
payload;/api/skills 列表、详情、设置接口同步读写
- 新增 /api/skills/{name}/display-sample 端点,编辑器优先加载库中样例
- 前端展示适配面板改为从后端加载持久样例,无样例时提示"自动识别"
- 参考文献收集修复:仅在 bash/shell/python 等执行类工具上从参数推断技能
名,避免 read_file / web_fetch 误匹配;引用列表纳入最新一条助手消息
- ChatBox 改用「最新 human → 最新 ai」窗口收集引用,并仅保留 citation
模式
- 修复「新对话」点击后已发消息消失:useThreadStream 只在 threadId 切回
空值时重置/中止 SSE,避免 onCreated 分配 id 时把刚开始的流打断;
ChatPage 在 landing 状态隐藏 MessageList,移除 KeyedChatPage remount
- 技能详情对话框:所有者可查看源码与文件 tab(不再要求管理员)
- LocalSandbox:Windows PowerShell 5 路径下把 && 重写为 ;,并以
UTF-8 解码 subprocess 输出,避免中文乱码
- knowledge-search-v2 mock 样例改为中文固定测试数据
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-28 18:28:41 +08:00
吉鑫升
7adb93fb8e
修复「新对话」流式中无法重置 + 参考文献开关默认关闭并加对勾
...
- 流式回答过程中点「新对话」:URL 同路径导致 react-router navigate 静默 no-op,
下游 hook 收不到事件;改为显式 navigate(..., {replace:true, state:{resetAt}})
保证每次点击刷新 location.key,并让 useThreadChat 监听 location.key 触发重置
- useThreadStream 在 threadId 变化时 stop() 掉上一条 SSE,避免旧流继续派发事件
- 引入 KeyedChatPage 用 location.key 作 ChatRuntime key,真正的导航触发整树 remount,
解决 useStream 内部 stream.values 残留导致欢迎页底下还能看到旧消息的过渡帧问题
- 「参考文献」开关默认关闭(local.ts),开启态在文字前额外多一个 ✓ 对勾
2026-05-28 18:28:33 +08:00
吉鑫升
97f24f17eb
新增 RAG 引用展示模式:支持技能结果按编号引用/列表/表格渲染
...
- 前端新增 skill-display 适配层(runtime/display-adapter)与可视化适配面板,
支持从技能返回 JSON 自动识别字段并配置 citation/list/table/card 展示
- 正文 [[N]] 编号渲染为可点击徽章,点击不跳 URL 而是定位到右侧参考文献面板;
参考卡片样式重做(圆形编号、悬停高亮、过滤掉 "result" 占位类型)
- bash 工具调用按命令中的 skills/{public,custom}/<name>/ 路径反查展示适配,
解决调用名为 "bash" 时无法匹配到具体技能的问题
- 工具结果 JSON 解析放宽:能从 stderr/exit code 噪声尾巴里抢救出 JSON 主体
- 展示适配自动识别接入 LLM:读 SKILL.md 让模型推断真实返回结构,失败回退 mock
- 展示适配面板修复保存回显:保存后表单跟随服务端最新值刷新,样例文本不再被抹掉
- 设置页加 "RAG 引用模式" 开关(默认开),关联 lead-agent prompt 注入引用规则
2026-05-28 18:28:33 +08:00
吉鑫升 and Claude Opus 4.7
96b0bae6ca
技能详情对话框新增文件浏览面板:支持预览、编辑、下载、复制路径
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-28 18:27:12 +08:00
吉鑫升
6792b4f4c4
Merge branch 'master' of http://192.168.0.200/knowledge-base-bj/deerflow-server into ji
...
# Conflicts:
# frontend-web/src/components/workspace/chats/chat-box.tsx
# offline-backend-20260512/backend/app/gateway/routers/agents.py
2026-05-28 17:29:36 +08:00
吉鑫升 and Claude Opus 4.7
10e35055e0
新增智能体收藏、定时任务必须生成MD校验、问答时间显示及账号绑定的常用提示词
...
- 智能体支持从广场收藏到「我的」(新增 agent_favorites 表与收藏/取消收藏接口)
- 定时任务新增「必须生成Markdown文件」开关:注入提示词并校验生成的 .md 文件且正文超过100字,否则记为失败(存于 execution_context,无需迁移)
- 聊天问答展示时间(年月日 时分):问题在右下角、回答在左下角
- 常用提示词改为与账号绑定(新增 user_custom_prompts 表与 /api/user-prompts 接口),仅在首页输入框上方以居中标签 + 轮播展示,齿轮置于最右侧管理
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-28 17:16:15 +08:00
吉鑫升 and Claude Opus 4.7
4410acaee8
技能展示配置持久化并适配引用来源,新增技能文件预览组件
...
- 后端将技能展示适配配置存入数据库,引用批次按持久化映射进行适配
- 前端新增技能文件预览弹窗与文件树组件,完善技能来源展示
- 修正 .gitignore 中宽泛的 skills/ 规则误忽略前端组件目录的问题
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-28 15:16:56 +08:00
吉鑫升
f200972c00
Merge branch 'master' of http://192.168.0.200/knowledge-base-bj/deerflow-server into ji
2026-05-27 20:28:38 +08:00
吉鑫升
1d81ee9ed0
Merge branch 'master' of http://192.168.0.200/knowledge-base-bj/deerflow-server into ji
2026-05-27 19:12:27 +08:00
吉鑫升
6fd6d564eb
Merge branch 'master' of http://192.168.0.200/knowledge-base-bj/deerflow-server into ji
...
# Conflicts:
# frontend-web/src/components/workspace/messages/message-list-item.tsx
# frontend-web/src/components/workspace/messages/message-list.tsx
# offline-backend-20260512/backend/packages/harness/deerflow/agents/lead_agent/agent.py
# offline-backend-20260512/backend/packages/harness/deerflow/agents/lead_agent/prompt.py
2026-05-27 19:10:27 +08:00
吉鑫升
106f1d1794
代码提交
2026-05-27 19:02:19 +08:00
吉鑫升
fe7cdba07e
忽略RAG调试日志
2026-05-27 17:44:02 +08:00
吉鑫升
c56db15a03
实现RAG参考文献显示模式
2026-05-27 17:40:10 +08:00
吉鑫升 and Claude Opus 4.7
eda0ccffdb
管理员智能体/技能管理 + 跨标签登录同步 + 上游响应异常重试
...
- 「设置和更多」新增「智能体管理」「技能管理」入口,与定时任务管理同级;
独立的 AdminAgentsPage/AdminSkillsPage 复用 AgentCard/SkillRow,
管理员可查看并编辑/删除所有用户的智能体与技能。
- 后端 /api/agents、/api/skills 增加 ?admin=true 越权列表;agents 端
放宽 _get_editable_or_raise 让管理员可编辑/删除任意智能体;新增
list_all/update_any/delete_any(agents)与 list_all(skills)。
- 新增 AuthSyncWatcher:监听 localStorage["deerflow.auth"] 的 storage
事件,user_id 变化时自动 reload,修复多标签切换登录后老页面点击
「新对话」偶发 404 的问题。
- LLMErrorHandlingMiddleware 将 bad_response_status_code / JSON
decode 等上游网关乱码识别为可重试的 upstream 类故障。
- 侧边栏「任务管理」改名为「定时任务」。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-27 11:13:29 +08:00
吉鑫升
1642c3e694
Merge remote-tracking branch 'origin/master' into ji
...
# Conflicts:
# frontend-web/src/contexts/ThemeContext.tsx
# offline-backend-20260512/backend/config.yaml
2026-05-26 19:34:43 +08:00
吉鑫升 and Claude Opus 4.7
7b629d0697
轮换 LLM 凭证与默认模型(DeepSeek → zai-org/GLM-5-FP8)
...
- backend/config.yaml、config.yaml 把默认模型从 deepseek-chat 切到
zai-org/GLM-5-FP8(modal endpoint),并轮换对应 API key / Bearer
- .env 同步更新
注意:这些文件包含真实凭证,应用部署时务必通过 .env 或私有 config
覆盖,不要把仓库里的版本直接用于生产。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-26 19:31:10 +08:00
吉鑫升 and Claude Opus 4.7
89a1fa5042
私密/公开互斥兜底 + 智能体搜索按显示后名称匹配 + 多处小修
...
- 后端 update_agent / set_agent_private 增加兜底:is_private=true 时强制
published=false,杜绝同时落在公开+私密两个广场的灰色态
- agent-card 编辑弹窗暴露 editIsPrivate 开关,与公开发布开关在前端互斥校验
- agent-gallery 智能体模糊搜索改为前端针对 desensitize() 后的名字比对,
解决脱敏显示与原始名字不一致导致看似搜索失效的问题
- useUpdateAgent 在 onSuccess 立刻把新数据 patch 进所有 ["agents"] 列表
缓存,卡片在后台 refetch 完成前先行 re-render,避免「切换私密/发布后
好像没反应」的体感延迟
- useGlobalShortcuts 对 event.key 为 undefined(IME 合成 / 扩展注入)做
容错,否则会抛 TypeError 把后续所有快捷键吃掉
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-26 19:30:00 +08:00
吉鑫升 and Claude Opus 4.7
c9c59b761f
默认主题改为浅色 + 管理员可配置全局默认主题
...
- system_settings 新增 AppearanceSettings(default_theme),默认为 light,
对应 GET /api/system-settings/appearance(任何人可读)+ PUT(admin 可写)
- App.tsx 把 NextThemesProvider 的 defaultTheme 从 dark 改为 light,并把
QueryClientProvider 提到 ThemeProvider 外层以便后者使用 useQuery
- ThemeContext 新增 localStorage 标志 strategy-theme-user-set:用户调用
toggleTheme / setTheme 时打标;每次启动若标志未设,则跟随 admin 配置的
default_theme 同步主题,admin 改动用户刷新即生效;标志一旦存在永远尊重
用户个人选择
- legacy 'theme' 键迁移视为用户显式选择,避免老用户被新默认覆盖
- frontend system-settings api/hook 增 appearance 拉取与更新
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-26 19:29:45 +08:00
吉鑫升
8b2f398015
feat: improve citation display and skill persistence
2026-05-26 19:27:03 +08:00
吉鑫升
b671b49725
Merge remote-tracking branch 'origin/master' into ji
2026-05-26 14:25:02 +08:00
吉鑫升 and Claude Opus 4.7
d3d7db1f34
技能展示样本运行器 + 参考文献来源过滤调整
...
- skills 路由新增 _run_skill_python_sample,按本地 Python 候选实际执行
技能脚本,作为展示适配器的真实样本来源
- skill-display 运行时与适配器调整,参考文献收集放宽起始消息约束
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-26 14:24:47 +08:00
吉鑫升 and Claude Opus 4.7
26a388e3bf
新增智能体私密广场(is_private + 管理员密码门控)
...
- agents 表新增 is_private 列与迁移 20260526_01;列表 filter 拆分为公开
广场用的 _listing_filter(剔除私密)与单条访问用的 _visible_filter(保留可达)
- system_settings 增 PrivateSquareSettings(enabled + password_hash),
对应 GET/PUT /api/system-settings/private-square 由管理员管理
- /api/agents 接口:列表/创建/更新新增 is_private 字段;新增
POST /api/agents/private-square/list(密码校验后返回私密智能体)与
PUT /api/agents/{id}/private(管理员跨用户搬动智能体)
- 前端「智能体」页签新增「私密广场」入口(密码校验 + sessionStorage 缓存 +
锁定按钮),卡片增加紫色私密徽章与盾牌切换按钮(owner 自助 / 管理员跨用户),
「广场」与首页推荐候选均剔除私密智能体
- 新增管理员配置页 /settings/private-square 与侧边栏入口
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-26 14:24:29 +08:00
吉鑫升 and Claude Opus 4.7
ad5d55220c
技能展示适配持久化 + 参考文献收集与新对话流式修复
...
- 后端新增 skill_display_adapters 表,持久化每个技能的 display 配置与 sample
payload;/api/skills 列表、详情、设置接口同步读写
- 新增 /api/skills/{name}/display-sample 端点,编辑器优先加载库中样例
- 前端展示适配面板改为从后端加载持久样例,无样例时提示"自动识别"
- 参考文献收集修复:仅在 bash/shell/python 等执行类工具上从参数推断技能
名,避免 read_file / web_fetch 误匹配;引用列表纳入最新一条助手消息
- ChatBox 改用「最新 human → 最新 ai」窗口收集引用,并仅保留 citation
模式
- 修复「新对话」点击后已发消息消失:useThreadStream 只在 threadId 切回
空值时重置/中止 SSE,避免 onCreated 分配 id 时把刚开始的流打断;
ChatPage 在 landing 状态隐藏 MessageList,移除 KeyedChatPage remount
- 技能详情对话框:所有者可查看源码与文件 tab(不再要求管理员)
- LocalSandbox:Windows PowerShell 5 路径下把 && 重写为 ;,并以
UTF-8 解码 subprocess 输出,避免中文乱码
- knowledge-search-v2 mock 样例改为中文固定测试数据
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-25 23:16:51 +08:00
吉鑫升
c4277f8566
Merge remote-tracking branch 'origin/master' into ji
...
# Conflicts:
# frontend-web/src/components/workspace/messages/message-list-item.tsx
2026-05-25 19:50:17 +08:00
吉鑫升
b7aa8b06ca
修复「新对话」流式中无法重置 + 参考文献开关默认关闭并加对勾
...
- 流式回答过程中点「新对话」:URL 同路径导致 react-router navigate 静默 no-op,
下游 hook 收不到事件;改为显式 navigate(..., {replace:true, state:{resetAt}})
保证每次点击刷新 location.key,并让 useThreadChat 监听 location.key 触发重置
- useThreadStream 在 threadId 变化时 stop() 掉上一条 SSE,避免旧流继续派发事件
- 引入 KeyedChatPage 用 location.key 作 ChatRuntime key,真正的导航触发整树 remount,
解决 useStream 内部 stream.values 残留导致欢迎页底下还能看到旧消息的过渡帧问题
- 「参考文献」开关默认关闭(local.ts),开启态在文字前额外多一个 ✓ 对勾
2026-05-25 19:47:55 +08:00
吉鑫升
a800baf8ae
Merge remote-tracking branch 'origin/master' into ji
2026-05-25 18:59:32 +08:00
吉鑫升
8892637b97
新增 RAG 引用展示模式:支持技能结果按编号引用/列表/表格渲染
...
- 前端新增 skill-display 适配层(runtime/display-adapter)与可视化适配面板,
支持从技能返回 JSON 自动识别字段并配置 citation/list/table/card 展示
- 正文 [[N]] 编号渲染为可点击徽章,点击不跳 URL 而是定位到右侧参考文献面板;
参考卡片样式重做(圆形编号、悬停高亮、过滤掉 "result" 占位类型)
- bash 工具调用按命令中的 skills/{public,custom}/<name>/ 路径反查展示适配,
解决调用名为 "bash" 时无法匹配到具体技能的问题
- 工具结果 JSON 解析放宽:能从 stderr/exit code 噪声尾巴里抢救出 JSON 主体
- 展示适配自动识别接入 LLM:读 SKILL.md 让模型推断真实返回结构,失败回退 mock
- 展示适配面板修复保存回显:保存后表单跟随服务端最新值刷新,样例文本不再被抹掉
- 设置页加 "RAG 引用模式" 开关(默认开),关联 lead-agent prompt 注入引用规则
2026-05-25 18:19:52 +08:00
吉鑫升 and Claude Opus 4.7
9a63a4b7ca
技能详情对话框新增文件浏览面板:支持预览、编辑、下载、复制路径
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-25 14:17:39 +08:00
吉鑫升 and Claude Opus 4.7
67d5e43ec4
标题生成强制关闭 think 模式,回答速度指示器默认开启
...
- TitleMiddleware 给模型实例注入 extra_body 关 think(覆盖 Zhipu GLM 与 Qwen/vLLM 两套写法),并兜底剥离不闭合/残留的 <think> 标签,避免 GLM5 起标题时长时间思考与标签泄漏。
- 前端 streamSpeedMeterEnabled 默认改为 true,设置项描述同步为"默认开启"。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-22 18:03:24 +08:00
吉鑫升 and Claude Opus 4.7
f8e3a3e5b4
公开定时任务页:每条记录标题前加 M月D日 前缀
...
同名任务多次执行后列表全是同一行,加上日期前缀方便扫描;
用 muted-foreground + text-xs + font-normal 弱化,不喧宾夺主。
Tooltip / title / 删除确认弹窗内的文案也同步带上日期。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-22 16:38:44 +08:00
吉鑫升
ef410e298d
Merge remote-tracking branch 'origin/master' into ji
2026-05-22 16:23:11 +08:00
吉鑫升 and Claude Opus 4.7
80fc2a9240
新增技能目录重新扫描接口与分页,关掉技能安全扫描的配置开关
...
- 后端新增 POST /api/skills/reconcile-custom:扫描 custom 目录,把磁盘存在但 DB 无记录的技能登记到调用者名下(published=false),附 4 个单元测试
- 前端技能列表加"重新扫描技能目录"按钮,列表分页每页 10 条
- SkillsConfig 新增 security_scan.enabled(默认 true)用于关闭 LLM 安全扫描;scan_skill_content 在开关关闭时直接放行
- 智能体卡片/对话页长名 truncate 显示 + loading 占位
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-22 16:22:42 +08:00
吉鑫升
b6a2c9336e
Merge remote-tracking branch 'origin/master' into ji
2026-05-22 14:25:23 +08:00
吉鑫升 and Claude Opus 4.7
ba2bc46042
智能体对话选 Agent 直达、澄清问题批量提交、LLM 错误中文化等
...
- 前端:新会话选 Agent 后直接跳转并自动发送,智能体页输入框宽度与首页对齐
- 前端:澄清卡片支持多选+多问题合并提交,消除单题逐一发送的割裂感
- 前端:定时任务弹窗 Agent 下拉支持长描述截断,避免撑破布局
- 后端:ask_clarification 支持同回合多次调用以提多个独立问题
- 后端:LLM 错误处理与定时任务失败提示统一改为中文
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-22 14:24:29 +08:00
吉鑫升
c74be2b789
Merge branch 'master' into ji
2026-05-22 10:58:20 +08:00
吉鑫升 and Claude Opus 4.7
a258122e22
定时任务:修复智能体执行 422、新增描述字段、公开页删除按钮等
...
- 定时任务执行时按 agent.id 解析智能体,老数据中存的中文显示名会回退按 name 查找,避免 422
- scheduled_tasks 表新增 description 字段(迁移 20260522_01),创建/编辑表单支持,公开页标题下显示
- 公开页(/public/scheduled-tasks/{id})新增删除单次执行记录入口,使用样式化 Dialog 确认
- 公开页左侧标题区精简:去掉 schedule/timezone/最近状态两行;执行列表标题剥离尾部时间戳,"计划"改为"执行时间"
- 工作区定时任务列表:超长标题改为按字符换行不再截断;按 created_at 倒序(新建任务在前)
- 启动 Alembic 升级加超时与单独线程,MySQL 缺库时自动 CREATE DATABASE
- vite build 增加 8GB 内存上限
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-22 10:55:59 +08:00
吉鑫升 and Claude Opus 4.7
a892f55cb2
Merge branch 'master' into ji
...
冲突解决:
- frontend-web/src/pages/AgentChatPage.tsx: 保留 HEAD 的 isLandingState +
AgentWelcome 欢迎页扩展,丢弃 master 的旧版 InputBox 风格
- offline-backend-20260512/backend/config.yaml: 保留 HEAD 的对齐注释格式;
master 引入的中文 bank_mission / bank_retain_mission 已自动合入
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-21 20:31:49 +08:00
吉鑫升
ac4424bab2
代码修改
2026-05-21 20:19:44 +08:00
吉鑫升 and Claude Opus 4.7
843eda6fea
fix: 公开接口豁免 CSRF 校验
...
/api/public/ 命名空间下的匿名 PUT/POST 请求没有会话 cookie,
被 CSRF 中间件拦在 403。auth 中间件已放行该前缀,CSRF 这里补齐豁免,
让公开定时任务页的编辑保存能正常调用。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-21 17:45:54 +08:00
吉鑫升
643f9b2c76
Merge remote-tracking branch 'origin/master' into ji
...
# Conflicts:
# frontend-web/src/pages/AgentChatPage.tsx
2026-05-21 17:44:09 +08:00
吉鑫升 and Claude Opus 4.7
53bbb9b15b
feat: 公开定时任务页支持正文/MD 切换与内联编辑
...
- 公开查看器右侧改为 Tabs:MD 附件优先、然后是「正文」;标签使用文件名(去后缀)
- 新增内联编辑:正文与 MD 文件均可编辑保存,每个 Tab 支持 Word 下载
- 后端新增公开 PUT 端点(/runs/{run_id}/files/{i}、/runs/{run_id}/body),服务层提取 _apply_run_file_edit 并新增 admin_update_run_file / admin_update_run_body
- 列表过滤:仅展示 succeeded 且有正文或可用 MD 的执行记录;后端在响应中标记每个文件 available,前端隐藏磁盘已缺失的 MD Tab
- 左侧任务名与右侧执行记录标题均改为可换行 + Tooltip 显示完整内容
- .gitignore 增加 frontend-web/dist
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-21 15:53:43 +08:00
吉鑫升
f1d58983c2
feat: 智能体精选排序与新对话智能体选择器
...
- 后端新增 featured_order 字段及精选排序 API(/agents/selector、/agents/{id}/featured、/agents/featured/order),移除 user_agent_pin 表
- 前端新对话页 (ChatPage) 与输入框 (InputBox) 接入 agent-selector,选中后跳转 AgentChatPage 并通过 sessionStorage 透传首条消息
- 新增管理员智能体管理弹窗 (agent-manage-dialog) 支持精选添加/移除/上下移动
2026-05-21 14:39:12 +08:00
吉鑫升 and Claude Opus 4.7
6971ea5f9c
fix: 修正 config.yaml 中 minimax 模型条目缩进,避免 YAML 解析失败
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-20 19:45:52 +08:00
吉鑫升
cee38f93c8
Merge remote-tracking branch 'origin/master' into ji
2026-05-20 19:38:00 +08:00
吉鑫升 and Claude Opus 4.7
fa5a6b8176
fix: 技能详情弹窗宽度自适应
...
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-20 19:37:46 +08:00
吉鑫升
313290b22c
Merge remote-tracking branch 'origin/master'
2026-05-20 17:06:06 +08:00
吉鑫升 and Claude Opus 4.7
d339db4799
feat: 公开定时任务页面、Word 导出、定时任务实时刷新与技能详情重构
...
- 新增 /public/scheduled-tasks/:taskId 公开只读访问页与对应的
/api/public/scheduled-tasks 后端路由(无需登录)
- 新增对话整体 / 单条消息 / Markdown 工件 "另存为 Word (.docx)" 能力
- 定时任务列表与运行列表在任务执行中自动轮询刷新,并新增"正在执行"标记
- 定时任务运行消息接口在事件存储为空时回退到 LangGraph checkpoint,
让正在执行的任务也能立即看到提示词与流式输出
- 技能详情对话框由折叠面板改为 Tab 切换(Detail / SKILL.md),
并支持 Rendered / Raw 切换、一键复制
- config.yaml 增加 database (MySQL) 与 checkpointer (SQLite) 配置块
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-20 17:04:58 +08:00
吉鑫升
7e75c5b9b9
Merge remote-tracking branch 'origin/master' into ji
2026-05-19 19:58:59 +08:00
吉鑫升 and Claude Opus 4.7
777c3b0079
fix: 定时任务执行过程实时刷新——RunJournal 增加按时间 flush
...
RunJournal 原本只在缓冲满 20 条或运行结束时才把事件落库,短运行会在结束前一直查不到消息,导致定时任务执行详情页的「执行过程」一直显示「暂无执行消息」。
新增 _FLUSH_INTERVAL_SECONDS=3s 的按时间 flush(由 _put 驱动);flush 失败时退回缓冲并重新抛出以便区分成败;flush 成功后若缓冲仍有残留则补一次 flush,失败则不重试避免空转。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-19 18:18:14 +08:00
吉鑫升
cf8185498a
Merge branch 'ji'
2026-05-19 17:22:45 +08:00
吉鑫升 and Claude Opus 4.7
bf34b7df4e
fix: 修复 Memory V2 合并导致的启动崩溃
...
master 的 Memory V2 重构删除了 memory/updater.py,admin_users.py 仍从中导入 get_memory_data 导致启动 ImportError。改用 BuiltinFileProvider 读取 V2 的 USER.md / 各 agent MEMORY.md;前端 MemoryBucketView 同步改为渲染 V2 条目列表。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-19 17:22:27 +08:00
吉鑫升 and Claude Opus 4.7
028c5a34e6
fix: 速度胶囊每轮只显示一次 + 技能调用按 run 合并统计
...
速度胶囊:原本每条 AI 消息都渲染,agentic 多轮 LLM 调用会出现多个胶囊。改为只在每轮 turn-final 消息(下一条 human 之前的最后一条 AI 消息)显示。
技能统计:tool_call_metrics 改为按 (run_id, skill_name) upsert 合并——同一 run 内同一技能的多次调用/重试合并为一行;任一成功即记成功,全部失败则记一行 error 并累积所有报错信息;非技能调用不受影响。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-19 17:22:17 +08:00