fix(ci): bundle CLI native libs in single-file publish and validate via packaged binary#365
Merged
Merged
Conversation
…ia packaged binary The CLI was missing IncludeNativeLibrariesForSelfExtract=true on all single-file publish steps, while the daemon had it. Without this flag, libe_sqlite3.so is not bundled into the single-file binary. The release archive only tars the netclaw executable, so the native lib is never shipped — causing a type initializer exception in MemoryCheckpointHealth doctor check at runtime on installed binaries. Additionally, the PR validation CLI smoke test was running via dotnet run rather than against a published binary, so it never caught packaging issues. The smoke test now publishes with the full release flags, archives only the binary (matching the release packaging step exactly), extracts it to a clean directory, and runs cli-smoke.sh from there — faithfully simulating what users install. Fixes applied to all three affected workflows: - publish_release_binaries.yml: add IncludeNativeLibrariesForSelfExtract to CLI publish - smoke_sandbox.yml: add IncludeNativeLibrariesForSelfExtract to CLI publish - pr_validation.yml: publish CLI with release flags, package+extract to clean dir, run smoke tests against the extracted binary
7f045ca to
b7f4bc8
Compare
This was referenced Mar 21, 2026
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
IncludeNativeLibrariesForSelfExtract=trueto the CLI publish step in all three workflows (publish_release_binaries.yml,smoke_sandbox.yml,pr_validation.yml) — the daemon already had this flag but the CLI was missing it, causinglibe_sqlite3.soto be excluded from the packaged archive and triggering a type initializer exception innetclaw doctoron installed binariescli-smoke.shfrom there — so the smoke test now faithfully catches packaging issues instead of testing viadotnet runRoot cause
a21a147addedIncludeNativeLibrariesForSelfExtract=trueto the daemon publish but not the CLI. Without it,libe_sqlite3.sois left alongside the publish output rather than bundled in the single-file binary. Since the release archive only tars thenetclawexecutable, the native lib never ships. Users with leftover files from older non-single-file installations were masked from the issue until installed binaries diverged from the on-disk layout.Test plan
pr_validationCI passes — smoke test runs against packaged binary, notdotnet runnetclaw doctorMemory Checkpoint Health check passes on a clean install of the next release