Skip to content

chore(release): truthful release path — CI-only + byte5 signing - #145

Merged
iret77 merged 3 commits into
mainfrom
chore/kill-local-release-fiction
Jul 31, 2026
Merged

chore(release): truthful release path — CI-only + byte5 signing#145
iret77 merged 3 commits into
mainfrom
chore/kill-local-release-fiction

Conversation

@iret77

@iret77 iret77 commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

Why

release-macos.yml (PR #144) is already a correct, complete, standard-conforming CI release — Developer-ID signing + notarization on a macos-14 runner, the same host-admin macos-sign.yml pattern that zaplex/nexgenvideo run daily. The pipeline is not the problem.

The problem is the false statements sitting next to it, carried over from the pre-standard era and repeatedly derailing session agents:

  1. scripts/release.sh stayed a runnable "documented emergency fallback" with local-keychain prerequisites → agents read it and pushed "build it on your MacBook". Signing material lives in Actions secrets, not a local keychain, and the maintainer's Mac is not a build host.
  2. The release notes claimed "Signed + notarized by high5 ventures GmbH" → but aiui is a byte5ai repo, so it signs with the byte5 Apple Developer account (org rule: byte5ai → byte5; iret77/high5-ventures → high5). All historical releases (v0.4–v0.8.2) carried the wrong entity.

What

  • scripts/release.sh → refusing stub. Prints the correct gh workflow run release-macos.yml invocation (incl. validate-first) and exits 1. No local build path remains to be mistaken for a real one.
  • AGENTS.md → new Releases section stating the truth at the point of action: macOS release = release-macos.yml (workflow_dispatch), in GitHub Actions, never local, never on the maintainer's Mac; signing material is in Actions secrets; release.sh is a stub, not a path.
  • release-macos.yml → release-notes provenance high5 ventures GmbHbyte5 GmbH. Workflow logic untouched; the signing identity itself comes from the byte5ai MACOS_CERTIFICATE secret (byte5 Developer ID).

Release runway

Cargo.toml, tauri.conf.json, and pyproject.toml are already at 0.8.3. After this merges, cutting v0.8.3 is one dispatch — no local step:

gh workflow run release-macos.yml -f version=0.8.3 --repo byte5ai/aiui

Prerequisite: the byte5ai MACOS_* / TAURI_SIGNING_PRIVATE_KEY* / UV_PUBLISH_TOKEN secrets must be visible to this repo (org- or repo-level). zaplex proves the byte5 material exists; confirm with gh secret list.

iret77 added 3 commits July 29, 2026 15:02
aiui releases run exclusively in GitHub Actions (release-macos.yml,
workflow_dispatch) on a macOS runner — Developer-ID signing +
notarization via App Store Connect API key, exactly like every other
devhost project (zaplex, nexgenvideo). There is no local release path.

The old script's "documented emergency fallback" framing + local-keychain
prerequisites repeatedly derailed session agents into "build it on your
MacBook" — signing material lives in Actions secrets, not a local
keychain, and the maintainer's Mac is not a build host. Replace the body
with a stub that refuses and points at the workflow so the fiction can't
be read as a real path again.
Add a Releases section so a context-empty session hits the truth at the
point of action: macOS releases run in GitHub Actions via
release-macos.yml (workflow_dispatch), never locally, never on the
maintainer's Mac — identical to zaplex/nexgenvideo. Signing material is
in Actions secrets; scripts/release.sh is a refusing stub, not a path.
aiui is a byte5ai repo, so it signs with the byte5 Apple Developer
account (org rule: byte5ai -> byte5, iret77/high5-ventures -> high5). The
signing identity itself comes from the byte5ai MACOS_CERTIFICATE secret;
this only corrects the release-notes provenance string, which still
claimed "high5 ventures GmbH" — carried over from the pre-standard era
when aiui was signed with the high5 cert (v0.4.x–v0.8.2).
@iret77 iret77 changed the title chore(release): kill local-release fiction, document CI-only path chore(release): truthful release path — CI-only + byte5 signing Jul 30, 2026
@iret77
iret77 merged commit 262d80a into main Jul 31, 2026
4 checks passed
@iret77
iret77 deleted the chore/kill-local-release-fiction branch July 31, 2026 15:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant