Commit Graph
55 Commits
Author SHA1 Message Date
yxx b97ec755c2 feat(export): 交付 Markdown → HTML 导出服务
实现 Export Service 完整生命周期:mistune AST → Document AST → HtmlExporter 渲染完整 HTML5,异步任务注册表 + 取消 + 24h 产物过期。新增 5 个 /api/exports 端点与 15 项测试;pdf/docx 与函数图像静态渲染留待后续 PR。
2026-09-04 09:02:33 +08:00
admin d32e9c6efa fix(benchmark): 记录实际Embedding空间与逐样本回退信息 2026-09-04 07:25:12 +08:00
admin 96e109f95e fix(provider): 修复索引事务回滚与工具名分片并同步主分支 2026-09-04 07:15:52 +08:00
admin 85f3169fbd feat(provider): 完成阶段E协议适配、国内预设与模型路由 2026-09-04 06:19:32 +08:00
yxxandClaude Code dd5739bb43 fix(backend): FTS 阈值过滤处理 span=0 退化场景
全部命中 bm25 相同时归一化皆为 1.0,阈值超过 1.0 应无命中,
与旧 normalize_scores 语义对齐。

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-03 23:57:00 +08:00
yxx 58a8d64fdb Merge remote-tracking branch 'origin/main' into feat/knowledge-retrieval-core
# Conflicts:
#	README.md
#	backend/app/routes.py
#	docs/architecture/AI笔记软件技术栈说明-团队版-v2.3.md
#	docs/development/Knowledge与Retrieval-Core开发说明.md
2026-09-03 23:45:52 +08:00
yxxandClaude Code e3f8d76243 fix(backend): 落实 PR #12 评审意见
- P1 事件循环让出:run_rag 在样本边界 await asyncio.sleep(0),运行中取消/进度/SSE 可及时调度
- P2 SSE 终止事件:历史回放期间识别终止事件并结束流,try/finally 保证订阅清理
- P2 FTS 截断:fts 走数据库侧精确分页与计数,阈值经 bm25 截止值换算,不再受 5000 条固定截断
- P2 仅块标注:expected_block_ids 从块反查所属笔记,避免合法样本被判零分

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-03 23:37:09 +08:00
admin f8e499df5d fix(mcp): 修复配置导入、凭据管理与协议边界
修复生命周期锁阻塞事件循环、旧连接回调误停新连接及超时契约不一致。

补齐 MCP JSON 兼容导入、密钥拆分与失败重试,修复 Header 大小写草稿丢失,迁移大小写敏感的环境变量凭据。

在 SSE 行拼接前限制缓冲大小,增加并发、迁移和流式输入回归测试;忽略本机 MCP 数据及 server.json/servers.json。

验证:后端 185 项、前端 54 项测试通过,前端生产构建、相关文件 Ruff 与暂存差异检查通过。
2026-09-03 22:38:35 +08:00
yxxandClaude Code bc7c934375 fix(backend): 落实 PR #11 第二轮评审意见
- Benchmark 容量淘汰只删终态 run,满容量且全活动时返回 BENCHMARK_CAPACITY_EXCEEDED
- 创建 run 前校验索引兼容性(BENCHMARK_INDEX_INCOMPATIBLE)
- 取消 run 补发 RunCancelled 终止事件;失败分支脱敏(BENCHMARK_RUN_FAILED)
- 失败样本计入汇总分母,报告输出 total/successful/failed/failure_rate
- load_dataset 按文件名隔离无关损坏文件,顶层非对象拒绝
- FTS score_threshold 先于计数/分页,total 与 items 一致
- Benchmark SSE 支持 Last-Event-ID 游标
- 移除 Agent Benchmark 501 占位接口
- 同步第二阶段接口契约与开发说明文档

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-03 22:20:11 +08:00
admin 3001d6089a 添加MCP客户端超时配置和连接管理改进
添加了MCP客户端的超时配置功能,包括启动超时和工具调用超时参数。
改进了HTTP客户端和标准IO客户端的超时处理机制,确保请求在指定时间内完成或取消。
增加了对MCP服务器数量的限制,防止配置过多服务器导致系统不稳定。
增强了错误处理机制,当连接异常时能够正确清理资源并移除桥接主机。
添加了对大型MCP消息的大小验证,防止过大的请求导致系统问题。
优化了密钥更改后的处理流程,确保在修改密钥时停用服务器并要求重新测试。
2026-09-03 16:16:58 +08:00
admin 9f2c46ab39 feat(mcp): complete remote transports and configuration workflow 2026-09-03 15:25:41 +08:00
admin d4ffbdcadd feat(mcp): add standalone server registry
Implement C.1 stdio MCP server CRUD, encrypted environment secrets, command digest approval, connection tests, lifecycle recovery, and dynamic tool registration. Add the standalone frontend configuration center, contracts, regression tests, and development documentation.
2026-09-03 14:49:49 +08:00
yxxandClaude Code d591a79942 fix(backend): 落实 PR #9 评审意见
- 检索调优参数(rrf_k/rerank/rerank_candidates/score_threshold)透传到引擎实际执行
- Recall 去重,避免同一 Note 多 Block 重复导致 Recall 超 1
- RAG 运行改为后台异步执行:创建即 queued + 202,支持取消与 SSE 实时事件
- 数据集元数据校验,坏文件隔离跳过;citation_required 语义修正
- modes 空/重复校验;配置快照记录模型版本与索引元信息

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-02 23:20:34 +08:00
admin 0bbff0090e docs: 同步第二阶段进度与扩展复盘 2026-09-02 20:22:06 +08:00
admin 1218b5cd71 fix(extension): 收紧插件命令运行时契约 2026-09-02 20:03:39 +08:00
admin 09c1bdac21 fix(extension): 向MCP命令传递插件设置 2026-09-02 18:23:32 +08:00
admin b16230ac4c fix(extension): 按Schema资源作用域校验引用 2026-09-02 15:47:54 +08:00
admin ec88795b11 fix(extension): 保护插件凭据引用与删除事务 2026-09-02 15:31:39 +08:00
admin cff38158f6 fix(extension): 完成MCP命令目标并收紧Schema边界 2026-09-02 14:52:03 +08:00
admin c1bac00d12 fix(extension): 收紧插件密钥与命令清单边界 2026-09-02 14:08:47 +08:00
admin 0a9cad1c76 feat(extension): 实现插件命令与设置贡献 2026-09-02 12:52:40 +08:00
yxxandClaude Code 5cb7e6afae chore(backend): 移除误提交的验收笔记
验收笔记此前被误纳入 benchmark 提交,现摘除跟踪,文件保留在本地磁盘。

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-01 23:35:11 +08:00
yxx f74b751568 feat: benchmark功能开发完成 2026-09-01 23:30:11 +08:00
yxx 0e7bb20a5d feat: 完成benchmark后端功能 2026-09-01 23:19:28 +08:00
admin 605bfc1c1a fix(extension): 强化 MCP 参数与生产运行门禁 2026-09-01 21:25:05 +08:00
admin 199dd25c3e fix(extension): 完善 MCP 参数与运行安全边界 2026-09-01 16:06:23 +08:00
admin 20920b6845 fix(extension): 修复 MCP Host 资源与协议边界 2026-09-01 12:11:30 +08:00
admin a8e0fe8ff3 docs(extension): 补充阶段C MCP开发说明 2026-09-01 11:32:47 +08:00
admin 4894029a0f feat(extension): 接入 stdio MCP Plugin Host 2026-09-01 11:32:05 +08:00
admin 3a6643ca6f fix(agent): 保留持久化Run完整内容 2026-09-01 10:05:58 +08:00
admin d1458ee9fb docs: 重组文档目录并补充CI/CD细则 2026-09-01 09:55:40 +08:00
admin a820d14656 feat(agent): 持久化Trace并支持SSE恢复 2026-09-01 00:39:37 +08:00
admin 8553d6f3c3 feat(workspace): 接入真实Vault数据链路 2026-08-31 21:38:56 +08:00
admin 35dc1ddefb chore(backend): 补充核心流程注释与待办 2026-08-30 22:59:45 +08:00
admin 62a91210a0 docs: 同步当前工程实现与验证基线 2026-08-30 15:15:00 +08:00
admin 8625481878 feat(provider): 添加API密钥加密存储 2026-08-30 10:56:57 +08:00
admin c733eabcef fix(provider): 修复DeepSeek开发凭据解析 2026-08-30 10:48:12 +08:00
admin 4162c5d8da feat(provider): 添加厂商预设与模型发现接口 2026-08-30 10:43:55 +08:00
admin 8816f47128 fix(backend): 修复全面审阅发现的核心问题
修复索引首次失败回滚、Vault 扫描边界、Markdown 代码围栏和 UTF-16 Citation 偏移。

收紧 Plugin 权限与 JSON Schema 校验,补齐 Note Move、Task、Attachment 和 Transcript Tool。

接入 OpenAI SSE 与 Ollama JSONL 真流式输出,修正 Provider PATCH 语义并限制运行时内存保留。

新增对应回归测试,后端测试增至 62 项。
2026-08-28 09:56:07 +08:00
admin 3a45ba7670 feat(agent): 接入 Skill Plugin 与知识库工具 2026-08-27 23:53:04 +08:00
admin cd9eb1be60 feat(extension): 实现 Skill 与 Plugin Runtime 基础 2026-08-27 23:52:29 +08:00
admin 41dcaab5bd fix(retrieval): 保证删除一致性并完善 FTS 分页 2026-08-27 23:28:37 +08:00
admin 0522c50182 fix(knowledge): 保证笔记创建与索引更新一致性 2026-08-27 23:24:38 +08:00
yxxandClaude 0a007970bc fix(retrieval): 修复原子性、过滤漏召回、tags 语义与 rebuild 回滚
- 元数据 + 向量单事务提交,避免 PATCH 半提交(审阅 #2)
- vectorstore upsert 改 delete-then-insert 幂等,支持共享 conn
- FTS 取全量 + 过滤 oversample,修复 metadata 过滤漏召回(审阅 #4)
- PATCH tags 区分 None/[]/非空:保留/清空/替换(审阅 #5)
- rebuild 拒绝增量 scope/note_ids,扫描先行 + 失败回滚旧索引(审阅 #6)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-27 22:48:55 +08:00
yxxandClaude 9fd2a8b98b fix(retrieval): 修复路径逃逸、部分提交、失效向量与分页问题
- 路径逃逸:清洗 folder(拒绝 ..、绝对路径/盘符),_abs_path 增加 Vault 边界校验
- 部分提交:create/update 索引失败时回滚文件
- 失效向量残留:replace_note_metadata 返回旧 id,index_note 清理旧向量
- 分页不完整:fts_count 返回真实命中总数,候选池覆盖 offset+limit

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-27 21:38:43 +08:00
yxxandClaude da8832c44e docs(retrieval): 增加 Knowledge/Retrieval Core 开发说明
Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-27 19:26:58 +08:00
yxxandClaude cc6b70d9e9 test(retrieval): 增加检索测试数据与单元端到端测试
Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-27 19:24:20 +08:00
yxxandClaude 654b19524c feat(retrieval): 接入 Note/Search/Index 服务与路由
Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-27 19:22:56 +08:00
yxxandClaude feeef84e11 feat(retrieval): 实现 Embedding/Vector/RRF/Reranker 混合检索引擎
Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-27 19:21:01 +08:00
yxxandClaude 9529732174 feat(knowledge): 实现 SQLite/FTS5 数据层与 Markdown Block 解析
Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-27 19:20:12 +08:00