fix: fail closed on untrusted native releases - #115
Draft
abrichr wants to merge 6 commits into
Draft
Conversation
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
mainwith a protected version-sync pull request; the post-merge job only creates the immutabledesktop-vX.Y.Ztagmain, strictly advances the version, and contains only the exact five-file transformSHA256SUMSby SHA-256SHA256SUMSagainst their exact GitHub workflow certificate identities before installer verificationApproval-held target-state work
This pull request remains a draft. It does not yet move native build, signing,
publication, mirror, or channel-pointer mutation into a protected-main
workflow_dispatchtransaction. The existing tag and release-event workflowmust not publish a release. The privileged workflow rewrite needs explicit
founder approval after its write-authority and publication risk is reviewed.
The Desktop Cloud Connector replacement and its shared qualification-v2
terminal admission are also approval-held in draft PR #116. No release can
occur until Desktop consumes the frozen shared verifier and accepts only an
exact signed
VERIFIEDresult that binds the permit, run sequence, policy,identity, and effect proof.
Runtime dependency state
This branch updates the frozen runtime from Flow 1.27.1 and Types 0.7.0 to the published Flow 1.31.0 and Types 0.10.0 set. Flow 1.31.0 includes the qualified-bundle sanitization fix from Flow commit
faf9945537d4011baeb36ce5f063b6e1814903e6and PR OpenAdaptAI/openadapt-flow#351.This is an interim exact pin. It is not the final hosted-operation release pin. Do not release the native application until the later immutable Flow release supplies the complete authorization and typed push-result contract, Cloud deploys and accepts that exact runtime, and Desktop updates its pin and lock from that accepted evidence.
External activation required
The workflow is not the complete trust boundary. Before the next native tag or release:
main. Require exact-head checks and require branches to be up to date before merge.Reject a stale native version pull requestcheck fornative-version/v*pull requests.v*. Only the engine release identity can create a tag. Do not permit update or deletion.desktop-v*. Only the native freshness identity can create a tag. Do not permit update or deletion.native-releaseenvironment:APPLE_CERTIFICATEAPPLE_CERTIFICATE_PASSWORDAPPLE_SIGNING_IDENTITYAPPLE_IDAPPLE_PASSWORDAPPLE_TEAM_IDAZURE_TENANT_IDAZURE_CLIENT_IDAZURE_CLIENT_SECRETTRUSTED_SIGNING_ENDPOINTTRUSTED_SIGNING_ACCOUNTTRUSTED_SIGNING_CERTIFICATE_PROFILEWINDOWS_CERTIFICATEWINDOWS_CERTIFICATE_PASSWORDWINDOWS_CERTIFICATE_THUMBPRINTDo not configure both Windows methods. Linux needs no founder-managed key. GitHub gives the pinned release workflow a short-lived OIDC identity.
Exact-head local evidence
Head:
997da51The full Python suite needed local loopback socket access. Its first sandboxed attempt failed only because the sandbox denied that socket bind. The full rerun with loopback access passed.
Release operation
Keep this PR as a draft. Do not merge it or publish a native release until the approval-held workflow changes, repository rules, signing identities, final Flow pin, Cloud acceptance, and live release verification are complete.
Historical
desktop-v0.15.0assets keep their original ad-hoc or unsigned labels. They do not satisfy this trust contract.