 yxxandClaude Code
|
124024a547
|
fix(export): 为函数图像与导出产物增加资源上限
针对 PR 审阅「函数数量没有限制,可能生成数百 MB 的 SVG」:
- parser: 单块 function-plot 表达式上限 _MAX_EXPRESSIONS=16,超限整块回退
- html: 单篇文档函数图像上限 _MAX_FUNCTION_PLOTS=16,超出回退源码占位
- service: 输入源 MAX_MARKDOWN_CHARS、产物 MAX_EXPORT_BYTES,超限分别
拒绝创建或标记 failed(EXPORT_OUTPUT_TOO_LARGE)
- 补充 4 条回归测试与文档说明
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-05 23:31:53 +08:00 |
|
 yxxandClaude Code
|
b87f94551b
|
fix(plot): 修复复审问题(2 P2 + 1 P3)
- P2 复杂表达式绕过异常回退:解析与渲染共同纳入局部异常回退;
AST 深度/节点数上限拦截 RecursionError
- P2 极端有限范围生成 nan SVG:校验坐标跨度有限且 >0,回退安全范围;
_polyline 拒绝非有限像素坐标
- P3 更新接口契约文档:function-plot 静态 SVG 已实现
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-05 22:49:01 +08:00 |
|
 yxxandClaude Code
|
50d7fb4c7d
|
Merge origin/main into feat/export-service
同步 main(054f704),解决 contracts.py / main.py / README.md / 技术栈说明 的合并冲突。
- contracts.py:保留 pydantic 多行导入并新增 RequestOverride
- main.py:合并 lifespan(导出孤儿清理 + 转写/本地模型生命周期)
- README.md / 技术栈说明:文档取 main 最新版本
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-05 21:44:20 +08:00 |
|
 yxxandClaude Code
|
04f36524b1
|
fix(plot): 修复函数图像审阅问题(1 P1 + 2 P2)
- P1 浮点刻度死循环:_ticks 改为有上限的整数索引推进并校验步长推进
- P2 求值异常:白名单函数校验参数数量;负数底非整数指数按断点处理;采样容错复数
- P2 无效纵轴范围:退化/非有限 range 丢弃并自动采样重算;渲染异常回退占位不阻断导出
- 补 6 个回归测试
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-05 21:14:50 +08:00 |
|
 yxxandClaude Code
|
f49d1245a1
|
feat(export): 函数图像静态渲染(function-plot → SVG)
- 新增 app/plot 包:白名单表达式解析(ast 无 eval)+ FunctionPlot 模型 + 静态 SVG 渲染
- HtmlExporter 的 function_plot 节点解析并内嵌 SVG,解析失败回退占位并转诊断
- 新增 test_plot.py(13 个测试)覆盖表达式安全、指令解析、SVG 输出与导出链路集成
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-04 22:41:35 +08:00 |
|
 yxxandClaude Code
|
64af1f5165
|
fix(export): 修复 PR #17 审阅问题(1 P1 + 5 P2)
- P1 链接/图片 URL 协议白名单校验,危险协议降级为纯文本 + warning
- P2 图片 AST 字段映射(src=attrs.url,alt 取 children 文本)
- P2 原始 HTML 块转义保留,正文不丢失 + warning
- P2 过期/淘汰/重启清理导出产物文件
- P2 解析与渲染移入 asyncio.to_thread,运行中取消生效
- P2 function-plot 围栏别名补全
- 回归测试覆盖全部修复
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-04 22:24:16 +08:00 |
|
yxx
|
7eae7fba00
|
Merge remote-tracking branch 'origin/main' into feat/export-service
|
2026-09-04 10:59:52 +08:00 |
|
yxx
|
5c2441464d
|
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 |
|
 yxxandClaude Code
|
abccb328fc
|
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
|
ae65c64c8f
|
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
|
3bd475dc15
|
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 |
|
 yxxandClaude Code
|
3898530585
|
docs: 补齐 PR #11 评审要求的文档同步
- 技术栈说明实施状态:RAG Benchmark 标记为已完成、Agent Benchmark 暂缓
- 新增 Benchmark 开发说明,并登记到文档索引
- README 回归基线更新为后端 157 / 前端 29
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-03 22:35:45 +08:00 |
|
 yxxandClaude Code
|
fcc601fcf3
|
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 |
|
 yxxandClaude Code
|
c6cde2500b
|
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 |
|
 yxxandClaude Code
|
0006e91e67
|
chore(backend): 移除误提交的验收笔记
验收笔记此前被误纳入 benchmark 提交,现摘除跟踪,文件保留在本地磁盘。
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-09-01 23:35:11 +08:00 |
|
yxx
|
866febec21
|
feat: benchmark功能开发完成
|
2026-09-01 23:30:11 +08:00 |
|
yxx
|
9b50b8f0ce
|
feat: 完成benchmark后端功能
|
2026-09-01 23:19:28 +08:00 |
|
 yxxandClaude
|
6cf531f2a8
|
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
|
87717450fd
|
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
|
39d1aa0fe9
|
docs(retrieval): 增加 Knowledge/Retrieval Core 开发说明
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-27 19:26:58 +08:00 |
|
 yxxandClaude
|
dbcb94b413
|
test(retrieval): 增加检索测试数据与单元端到端测试
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-27 19:24:20 +08:00 |
|
 yxxandClaude
|
6b16ad1a08
|
feat(retrieval): 接入 Note/Search/Index 服务与路由
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-27 19:22:56 +08:00 |
|
 yxxandClaude
|
02bb38bb1d
|
feat(retrieval): 实现 Embedding/Vector/RRF/Reranker 混合检索引擎
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-27 19:21:01 +08:00 |
|
 yxxandClaude
|
d4b472b009
|
feat(knowledge): 实现 SQLite/FTS5 数据层与 Markdown Block 解析
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-27 19:20:12 +08:00 |
|
 yxxandClaude
|
2eed940bb0
|
chore(backend): 引入 sqlite-vec 依赖并配置数据目录
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-08-27 19:19:44 +08:00 |
|