Repository navigation
C++: output with callbacks and command timeout (for v0.2.1) - #4
Conversation
…outMs on the WebSocket path Hand-port of the pinetree-desktop SDK-SUITE phase 2 fixes (desktop#640, #646, #648 as they apply to cpp): commands.run no longer loses output that arrives before the cmd.start reply when callbacks are set (Go, C++); timeoutMs/timeout_ms is a command deadline on the WebSocket path (kill + exit -1 with the output so far); Go: no nil dereference when Close/Kill/Pause races an in-flight call, a late close of an old socket no longer disconnects the new one, and a partial line no longer survives a reconnect. Tests included and passing. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01D22yA2FD2Cm7HuYGcwAXSN
|
ARCHI-SIGNOFF sandbox ceef3e1 Hand-port for the patch release. I compared every changed file with the merged private source on pinetree-desktop main by SHA-256: include/solari/sandbox.hpp, src/sandbox.cpp and tests/test_main.cpp (the merged private #640 and #646) are byte-identical to 🤖 Generated with Claude Code |
…d get HTTP 411) Port of pinetree-desktop#680: src/http.cpp sets an empty POSTFIELDS for body-less POST/PUT/PATCH so libcurl sends Content-Length: 0, plus tests/test_empty_post.cpp (loopback) and its CMake entry. Folded into the 0.2.1 release so the tag ships with it. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01D22yA2FD2Cm7HuYGcwAXSN
|
ARCHI-SIGNOFF sandbox 43116e0 Re-sign of ceef3e1. The delta is three files: 🤖 Generated with Claude Code |
nlohmann/json and doctest get URL_HASH; IXWebSocket is pinned to the v11.4.5 commit so a moved tag cannot change what an unattended build compiles. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01D22yA2FD2Cm7HuYGcwAXSN
|
ARCHI-SIGNOFF sandbox e451835 Re-sign of 43116e0. The delta is 🤖 Generated with Claude Code |
Port of the SDK-SUITE phase 2 fixes from the private SDK source, for tag v0.2.1 after merge.
commands.runwithonStdout/onStderrno longer returns empty or truncated output when the guest's first output arrives before thecmd.startreply.CommandOptions::timeoutMsis a command deadline on the WebSocket path: the command is killed (SIGKILL) and the result isexitCode -1with the output so far. NewCommandHandle::waitFor(ms).47 test cases / 350 assertions pass (built out of tree,
-DCMAKE_POLICY_VERSION_MINIMUM=3.5on CMake 4.x as before).🤖 Generated with Claude Code
https://claude.ai/code/session_01D22yA2FD2Cm7HuYGcwAXSN
Update: also includes the change from pinetree-desktop#680: body-less POSTs (pause/resume/start) now carry an explicit
Content-Length: 0. Over the HTTP/2 the real gateway negotiates these calls already worked, so for C++ this is hardening (an HTTP/1.1 connection would get 411 without it; the Rust SDK did fail in the field). Filessrc/http.cpp,tests/test_empty_post.cppand its CMake entry, byte-identical to that PR. 50 test cases / 371 assertions pass.