docs/plans/release-0.1.3.md section (b); a Linux test VM run (all seven tests pass; setup.md step 1 had no Linux asset, so the binary was cross-built by hand); ADR 0015The code builds and tests on Linux (CI runs ubuntu-latest), and a Linux test VM run passed, but a Linux user has no release asset and no Go on the target machine. The release job (ADR 0015) runs on macos-latest and signs and notarizes the one macOS binary. Linux binaries need no signature, and a Linux file must never reach codesign or notarytool.
linux/amd64 and linux/arm64 (CGO_ENABLED=0, -trimpath) with a new scripts/release-build.sh build-linux OUTDIR into its own directory, $RUNNER_TEMP/dist-linux. The signing, notarize and verify steps name only $RUNNER_TEMP/dist, so no Linux file reaches them.crosstalk-<tag>-linux-<arch>.tar.gz holding exactly one entry, crosstalk (tar keeps the execute bit), with a .tar.gz.sha256 beside it, by scripts/release-build.sh package-linux OUTDIR TAG.go test and before the certificate import, and the publish step uploads the Linux files in the same draft release as the macOS zip.go build; it is not executed anywhere before release.ubuntu-latest job. Needs artifact passing between jobs and a second job attached to the release environment; one job keeps one draft-then-publish step.SHA256SUMS file. The macOS asset uses one .sha256 per file; setup.md checks each the same way.linux/arm64 ships unexecuted; setup.md says so..sha256 beside it; there is no signature.Provisional-ADR: 0017.TestReleaseWorkflowLinuxOutsideSigning (no step that runs codesign, notarytool, security or lipo names dist-linux; the publish step lists the four Linux files).TestReleaseBuildLinux (plan section (b), slice B1).