吉鑫升
|
3ea33e1dee
|
大模型速度增加提示
|
2026-05-14 19:12:14 +08:00 |
|
 xuhdandClaude Opus 4.7
|
6155a2ec2b
|
fix: curator + notifications react-query cache 按 user_id 隔离
切换账号在同一 tab 里时,旧 cache key (["curator","config"] 等) 会
让新账号"看到"上一个账号的值。如果用户没意识到、直接点保存,就会
把上一个账号的配置原样写到新账号的 per-user JSON 里去。
修复:在 useCuratorKeys / useNotificationKeys hook 里读
getStoredAuth().user_id 织进 queryKey。每个用户拥有独立 cache
桶,切换账号绝不命中对方的数据。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-14 18:20:41 +08:00 |
|
fengxiangdebaozi
|
8ecc32da6d
|
页面结构修改
|
2026-05-14 18:13:58 +08:00 |
|
 xuhdandClaude Opus 4.7
|
eb41da78f2
|
fix: 四处 router.push 缺 /page 前缀导致 404
HashRouter 顶层路由是 /page/*,所有 workspace 子路由必须带这个前缀
才能命中。以下四处 router.push 字面量遗漏,点击后落到 NotFoundPage:
- skill-evolution-panel.tsx 返回技能按钮
- NewAgentPage.tsx 返回 agents
- NewAgentPage.tsx 创建后“开始对话”
- agent-card.tsx 列表卡片“聊天”按钮
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-14 17:56:32 +08:00 |
|
 xuhdandClaude Opus 4.7
|
99febda256
|
feat(skills/notifications): 多租户阶段 4 — 测试 + 前端
后端:
tests/test_skills_multitenancy.py(12 个用例,全部通过)
- SkillStore: 可见性 / 全局重名拒绝 / owner-only update+delete /
admin override / ensure_legacy 仅补 NULL owner
- 路由助手 _get_editable_skill_or_raise / _get_owned_skill_or_raise
的 owner / admin / 403 / 404 分流
- cascade_skill_unpublished_or_deleted:
· unpublish 同时扫两个用户的 agent,剥掉 skill;自己改自己不发
通知,其他人收 agent_skill_removed
· admin_takedown 额外给 skill owner 发 skill_taken_down
- NotificationStore CRUD + unread_count + 跨用户隔离
- 同步版 apply_automatic_transitions 用户隔离:A 跑 curator 不
动 B 的 skill;curator_log per-user 分桶
前端 — core/notifications/{types,api,hooks,index}.ts
- 类型对齐 routers/notifications.py 的 NotificationItem
- listNotifications / getUnreadCount / markRead / markAllRead /
deleteNotification
- useNotifications / useUnreadCount(refetchInterval=30s) / mutation 钩子
前端 — components/workspace/notification-bell.tsx
- 顶部铃铛图标 + 未读红点(>99 显示 99+)
- 复用 DropdownMenu 作为弹层(项目暂无 Popover 原语)
- 列表项:未读蓝点 + 标题 + body + 相对时间,悬停露出删除按钮
- 标记单条已读 / 全部已读 / 删除
- 接入 workspace-nav-menu.tsx,作为 SidebarMenuItem 放在设置入口上方
前端 — Skill 多租户字段
- core/skills/type.ts 加 owner_user_id / published / builtin
- core/skills/api.ts 加 setSkillPublished + deleteCustomSkill
- core/skills/hooks.ts 加 useSetSkillPublished + useDeleteCustomSkill
前端 — settings/skill-settings-page.tsx
- 抽出 SkillRow 子组件,每项渲染 owner badge(内置/我的/来自他人/
已发布),样式抄自 agent-card.tsx 的 isBuiltin/isOwned/isFromOthers
- canManage = isOwned || isAdmin;canTogglePublish 同上但排除内置
- 发布/取消发布按钮(Eye / EyeOff),调用 setSkillPublished
- 删除按钮 + 二次确认 Dialog,调用 deleteCustomSkill
- 启用开关保持原样
前端 — i18n
- types.ts: 新增 NotificationsTranslations + Translations.notifications;
settings.skills 加 badgeBuiltin/badgeMine/badgeFromOthers(+Title) /
badgePublished(+Title) / publishAction / unpublishAction /
publishSuccess / unpublishSuccess / deleteAction / deleteConfirm /
deleteSuccess
- zh-CN.ts / en-US.ts 同步补齐对应文案
验证
- PYTHONPATH=. uv run pytest tests/test_skills_multitenancy.py -v →
12 passed in 2.08s
- 与现有 test_agents_backend / test_skill_evolution_runtime /
test_skills_install_upload 并行跑:41 通过 + 1 个 pre-existing 失败
(test_validate_rejects_missing_skill_md 期望 "SKILL.md" 但收到
"Skill archive is empty",与本期改动无关)
- pnpm typecheck:本次新增/修改的文件零新增错误;剩余报错全部为
pre-existing 的 next/link、next/navigation 别名声明缺失、
workspace-nav-menu.tsx 的 SettingsSection 类型不匹配、nextra
缺失、markdown-docx 第三方库等
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-14 17:35:02 +08:00 |
|
fengxiangdebaozi
|
543d78e040
|
路由调整
|
2026-05-14 17:24:45 +08:00 |
|
fengxiangdebaozi
|
6b1f17d6a8
|
页面导入
|
2026-05-14 16:51:32 +08:00 |
|
fengxiangdebaozi
|
e6ad3c414f
|
页面布局调整
|
2026-05-14 16:01:25 +08:00 |
|
fengxiangdebaozi
|
139dfb76e4
|
bug修改
|
2026-05-14 14:59:12 +08:00 |
|
fengxiangdebaozi
|
f4769c4046
|
Merge branch 'master' of http://192.168.0.200/knowledge-base-bj/deerflow-server into dhk-2
|
2026-05-14 14:28:31 +08:00 |
|
fengxiangdebaozi
|
fea3cc741f
|
系统合并
|
2026-05-14 14:28:17 +08:00 |
|
 xuhdandClaude Opus 4.7
|
4e764350a4
|
feat(agents): 创建专家页面加模型选择
NewAgentPage 在两处加 Select 下拉:
- 左侧聊天框上方 "当前对话模型":透传给 useThreadStream 的
context.model_name,控制当前 bootstrap 对话调用的 LLM
- 右侧表单 "模型":写入 agent.model,控制专家保存后被使用时调用
的 LLM
两个下拉互相独立,复用 useModels() 拉 /api/models。页面加载完
模型列表后自动 seed 到列表第一个(与 config.yaml 全局默认对齐),
用户可随时切换。
杂项:.gitignore 忽略 skills/ 与 hermes-agent-main/ 运行时目录。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-14 12:59:10 +08:00 |
|
xuhd
|
c63811367e
|
123
|
2026-05-14 12:45:04 +08:00 |
|
 xuhdandClaude Opus 4.7
|
4cc8b3198b
|
fix: 修复 setup_agent 创建专家流程的多个问题
后端 (setup_agent_approval_middleware.py):
- 拦截策略从 wrap_tool_call + Command(goto=END) 改为
after_model + jump_to="end"。在 tool_node 执行前直接终止图,
避免模型并行调多个 tool_call 时 Command 输出被稀释、graph
路由不稳定的问题(症状:审批 ToolMessage 发出后流不结束)。
- 用 @hook_config(can_jump_to=["end"]) 装饰器声明跳转能力,
否则 LangChain 不会为该 hook 构造 conditional edge。
前端 (NewAgentPage.tsx):
- 聊天阶段不再调 ensureAgent / POST /api/agents,placeholder
agent 不再落库;agent 仅在用户点右上角“保存”时创建。
- 自动生成的占位名 "未命名专家-xxx" 不再回写到输入框,保持空白
直到用户输入或 setup_agent 审批回填。
- handleApproveSetupAgent 仅把模型 propose 的 payload 填入表单,
不再 PUT /api/agents/{id};落库交给手动保存按钮。
- onToolEnd 不再 getAgentWithRetry —— 工具被 middleware 拦截、
根本不会执行,没有 agent 状态可拉。清理对应死代码(getAgent
import、wait()、AGENT_READ_RETRY_DELAYS_MS、getAgentWithRetry)。
- 路由跳转补齐 /page 前缀:返回按钮、“开始对话”按钮。
- 右侧表单:SOUL.md textarea 加 max-h-[400px],技能列表外框加
max-h-[240px],各自 overflow-y-auto,避免长内容撑高整列。
前端 (agent-card.tsx):
- 列表卡片“聊天”按钮的跳转路径补齐 /page 前缀,避免点击后 404。
无新依赖。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-14 12:35:49 +08:00 |
|
 xuhdandClaude Opus 4.7
|
5c6ac06656
|
feat(skills): 自我进化前端 — Skills 独立侧边栏 + /skills/evolution 页面
UI 重构:
- settings-dialog.tsx:把 Skills section 从设置弹窗移除
- workspace-nav-chat-list.tsx + WorkspaceRoutes.tsx + SkillsPage.tsx:
Skills 提升为独立侧边栏导航项,/workspace/skills 路由直接渲染
SkillSettingsPage(同事原型已就绪)
- skill-settings-page.tsx:顶部追加 "自我进化" 跳转按钮
自我进化页面:
- /workspace/skills/evolution 子路由 → SkillEvolutionPage 包装
- skill-evolution-panel.tsx:三段式
· 状态卡:启用/暂停徽章 + 累计运行次数 + 上次运行时间/摘要 +
技能计数 (total/active/stale/archived) + 立即执行按钮
· 配置表单:enabled / curator.enabled / interval_hours /
stale_after_days / archive_after_days / moderation_model_name
本地暂存 → 保存调 PUT,热生效
· 日志面板:拉 GET /api/curator/logs,2 秒自动刷新,monospace
展示,warning 黄、error 红
- core/curator/api.ts + hooks.ts + types.ts:TanStack Query 包装
status / config (GET/PUT) / run / logs
i18n:
- types.ts 新增 settings.skillEvolution.* 类型签名
- zh-CN.ts / en-US.ts:状态卡 / 配置表单 / 日志面板文案,
以及 settings.skills.goToEvolution
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-14 12:00:54 +08:00 |
|
fengxiangdebaozi
|
804f37dcfa
|
提示词权限配置
|
2026-05-14 11:51:29 +08:00 |
|
fengxiangdebaozi
|
2f2ba44c7c
|
添加推荐问题修改接口
|
2026-05-14 11:07:28 +08:00 |
|
fengxiangdebaozi
|
62292500ba
|
Merge branch 'master' of http://192.168.0.200/knowledge-base-bj/deerflow-server into dhk-2
|
2026-05-14 10:52:08 +08:00 |
|
fengxiangdebaozi
|
a7f1e89ce9
|
提示词修改
|
2026-05-14 10:51:29 +08:00 |
|
董宏凯
|
20c7e2841c
|
Merge branch 'dhk-2' into 'master'
提示词修改
See merge request knowledge-base-bj/deerflow-server!10
|
2026-05-14 02:45:46 +00:00 |
|
fengxiangdebaozi
|
c79f5c5a7a
|
样式修改
|
2026-05-14 10:42:37 +08:00 |
|
xu hd
|
7417a1c950
|
Merge branch 'xuhd' into 'master'
feat: admin可删除内置专家
See merge request knowledge-base-bj/deerflow-server!7
|
2026-05-14 02:18:33 +00:00 |
|
xu hd
|
799ccbe300
|
Merge branch 'xuhd' into 'master'
feat: admin可编辑内置专家 + agent列表Tab分组
See merge request knowledge-base-bj/deerflow-server!6
|
2026-05-14 02:06:42 +00:00 |
|
 xuhdandClaude Opus 4.7
|
43044232bb
|
feat: admin可删除内置专家
复用 _get_editable_or_raise 分支,给 AgentStore 增加 delete_builtin,
路由按 edit_mode 决定走 delete 还是 delete_builtin;前端 agent-card
为 admin 显示内置 agent 的删除按钮。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-14 09:53:13 +08:00 |
|
fengxiangdebaozi
|
e286e59431
|
页面结构调整
|
2026-05-14 09:42:12 +08:00 |
|
fengxiangdebaozi
|
65e89a4248
|
样式修改
|
2026-05-14 09:36:45 +08:00 |
|
 xuhdandClaude Sonnet 4.6
|
2abdf28eba
|
feat: admin可编辑内置专家 + agent列表Tab分组
- /login/admin 登录时自动赋予 admin 角色,允许编辑内置专家
- agent列表页新增「全部」(内置+已发布) 和「自己的」两个Tab
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-05-13 23:16:18 +08:00 |
|
董宏凯
|
e458f1eab4
|
接口地址填写
|
2026-05-13 22:29:05 +08:00 |
|
fengxiangdebaozi
|
1a1369f115
|
代码提交
|
2026-05-13 22:18:55 +08:00 |
|
fengxiangdebaozi
|
1c50c73aa4
|
样式修改
|
2026-05-13 21:41:13 +08:00 |
|
fengxiangdebaozi
|
6cc28c7edd
|
Merge branch 'master' of http://192.168.0.200/knowledge-base-bj/deerflow-server
|
2026-05-13 21:25:40 +08:00 |
|
fengxiangdebaozi
|
1c2cf768f8
|
样式修改
|
2026-05-13 21:25:29 +08:00 |
|
吉鑫升
|
50bda1ddee
|
Merge branch 'master' of http://192.168.0.200/knowledge-base-bj/deerflow-server into ji
# Conflicts:
# frontend-web/src/components/workspace/agents/agent-card.tsx
# frontend-web/src/pages/NewAgentPage.tsx
|
2026-05-13 20:10:21 +08:00 |
|
吉鑫升
|
31abad86d5
|
智能体配置
|
2026-05-13 20:04:06 +08:00 |
|
fengxiangdebaozi
|
af7e90c87a
|
Merge branch 'master' of http://192.168.0.200/knowledge-base-bj/deerflow-server
|
2026-05-13 18:23:25 +08:00 |
|
fengxiangdebaozi
|
2e4bdf122e
|
页面结构修改
|
2026-05-13 18:18:05 +08:00 |
|
吉鑫升
|
83d7fa26fe
|
Merge remote master docs
|
2026-05-13 17:28:04 +08:00 |
|
fengxiangdebaozi
|
efc4d89fdf
|
文档
|
2026-05-13 17:17:46 +08:00 |
|
吉鑫升
|
a27206c543
|
Update local frontend and backend changes
|
2026-05-13 17:17:42 +08:00 |
|
吉鑫升
|
faca2c9a2d
|
Merge branch 'likun' into master
|
2026-05-13 17:02:22 +08:00 |
|
吉鑫升
|
aa034f8669
|
定时任务订阅模式
|
2026-05-13 14:59:27 +08:00 |
|
likun
|
b8926f00d7
|
新增用户意图确认功能
|
2026-05-13 14:36:44 +08:00 |
|
吉鑫升
|
cf2e4bdd9c
|
智能体分权
|
2026-05-13 11:36:17 +08:00 |
|
吉鑫升
|
e7a455f22e
|
Initial commit: deerflow-server (frontend-web + offline-backend-20260512)
|
2026-05-13 09:36:15 +08:00 |
|