xuhd and Claude Sonnet 4.6
91a6183757
feat(notebook): 来源上传优化 + 工作室问答停止回答功能
...
- 上传来源后显示处理中占位卡,轮询成功后自动选中该来源
- 失败时不选中,占位卡去重(已在真实列表中则不显示)
- 输入框三态:空→无按钮,有内容→发送箭头,streaming→停止按钮
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-23 11:27:40 +08:00
xuhd and Claude Sonnet 4.6
9adb0fee28
fix(notebook): preserve selected notebook/docs when switching material source with studioToken
...
- Initialize materialSource via WritingFormProvider initialMaterialSource prop
- Don't clear selectedNotebookId/selectedDocumentIds on source switch when studioToken is set
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-05 13:58:34 +08:00
xuhd and Claude Sonnet 4.6
c577833e7c
fix(notebook): default material source to notebook when studioToken or initialNotebookId is set
...
Replace useEffect-based approach with synchronous effectiveMaterialSource
derived value to avoid first-render flash and timing issues.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-05 13:53:10 +08:00
xuhd and Claude Sonnet 4.6
d57bcd9aa2
feat(notebook): lock material source to notebook when studioToken is provided
...
- Auto-switch materialSource to 'notebook' on mount when initialNotebookId is set
- Replace material source dropdown with static label when studioToken is present
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-05 13:45:24 +08:00
xuhd and Claude Sonnet 4.6
0e7149eec3
feat(notebook): load notebook space via token and pre-select docs/sources
...
- NotebookAIWritingPage reads `token` from URL, fetches space data from
notebook-token API (search_space_id, doc_ids, user_token) and space
name from searchspaces API; keep-alive ping every 50s resets Redis TTL
- Pass user_token as studioToken through AIWritingPage → AIWritingLayout
→ WritingFormPanel → AIWritingPanel → AIWritingForm to skip
getTokenByEmail when studio token is already available
- useStudioNotebooks accepts enabled flag; useNotebookSources accepts
overrideToken to bypass the internal token fetch
- AIWritingForm hides notebook selector when studioToken is provided
(notebook is pre-locked) and pre-selects initialDocumentIds
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-05 13:38:08 +08:00
xuhd
e53c1a0f7b
feat(notebook): pre-select notebook source when notebook_id is in URL
2026-06-05 13:35:35 +08:00
xuhd
e689493723
feat(notebook): add /page/notebook/ai-writing route for 索财笔记 view
2026-06-05 13:32:19 +08:00
xuhd and Claude Sonnet 4.6
e6d3226c47
feat(studio): replace notes source upload with multi-tab popup
...
- Add document-upload-popup.tsx with tabs for B系统/A系统/Y系统/XWT/upload
- Add network-actor.tsx for XWT search tab
- Add empty.tsx for empty state
- Refactor SourcesDialog: left panel becomes single "上传来源" button that opens new popup
- Wire DocumentUploadDialogProvider around StudioNotebookDetailPage
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-05 13:32:19 +08:00
xuhd and Claude Sonnet 4.6
2c2650ff07
feat(skill-evolution): expose model_name as per-user configurable field
...
前端恢复模型选择器,后端允许 model_name 写入 per-user skill_evolution.json。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-05 13:32:19 +08:00
xuhd and Claude Sonnet 4.6
603d667608
fix(skill-evolution): strip non-user-configurable fields from per-user overrides
...
load_user_overrides 只保留 interval_hours/stale_after_days/archive_after_days,
过滤掉老文件中的 enabled、model_name 等字段,防止旧数据覆盖全局开关。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-05 13:32:19 +08:00
xuhd and Claude Sonnet 4.6
e9125b0900
test(curator): add scheduler startup non-blocking and execution tests
...
验证 curator 调度器不阻塞启动、启动延迟后真实执行、无锁时跳过。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-05 13:32:19 +08:00
xuhd and Claude Sonnet 4.6
d0c696e523
refactor(skill-evolution): simplify config UI to 3 user-editable fields
...
前端配置页只保留运行间隔、陈旧阈值、归档阈值三个字段,
其余配置(enabled、model_name 等)走 config.yaml 全局默认。
后端 PUT /api/curator/config 仅保存这三个字段到 per-user skill_evolution.json。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-05 13:32:19 +08:00
xuhd
6f9afcdba2
修复技能审核agent提示词
2026-06-05 13:32:19 +08:00
xuhd
705de81c78
fix(skill-review): use uuid per review run to avoid checkpoint context bleed
2026-06-05 13:32:19 +08:00
xuhd
335bc3cf48
fix(skill-review): propagate user_id through review chain for correct DB ownership
2026-06-05 13:32:19 +08:00
xuhd
857798ff2f
fix(skill-review): pass RunnableConfig with thread_id to satisfy ThreadDataMiddleware
2026-06-05 13:32:19 +08:00
xuhd
3955bd72b5
refactor(skill-review): use create_agent with skill_evolution disabled to allow autonomous skill creation
2026-06-05 13:32:19 +08:00
xuhd
b5d80025e9
fix(skill-review): lower CREATE threshold and log agent decision
2026-06-05 13:32:19 +08:00
xuhd
5b5e4f8ff0
fix(thread-data): guard runtime.context None on line 110
2026-06-05 13:32:19 +08:00
xuhd
ad5bd22c5e
refactor(skill-review): use make_lead_agent instead of create_react_agent
...
Reuses the full middleware chain (ToolErrorHandlingMiddleware,
LLMErrorHandlingMiddleware, etc.) so tool errors like 'already exists'
and invalid SKILL.md are converted to ToolMessages by the middleware,
not silently swallowed or crashing the review task.
2026-06-05 13:32:19 +08:00
xuhd
b2ed6f1acf
fix(skill-review): add strict SKILL.md format spec to review prompt
2026-06-05 13:32:19 +08:00
xuhd
2a8364e902
fix(skill-review): use runtime.context to get thread_id
2026-06-05 13:32:19 +08:00
xuhd
23a18ec318
fix(skill-review): after_agent must be sync, not async
2026-06-05 13:32:19 +08:00
xuhd
d713f0209d
feat(curator): restrict per-user config to archiving thresholds only
2026-06-05 13:32:19 +08:00
xuhd
0a21d37146
chore(config): enable skill_evolution, review_worker, and curator (24h) in config.yaml
2026-06-05 13:32:19 +08:00
xuhd and Claude Sonnet 4.6
c645142f82
feat(skill-evolution): register SkillReviewMiddleware in lead agent chain
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-05 13:32:19 +08:00
xuhd and Claude Sonnet 4.6
0e7a1de4db
feat(skill-evolution): add SkillReviewMiddleware to trigger post-turn review
...
Implements SkillReviewMiddleware that hooks into after_agent to call
maybe_start_review() as a background task after each agent turn, without
blocking the HTTP response. Exceptions are caught and logged only.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-05 13:32:19 +08:00
xuhd and Claude Sonnet 4.6
ef3ef433c1
feat(skill-evolution): add SkillReviewWorker for passive post-turn skill creation
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-05 13:32:19 +08:00
xuhd
0da91be9b1
test(skill-evolution): fix unused import and add max_messages assertion
2026-06-05 13:32:19 +08:00
xuhd and Claude Sonnet 4.6
69454ada69
feat(skill-evolution): add ReviewWorkerConfig to SkillEvolutionConfig
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-05 13:32:19 +08:00
xuhd and Claude Sonnet 4.6
1126fedea8
chore(env): 添加我的笔记相关环境变量配置
...
- VITE_AIPI_FRONTEND_URL: 我的笔记前端地址
- VITE_STUDIO_ENABLED: 控制侧边栏我的笔记入口显示
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-05 13:32:19 +08:00
xuhd
f2d7d43e38
Merge remote-tracking branch 'origin/master' into xuhd
2026-06-03 11:55:44 +08:00
xuhd and Claude Sonnet 4.6
48f37df3d5
chore(env): 更新本地开发环境配置
...
- 开启 GATEWAY_CORS_ALLOW_ALL=1(本地开发跨域放行)
- 更新前端 .env.development
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-03 11:45:54 +08:00
xuhd and Claude Sonnet 4.6
712326387f
merge: 合并 origin/xuhd,解决 message-list-item 和 WorkspaceRoutes 冲突
...
- message-list-item: 保留 EmbeddedPageContext + 消息内联编辑两套功能
- WorkspaceRoutes: 保留 IframeChatPage + NotebookDetailPageWithKey
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-03 11:41:49 +08:00
xuhd and Claude Sonnet 4.6
22574d3ada
fix(setup_agent): 限制技能数量最多 5 个
...
- middleware 拦截阶段静默截断 skills[:5],超出不报错不中断流程
- 工具执行阶段同样截断,双重兜底
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-03 10:48:13 +08:00
xuhd and Claude Sonnet 4.6
613cece224
fix(studio): 笔记切换页面不刷新 + 侧边栏错误提示友好化
...
- WorkspaceRoutes 给 StudioNotebookDetailPage 加 key={notebookId},切换笔记时强制重新挂载
- createSearchSpace 接口失败时解析响应体 detail 字段,直接展示服务端错误信息
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-02 17:24:08 +08:00
xuhd and Claude Sonnet 4.6
73700cca54
fix(ai_writing): 笔记来源素材使用真实检索分数并打印请求日志
...
- 笔记 chunk 的 relevance_score 改用接口返回的 score 字段(向量相似度/RRF),接口无分数时降级为位置估算
- _search_notebook 增加 INFO 级日志,输出每次请求的 payload 和响应 status/body,便于调试
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-02 16:31:57 +08:00
xuhd and Claude Sonnet 4.6
c714351819
feat: 我的笔记列表与详情页 UI 重构(Gemini 风格)
...
- StudioNotebooksPage: 卡片改为灰底无边框圆角网格,hover 显示三点菜单,支持重命名(PATCH)和删除(DELETE)
- StudioNotebookDetailPage: 详情页背景改为主题色渐变,内容垂直居中,输入框内联布局,模型选择器移至右侧,历史对话限显 5 条可展开/滚动
- api.ts: 新增 deleteSearchSpace、renameSearchSpace、uploadSourceText 接口
- 来源 Dialog:新增「复制的文字」面板,支持粘贴文本上传
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-01 17:36:42 +08:00
xuhd
1a1d22d6ee
添加环境变量我的笔记的前端地址
2026-06-01 16:59:09 +08:00
xuhd and Claude Sonnet 4.6
ab9034633a
feat: StudioNotebookDetailPage 添加「我的笔记」跳转
...
- 聊天视图顶栏和列表视图右上角均新增「我的笔记」链接
- 点击跳转目标系统 callback 页面并携带 token 和 redirect 参数
- 来源弹窗仅保留「上传文件」和「复制的文字」两个选项
- VITE_AIPI_BACKENP_URL 用于 Studio API 调用,VITE_AIPI_FRONTEND_URL 用于页面跳转
- useStudioNotebooks 新增 token 返回值供页面直接使用
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-01 16:55:39 +08:00
xuhd and Claude Sonnet 4.6
7f0a0d92a3
feat: 素材来源新增「我的笔记」选项
...
- materialSource 枚举新增 notebook 值
- 选择「我的笔记」时展开笔记本 + 文档多选选择器
- 切换其他来源自动清空笔记选择
- 只有 notebook 模式才向后端传笔记参数
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-01 14:30:16 +08:00
xuhd and Claude Sonnet 4.6
e4983be9d7
fix: 解决 merge 冲突,恢复笔记来源字段
...
合并 master 时冲突导致 notebook_search_space_id / notebook_source_ids
被覆盖,现补回;同时兼容 master 新增的 material_source / model_name 字段。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-01 14:22:55 +08:00
xuhd
e30b44dae1
Merge branch 'master' of http://192.168.0.200/knowledge-base-bj/deerflow-server into xuhd
2026-06-01 14:21:20 +08:00
xuhd and Claude Sonnet 4.6
b749c78efa
feat: AI写作集成笔记来源,支持多文档多选检索
...
- 前端 AIWritingForm 新增笔记来源选择器(笔记本单选 + 文档多选 checkbox)
- AIWritingRequest 类型新增 noteSearchSpaceId / noteSourceIds 字段
- AIMaterial.sourceType 新增 notebook 类型
- useAIWritingStream startWriting 时自动获取 notebook_token 并携带笔记参数
- 后端 AIWritingState 新增 notebook_search_space_id / notebook_source_ids 字段
- researcher 节点新增 _search_notebook,解析 API 返回的 documents/chunks,
每个 chunk 作为独立素材(source_type=notebook)混入素材包
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-01 11:47:37 +08:00
xuhd
22b93e32eb
Merge branch 'master' of http://192.168.0.200/knowledge-base-bj/deerflow-server into xuhd
2026-06-01 10:49:53 +08:00
xuhd
423abf4fde
上传文件添加
2026-05-29 15:15:29 +08:00
xuhd and Claude Sonnet 4.6
4a63399363
feat: 新增工作室展示开关 VITE_STUDIO_ENABLED
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-29 10:47:50 +08:00
xuhd
e4da5bec8d
22222
2026-05-28 18:56:11 +08:00
xuhd
6102963624
000
2026-05-28 18:43:20 +08:00
xuhd
b152cb43fc
222
2026-05-28 18:37:48 +08:00
xuhd and Claude Sonnet 4.6
ebe1678b30
Merge origin/master into xuhd
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-28 18:31:16 +08:00
xuhd and Claude Sonnet 4.6
1ea521abab
前端优化:chat-box、消息列表、rehype 及 Studio 相关交互改进
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-28 18:29:10 +08:00
xuhd
b8a97f2138
xxx
2026-05-28 18:29:10 +08:00
xuhd
e2b676caaa
修复
2026-05-28 10:00:40 +08:00
xuhd
36311e6cef
999
2026-05-27 19:30:54 +08:00
xuhd
3f8a520624
修复一下
2026-05-27 11:40:41 +08:00
xuhd and Claude Sonnet 4.6
794ff93fa9
chore: 更新 .env 配置(notebook API 地址、数据库连接)
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-26 23:56:14 +08:00
xuhd and Claude Sonnet 4.6
ff8eb930f7
feat: 笔记本 Studio 模块 — RAG 聊天、引用弹窗、侧边栏工作室
...
- 新增 Studio 笔记本列表页与详情页(RAG 流式聊天、历史线程切换)
- 修复 streamSubgraphs: true 使 AI 流式消息正常展示
- 引用圆圈 [[cite:N]] 渲染 + 点击弹窗显示文档 chunk 内容
- 侧边栏「工作室」区域支持折叠/展开,笔记本过滤 is_owner=true
- 后端 lead_agent 支持 notebook_source_ids / notebook_token 参数
- 线程 metadata 改为 thread_type=notebook,侧边栏过滤同步
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-26 23:55:08 +08:00
xuhd and Claude Sonnet 4.6
2c0bb2041b
feat: 统一 Admin 用户中心 + 修复默认对话记忆存储路径
...
## 前端
- 新增 AdminUserHub 页面,合并用户管理/审计/记忆三个页面为统一中心(左侧用户列表 + 右侧 Tab)
- 旧三条 admin 路由重定向到新 /admin 路由
- 侧边栏导航菜单合并为单一入口"用户中心"
- memory-settings-page: 默认助手下拉选项传 agent=default(后端识别为全局哨兵)
## 后端
- memory.py: 将 "default" 加入全局哨兵 _GLOBAL_AGENT_VALUES,?agent=default 读全局记忆文件
- memory_middleware.py: _resolve_agent_id() 无 agent 上下文时返回 None,默认对话写入 users/{id}/memory.json
- manager.py: 移除 agent_id or "default" 回退,让 None 透传给 V1 provider
- admin_users.py: Admin 记忆 API 将"默认助手"桶改为读全局文件(agent_id=None)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-22 16:04:49 +08:00
xuhd and Claude Sonnet 4.6
b3a39cbdf7
feat: V1记忆系统支持、管理员记忆编辑及对话记忆注入开关
...
- 新增 V1 记忆系统(memory.json)支持:提取结果强制中文、历史字段修复为增量累积日志
- 用户设置页面:V1 模式下新增 agent 选择器,可查看各 agent 的私有记忆
- 管理员记忆页面:区分 V1/V2 渲染,V1 支持完整 CRUD(用户画像/历史摘要/事实记录)
- 后端新增 V1 记忆 CRUD API(sections/facts),前端同步添加对应 hooks 和 API 调用
- 新建专家页面:标记 bootstrap 线程类型,跳过记忆保存,侧边栏过滤该类线程
- 输入框工具栏新增「记忆」开关:关闭时 V1/V2 均不注入,开启时按 config.yaml 版本正常注入
- 修复 agent 目录不存在时的 FileNotFoundError,回退至默认配置
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-22 12:32:47 +08:00
xuhd
f730924572
222
2026-05-21 19:42:46 +08:00
xuhd
2e6ce67b64
22
2026-05-21 18:04:45 +08:00
xuhd and Claude Sonnet 4.6
d56230e04d
feat: 记忆配置改为数据库存储,用户只可配置召回模式
...
- 新增 persistence/memory_config/ 模块:UserMemoryConfigRow ORM 模型 +
SqlUserMemoryConfigRepository + MemoryUserMemoryConfigStore(内存兼容)
- 新增 Alembic 迁移脚本 20260521_01 创建 user_memory_configs 表
- memory_config.py:USER_WRITABLE_FIELDS 从 3 个缩减为 1 个
(hindsight.recall_budget),移除文件 IO,改为进程内 cache + async DB 对接函数
- Gateway lifespan 启动时批量预热 recall_budget cache
- memory router PATCH/DELETE 改用 DB 存储,支持 400 校验非法 budget 值
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-21 17:34:25 +08:00
xuhd and Claude Sonnet 4.6
3748513996
feat: 智能体创建流程优化与管理员记忆页面
...
- 创建智能体页面:保存后自动跳转列表页、技能列表增加搜索过滤框
- Bootstrap 模式:开放全部技能可见性,注入专属提示词(skill_list 匹配意图、禁止 skill_manage)
- 管理员记忆页面:新增 AdminMemoryPage 及路由,支持查看/编辑用户记忆条目
- 内存配置与管理员用户接口同步更新
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-21 11:43:59 +08:00