Repository navigation
nightly guards: the opt-in Cloud Tunnel step is covered, keyed and not legacy (base red) - #34201
Conversation
…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
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
|
Owned by an agent session · session |
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
Shipped in:
|
|
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 ( |
|
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 Follow-ups: none |
…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>
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 extensionstep to nightly.yml and aCMUX_CLOUD_TUNNELenv onBuild nightly app (Release):cmux-next guards / nightly-guards / workflow-guard-tests / release-notarytests/test_nightly_universal_build.sh:FAIL: nightly still handles the legacy tunnel extension. The check greps the expanded workflow (step scripts inlined), and the newcloud-tunnel-prepare.shmentionsSystemExtensions. 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 isnightly_only(secret tunnel profile, signing entitlements).cmux-next / cmux-next checks(Script tests):tests/test_nightly_release_product_reuse.pytest_skipped_steps_read_no_unkeyed_decide_outputfailed onnotary_probeandprofile_channel, which the Release build step now reads.notary_probenever reaches a product lookup (the lookup condition excludes it), andprofile_channelis derived fromnotary_probe,trackandchannel(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
Open in [code]smith · Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
Fixes three nightly guard failures on
feat-cmux-nextcaused by the new "Prepare the Cloud Tunnel extension" step added tonightly.yml..github/nightly-step-coverage.jsonasnightly_only.test_nightly_universal_build.shso the legacy tunnel check still catches other tunnel handling.notary_probeandprofile_channelas unkeyed Release build inputs intest_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.