Skip to content

PR media: classify app changes by CI's build inputs; a reuse error is no refusal - #15386

Merged
teamleaderleo merged 2 commits into
mainfrom
ci/pr-media-classifier
Sep 28, 2026
Merged

teamleaderleo merged 2 commits into
mainfrom
ci/pr-media-classifier

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Sep 28, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Follow-up to #15378, addressing its two CodeRabbit threads.

  • Which PRs may compile for a tour. This used to be a handwritten path list (APP_PATH_PREFIXES) that could drift from what CI builds; it missed config/IrohRelayPolicyProduction.xcconfig, for example. It now comes from product_input_identity.reaches_product, the classifier CI keys its app-host build on, minus the CLI lane (CLI/, cmuxCLITests/, cmuxCLITestSupport/).
  • Reuse errors are no longer read as refusals. test-e2e.yml now fails a reuse error (the reuse step failed, or reported something other than a miss) under its own step. Only a confirmed miss reaches the refuse step that makes a tour compile. A tour whose reuse errored is noted in the comment and retried on the next CI attempt.

Testing

  • python3 tests/test_ci_pr_media.py: 61 tests, including:
    • the xcconfig case and the CLI-only negative case
    • a reuse error that doesn't compile
    • the new step's name matching test-e2e.yml
  • tests/test_ci_e2e_compilation_cache.py, tests/test_ci_canonical_build_root.py, tests/test_e2e_sibling_build.py and actionlint pass.

Changelog

none

🤖 Generated with Claude Code


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

Classifies which PRs may compile for a tour from CI's own build-input classifier (product_input_identity.reaches_product) instead of a handwritten path list, so app changes like config/IrohRelayPolicyProduction.xcconfig are no longer missed. Treats a reuse error as no evidence rather than a refusal: test-e2e.yml fails it under its own step, the tour is noted as skipped and retried on the next attempt, and only a confirmed reuse miss compiles a tour.

  • Lookup failures the reuse step records as miss reasons (API and transfer errors) now count as reuse errors too.
  • cmuxTests/ joins the CLI lane as a product input no tour shows.

Written for commit 82a43bc. Summary will update on new commits.

Review in cubic

… no refusal

reaches_app uses product_input_identity.reaches_product, the classifier
CI keys its build on, minus the CLI lane, instead of a separate path
list (a relay-policy xcconfig was missed). test-e2e.yml fails a reuse
error under its own step, so only a confirmed reuse miss makes a tour
compile; an errored one is noted and retried.

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

coderabbitai Bot commented Sep 28, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 4 minutes.

Check out review usage here.

View limit details

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

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

Learn how review limits work.

Review configuration:

⚙️ Run configuration

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

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 2731702a-a406-4026-a9b9-a9236de52976

📥 Commits

Reviewing files that changed from the base of the PR and between 20ef7c9 and 82a43bc.

📒 Files selected for processing (4)
  • .github/workflows/pr-media.yml
  • .github/workflows/test-e2e.yml
  • scripts/ci/pr_media.py
  • tests/test_ci_pr_media.py

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.

…ur change

The reuse step records API and transfer failures as miss reasons, so the
error step now reads them too; only a clean miss reaches the refusal
that makes a tour compile. cmuxTests/ joins the product inputs no tour
shows.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@teamleaderleo
teamleaderleo merged commit 2f6716c into main Sep 28, 2026
53 checks passed
@teamleaderleo
teamleaderleo deleted the ci/pr-media-classifier branch September 28, 2026 14:40
@github-actions

Copy link
Copy Markdown
Contributor

Merge receipt for 82a43bcf9a: every check was green at merge (10 verified; 13 skipped by policy). Full suite runs on main after merge.

rustybret pushed a commit to rustybret/bmux that referenced this pull request Sep 28, 2026
1028a08 test: isolate background workspace git probe fixture (manaflow-ai#15388)
41ad40d fix: keep the terminal area when the window is too narrow for the side panels (manaflow-ai#15369)
2890f0b Roll the Base create back when the owner network resolve fails (manaflow-ai#15358)
7b0a15f Keep agent- and script-opened workspaces and panes in the background (manaflow-ai#15281)
4f14fa3 ci: move CLI regressions to CLI product tests and rebalance the seven app-host shards (manaflow-ai#15177)
906926a ci: dogfood builds are opt-in with the dev-build label (manaflow-ai#15380)
2f6716c PR media: classify app changes by CI's build inputs; a reuse error is no refusal (manaflow-ai#15386)
bc28bc4 Release the Base generation when a create is refused for credits (manaflow-ai#15343)
6760c93 iOS: Add Computer never disturbs the active Mac (manaflow-ai#15102)
0f2d3d3 Show Claude sessions that stop on an API error instead of leaving them Running (manaflow-ai#15232)
20ef7c9 Keep the main window floor on the animating setFrame path (manaflow-ai#15368)
b4f5dc5 ci: move UI runs pinned to Blacksmith macOS 26 onto owned Macs (manaflow-ai#15383)
e02c385 PR media: compile once when CI's build cannot load, and say why a tour skipped (manaflow-ai#15378)
ebd1f4f fix(iroh-v2): commit delivery accounting only after the frame is sent (manaflow-ai#15344)

# Conflicts:
#	.github/workflows/ci-guards.yml
#	.github/workflows/ci-macos.yml
#	.github/workflows/ci.yml
#	.github/workflows/pr-media.yml
#	.github/workflows/test-e2e.yml
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Subagent review at 48183a3: changes requested. Findings: (MEDIUM) a lookup error that test-e2e recorded as a miss reason still counted as a refusal to compile, so a transient API error could read as an unloadable build. Addressed in 82a43bc (the reuse-error step now inspects the miss reasons).

Subagent review at 82a43bc: approved, no further findings.

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