aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* added one more testde/loadoplog-refactorDan Engelbrecht2026-03-161-0/+37
|
* comment cleanupDan Engelbrecht2026-03-161-299/+91
|
* updated testsDan Engelbrecht2026-03-161-256/+911
|
* refactor away AsyncRemoteResultDan Engelbrecht2026-03-161-228/+117
|
* wip2Dan Engelbrecht2026-03-153-609/+578
|
* wipDan Engelbrecht2026-03-151-287/+372
|
* fix removed codeDan Engelbrecht2026-03-151-0/+5
|
* typoDan Engelbrecht2026-03-151-1/+1
|
* more fixesDan Engelbrecht2026-03-151-10/+21
|
* cleanup and typosDan Engelbrecht2026-03-151-17/+9
|
* error reportingDan Engelbrecht2026-03-151-21/+21
|
* asan fixDan Engelbrecht2026-03-151-8/+5
|
* cleanupDan Engelbrecht2026-03-153-15/+13
|
* error handling fixes and typo fixesDan Engelbrecht2026-03-152-54/+60
|
* fix ignoremissingattachments flag and bad retry loopDan Engelbrecht2026-03-151-42/+38
|
* Code -> StatusDan Engelbrecht2026-03-151-2/+2
|
* make SaveOplog report errors through exceptionsDan Engelbrecht2026-03-153-927/+763
|
* clang fixes, nicer reuse reportDan Engelbrecht2026-03-151-21/+32
|
* operator on CompositeBuffer for block buildingDan Engelbrecht2026-03-144-420/+458
| | | | refactor and clean up
* broke out ChunkAttachments helperDan Engelbrecht2026-03-142-265/+276
|
* break up SaveOplog phase 1Dan Engelbrecht2026-03-141-1151/+1184
|
* remove redundant assertsDan Engelbrecht2026-03-141-39/+5
|
* BlockComposer testsDan Engelbrecht2026-03-141-10/+424
|
* fix path with AllowChunking = falseDan Engelbrecht2026-03-142-18/+22
|
* refactored out block composerDan Engelbrecht2026-03-141-308/+294
|
* exception guards in httpprojectstoreDan Engelbrecht2026-03-141-36/+118
|
* fix testDan Engelbrecht2026-03-141-14/+14
|
* fix block assemblyDan Engelbrecht2026-03-141-108/+275
|
* release build fixDan Engelbrecht2026-03-142-2/+7
|
* fixupsDan Engelbrecht2026-03-141-6/+6
|
* extended remoteprojectstore unit testsDan Engelbrecht2026-03-141-0/+990
|
* wipDan Engelbrecht2026-03-143-442/+925
|
* add buildid updates to oplog and builds test scripts (#838)Dan Engelbrecht2026-03-144-74/+478
| | | | * updated test scripts * remove some hardcoded assumptions
* Made CPR optional, html generated at build time (#840)Stefan Boberg2026-03-1312-147/+100
| | | | | | | - Fix potential crash on startup caused by logging macros being invoked before the logging system is initialized (null logger dereference in `ZenServerState::Sweep()`). `LoggerRef::ShouldLog` now guards against a null logger pointer. - Make CPR an optional dependency (`--zencpr` build option, enabled by default) so builds can proceed without it - Make zenvfs Windows-only (platform-specific target) - Generate the frontend zip at build time from source HTML files instead of checking in a binary blob which would accumulate with every single update
* Add clang-cl build supportStefan Boberg2026-03-137-76/+108
| | | | | | | | | | - Add clang-cl warning suppressions in xmake.lua matching Linux/macOS set - Guard /experimental:c11atomics with {tools="cl"} for MSVC-only - Fix long long / int64_t redefinition in string.h for clang-cl - Fix unclosed namespace in callstacktrace.cpp #else branch - Fix missing override in httpplugin.cpp - Reorder WorkerPool fields to match designated initializer order - Use INVALID_SOCKET instead of SOCKET_ERROR for SOCKET comparisons
* Unix Domain Socket auto discovery (#833)Stefan Boberg2026-03-1328-105/+538
| | | | | | | | This PR adds end-to-end Unix domain socket (UDS) support, allowing zen CLI to discover and connect to UDS-only servers automatically. - **`unix://` URI scheme in zen CLI**: The `-u` / `--hosturl` option now accepts `unix:///path/to/socket` to connect to a zenserver via a Unix domain socket instead of TCP. - **Per-instance shared memory for extended server info**: Each zenserver instance now publishes a small shared memory section (keyed by SessionId) containing per-instance data that doesn't fit in the fixed-size ZenServerEntry -- starting with the UDS socket path. This is a 4KB pagefile-backed section on Windows (`Global\ZenInstance_{sessionid}`) and a POSIX shared memory object on Linux/Mac (`/UnrealEngineZen_{sessionid}`). - **Client-side auto-discovery of UDS servers**: `zen info`, `zen status`, etc. now automatically discover and prefer UDS connections when a server publishes a socket path. Servers running with `--no-network` (UDS-only) are no longer invisible to the CLI. - **`kNoNetwork` flag in ZenServerEntry**: Servers started with `--no-network` advertise this in their shared state entry. Clients skip TCP fallback for these servers, and display commands (`ps`, `status`, `top`) show `-` instead of a port number to indicate TCP is not available.
* Switch httpclient default back-end over to libcurl (#832)Stefan Boberg2026-03-138-703/+458
| | | | | | | | | | | | | | | | | | | | | | | | | | | Switches the default HTTP client to the libcurl-based backend and follows up with a series of correctness fixes and code quality improvements to `CurlHttpClient`. **Backend switch & build fixes:** - Switch default HTTP client to libcurl-based backend - Suppress `[[nodiscard]]` warning when building fmt - Miscellaneous bugfixes in HttpClient/libcurl - Pass `-y` to `xmake config` in `xmake test` task **Boilerplate reduction:** - Add `Session::SetHeaders()` for RAII ownership of `curl_slist`, eliminating manual `curl_slist_free_all` calls from every verb method - Add `Session::PerformWithResponseCallbacks()` to absorb the repeated 12-line write+header callback setup block - Extract `ParseHeaderLine()` shared helper, replacing 4 duplicate header-parsing implementations - Extract `BuildHeaderMap()` and `ApplyContentTypeFromHeaders()` helpers to deduplicate header-to-map conversion and Content-Type scanning - Unify the two `DoWithRetry` overloads (PayloadFile variant now delegates to the Validate variant) **Correctness fixes:** - `TransactPackage`: both phases now use `PerformWithResponseCallbacks()`, fixing missing abort support and a dead header collection loop - `TransactPackage`: error path now routes through `CommonResponse`, preserving curl error codes and messages for the caller - `ValidatePayload`: merged 3 separate header-scan loops into a single pass **Performance improvements:** - Replace `fmt::format` with `ExtendableStringBuilder` in `BuildHeaderList` and `BuildUrlWithParameters`, eliminating heap allocations in the common case - Replace `curl_easy_escape`/`curl_free` with inline URL percent-encoding using `AsciiSet` - Remove wasteful `CommonResponse(...)` construction in retry logging, formatting directly from `CurlResult` fields
* Add --no-network option (#831)Stefan Boberg2026-03-1211-29/+101
| | | | - Add `--no-network` CLI option which disables all TCP/HTTPS listeners, restricting zenserver to Unix domain socket communication only. - Also fixes asio upgrade breakage on main
* Update CHANGELOG.mdStefan Boberg2026-03-121-1/+1
| | | latest release is 5.7.22
* Update CHANGELOG.mdStefan Boberg2026-03-121-0/+13
| | | Change log entries went missing from the PR push because of user error (edited the wrong branch CHANGELOG.md)
* upgrade asio from 1.29.0 to 1.38.0 (#827)Stefan Boberg2026-03-121519-43834/+39645
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Migrate removed deprecated APIs: - io_service -> io_context - io_service::work -> executor_work_guard - resolver::query/iterator -> resolver::resolve() with results_type - address::from_string() -> make_address() --- Breaking Changes (1.33.0) - deferred as default completion token — can omit token in coroutines: co_await socket.async_read_some(buf) - cancel_after / cancel_at — timeout any async operation: co_await sock.async_read_some(buf, cancel_after(5s)) - Partial completion token adapters — as_tuple, redirect_error, bind_executor etc. composable via pipe: co_await (async_write(sock, buf) | as_tuple | cancel_after(10s)) - composed — simpler alternative to async_compose for stateful operation implementations - co_composed moved out of experimental 1.35.0 — Allocator & Resolver - Allocator constructors for io_context and thread_pool — control memory allocation for services, I/O objects, strands - Configurable resolver thread pool ("resolver"/"threads") - Timer heap pre-allocation ("timer"/"heap_reserve") 1.37.0 — Inline Executors & Reactor Tuning - inline_executor — always executes inline (useful as completion executor) - inline_or_executor<> — tries inline first, falls back to wrapped executor - New dispatch/post/defer overloads that run a function on one executor and deliver result to a handler on another - redirect_disposition — captures disposition into a variable (like redirect_error but generic) - Reactor config: reset_edge_on_partial_read, use_eventfd, use_timerfd Notable Fixes - Resource leak in awaitable move assignment (1.37.0) - Memory leak in SSL stream move assignment (1.37.0) - Thread sanitizer issue in kqueue reactor (1.37.0) - co_spawn non-reentrant completion handler fix (1.36.0) - Windows file append mode fix (1.32.0) - SSL engine move assignment leak (1.33.0)
* Transparent proxy mode (#823)Stefan Boberg2026-03-1239-190/+3249
| | | | | | | | | | | | | | | | | Adds a **transparent TCP proxy mode** to zenserver (activated via `zenserver proxy`), allowing it to sit between clients and upstream Zen servers to inspect and monitor HTTP/1.x traffic in real time. Primarily useful during development, to be able to observe multi-server/client interactions in one place. - **Dedicated proxy port** -- Proxy mode defaults to port 8118 with its own data directory to avoid collisions with a normal zenserver instance. - **TCP proxy core** (`src/zenserver/proxy/`) -- A new transparent TCP proxy that forwards connections to upstream targets, with support for both TCP/IP and Unix socket listeners. Multi-threaded I/O for connection handling. Supports Unix domain sockets for both upstream/downstream. - **HTTP traffic inspection** -- Parses HTTP/1.x request/response streams inline to extract method, path, status, content length, and WebSocket upgrades without breaking the proxied data. - **Proxy dashboard** -- A web UI showing live connection stats, per-target request counts, active connections, bytes transferred, and client IP/session ID rollups. - **Server mode display** -- Dashboard banner now shows the running server mode (Zen Proxy, Zen Compute, etc.). Supporting changes included in this branch: - **Wildcard log level matching** -- Log levels can now be set per-category using wildcard patterns (e.g. `proxy.*=debug`). - **`zen down --all`** -- New flag to shut down all running zenserver instances; also used by the new `xmake kill` task. - Minor test stability fixes (flaky hash collisions, per-thread RNG seeds). - Support ZEN_MALLOC environment variable for default allocator selection and switch default to rpmalloc - Fixed sentry-native build to allow LTO on Windows
* update fmt 12.0.0 -> 12.1.0 (#828)Stefan Boberg2026-03-1216-132/+368
| | | | | | | | | | | | | | | | | | | - Update vendored fmt library from 12.0.0 to 12.1.0 - Disable warnings-as-errors for the fmt build target (third-party code) ## Notable changes in fmt 12.1.0 - **Performance**: Optimized `buffer::append`, resulting in up to ~16% improvement on spdlog benchmarks - **Bug fixes**: - Worked around ABI incompatibility in `std::locale_ref` between clang and gcc - Fixed compilation with clang 21 and `-std=c++20` - Fixed compilation with locales disabled in header-only mode - Fixed dynamic linking issue with clang-cl - Fixed compatibility with clang as host compiler for NVCC - **Formatter improvements**: - `std::variant` and `std::expected` formatters now work with `format_as` - Added cv-qualified type support to `std::optional` formatter - Added demangling support for libc++ and clang-cl - **C++ modules**: Fixed several compatibility issues, exported `is_compiled_string` and `operator""_cf` - **Other**: Switched to global `malloc`/`free` to enable allocator customization, made `FMT_USE_CONSTEVAL` user-configurable
* 5.7.22v5.7.22Dan Engelbrecht2026-03-121-1/+1
|
* fix casing of windows OidcToken.exe (#830)Dan Engelbrecht2026-03-121-1/+1
|
* show ETA in plain and log output style (#829)Dan Engelbrecht2026-03-122-10/+12
| | | * show ETA in plain and log output style
* fix OidcToken casing (#826)Stefan Boberg2026-03-111-2/+2
| | | fixes issue with zip not finding the OidcToken file
* 5.7.22-pre5v5.7.22-pre5Dan Engelbrecht2026-03-111-1/+1
|
* added streaming download of payloads http client Post (#824)Dan Engelbrecht2026-03-1110-76/+379
| | | | | | * added streaming download of payloads in cpr client ::Post * curlclient Post streaming download * case sensitivity fixes for http headers * move over missing functionality from crpclient to httpclient
* improved oplog import progress reporting (#825)Dan Engelbrecht2026-03-118-158/+252
|