aboutsummaryrefslogtreecommitdiff
path: root/src/zenhorde/hordeclient.cpp
Commit message (Collapse)AuthorAgeFilesLines
* add compressed file upload path gated on ComputeProtocol versionStefan Boberg8 days1-0/+6
| | | | | | | When the Horde server reports ComputeProtocol >= CompressedFileTransfer (v3), the provisioner uploads binaries individually via WriteCompressedFile with IoHash caching instead of the legacy bundle protocol. This avoids the bundle packaging overhead and enables instant cache hits for unchanged files.
* Cross-platform process metrics support (#887)Stefan Boberg2026-03-231-4/+1
| | | | | | | - **Cross-platform `GetProcessMetrics`**: Implement Linux (`/proc/{pid}/stat`, `/proc/{pid}/statm`, `/proc/{pid}/status`) and macOS (`proc_pidinfo(PROC_PIDTASKINFO)`) support for CPU times and memory metrics. Fix Windows to populate the `MemoryBytes` field (was always 0). All platforms now set `MemoryBytes = WorkingSetSize`. - **`ProcessMetricsTracker`**: Experimental utility class (`zenutil`) that periodically samples resource usage for a set of tracked child processes. Supports both a dedicated background thread and an ASIO steady_timer mode. Computes delta-based CPU usage percentage across samples, with batched sampling (8 processes per tick) to limit per-cycle overhead. - **`ProcessHandle` documentation**: Add Doxygen comments to all public methods describing platform-specific behavior. - **Cleanup**: Remove unused `ZEN_RUN_TESTS` macro (inlined at its single call site in `zenserver/main.cpp`), remove dead `#if 0` thread-shutdown workaround block. - **Minor fixes**: Use `HttpClientAccessToken` constructor in hordeclient instead of setting private members directly. Log ASIO version at startup and include it in the server settings list.
* compute orchestration (#763)Stefan Boberg2026-03-041-0/+382
- Added local process runners for Linux/Wine, Mac with some sandboxing support - Horde & Nomad provisioning for development and testing - Client session queues with lifecycle management (active/draining/cancelled), automatic retry with configurable limits, and manual reschedule API - Improved web UI for orchestrator, compute, and hub dashboards with WebSocket push updates - Some security hardening - Improved scalability and `zen exec` command Still experimental - compute support is disabled by default