Skip to content

Publish prebuilt Linux and macOS CLIs on release, and fix explain on Macs through the gateway - #53

Merged
shanebarakat merged 5 commits into
mainfrom
ci/linux-release
Oct 24, 2026
Merged

shanebarakat merged 5 commits into
mainfrom
ci/linux-release

Conversation

@shanebarakat

@shanebarakat shanebarakat commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

Release binaries (.github/workflows/release.yml): on a v* tag, builds kinbase for Linux x86_64 (Wanda's Ubuntu 24.04 sandbox has no Rust or nix) and macOS arm64, runs the lib and authority_boundaries tests, and attaches each tarball + sha256 to the release. PRs touching the workflow build without publishing.

Fix: explain refused on Macs through the gateway (launcher.rs). explain (kindex's call) loads the launcher a second time, which re-ran the startup descriptor check after macOS's TLS roots had opened two descriptors, so it refused its own files. Now the first load attests and later loads reuse it; inherited descriptors are fixed at launch.

Verified on a Mac through the staging gateway: main refuses, this branch works, a real inherited fd is still refused. New test fails without the fix; 225 lib tests pass.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

@adaptcom adaptcom Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Confidence Score: 2/5

Summary

Score reconciled from 3/5 because the review includes a blocking finding.

Adds the repo's first workflow: tag-triggered Linux release build and GitHub release upload. PR run is green; risk is supply-chain hygiene (unpinned third-party action with write token) and an already-deprecated runner label.

Important Files Changed

File Overview
.github/workflows/release.yml New tag-triggered release workflow; unpinned third-party action, deprecated ubuntu-22.04 runner

Reviewed 8a2e896...bf93dfd · ↻ Re-run review · View in Adapt

Comment thread .github/workflows/release.yml Outdated
Comment thread .github/workflows/release.yml Outdated
Comment thread .github/workflows/release.yml Outdated
Comment thread .github/workflows/release.yml Outdated
Comment thread .github/workflows/release.yml Outdated
Comment thread .github/workflows/release.yml
Comment thread .github/workflows/release.yml Outdated
Comment thread .github/workflows/release.yml Outdated
On a v* tag: run the lib tests and authority_boundaries, build kinbase for
x86_64-unknown-linux-gnu (ubuntu-24.04, for Wanda's sandbox) and
aarch64-apple-darwin (for engineers' Macs), check each binary's version matches
the tag, and attach tarballs + sha256 to the release from a separate tag-only
job that alone holds contents: write. hook_install_and_ledger is left out of the
gate: it fails on main today. Pull requests that touch the workflow build and
test without publishing.
A second Launcher::load in the same process re-ran the attestation and
counted descriptors the process had opened itself. On macOS, loading the
native TLS roots for an https Company URL leaves two open, so explain
through the gateway refused with CONFIG_INVARIANT.
@shanebarakat shanebarakat changed the title Publish a prebuilt Linux CLI on each release tag Publish prebuilt Linux and macOS CLIs on release, and fix explain on Macs through the gateway Oct 23, 2026
@alexu8007
alexu8007 self-requested a review October 23, 2026 23:55
@shanebarakat
shanebarakat merged commit 7468035 into main Oct 24, 2026
3 checks passed
@shanebarakat
shanebarakat deleted the ci/linux-release branch October 24, 2026 00:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants