feat: update AI automation agents, add reviewer agent, enhance CI
CI / build-and-test (push) Successful in 53s
CI / sanitizer (push) Failing after 17s
CI / clang-tidy (push) Successful in 5s
CI / build-and-test (pull_request) Successful in 53s
CI / sanitizer (pull_request) Failing after 17s
CI / clang-tidy (pull_request) Successful in 5s

- Update cmake-expert agent: fix CMake version (3.22 not 4.1), add OpenSSL/xxHash deps
- Fix integrator agent: update stale test.py references to tests/integration/
- Fix test-writer agent: update integration test patterns for modular test structure
- Add reviewer agent: comprehensive PR review covering code, build, CI, docs, quality
- Enhance CI: add sanitizer job (ASan+UBSan) and clang-tidy static analysis job
This commit is contained in:
2026-07-19 19:28:21 +02:00
parent 1078b47955
commit d030ba655c
5 changed files with 230 additions and 44 deletions
+26 -8
View File
@@ -3,7 +3,7 @@ description: Manages the CMake build system for FastSync — adding targets, sou
mode: subagent
---
You are a CMake expert for the FastSync project — a high-performance file synchronization system built with CMake 4.1+ and C11.
You are a CMake expert for the FastSync project — a high-performance file synchronization system built with CMake 3.22+ and C11.
## Your Role
@@ -13,7 +13,7 @@ Manage the CMake build system: add new targets, configure dependencies, set comp
### `CMakeLists.txt` (project root)
```cmake
cmake_minimum_required(VERSION 4.1)
cmake_minimum_required(VERSION 3.22)
project(FastFileTransfer)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
@@ -21,12 +21,27 @@ set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED ON)
add_compile_options(-Wall -g -O3)
# add_compile_options(-Wall -g -O1 -fsanitize=address)
# add_link_options(-fsanitize=address)
include(FetchContent)
FetchContent_Declare(
xxhash
GIT_REPOSITORY https://github.com/Cyan4973/xxHash
GIT_TAG v0.8.3
SOURCE_SUBDIR cmake_unofficial
)
FetchContent_MakeAvailable(xxhash)
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
find_library(ZSTD_LIBRARY zstd)
# ... error if not found
if(NOT ZSTD_LIBRARY)
message(FATAL_ERROR "zstd library not found. Ensure it is in your nix-shell!")
endif()
find_package(OpenSSL REQUIRED)
# Source file collection
file(GLOB SHARED_SRCS "src/shared/*.c")
@@ -37,15 +52,15 @@ file(GLOB TEST_SRCS "tests/*.c")
# Targets
add_executable(server ${SERVER_SRCS} ${SHARED_SRCS})
target_include_directories(server PRIVATE src/shared src/server src/client)
target_link_libraries(server PRIVATE Threads::Threads ${ZSTD_LIBRARY})
target_link_libraries(server PRIVATE Threads::Threads ${ZSTD_LIBRARY} OpenSSL::SSL OpenSSL::Crypto xxhash)
add_executable(client ${CLIENT_SRCS} ${SHARED_SRCS})
target_include_directories(client PRIVATE src/shared src/server src/client)
target_link_libraries(client PRIVATE Threads::Threads ${ZSTD_LIBRARY})
target_link_libraries(client PRIVATE Threads::Threads ${ZSTD_LIBRARY} OpenSSL::SSL OpenSSL::Crypto xxhash)
add_executable(tests ${TEST_SRCS} ${SHARED_SRCS} src/client/scanner.c)
target_include_directories(tests PRIVATE tests src/shared src/server src/client)
target_link_libraries(tests PRIVATE Threads::Threads ${ZSTD_LIBRARY})
target_link_libraries(tests PRIVATE Threads::Threads ${ZSTD_LIBRARY} OpenSSL::SSL OpenSSL::Crypto xxhash)
```
### Source Layout
@@ -53,14 +68,17 @@ target_link_libraries(tests PRIVATE Threads::Threads ${ZSTD_LIBRARY})
src/shared/ — shared libraries (globbed as SHARED_SRCS)
src/client/ — client sources (globbed as CLIENT_SRCS)
src/server/ — server sources (globbed as SERVER_SRCS)
tests/ — test sources (globbed as TEST_SRCS)
tests/ — unit test sources (globbed as TEST_SRCS)
tests/integration/ — Python pytest integration tests
```
### Dependencies
- **zstd** — found via `find_library(ZSTD_LIBRARY zstd)`
- **OpenSSL** — found via `find_package(OpenSSL REQUIRED)` (TLS 1.2+ transport)
- **xxHash** — fetched via `FetchContent` from GitHub (delta transfer hashing)
- **pthreads** — found via `find_package(Threads REQUIRED)`
- **C11 standard** — required
- **CMake 4.1+** — minimum version
- **CMake 3.22+** — minimum version
## Conventions