Skip to content

CI: default macOS-15 jobs to WarpBuild instead of dead Blacksmith pool - #7393

Merged
lawrencecchen merged 2 commits into
mainfrom
feat-ci-warp-macos-defaults
Jul 5, 2026
Merged

lawrencecchen merged 2 commits into
mainfrom
feat-ci-warp-macos-defaults

Conversation

@lawrencecchen

@lawrencecchen lawrencecchen commented Jul 5, 2026 •

Copy link
Copy Markdown
Contributor

Problem

The Blacksmith macOS pool is retired. Any CI run already queued against blacksmith-6vcpu-macos-15 sits queued forever (GitHub never re-evaluates runs-on after a job is queued), which is what stuck the last push run on main for ~7.5h with every Linux job green and only the macOS jobs (swift-package-tests, app-host unit tests, release-ghostty-cli-helper, ui-regressions) hung.

The runner labels are driven by repo variables (MACOS_RUNNER_15, MACOS_RUNNER_DISPLAY), which already point at warp-macos-15-arm64-6x. But the in-workflow || '...' fallbacks still named the dead Blacksmith pool, so clearing/unsetting a var would silently route these jobs back into the permanently-queued state.

Change

Point every macOS-15 fallback in ci.yml at warp-macos-15-arm64-6x to match the live repo vars. release-build keeps its Blacksmith macOS-26 fallback (disk-heavy universal build; that fallback is explicitly enforced by tests/test_ci_self_hosted_guard.sh). Updated the stale app-host comment.

No behavior change while the vars are set; this only fixes the failure mode when a var is cleared.

Verification

Meta/CI-only change; no tagged app build.


View with Codesmith Autofix with Codesmith
Need help on this PR? Tag /codesmith with what you need. Autofix is disabled.


Note

Low Risk
Workflow-only runner label fallbacks; no app code or release-build macOS-26 lane changes.

Overview
Updates .github/workflows/ci.yml so macOS-15 jobs no longer fall back to the retired blacksmith-6vcpu-macos-15 pool when MACOS_RUNNER_15 / MACOS_RUNNER_DISPLAY are unset. Every affected runs-on and display-runner validation step now uses warp-macos-15-arm64-6x, aligned with the live repo variables.

Touched jobs: app-host unit tests, swift-package-tests, tests-build-and-lag, release-ghostty-cli-helper, and ui-regressions. The app-host job comment is refreshed to reference Warp instead of Blacksmith. release-build is unchanged and still defaults to blacksmith-6vcpu-macos-26.

No change while vars are set; this only fixes jobs that would otherwise queue forever on a dead label.

Reviewed by Cursor Bugbot for commit 6338d15. Bugbot is set up for automated code reviews on this repo. Configure here.


Summary by cubic

Default macOS-15 CI jobs to WarpBuild to prevent hangs on the retired Blacksmith pool. Aligns ci.yml fallbacks with MACOS_RUNNER_15 and MACOS_RUNNER_DISPLAY so clearing a var won’t stall runs.

  • Bug Fixes
    • Switch macOS-15 runs-on fallbacks to warp-macos-15-arm64-6x in ci.yml (app-host tests, Swift package tests, UI regressions, release-ghostty-cli-helper); refreshed the app-host comment.
    • Keep release-build fallback to Blacksmith macOS-26 (guarded by tests/test_ci_self_hosted_guard.sh); update tests/test_ci_release_sdk_lane.sh to expect Warp for release-ghostty-cli-helper.

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

Review in cubic

Summary by CodeRabbit

  • Chores
    • Updated multiple macOS CI jobs to run on the new warp-macos-15-arm64-6x runner.
    • Adjusted CI runner identity validation for the release SDK lane to match the updated macOS runner default.
    • Updated inline workflow notes to reflect the new macOS build environment.

…smith pool

The Blacksmith macOS pool is retired; MACOS_RUNNER_15 / MACOS_RUNNER_DISPLAY
already point at warp-macos-15-arm64-6x via repo vars. Align the in-workflow
'||' fallbacks so a cleared/unset var can never route these jobs back to the
dead blacksmith-6vcpu-macos-15 pool (jobs there queue forever). release-build
keeps its Blacksmith macOS-26 fallback (disk-heavy universal build; enforced by
test_ci_self_hosted_guard.sh).
@vercel

vercel Bot commented Jul 5, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
cmux Ready Ready Preview, Comment Jul 5, 2026 11:27am
cmux-staging Building Building Preview, Comment Jul 5, 2026 11:27am

@coderabbitai

coderabbitai Bot commented Jul 5, 2026 •

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

Updates macOS CI jobs to default to warp-macos-15-arm64-6x, adjusts two display-runner guard defaults, and updates a release lane test expectation to match the new runner value.

Changes

CI Runner Migration

Layer / File(s) Summary
Update macOS job runner defaults
.github/workflows/ci.yml
Changes runs-on defaults for app-host-unit-tests, swift-package-tests, tests-build-and-lag, release-ghostty-cli-helper, and ui-regressions to warp-macos-15-arm64-6x, and updates the REQUESTED_RUNNER default in the tests-build-and-lag and ui-regressions display-runner guards.
Adjust release lane expectation
tests/test_ci_release_sdk_lane.sh
Updates the build-ghostty-cli-helper runner assertion in release.yml to expect warp-macos-15-arm64-6x.

Estimated code review effort: 2 (Simple) | ~10 minutes

🚥 Pre-merge checks | ✅ 25
✅ Passed checks (25 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Cmux Swift Actor Isolation ✅ Passed PASS: The PR only changes CI workflow YAML and a shell test; no Swift source, actor, protocol, or UI-store declarations were added or worsened.
Cmux Swift Blocking Runtime ✅ Passed The diff only updates a shell test expectation; no Swift files or runtime synchronization code are changed.
Cmux Browser Automation Off-Main ✅ Passed PR only updates a CI lane test expectation for macOS runner labels; no browser automation code, waits, or routing changed.
Cmux Expensive Synchronous Load ✅ Passed PR changes only CI/test files; HEAD modifies tests/test_ci_release_sdk_lane.sh and no Swift files or agent-history loads are present.
Cmux Cache Substitution Correctness ✅ Passed PASS: The PR only changes CI YAML and a shell test; no production Swift/TypeScript/JavaScript cache/history/snapshot paths are touched.
Cmux No Hacky Sleeps ✅ Passed Changed files only retarget CI runner labels and a test assertion; no sleeps, timers, polling, or retry waits were added, and workflow YAML is out of scope.
Cmux Algorithmic Complexity ✅ Passed PR only changes CI workflow YAML and a test script; no production Swift/TS/JS/runtime code or scalable-collection algorithm changes.
Cmux Swift Concurrency ✅ Passed PR diff changes only ci.yml and a shell test; no Swift sources or async-pattern changes were introduced.
Cmux Swift @Concurrent ✅ Passed The PR only changes CI workflow YAML and a shell test; no Swift files or Swift concurrency code paths are modified, so the rule is not applicable.
Cmux Swift File And Package Boundaries ✅ Passed Only tests/test_ci_release_sdk_lane.sh changed; no Swift files or package-boundary-sensitive production code were touched.
Cmux Swiftpm Lockfiles ✅ Passed PR only changes ci.yml runner fallbacks and one test; no Package.swift, Package.resolved, .gitignore, or Xcode package-reference changes appear in the diff.
Cmux Swift Logging ✅ Passed PR diff only changes .github/workflows/ci.yml and a shell test; no Swift source or logging statements were added or modified.
Cmux User-Facing Error Privacy ✅ Passed Only a test script changed; the rule allows tests, and no user-facing error copy or production text was modified.
Cmux Full Internationalization ✅ Passed Only a workflow and a test changed; no user-facing Swift/web copy or locale assets were touched, and the policy allows tests/config tokens.
Cmux Swiftui State Layout ✅ Passed PASS: The PR only changes CI workflow and a shell test; no SwiftUI files or rule-violating state/layout patterns were introduced.
Cmux Architecture Rethink ✅ Passed Only CI workflow/test runner-label fallbacks changed; no Swift UI/lifecycle code or architectural smell was introduced.
Cmux Swift Auxiliary Window Close Shortcuts ✅ Passed PR only changes a shell CI test; no Swift windows/controllers or cmux auxiliary-window identifiers were added or modified.
Cmux Source Artifacts ✅ Passed Diff only touches ci.yml and a test script; no local logs, caches, temp dirs, or other artifact paths are added.
Cmux No Test Or Debug Seam In Production Source ✅ Passed PR only changes .github/workflows/ci.yml and a test shell script; no production Swift Sources files were modified.
Cmux No Ambient Global State ✅ Passed The commit only updates tests/test_ci_release_sdk_lane.sh; no Swift sources or ambient-global-state patterns are introduced.
Title check ✅ Passed The title clearly summarizes the main CI runner fallback change and matches the changeset.
Description check ✅ Passed The description covers Summary and Testing well; only optional template items like Demo Video, Review Trigger, and Checklist are omitted.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat-ci-warp-macos-defaults

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 6338d15. Configure here.

Comment thread .github/workflows/ci.yml
@greptile-apps

greptile-apps Bot commented Jul 5, 2026 •

Copy link
Copy Markdown
Contributor

Greptile Summary

This CI-only change fixes the stuck-forever failure mode on main by replacing every blacksmith-6vcpu-macos-15 fallback in ci.yml with warp-macos-15-arm64-6x, matching the live MACOS_RUNNER_15 / MACOS_RUNNER_DISPLAY repo variables. The release-build job's macOS-26 Blacksmith fallback is intentionally kept and guarded by tests/test_ci_self_hosted_guard.sh.

  • ci.yml: Six runs-on / REQUESTED_RUNNER substitutions across five jobs (app-host unit tests, swift-package-tests, tests-build-and-lag, release-ghostty-cli-helper, ui-regressions); also refreshes the app-host comment to reference WarpBuild.
  • tests/test_ci_release_sdk_lane.sh: Updates the assertion for ci.yml's release-ghostty-cli-helper job to expect the new fallback label; the release.yml assertion (line 35) is correctly left unchanged since release.yml is not part of this PR.

Confidence Score: 5/5

Safe to merge — workflow-only runner label changes with no app code touched and a passing guard test.

All six substitutions in ci.yml are mechanical string replacements of a dead pool label with a live one. The release-build macOS-26 lane is untouched and its guard script still passes. No production Swift, runtime, or build logic is affected.

No files require special attention. The remaining blacksmith-6vcpu-macos-15 references in other workflows are out of scope for this PR but worth a follow-up.

Important Files Changed

Filename Overview
.github/workflows/ci.yml Updates six runs-on / REQUESTED_RUNNER fallback values from the retired blacksmith-6vcpu-macos-15 to warp-macos-15-arm64-6x across five jobs; release-build (macOS-26) is intentionally left unchanged.
tests/test_ci_release_sdk_lane.sh Updates the assertion for ci.yml's release-ghostty-cli-helper job to expect the new warp-macos-15-arm64-6x fallback; the release.yml assertion on line 35 is intentionally left pointing at the Blacksmith fallback since release.yml is not part of this PR.

Reviews (2): Last reviewed commit: "test: expect warp-macos-15 fallback for ..." | Re-trigger Greptile

Matches the ci.yml default flip; the SDK-lane guard only cares that the helper
builds on a macOS-15 runner, which warp-macos-15-arm64-6x is.
@lawrencecchen
lawrencecchen merged commit 709fcda into main Jul 5, 2026
29 of 31 checks passed
@lawrencecchen
lawrencecchen deleted the feat-ci-warp-macos-defaults branch July 5, 2026 10:01
azooz2003-bit added a commit that referenced this pull request Jul 6, 2026
… ssh fixes)

Notable: #7393 moves macOS-15 CI jobs off the dead Blacksmith pool (cures the
tests-build-and-lag runner failure), remote workspace package test
stabilization, #7359 ssh RemoteCommand/RequestTTY fix, #7255 client config
API, #7174 NIGHTLY updater fix, and the sidebar inline-rename feature.

Conflicts resolved keeping HEAD's refactored structure:
- RemoteTmuxHost: union imports (main's CmuxFoundation + HEAD's CmuxRemoteSession).
- TerminalSSHSessionDetector: took main's scpArguments addition (#7359).
- FileExplorerStore: HEAD tombstone kept — the CmuxFoundation package copy of
  SSHFileExplorerProvider already carries main's stateLock/State shape.
- ContentView (2 regions): kept HEAD's extracted SidebarWorkspaceRowContent row.
  main's inline-rename edits target the inline row body the refactor extracted;
  the feature's six implementation files + tests auto-merged in and the row-
  architecture port follows as a bounded task (rename-port) before merge.
- budget.tsv regenerated; pbxproj union-dedup + normalize (SidebarScrim.swift
  ref pruned: whole-file-lifted into CmuxSidebarUI earlier, unreferenced on
  main too). Test-wiring/budget/conventions lints green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

This branch was successfully deployed

1 active deployment
Preview – cmux — bab26e9c Deployed Jul 5, 2026 by vercel[bot]
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