feat: add Desktop Nightly update channel - #4108
Open
Astro-Han wants to merge 3 commits into
Open
Conversation
Astro-Han
force-pushed
the
feat/desktop-nightly-channel
branch
from
August 28, 2026 19:22
218ef40 to
a049a79
Compare
Build signed developer snapshots from the exact main commit, publish immutable payloads and verified provenance to Apache Nightlies, and keep packaged clients pinned to their declared update authority. Document the one-time Infra and GitHub Environment setup while leaving the workflow disabled until those external credentials exist. Generated-by: Codex
Treat each fresh workflow run as one immutable version, publish payloads before independent platform feeds, and reject in-place reruns. Replace the third-party rsync action with strict host-key-verified transport scoped to the protected Nightly environment. Generated-by: Codex
Fail in-place workflow reruns explicitly, route every Nightly authority change through release-contract validation, and strengthen staged-feed verification. Generated-by: Codex
Astro-Han
force-pushed
the
feat/desktop-nightly-channel
branch
from
August 29, 2026 02:41
a049a79 to
91d96ca
Compare
Astro-Han
marked this pull request as ready for review
August 29, 2026 02:44
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
Add a developer-only Desktop Nightly channel that builds the exact scheduled
maincommit for macOS arm64 and Windows x64 without participating in the ASF source-release vote.Each fresh workflow run owns one immutable
0.2.0-dev.YYYYMMDD.runversion. Publication is append-only: verified versioned payloads are uploaded first, then the independent macOS and Windows feeds advance. In-place workflow reruns are rejected; a failed Nightly is retried with a fresh dispatch and therefore a fresh version.Nightly packages embed an isolated Apache Nightlies feed, accept only newer
devversions, and verify downloaded bytes against Sigstore provenance issued by the Nightly workflow onmain. Publishing uses the protectednightlyEnvironment and the hosted runner's rsync with an Infra-verifiedknown_hostsentry; no third-party deployment action receives the SSH key.The workflow remains disabled until Apache Infra publishing, retention ownership, and the protected
nightlyEnvironment are configured.Verification
node --test --test-concurrency=1 scripts/desktop-nightly.test.mjs scripts/desktop-nightly-stage.test.mjs scripts/desktop-nightly-workflow-policy.test.mjs scripts/ci-test-plan.test.mjs scripts/verify-windows-harness.test.mjs(98 passed)app-update-service.test.tsandapp-update-attestation.test.ts(18 passed)node --test --test-name-pattern='Desktop packaging derives|platform package verifiers' scripts/product-release.test.mjs(2 passed)actionlint .github/workflows/desktop-nightly.ymlgit diff --checktsc -p apps/desktop/tsconfig.main.json --noEmitremains blocked by existing stale workspace/test types unrelated to this diff (llmConnectionId,SessionConfigurationPatch, and MCP store exports).Rollout
apache/makafor Nightlies publishing, supplies an authenticated SSHknown_hostsentry, and confirms whether retention is service-managed or project-managed.nightlyEnvironment restricted tomain; store all Nightlies rsync and Apple signing/notarization secrets there.DESKTOP_NIGHTLY_ENABLED=true.Nightly currently uses the same application identity and user-data location as the formal Desktop, so installing it replaces the existing Maka installation rather than adding a side-by-side app. Clean remote Runtime Host setup remains outside this channel because Nightly does not publish a matching npm package.
AI use
Select exactly one:
Tool(s) and scope: Codex implemented the workflow, channel authority, staging/verification scripts, tests, operations documentation, and adversarial review fixes. The human contributor must review the final diff, provenance, licensing, and rollout configuration before merge.
Checklist
Does this PR entail a change in behavior?