Why
The GH-352 signing work is merged to main but does not reach users yet: the home-manager module installs the released binary (fetch-release.nix), and main changes only ship after a semver tag fires release-binary.yml. The accumulated @bounded-systems/prx patch changesets are sitting in a "Version Packages" PR waiting to be merged.
Tasks
-
Cut the release. Merge the "Version Packages" PR (consumes the ~accumulated @bounded-systems/prx changesets) → semver tag → release-binary.yml builds and publishes the binary → home-manager deployments pick it up on next home-manager switch.
-
Add the PRX_PROVENANCE_KEY repo secret. ci.yml already wires:
PRX_PROVENANCE_KEY: ${{ secrets.PRX_PROVENANCE_KEY }}
PRX_CI_LEDGER: ${{ secrets.PRX_PROVENANCE_KEY != '' && format('{0}/.prx/ci-provenance.sqlite', github.workspace) || '' }}
So CI signs only once the secret exists; until then the ledger path is empty and CI no-ops the signing (safe). Set the secret to dev to activate per-actor signing in CI, with the signed ci/phase/v1 derivations uploaded as the async mirror artifact.
Acceptance
Related: #396, #427, GH-352. Companion: the fail-closed rollout-coordination issue.
https://claude.ai/code/session_01LPzb9h4TgS7zCB4vWtNiS4
Why
The GH-352 signing work is merged to
mainbut does not reach users yet: the home-manager module installs the released binary (fetch-release.nix), and main changes only ship after a semver tag firesrelease-binary.yml. The accumulated@bounded-systems/prxpatch changesets are sitting in a "Version Packages" PR waiting to be merged.Tasks
Cut the release. Merge the "Version Packages" PR (consumes the ~accumulated
@bounded-systems/prxchangesets) → semver tag →release-binary.ymlbuilds and publishes the binary → home-manager deployments pick it up on nexthome-manager switch.Add the
PRX_PROVENANCE_KEYrepo secret.ci.ymlalready wires:PRX_PROVENANCE_KEY: ${{ secrets.PRX_PROVENANCE_KEY }}PRX_CI_LEDGER: ${{ secrets.PRX_PROVENANCE_KEY != '' && format('{0}/.prx/ci-provenance.sqlite', github.workspace) || '' }}So CI signs only once the secret exists; until then the ledger path is empty and CI no-ops the signing (safe). Set the secret to
devto activate per-actor signing in CI, with the signedci/phase/v1derivations uploaded as the async mirror artifact.Acceptance
prx provenance statusreporting the new postures).ci/phase/v1derivations and uploads the provenance artifact.Related: #396, #427, GH-352. Companion: the fail-closed rollout-coordination issue.
https://claude.ai/code/session_01LPzb9h4TgS7zCB4vWtNiS4