Skip to content

carry of #27531: gate nightly recovery on tree marker - #28197

Merged
teamleaderleo merged 11 commits into
feat-cmux-nextfrom
lane/carry-27531-nightly-marker
Oct 30, 2026
Merged

teamleaderleo merged 11 commits into
feat-cmux-nextfrom
lane/carry-27531-nightly-marker

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 30, 2026 •

Copy link
Copy Markdown
Collaborator

Carry of #27531: ci(nightly-next): build the tip at once and install its tree's attested client when the tree publishes.

Carries the nightly tree-at-install work onto current feat-cmux-next. The publish source selector now requires the current build's tree-marker eligibility before selecting it; a recovered build cannot bypass a failed marker gate. The carried tests cover marker-aware recovery selection.

Original PR: #27531

Agent session: agent session


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


Summary by cubic

Carries #27531's nightly tree-at-install work onto current feat-cmux-next. A nightly that starts before its tip's cmux-tui tree is published now compiles the app immediately, installs the tree's attested client once its manifest is uploaded, and publishes only after the build commit's tree-commit marker names the installed client's commit as the tree's publisher.

Behavior changes

  • The publish source selector requires the current build's tree-marker eligibility before selecting it, so a recovered build cannot bypass a failed marker gate.
  • publish-nightly evaluates its job condition with always() so a skipped marker-wait job still lets publication proceed.
  • Recovery refuses a run whose marker check failed, was cancelled, or has not finished.
  • The marker check also gates an unsigned resume, against the bundled client commit read from the resumed app archive, using a synthetic tree key.
  • Sign variants now read the bundled client commit from build-nightly-app's output instead of the resolver's alone.
  • request-nightly-next.sh requests such a tip at once while an artifacts run builds its tree.

Written for commit 4fed48b. Summary will update on new commits.

View guided diff Turn on auto-fix

@github-actions

github-actions Bot commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

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

Review 4fed48b: 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=pr28197 -f ref=lane/carry-27531-nightly-marker -f platform=macos -f backend_mode=local

@github-actions github-actions Bot added the risk:high Risk tier (docs/ci/risk-tiers.md) label Oct 30, 2026
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (codex-review-box/gpt-6-astra high, lane-place): BLOCK at b9559c1

BLOCK

  1. .github/workflows/nightly.yml:5924 — Unsigned resumes pass the app’s build_sha as INSTALLED, but that SHA identifies the compiled source, not the cmux-tui commit embedded in the restored app. await-tree-marker.sh compares it with the tree marker’s publishedBy, which commonly differs when the app used another same-tree publisher, so resumed builds fail the marker gate and cannot publish.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Owned by an agent session · session

teamleaderleo and others added 5 commits October 30, 2026 13:53
… when the tree publishes

A tree-changing landing waited about 27 minutes for its cmux-tui tree
(build, R2 upload, tree publish, marker) before its NEXT nightly could start.
Main's promote guard now accepts such a commit when its nightly.yml carries
NIGHTLY_NEXT_TREE_AT_INSTALL: v1 (#27498). This is that nightly:

- resolve-nightly-cmux-tui-client: a tip whose tree is a clean 404 is built
  as it is (tree_pending, with its same-key first-parent candidates);
- build-nightly-app compiles at once. Bundle acpmux gets a stand-in input
  (the phase only aliases bin/acpmux to bin/cmux), and "Bundle the cmux-tui
  client" waits for the tree's attested manifest (await-tree-client.sh), then
  installs it with the same install-cmux-tui-client.sh command;
- await-nightly-tree-marker gates publish-nightly on the build commit's
  tree-commit marker naming the installed client's commit (G5, in the run);
- request-nightly-next.sh requests such a tip while an artifacts run builds
  its tree.

nightly.yml stays under its size limit: two steps live in
scripts/ci/nightly-steps/ and some comments in the touched jobs are shorter.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-a7306ef145c005ad24ab
…own, resumed or recovered

Review findings on 18c51bd:
- publish-nightly's source selection takes this run's own build only when
  await-nightly-tree-marker passed (or the build never waited for its tree),
  so a recovered build can no longer stand in while the own build is used;
- the marker check also runs for an unsigned resume, against the commit the
  resumed app installed;
- recovery refuses a run whose marker check failed, was cancelled or has not
  finished (recover-tree-marker-ok.sh);
- await-tree-client.sh reads each candidate's own artifacts runs before the
  newest-50 listing, so a crowded listing never reads as no publisher.
publish-nightly's own if clause is left as it is (#27508 changes it).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-a7306ef145c005ad24ab
…t (no gh api paginate)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-a7306ef145c005ad24ab
…dled

The sign variant now reads build-nightly-app.outputs.cmux_tui_commit first
(the commit await-tree-client.sh found while the tip tree publishes), so the
universal-build guard accepts that expression instead of the resolver output
alone.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-d35d25d288d130b0c84c
@teamleaderleo
teamleaderleo force-pushed the lane/carry-27531-nightly-marker branch from b9559c1 to 495fb84 Compare October 30, 2026 13:56
@blacksmith-sh

blacksmith-sh Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

Found 4 test failures on Blacksmith runners:

Failures

Test View Logs
main.DeveloperIdAppTests.test_download_prints_the_active_profile_only/
test_download_prints_the_active_profile_only
View Logs
stubs: /System/Library/Frameworks/Security.framework/Versions/A/Security has no stub/
Security has no stub
View Logs
stubs: CoreFoundation.tbd: install-name /System/Library/Frameworks/
CoreFoundation.framework/Versions/A/CoreFoundation, missing 1: ['_CFRetain']/
CoreFoundation, missing 1: ['_CFRetain']
View Logs
stubs: CoreFoundation.tbd: install-name /System/Library/Frameworks/
CoreFoundation.framework/Versions/A/CoreFoundation, missing 1: ['_log2']/
CoreFoundation, missing 1: ['_log2']
View Logs

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

@teamleaderleo
teamleaderleo merged commit b2fbf47 into feat-cmux-next Oct 30, 2026
135 of 145 checks passed
@teamleaderleo
teamleaderleo deleted the lane/carry-27531-nightly-marker branch October 30, 2026 15:07
@github-actions

github-actions Bot commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

This branch was previously deployed

1 inactive deployment
ci-routing-agent — 4fed48bb Deployed Oct 30, 2026 by teamleaderleo via cmux-tui tree preflight #83696
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant