Skip to content

nightly guards: the opt-in Cloud Tunnel step is covered, keyed and not legacy (base red) - #34201

Merged
teamleaderleo merged 1 commit into
feat-cmux-nextfrom
fix/nightly-cloud-tunnel-guards
Nov 3, 2026
Merged

teamleaderleo merged 1 commit into
feat-cmux-nextfrom
fix/nightly-cloud-tunnel-guards

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Nov 3, 2026 •

Copy link
Copy Markdown
Collaborator

Fixes two base reds on feat-cmux-next, both from 6b29137 ("nightly: ship the opt-in Cloud Tunnel on a channel with a profile"), which added a Prepare the Cloud Tunnel extension step to nightly.yml and a CMUX_CLOUD_TUNNEL env on Build nightly app (Release):

  • cmux-next guards / nightly-guards / workflow-guard-tests / release-notary
    • tests/test_nightly_universal_build.sh: FAIL: nightly still handles the legacy tunnel extension. The check greps the expanded workflow (step scripts inlined), and the new cloud-tunnel-prepare.sh mentions SystemExtensions. The check now skips that one step and still fails on tunnel handling anywhere else.
    • tests/test_nightly_step_coverage.py: the new step had no entry in .github/nightly-step-coverage.json. It is nightly_only (secret tunnel profile, signing entitlements).
  • cmux-next / cmux-next checks (Script tests): tests/test_nightly_release_product_reuse.py test_skipped_steps_read_no_unkeyed_decide_output failed on notary_probe and profile_channel, which the Release build step now reads. notary_probe never reaches a product lookup (the lookup condition excludes it), and profile_channel is derived from notary_probe, track and channel (both keyed; '' on nightly-next), so neither can change a reused app without changing its key. Both are allowed, with a comment saying why. This red first showed at Chief: a first-run Bring your history screen #33215 only because that was the first run of the job after the Cloud Tunnel series; Chief: a first-run Bring your history screen #33215 does not touch these files.

Tests and a registry only; no workflow or Cloud Tunnel code changes. All three tests pass locally.

Agent session: agent session

🤖 Generated with Claude Code


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


Summary by cubic

Fixes three nightly guard failures on feat-cmux-next caused by the new "Prepare the Cloud Tunnel extension" step added to nightly.yml.

  • Registers the step in .github/nightly-step-coverage.json as nightly_only.
  • Skips that step in test_nightly_universal_build.sh so the legacy tunnel check still catches other tunnel handling.
  • Allows notary_probe and profile_channel as unkeyed Release build inputs in test_nightly_release_product_reuse.py; they cannot change a reused app without changing its key.

Written for commit a6f40ec. Summary will update on new commits.

View guided diff Turn on auto-fix

…t legacy

6b29137 (nightly: ship the opt-in Cloud Tunnel on a channel with a profile)
added a "Prepare the Cloud Tunnel extension" step and a CMUX_CLOUD_TUNNEL env on
the Release build. Three guards still described the old world:

- test_nightly_universal_build.sh read the inlined cloud-tunnel-prepare.sh
  (SystemExtensions) as the legacy tunnel extension; the check now skips that
  one step and still fails on any other tunnel handling.
- test_nightly_step_coverage.py: the new step had no registry entry; it is
  nightly_only (secret tunnel profile, signing entitlements).
- test_nightly_release_product_reuse.py: the Release build now reads
  notary_probe and profile_channel. notary_probe never reaches a product
  lookup, and profile_channel derives from notary_probe, track and channel
  (both keyed), so both are allowed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-d750cf10922c785efa64
teamleaderleo referenced this pull request Nov 3, 2026
The extension's id follows the reused app id (<app id>.tunnel: com.cmuxterm.app.tunnel,
com.cmuxterm.app.nightly.tunnel, com.cmuxterm.app.rc.tunnel), so it uses the existing
APPLE_<CHANNEL>_TUNNEL_PROVISIONING_PROFILE_BASE64 secrets. A build with a profile channel
(not the notary probe) sets CMUX_CLOUD_TUNNEL=YES; cloud-tunnel-prepare.sh stamps the
channel identity, checks the tunnel profile, writes the app's tunnel entitlements and
exports what sign-cmux-bundle.sh signs the extension with. No tunnel profile: the
extension is removed. cmux NEXT (no profile) is unchanged.

Freeze-Token: a6a0d39ee4fc
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Owned by an agent session · session

@github-actions

github-actions Bot commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

cmux status (one comment, edited in place; each line is updated by the job that owns it)

Review a6f40ec: HQ feed card · gallery before/after runs · checks

App of this head (app.zip, kept 1 day)

gh workflow run reload-build.yml -R manaflow-ai/cmux --ref feat-cmux-next -f tag=pr34201 -f ref=fix/nightly-cloud-tunnel-guards -f platform=macos -f backend_mode=local

Shipped in:

@github-actions github-actions Bot added the risk:normal Risk tier (docs/ci/risk-tiers.md) label Nov 3, 2026
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (subagent claude-opus-5-5 medium): SHIP at a6f40ec

Checked that the product lookup and record run only on nightly-next with notary_probe != 'true', so profile_channel is '' and CMUX_CLOUD_TUNNEL is empty on every reusable build. The awk skip covers only the Prepare step, up to the next step. All three tests pass. (The router review was unavailable because the Codex review lanes were idle-stopped. This is a small, tests-only change.)

Follow-ups: the awk skip could also stop at a job boundary (skip && /^ [^ ]/ { skip=0 }) in case the step ever becomes the last one in its job.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (codex, router-review): SHIP at a6f40ec

Reviewer: codex gpt-6-astra high, fast tier.

SHIP at a6f40ec

Visual verdict: unchanged by this diff

Checked the targeted reuse, coverage, and universal-build tests; all pass. The new reuse exemptions are constrained to values that cannot vary for reusable nightly-next builds.

Follow-ups: none

@teamleaderleo
teamleaderleo merged commit 57141a8 into feat-cmux-next Nov 3, 2026
149 of 158 checks passed
@teamleaderleo
teamleaderleo deleted the fix/nightly-cloud-tunnel-guards branch November 3, 2026 20:13
teamleaderleo added a commit that referenced this pull request Nov 3, 2026
…evert (#34271)

#34198 (8048d4f) reverted 010ffb9, which removed nightly.yml's
'Prepare the Cloud Tunnel extension' step. Its registry entry from #34201
stayed, so test_nightly_step_coverage reports it as stale and
'Validate every nightly step has a pull request counterpart' is red on
feat-cmux-next. A re-land of the step re-adds the entry.


Agent-Session: https://cmux.com/deeplink/agent?id=aid-d750cf10922c785efa64

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

This branch was previously deployed

1 inactive deployment
ci-routing-agent — a6f40ec5 Deployed Nov 3, 2026 by teamleaderleo via wait for same-key tree publisher #107466
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:normal Risk tier (docs/ci/risk-tiers.md)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant