Wave 5 (9 parallel agents): - W1.1 atomic diag callback + DLL handle release on shutdown (lin) - W2.1 unify cross-DLL heap discipline (host->alloc/free/strdup) (chen) - W2.2 secure_zero api_key on shutdown for deepseek/anthropic (cao) - W3 CMake modernization: target-based cxx_std_20, dstalk_boost_config INTERFACE lib, root-level RUNTIME_OUTPUT_DIRECTORY (hu) - W4 GitHub Actions CI with dynamic Linux/Windows matrix (ma) - W5.1 SSE buffer_body to cut peak memory ~67% on 32K streams (zhou) - W6.1 LSP JSON-RPC frame parser hardened against header reordering (sun) - W7 smoke test: copy plugin DLLs post-build + Boost.JSON src.hpp fix for full 9-plugin load coverage (wang) - W8.1 README slimmed 398->92, Diataxis docs/ skeleton (deng) Wave 6 (6 parallel agents): - W9.1 docs/explanation: architecture + plugin-lifecycle (deng) - W9.3 log credential leak audit (0 vulns, audit trail in docs/explanation/security-logging.md) (cao) - W9.4 docs/reference/plugin-abi.md - 7-point ABI contract (lin) - W9.6 CLI /history command + status integration (zhao) - W9.8 plugin_loader fault tolerance: per-plugin failure no longer aborts dstalk_init (huang) - W9.10 host_api unit tests: tests/host_api_test.cpp, 8 cases (liu) CEO oversight (preexisting bugs fixed during Wave 5 verification): - lsp_plugin.cpp:449 forward decl mismatch (int vs void) - tools_plugin.cpp:109 missing forward decl Multi-agent collaboration framework: - agents/WORKFLOW.md: 6-stage protocol, two-tier governance, prompt template, technical constraints registry Build: cmake --build 0 error / 0 warning. Tests: 2/2 100% pass. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
52 lines
1.2 KiB
CMake
52 lines
1.2 KiB
CMake
# ============================================================
|
|
# dstalk-core — 核心 DLL (插件宿主)
|
|
# 包含: 插件管理 / 服务注册 / 事件总线 / 配置存储
|
|
# ============================================================
|
|
|
|
find_package(Boost REQUIRED CONFIG)
|
|
find_package(OpenSSL REQUIRED CONFIG)
|
|
|
|
# 统一的 Boost 编译宏 (header-only 模式)
|
|
add_library(dstalk_boost_config INTERFACE)
|
|
target_compile_definitions(dstalk_boost_config INTERFACE
|
|
BOOST_ALL_NO_LIB
|
|
BOOST_ERROR_CODE_HEADER_ONLY
|
|
BOOST_JSON_HEADER_ONLY
|
|
)
|
|
|
|
add_library(dstalk SHARED
|
|
src/host.cpp
|
|
src/config_store.cpp
|
|
src/event_bus.cpp
|
|
src/service_registry.cpp
|
|
src/plugin_loader.cpp
|
|
src/boost_json.cpp
|
|
)
|
|
|
|
target_include_directories(dstalk
|
|
PUBLIC include
|
|
PRIVATE src
|
|
)
|
|
|
|
target_compile_features(dstalk PUBLIC cxx_std_20)
|
|
|
|
target_link_libraries(dstalk
|
|
PRIVATE
|
|
dstalk_boost_config
|
|
boost::boost
|
|
openssl::openssl
|
|
)
|
|
|
|
# dlopen / dlclose / dlsym on Linux and macOS
|
|
if(NOT WIN32)
|
|
target_link_libraries(dstalk PRIVATE ${CMAKE_DL_LIBS})
|
|
endif()
|
|
|
|
# 导出 DLL 符号宏
|
|
target_compile_definitions(dstalk
|
|
PRIVATE
|
|
DSTALK_BUILD_DLL
|
|
INTERFACE
|
|
DSTALK_USE_DLL
|
|
)
|