W20: Tool Calling 闭环 + Stream+Tools + 回归测试 + session auto-save + ASan CI (W20.1-W20.6)
- W20.1: CLI tool_calls→execute→result→re-call 循环(5轮上限) - W20.2: deepseek 流式 tool_calls 增量解析(configure 缓存,无 ABI break) - W20.3: plugin_loader 回归测试 5 块 32 断言(路径/原子性/mock 日志) - W20.4: plugin_loader ABI 契约校验(name/version/on_init 字段验证) - W20.5: ASan/UBSan CMake preset + CI sanitizer job(PR-only Linux) - W20.6: session auto-save(on_shutdown 写 %APPDATA%/dstalk/session.json) Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -18,6 +18,18 @@ weaknesses:
|
||||
- 单元测试有时过于针对实现
|
||||
- 不太关注测试可读性
|
||||
performance_log:
|
||||
- date: 2026-05-27
|
||||
event: "W20.3: plugin_loader 安全回归测试 — 覆盖 W19 修复的 F-18.3-1~5"
|
||||
rating: done
|
||||
detail: |
|
||||
创建 tests/plugin_loader_test.cpp (265行), 5 个测试块 32 条断言:
|
||||
Block1 路径验证: nullptr/非法扩展名/..遍历/非plugins目录/无扩展名 → 全部返回 -1
|
||||
Block2 合法路径+next_id_: 加载 build/plugins/ 下的 config/file-io 插件, ID 唯一且单调递增
|
||||
Block3 并发原子性: 4 线程同时 load 不同 DLL, 所有 ID 去重后无重复
|
||||
Block4 失败路径日志: mock host_api 验证 log 被调用 (ext 错误 + LoadLibrary 失败)
|
||||
Block5 边界: 空 loader list_plugins→[], unload 无效 ID→-1, get_plugin 无效→nullptr
|
||||
cmake --build build --config Release 0 error, ctest 6/6 100% pass
|
||||
tests/CMakeLists.txt 新增 dstalk-plugin-loader-test 目标, 含 compiler define + boost_json.cpp
|
||||
- date: 2026-05-27
|
||||
event: "W19.1: 修复 F-18.3-1 — plugin_loader 5 处 C ABI 调用点添加 try/catch (合作 security-cao)"
|
||||
rating: done
|
||||
|
||||
Reference in New Issue
Block a user