antithesis-setup: require full Go instrumentation and CGO#151
Merged
Conversation
Tightens the Go language reference so the agent: - Treats CGO_ENABLED=1 as required and never disables it (including inherited settings from Dockerfile ENV, build scripts, or CI). - Always runs antithesis-go-instrumentor in its default mode for both coverage and cataloging; removes -assert_only as an option. - Instruments Go workload binaries with the same flow as the SUT and verifies post-run that workload assertions appear in the report. Addresses the #51 failure mode where a Go workload's assertions silently never made it into the triage report. Co-Authored-By: Claude <noreply@anthropic.com>
Contributor
Skill Context Report
|
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.
Tightens
antithesis-setup/references/language/go.mdso the agent always does full Go instrumentation, never disables CGO, and applies the same flow to Go workload binaries — not just the SUT.A new CGO is required section forbids
CGO_ENABLED=0anywhere in the build path (DockerfileENV,go build, Makefiles, scripts, CI), even when the upstream project sets it for cross-compilation or static binaries. It requires settingCGO_ENABLED=1explicitly so it's not inherited from a parent image, and steers toward glibc base images overgolang:1.x-alpineto avoid musl-related instrumentation issues.The
-assert_onlyoption is removed. Default mode (coverage + cataloging) is now the only documented path, with a one-line rationale that coverage instrumentation is what lets Antithesis steer the search.A new Instrument the workload too, not just the SUT section addresses #51 directly: if the workload is Go and uses the SDK, it MUST be run through
antithesis-go-instrumentorwith the same flow, or its assertions silently never appear in the triage report. The agent is also told to verify post-run that the expected assertions appear — if the report shows fewer than were defined, the workload almost certainly wasn't instrumented.Closes #51.