Skip to content

ci: make E2E rescue and video capture fail soft - #16027

Merged
teamleaderleo merged 4 commits into
mainfrom
fix/e2e-rescue-video-fallback
Sep 30, 2026
Merged

teamleaderleo merged 4 commits into
mainfrom
fix/e2e-rescue-video-fallback

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Sep 30, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Keep E2E jobs running without video when screen capture is unavailable, and make rescue retries pick and follow the correct owned or Blacksmith runner across attempts.

Changelog

none

Origin: /Users/leoli/Projects/cmux-worktrees/e2e-product-gaps (source checkout cmux-worktrees/e2e-product-gaps).

Verification

Not run during idle-checkout triage; this draft needs the focused CI E2E compilation-cache, runner-pool, and rescue tests.


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


Summary by cubic

Makes E2E CI fail soft when screen capture is unavailable and fixes rescue re-runs so they follow the runner actually picked on each attempt.

  • A runner that cannot capture its display now logs a warning and runs the tests without video instead of failing the job, and skips uploading the recording artifact.
  • Rescue re-runs now distinguish full re-runs (which re-pick a runner on attempt 2, possibly an owned Mac, and get followed by attempt 2's own marker) from failed-job re-runs (which keep attempt 1's pick); attempt 3 and later always move to Blacksmith, and only attempts 1 and 2 may pick the owned pool.
  • The compilation-cache contract now normalizes an SDKROOT that names the already-selected SDK, so a Mac whose xcrun shim exported it can adopt products built by the rest of the fleet.

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

Review in cubic

@coderabbitai

coderabbitai Bot commented Sep 30, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 3 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 10 included reviews currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Repository: manaflow-ai/cmux/.coderabbit.yaml

Review profile: ASSERTIVE

Plan: Advanced

Run ID: a4e20049-49c4-402a-a4e6-a92e30e70d10

📥 Commits

Reviewing files that changed from the base of the PR and between e0da0a6 and f25f71d.

📒 Files selected for processing (8)
  • .github/actions/e2e-run-tests/action.yml
  • .github/workflows/test-e2e.yml
  • scripts/ci/e2e_runner_pool.py
  • scripts/ci/owned_pool_rescue.py
  • tests/test_ci_e2e_compilation_cache.py
  • tests/test_ci_owned_pool_rescue.py
  • tests/test_reuse_app_host_products.py
  • tests/test_run_e2e.py
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Autopilot is currently an internal CodeRabbit preview.


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.

@github-actions

Copy link
Copy Markdown
Contributor

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

teamleaderleo and others added 2 commits September 30, 2026 08:44
Keep the E2E video fallback while retaining main's newer E2E runner and product-reuse changes.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Merge-main commit by scripts/merge-main.sh.
Merged by scripts/merge-main.sh: origin/main at e0da0a6.

Merge-main-previous-head: 3a7b7f6
Merge-main-base: e0da0a6
@teamleaderleo
teamleaderleo marked this pull request as ready for review September 30, 2026 15:46
@teamleaderleo
teamleaderleo enabled auto-merge (squash) September 30, 2026 15:46
@blacksmith-sh

This comment has been minimized.

@github-actions

github-actions Bot commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

CI fast guards passes on f25f71dd79 (https://github.com/manaflow-ai/cmux/actions/runs/36743404068).

@github-actions

Copy link
Copy Markdown
Contributor

CI failure attribution

CI failed on 961b7c3578 (run 36739217204 attempt 1): 2 code.

Job Verdict Why
guards / workflow-guard-tests / ci code a guard step failed
guards / workflow-guard-tests / app-host-execution code a Python test failed
Matched log lines
guards / workflow-guard-tests / ci: FAIL    0.0s  workflow-guard-tests / ci: Guard alpha
guards / workflow-guard-tests / app-host-execution: ERROR: test_macos_jobs_run_on_the_resolved_pool (__main__.WorkflowRunnerPoolTests.test_macos_jobs_run_on_the_resolved_pool)

Not re-run automatically: guards / workflow-guard-tests / ci, guards / workflow-guard-tests / app-host-execution are not machine failures.

Written by scripts/ci/classify_failures.py (ci-failure-attribution.yml); signatures are its SIGNATURES table. A machine verdict is the runner's fault, not this PR's.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review: no findings after repair. Fixed: restored picked_attempt and attempt-2 marker/routing semantics; full E2E reruns now get followed through attempt 2 and attempt 3+ fall back to Blacksmith. Focused E2E/rescue/cache/reuse tests pass (146/118/25/122), actionlint and diff check clean. Left: none.

@teamleaderleo
teamleaderleo merged commit 0fcbc54 into main Sep 30, 2026
71 checks passed
@teamleaderleo
teamleaderleo deleted the fix/e2e-rescue-video-fallback branch September 30, 2026 16:35
@github-actions

Copy link
Copy Markdown
Contributor

Merge receipt for f25f71dd79: every check was green at merge (18 verified; 23 skipped by policy). Full suite runs on main after merge.

rustybret pushed a commit to rustybret/bmux that referenced this pull request Sep 30, 2026
a302b3a fix(cloud): replay placement only for new daemon tabs and display views (manaflow-ai#16030)
ec42b7e fix(cloud): keep the link client's last stderr lines in its exit error (manaflow-ai#16057)
8793407 Keep Cloud terminal prompts intact when resizing (manaflow-ai#15924)
2dbe472 Bound Iroh release gate phases (manaflow-ai#16084)
4df2a40 fix(agent-chat): keep ACP Stop off live turns and quiet cancelled startups (manaflow-ai#16093)
d916e5c Merge pull request manaflow-ai#16006 from manaflow-ai/feat-dashboard-settings-hub-plans
6844b12 coderouter: no empty state while shared accounts are unreachable
7b51cc9 test: an unreachable shared-account service must not show the empty state
0fcbc54 ci: make E2E rescue and video capture fail soft (manaflow-ai#16027)
56b06d1 dashboard: capitalize remaining labels, buttons, and the LLM/CLI acronyms
b76ad61 billing: show the upgrade welcome only once the plan confirms it
2eb9bee ci: simplify macOS pool picker (manaflow-ai#15988)
fe2dd0e Preserve Cloud chat row measurements when appending turns (manaflow-ai#16011)
5ae227e test: a stale welcome link must not hide the upgrade prompt
7e39c92 fix(ios): fall back to memory when the simulator support directory is missing (manaflow-ai#16032)
87c78fe ci: do not wait on a busy producer root for tests (manaflow-ai#16077)
aae7dae test: keep the hosted client's real exports in the coderouter procedure mock
ef01450 coderouter: name an unreachable shared-account service and log account failures
0183942 Settle the session status when Stop cancels ACP startup (manaflow-ai#16081)
d664799 test: an unreachable shared-account service is its own state
1c2d14c Merge remote-tracking branch 'origin/main' into feat-dashboard-settings-hub-plans
3fc0c8d billing: one price shape on every plan card; clearer Cloud empty text
167d1a3 test: every plan card shows its price in one shape
d3a63a6 settings: list the subnav's teams from the team catalog
258cd09 test: the settings subnav lists teams from the team catalog
74d2419 billing: say a reason all other plans share once, and no price for a granted plan
aa820ae test: a reason all other plan cards share shows once
504df35 billing: report a downgrade's net credit
7c48432 test: a downgrade credit is net of the new plan's remaining time
952940a billing: plan picker with in-app switching, cancel with reasons, and upgrade prompts
4dc8964 test: Plan & billing defaults to the personal plan
9a69fe7 test: plan picker states and the optional cancel reason
0163f67 billing: in-app plan switch, cancel reasons, and checkout returnTo
31048db test: in-app plan change, cancel reasons, and checkout returnTo
596ff2a dashboard: make Settings the hub for billing and teams, title-case the navigation
ff11627 test: settings is the hub for billing and teams, with title-case navigation

# Conflicts:
#	.github/workflows/ci-guards.yml
#	.github/workflows/ci-macos.yml
#	.github/workflows/ci.yml
#	.github/workflows/ios-screenshots.yml
#	.github/workflows/iroh-release-gate.yml
#	.github/workflows/test-e2e.yml
#	.github/workflows/test-ios.yml
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review follow-up: PASS at SHA f25f71d. Fixed: restored picked_attempt, attempt-2 marker routing, and full E2E rescue follow-through. Left: none.

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