W20: Tool Calling 闭环 + Stream+Tools + 回归测试 + session auto-save + ASan CI (W20.1-W20.6)
Some checks failed
CI / Determine matrix (push) Has been cancelled
CI / ${{ matrix.os }} / ${{ matrix.build_type }} (push) Has been cancelled
CI / Sanitizer (ASan+UBSan) / ubuntu-24.04 (push) Has been cancelled

- 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:
2026-05-27 20:15:00 +08:00
parent 3250b5a8bf
commit 20ead86e88
14 changed files with 730 additions and 21 deletions

View File

@@ -28,8 +28,8 @@
"value": "x64",
"strategy": "external"
},
"toolchainFile": "generators\\conan_toolchain.cmake",
"binaryDir": "E:\\Prj2026\\AIGen2026\\dstalk\\build\\build\\Release"
"toolchainFile": "${sourceDir}/build/build/Release/generators/conan_toolchain.cmake",
"binaryDir": "${sourceDir}/build/build/Release"
},
{
"name": "ci-release",
@@ -42,6 +42,18 @@
},
"toolchainFile": "${sourceDir}/build/Release/conan_toolchain.cmake",
"binaryDir": "${sourceDir}/build/ci"
},
{
"name": "ci-sanitize",
"inherits": "conan-release",
"displayName": "CI Sanitizer (ASan+UBSan)",
"description": "AddressSanitizer + UndefinedBehaviorSanitizer Linux clang CI build",
"toolchainFile": "${sourceDir}/build/Release/conan_toolchain.cmake",
"binaryDir": "${sourceDir}/build/ci-sanitize",
"cacheVariables": {
"CMAKE_C_FLAGS": "-fsanitize=address,undefined -fno-omit-frame-pointer",
"CMAKE_CXX_FLAGS": "-fsanitize=address,undefined -fno-omit-frame-pointer"
}
}
],
"buildPresets": [
@@ -54,6 +66,11 @@
"name": "ci-release",
"configurePreset": "ci-release",
"jobs": 0
},
{
"name": "ci-sanitize",
"configurePreset": "ci-sanitize",
"jobs": 0
}
],
"testPresets": [
@@ -73,6 +90,13 @@
"execution": {
"jobs": 0
}
},
{
"name": "ci-sanitize",
"configurePreset": "ci-sanitize",
"execution": {
"jobs": 0
}
}
]
}