Skip to content

Let each PR name the CI lanes it needs - #260

Merged
SunkenInTime merged 1 commit into
mainfrom
t3/agent-picked-ci
Oct 8, 2026
Merged

SunkenInTime merged 1 commit into
mainfrom
t3/agent-picked-ci

Conversation

@SunkenInTime

@SunkenInTime SunkenInTime commented Oct 8, 2026 •

Copy link
Copy Markdown
Owner

A one-line Dart fix (#258) was going to wait ~20 minutes on CI, Windows desktop build included. With this PR the agent that opens a PR says what CI it needs, and a PR like that can skip CI entirely.

Why every PR ran everything. The lane picker from #219 ran every lane for any PR into main. When #219 landed, daily work targeted icarus-cloud and a PR into main was the release merge. Since #234 every PR targets main, so every PR paid for the full run. Direct-to-main PRs on Oct 5–7 took 14–20 minutes. #257 took 4.5 only because it was stacked on another branch until just before merge.

What changes

  • A PR's description can carry a ci: line: ci: test web, ci: skip, or ci: all. The lanes are analyze, test, web, replay, convex, presence, contract, bridge and desktop.
  • Lanes that guard production or the library (convex, presence, contract, desktop) still run when the PR changes their files, whatever the line says.
  • An unknown lane name, like ci: tests, runs every lane and leaves a warning, so a typo can't silently skip CI.
  • Without a line, a PR runs analyze, test and web plus the lanes its files reach. The base branch no longer matters.
  • The picker reads the description when the run starts, not from the event payload, so after editing the line you can rerun the run without pushing.
  • Unchanged: pushes to main run every lane but desktop, manual runs and PRs that touch .github/ run everything, and a PR whose file list can't be read runs everything.
  • native-replay is now a lane (replay) instead of running on every PR. Its Rust tests only cover native/replay/.
  • AGENTS.md gains one rule telling agents to write the line.

Checked on a real run. Draft PR #259, stacked on this branch so it ran this workflow, then closed:

description lanes that ran run time
ci: skip none, only the picker 10 s
ci: analyze (edited, then rerun) analyze
no line (edited, then rerun) analyze, test, web

Locally I ran the picker script with a stubbed gh through 16 cases. They included a convex change with ci: skip, which still ran convex and contract, and a .g.dart change with ci: test, which still ran desktop, plus push, dispatch, unreadable files and a ci: that appears mid-sentence, which is ignored.

Not covered. The guarded lanes running under a ci: line was only tested locally. A live run would have deployed a Convex preview just to prove it. This PR runs every lane because it touches .github/.

Skipped matrix jobs show as test (shard ${{ matrix.shard }}) in the checks list. GitHub doesn't expand a matrix it skips, and it's cosmetic.

🤖 Generated with Claude Code

A PR into main ran every lane, and since cloud merged into main every PR
targets main, so a one-line Dart fix waited on the Windows build. Now a
PR without a ci: line runs analyze, test and web plus the lanes its files
reach. A ci: line in the description names lanes instead, or skips CI.
Lanes guarding production and the library still run when their files
change. An unknown lane name runs everything.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Oct 8, 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 47 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: a04fbd32-2ff6-4982-bc27-c91fa6f53b58
📥 Commits

Reviewing files that changed from the base of the PR and between ecaa6a8 and b68e6e6.

📒 Files selected for processing (2)
  • .github/workflows/ci.yml
  • AGENTS.md
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

@SunkenInTime
SunkenInTime merged commit 8cf0e59 into main Oct 8, 2026
14 checks passed
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