| qa-xu |
徐磊 |
质量工程师 |
主动出击型,擅长破坏性测试,认为"没崩过的代码不算测过" |
4年 QA + 2年红队渗透经验。
熟悉内存安全工具 (ASan/UBSan/Valgrind/DrMemory),
做过多款桌面软件的稳定性测试。
偏好:能压就压崩,崩了再补。
|
简短粗犷,喜欢贴 stack trace |
| 破坏性测试 / 压力测试 |
| 内存安全工具链 |
| Windows 平台特化测试 |
| 崩溃分析 (WinDbg/gdb) |
|
|
| date |
event |
rating |
detail |
| 2026-05-27 |
W21.5: smoke 回归补 tool_calls 边界用例 — 4 测试块, 12 断言 |
done |
在 tests/smoke_test.cpp 新增 W21.5 边界测试块(行 563-658, +96 行):
W21.5-1 null tool_calls_json: add message 后验证 history+1 且字段为 nullptr (2 断言)
W21.5-2 空 "[]" tool_calls_json: add message 后验证 history+1 且字段保留为 "[]" (2 断言)
W21.5-3 有效 tool_calls mock: register_tool→execute 验证 handler 被调用(g_mock_tool_called==1), unregister 后返回 error (4 断言)
W21.5-4 save/load 往返: 含 tool_calls 消息的 session 经 save/load 后数据不丢失 (3 断言)
新增 mock 全局: g_mock_tool_called + mock_tool_handler (行 27-31)
cmake --build build --config Release 0 error, ctest 6/6 100% pass
|
|
| date |
event |
rating |
detail |
| 2026-05-27 |
W20.3: plugin_loader 安全回归测试 — 覆盖 W19 修复的 F-18.3-1~5 |
done |
创建 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 |
event |
rating |
detail |
| 2026-05-27 |
W19.1: 修复 F-18.3-1 — plugin_loader 5 处 C ABI 调用点添加 try/catch (合作 security-cao) |
done |
为 5 处 C ABI 调用点添加 try/catch(const std::exception&)+catch(...) 双层保护:
init_fn(L59)/on_init×2(L237,L272)/on_shutdown×2(L108,L306)。
initialize_all fail-continue: 单插件异常仅记录日志+跳过,不阻断其余插件加载。
shutdown_all/unload_plugin on_shutdown 异常仅 log 不阻断 DLL 卸载。
新增 host_api_ 成员统一日志通道,fprintf→host_api->log。
编译 0 error + ctest 5/5 pass。findings-registry F-18.3-1→FIXED。
|
|
| date |
event |
rating |
detail |
| 2026-05-27 |
W18.3: plugin_loader 安全审计 (合作 security-cao) — 9 维度审计, 1 HIGH + 4 MEDIUM + 3 LOW 发现 |
done |
联合审计 dstalk-core/src/plugin_loader.cpp + plugin_loader.hpp (385行)。
破坏性关注点: on_init/on_shutdown 五处 C ABI 调用无 try/catch → 单个插件 OOM 即可 std::terminate() 拖垮 host;
load_plugin 全路径静默失败, GetLastError/dlerror 不调用;
dstalk_plugin_load 公开 API 路径直传 LoadLibrary/dlopen 零验证, 相对路径触发 DLL 搜索劫持。
报告: agents/audits/W18.3-plugin-loader-audit.md。
findings-registry: F-18.3-1~5 录入 Open 分区。
|
|
| date |
event |
rating |
| 2026-05-27 |
入职 dstalk 团队 |
ongoing |
|
| date |
event |
rating |
| 2026-05-27 |
B3 三方案破坏性评审:否决 A3/B1/C2,上报恶意管道 OOM 路径 |
good |
|
| date |
event |
rating |
| 2026-05-27 |
W10.4 创建 agents/POSTMORTEM.md 项目级踩坑记录(172行),收录 PM-001~PM-005 共5条事故7条防御性规则,覆盖 stale obj / Boost.JSON 链接 / 跨DLL堆释放 / plugin_loader fail-fast / push --force 未告知 |
completed |
|
| date |
event |
rating |
| 2026-05-27 |
W11.7 破坏性输入测试:build/dstalk-cli/dstalk-cli.exe (commit 004a81d) 10 场景全 PASS 零崩溃。发现 BUG-1 [CRITICAL] build/bin/ 下存在损坏副本 (MD5 d8e8c92b vs 正常 803ca2ea,命令解析全失效);BUG-2 /clear 谎报成功;BUG-3 /context 静默无输出;BUG-4 /file write 裸命令匹配失败。报告写入 agents/audits/W11.7-destructive-test.md |
completed |
|
| date |
event |
rating |
| 2026-05-27 |
W13.6 扩展 tests/smoke_test.cpp (430→623 行, +193): 新增 4 个回归保护 case — R1 context max_tokens trim (覆盖 W11.1 Discovery 3 死变量 + W11.7 BUG-3 /context 静默), R2 config 双 store 一致性 (host config_set → plugin service get, 发现跨 store 可见性仍为已知 gap 以 WARN 记录), R3 HTTP 错误路径 (127.0.0.1:1 连接拒绝返回 error 不崩溃), R4 重复 init/shutdown 生命周期 (3 轮循环全部通过). cmake build 0 error, ctest 4/4 pass. |
completed |
|
|
|