Skip to content

ci(nightly): build-nightly-app and the cold seed take blacksmith-6vcpu-macos-26, not the stalled 12 vCPU label - #27448

Open
lawrencecchen wants to merge 4 commits into
mainfrom
fix/nightly-build-seed-6vcpu
Open

lawrencecchen wants to merge 4 commits into
mainfrom
fix/nightly-build-seed-6vcpu

Conversation

@lawrencecchen

@lawrencecchen lawrencecchen commented Oct 29, 2026 •

Copy link
Copy Markdown
Contributor

Stacked on #27444. The first two commits (4eed88b, 171e793) are #27444, which adds the picker's ONLY setting that this PR uses. Review c1e4add (test) and b832824 (fix). Merge #27444 first.

Summary

Two more nightly jobs on main can still route to blacksmith-12vcpu-macos-26, which hasn't started a job since 2026-10-28 20:32Z. In the last 100 nightly.yml runs (back to 2026-10-29 06:18Z), 0 of the 10 jobs that asked for it got a runner. Main's classic nightly run 40834485210 has waited since 07:47Z on that label for signing (#27444 fixes that path).

  • build-nightly-app takes the trusted mini first. When the mini is busy or offline, and on every later attempt, it takes pick-nightly-app-runner's cloud. The picker puts 12 vCPU first, so with both queues moving, or with no snapshot, cloud is 12 vCPU. The runs-on literal is 12 vCPU too. Now the pick sets ONLY: 6vcpu and the literal is 'blacksmith-6vcpu-macos-26'. The trusted-mini path doesn't change. The compilation cache keys on OS, arch and toolchain, not instance size. 6 vCPU built this app in 8 min today (runs 40833785678, 40834485210).
  • refresh-test-compilation-cache (the scheduled cold seed) put its first matrix pool on the 12 vCPU sibling of the 6 vCPU pull-request pool. Now that entry is the pull-request pool as is: vars.MACOS_RUNNER_PR || 'blacksmith-6vcpu-macos-15', the same expression as seed-derived-data.yml's SEED_POOL_2. test_seed_derived_data.py still holds the nightly pools to a subset of the per-push seed pools.

Side effects:

  • seed_derived_data.py scope puts the width (j<nproc>) in the key. So the nightly cold seed now writes j6 keys, not j12. A 12 vCPU admission still gets the per-push SEED_POOL_1 chain and falls back to j6. While CI_PR_POOL_OWNED=1, the schedule skips this job, and only a seed_only dispatch runs it.
  • owned_pool_rescue.retry_labels() for nightly runs at new SHAs no longer counts the 12 vCPU label.

After this PR and #27444, no runs-on or matrix in nightly.yml names the 12 vCPU label, and its pickers never produce it.

Known nit, left on purpose: the step name "Pick the trusted mini or a moving cloud macOS label" in pick-nightly-app-runner is now out of date, because the cloud label no longer moves. A rename would need another review round.

Left as is: seed-derived-data.yml's SEED_POOL_1 still seeds the 12 vCPU sibling. That pool also publishes the app-host product, and pull-request admission can still pick 12 vCPU (pr_runner_pool.py). Moving it changes which seed widths exist, so it needs its own PR.

Testing

Regression: python3 tests/test_classic_nightly_build_runner.py. The new BuildAndSeedStayOffTwelveVcpu reads pick-nightly-app-runner's real step env and runs main() over 4 snapshot states and attempts 1 and 2. It also checks build-nightly-app's fallback literal and that no nightly.yml runs-on or matrix names the 12 vCPU label. On c1e4add (test only) it fails 10 checks. On the head, all tests pass. tests/test_nightly_universal_build.sh, which pins the build's runs-on, also fails on c1e4add and passes on the head.

Observed / Not run

Observed, run locally on the head, all pass:

  • test_classic_nightly_build_runner.py and test_seed_derived_data.py.
  • test_ci_owned_pool_rescue.py and the signing keychain guard.
  • test_ci_publisher_mac_jobs_move.py, test_ci_pr_runner_pool.py and test_ci_queue_janitor.py.
  • test_runner_label_policy.py, test_ci_runs_on_values.py, test_ci_no_github_hosted_macos.py and test_ci_nightly_off_blacksmith.py.
  • test_ci_pull_request_caches_are_read_only.py, test_delivery_workflows_cancel.py, test_nightly_delivery_concurrency.py and test_ci_workflow_concurrency.py.
  • test_seed_decide.py, test_ci_canonical_build_root.py, test_reuse_app_host_products.py, test_ci_cloud_overflow_switch.py and test_ci_repo_variable_defaults.py.
  • tests/test_nightly_universal_build.sh, tests/test_ci_test_compilation_cache_seed.sh and tests/test_ci_self_hosted_guard.sh.
  • actionlint 1.7.7 (SHELLCHECK_OPTS=-S warning) on nightly.yml: clean.

test_ci_owned_pool_sources.py fails 1 check, the same way on origin/main 18f2c43. That check reads the feat-cmux-next tree, so this PR doesn't cause it.

Not run: a nightly or a scheduled seed with this change. A cold build on 6 vCPU was not timed; today's two 6 vCPU builds were warm. The job's timeout stays 90 min.

Changelog

none

lawrencecchen added 4 commits October 29, 2026 14:23
pick-classic-sign-runner (nightly.yml) and the DEV daily's runner pick give
the signing, verify and delta jobs a label and a re-run alternate. With
6 vCPU moving the alternate is 12 vCPU, and with 6 vCPU stalled the pick
itself is 12 vCPU. That label started no job from 2026-10-28 20:32Z; main's
run 40834485210 held build-sign-notarize-nightly on it from 07:47Z after a
re-run took the alternate. Fails until the next commit.
classic_nightly_build_runner.py takes ONLY (a candidate label or size): that
label is both `cloud` and `alternate`, whatever the queue snapshot says.
pick-classic-sign-runner (nightly.yml) and the DEV daily's runner pick set
ONLY 6vcpu, so neither the first pick (6 vCPU stalled) nor a re-run's
alternate sends signing, verify or delta jobs to the 12 vCPU macOS 26 label,
which started no job from 2026-10-28 20:32Z. main's run 40834485210 held
build-sign-notarize-nightly there from 07:47Z after a re-run took the 12 vCPU
alternate. The snapshot cannot see that label's missing capacity while
nothing waits on it.

The labels stay Blacksmith-only literals; the runs-on expressions do not
change. tests/test_classic_nightly_build_runner.py (previous commit) fails
on the base and passes here.
…ith-12vcpu-macos-26

build-nightly-app's picker (pick-nightly-app-runner) puts 12 vCPU first, so
with no snapshot or both queues moving its `cloud` is 12 vCPU, and its
runs-on literal is 12 vCPU. refresh-test-compilation-cache seeds the 12 vCPU
sibling of the 6 vCPU pull-request pool. That label started no job from
2026-10-28 20:32Z. The guards pin 6 vCPU; they fail until the next commit.
…u-macos-26

pick-nightly-app-runner sets ONLY 6vcpu, so when the trusted mini is busy or
offline, and on every later attempt, build-nightly-app takes 6 vCPU, not its
picker's 12 vCPU default. Its runs-on literal is 6 vCPU too. The compilation
cache keys on OS, arch and toolchain, not instance size, and 6 vCPU built
this app in 8 min on 2026-10-29 (runs 40833785678, 40834485210).

refresh-test-compilation-cache seeds the pull-request pool as is
(vars.MACOS_RUNNER_PR, seed-derived-data.yml's SEED_POOL_2) instead of its
12 vCPU sibling.

blacksmith-12vcpu-macos-26 started no job from 2026-10-28 20:32Z. Stacked on
the ONLY knob of #27444.
@lawrencecchen lawrencecchen added the risk:high Risk tier (docs/ci/risk-tiers.md) label Oct 29, 2026
@cmux-bot

cmux-bot Bot commented Oct 29, 2026 •

Copy link
Copy Markdown

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

Probably yours: CI fast guards failed: a guard step failed, FAIL 14.8s workflow-guard-tests / ci: Validate that the persistent-pool rescue watches every owned-p....

CI failed on b832824b55 (run 40893775145 attempt 1): 1 code.

Job Verdict Why
CI fast guards code a guard step failed
Matched log lines
CI fast guards: FAIL   14.8s  workflow-guard-tests / ci: Validate that the persistent-pool rescue watches every owned-pool workflow

Not re-run automatically: CI fast guards is not a machine failure.

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; yours means the failing file is one this PR changes, also red on main that main's latest full suite fails the same way, seen on other PRs that it failed on another pull request's run lately.

CI fast guards failed on b832824b55 (https://github.com/manaflow-ai/cmux/actions/runs/40893775145). It does not block the merge; a red guard merged into main breaks it for every open PR.

Validate that the persistent-pool rescue watches every owned-pool workflow (red on main too, not this PR)

Main has failed this step since #27383 by @teamleaderleo (self-merged) (#27415). Merge main again once the fix lands there.

Agents: python3 scripts/ci/guard_attribution.py fix applies the mechanical fixes locally.

@blacksmith-sh

blacksmith-sh Bot commented Oct 29, 2026

Copy link
Copy Markdown

Found 1 test failure on Blacksmith runners:

Failure

Test View Logs
test_every_nightly_sign_verify_and_dmg_job_on_blacksmith_macos_is_rescued (main.Own
edPoolSources.test_every_nightly_sign_verify_and_dmg_job_on_blacksmith_macos_is_rescued
) (tree='origin/feat-cmux-next')
View Logs

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

@lawrencecchen

Copy link
Copy Markdown
Contributor Author

Review (independent subagent, correctness first): SHIP at b832824

Scope: this PR's own commits c1e4add and b832824. The first two commits are #27444, which has its own receipt.

  • build-nightly-app: the trusted-mini part of runs-on is the same text as on base. ONLY sets only cloud and alternate; trusted, the 5-minute wait and prepare do not change. Every path (mini busy or offline, fast build, attempt 2 or later, a failed picker) now ends on the mini or on blacksmith-6vcpu-macos-26. 6 vCPU is the same ephemeral Blacksmith trust class as 12 vCPU for the cache-writer keys and the Sentry token (runner policy, keychain guard and self-hosted guard). The compilation cache key does not name the width. Today's warm 6 vCPU builds took 7.5 to 20 min. A cold 6 vCPU build is not timed; the body says so.
  • Seed matrix: the new entry is the same text as SEED_POOL_2, so the subset check holds. The nightly seed now writes j6 keys, not j12. There is no new duplicate matrix entry (the unset-variable case is the same as on base). While CI_PR_POOL_OWNED=1, the schedule skips this job.
  • Rescue: retry_labels() for nightly at new SHAs now finds {6vcpu-macos-26, 6vcpu-macos-15}, which is correct. The queue janitor does not parse the workflow text. test_ci_owned_pool_rescue.py passes (336).
  • Tests pass on the head: test_classic_nightly_build_runner.py (25), test_seed_derived_data.py, the keychain guard, test_runner_label_policy.py, test_ci_runs_on_values.py, test_ci_nightly_off_blacksmith.py, test_ci_pull_request_caches_are_read_only.py, test_nightly_universal_build.sh, test_ci_test_compilation_cache_seed.sh and test_ci_self_hosted_guard.sh. On c1e4add the new tests fail 10 checks and the test_nightly_universal_build.sh pin fails.
  • Non-blocking: the step name "Pick the trusted mini or a moving cloud macOS label" is now out of date. docs/ci-runners.md and docs/ci-runner-capability-labels.md were already out of date before this PR. I added the j6 key and retry_labels side effects to the body.

Not merged and no ready-to-land: held for Lawrence. Merge #27444 first.

@coderabbitai

coderabbitai Bot commented Oct 29, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review.

Recent review info
Run configuration
Commits

Reviewing files that changed from the base of the PR and between 18f2c43 and b832824.

Files selected for processing: 5
  • .github/workflows/cmux-next-dev-daily.yml
  • .github/workflows/nightly.yml
  • scripts/ci/classic_nightly_build_runner.py
  • tests/test_classic_nightly_build_runner.py
  • tests/test_nightly_universal_build.sh

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 7 remain after this review.

Walkthrough

The daily and nightly workflows now select the 6-vCPU macOS 26 runner in the described cases. The picker can pin both its primary and alternate outputs to that candidate. Tests cover runner selection and workflow fallbacks.

Changes: macOS Runner Selection

Layer / File(s) Summary
Pin picker outputs when ONLY is set
scripts/ci/classic_nightly_build_runner.py
When ONLY resolves to a Blacksmith candidate, the picker uses it for both cloud and alternate. Otherwise, it retains the existing FIRST-aware route selection and sets alternate to the other candidate.
Set workflow runner labels
.github/workflows/cmux-next-dev-daily.yml, .github/workflows/nightly.yml
The workflows restrict the described picker selections and fallbacks to the 6-vCPU label. The cache seeder uses the configured runner value directly.
Verify runner selection
tests/test_classic_nightly_build_runner.py, tests/test_nightly_universal_build.sh
Tests check picker outputs across queue snapshots and attempts, nightly fallbacks, and the absence of the 12-vCPU label in nightly runner and matrix configuration.

Priority: Low

Estimated code review effort: 3 (Moderate) | ~20 minutes

Change: Bug fix

Suggested reviewers: teamleaderleo

Merge Risk: Minimal · up to b8328

The runner-selection changes have no established merge-blocking issue. Cold-build timing remains unmeasured, but the available evidence does not demonstrate a timeout regression.

Pre-merge checks: Passed 24 · Failed 1

Failed Failed checks: 1 warning

Check name Status Explanation Resolution
Docstring Coverage Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentat… Write docstrings for the functions missing them to satisfy the coverage threshold.
Passed Passed checks: 24 passed
Check name Status Explanation
Title check Passed The title clearly and concisely identifies the primary CI change: routing nightly app builds and cold seeding to the 6-vCPU macOS runner instead of the stalled 12-vCPU label.
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 Cloud Persistent Session And Early Input Passed PASS: The PR changes only GitHub Actions runner labels, nightly pool selection, the classic nightly build-runner picker, and related tests. The diff contains no Cloud terminal creation, cmux-tui trans…
Cmux Swift Actor Isolation Passed PASS: The pull request changes only two workflow files, one Python script, and two test files. The reviewed diff contains no Swift files or production Swift changes, so the Swift actor-isolation check…
Cmux Swift Blocking Runtime Passed PASS: The pull request changes only GitHub workflows, Python CI code/tests, and a shell test. It introduces no Swift, Objective-C, or runtime source changes, so it cannot introduce the specified Swift…
Cmux Browser Automation Off-Main Passed The PR changes only nightly CI workflows, a Python runner picker, and related tests. The authoritative diff does not modify browser socket automation code, Sources/TerminalController.swift, or `Cont…
Cmux Expensive Synchronous Load Passed The pull request changes only workflow YAML, Python CI logic, and shell/Python tests. The reviewed diff contains no Swift, Objective-C, or Objective-C++ files and no production Swift agent-history loa…
Cmux Cache Substitution Correctness Passed PASS: The pull request changes only CI YAML, Python CI logic/tests, and a shell test. It introduces no production Swift, TypeScript, or JavaScript changes, so the cache-substitution condition does not…
Cmux No Hacky Sleeps Passed PASS. The production script change only adds the ONLY runner-selection path and updates output handling; it does not add or expand sleeps, timers, polling, retries, or wall-clock waits. The existing…
Cmux Algorithmic Complexity Passed The PR does not introduce an algorithmic-complexity issue. The production picker change in scripts/ci/classic_nightly_build_runner.py:207-212 performs one dictionary lookup and a membership check ag…
Cmux Swift Concurrency Passed PASS: The pull request changes only workflow YAML, Python, and shell test files. The reviewed diff contains no Swift files or Swift concurrency code, so it does not introduce or expand any listed lega…
Cmux Swift @Concurrent Passed PASS: The pull request changes only GitHub workflow files, Python CI code/tests, and a shell test. It contains no Swift changes, so the @concurrent annotation check does not apply.
Cmux Swift Package Boundaries Passed The pull request changes only workflow YAML, CI Python, and test shell/Python files. The authoritative diff contains no Swift files or Swift package changes, so the Swift package boundary rule is not …
Cmux Swiftpm Lockfiles Passed PASS: The PR changes only runner-selection workflows, the picker script, and tests. The diff contains no Package.swift, Package.resolved, Xcode project/workspace, or .gitignore changes. The workflow h…
Cmux Swift Logging Passed The pull request changes workflow YAML, Python, and shell test files only. The reviewed diff contains no Swift changes, so it adds or materially changes no production Swift logging.
Cmux User-Facing Error Privacy Passed PASS: The diff changes only CI workflow runner selection, an internal nightly picker, and tests/comments. Its new labels and picker diagnostics write to GitHub Actions outputs, summaries, and logs; no…
Cmux Full Internationalization Passed PASS: The diff changes only CI workflows, a runner-selection script, and regression tests. Added text is operational comments, picker diagnostics, or test content. It does not add or change Swift UI t…
Cmux Swiftui State Layout Passed PASS: The pull request changes only YAML, Python, and shell test files. The reviewed diff contains no Swift or SwiftUI files or state/layout code, so the SwiftUI state-layout rules do not apply.
Cmux Architecture Rethink Passed PASS: The reviewed range changes only GitHub Actions YAML, a Python runner picker, and tests. It contains no Swift files or SwiftUI/AppKit lifecycle code, so the Swift architectural rethink failure co…
Cmux Swift Auxiliary Window Close Shortcuts Passed PASS: The pull request changes only CI workflows, a Python runner script, and tests. It contains no Swift or window-related changes, so the auxiliary-window close-shortcut rule does not apply.
Cmux Source Artifacts Passed The PR changes only intentional workflow configuration, source code, and regression tests. The diff adds no local output, logs, screenshots, recordings, temp or cache directories, dependency checkouts…
Cmux No Test Or Debug Seam In Production Source Passed The reviewed diff changes only workflow YAML, Python CI logic, and shell/Python tests. It contains no Swift file under a production Sources/ path, so the specified production test/debug seam conditi…
Description check Passed The description is mostly complete and relevant. It includes a detailed Summary, Testing section, observed results, known limitations, Changelog, and scope details. The Proof and Checklist sections ar…
Full details: Cmux Cloud Persistent Session And Early Input

Explanation

PASS: The PR changes only GitHub Actions runner labels, nightly pool selection, the classic nightly build-runner picker, and related tests. The diff contains no Cloud terminal creation, cmux-tui transport, manual renderer, PTY readiness, input ownership, authentication, idempotency, revision, or lease changes covered by the rule.

Full details: Cmux Swift Actor Isolation

Explanation

PASS: The pull request changes only two workflow files, one Python script, and two test files. The reviewed diff contains no Swift files or production Swift changes, so the Swift actor-isolation check is not applicable.

Full details: Cmux Swift Blocking Runtime

Explanation

PASS: The pull request changes only GitHub workflows, Python CI code/tests, and a shell test. It introduces no Swift, Objective-C, or runtime source changes, so it cannot introduce the specified Swift blocking or timing synchronization.

Full details: Cmux Browser Automation Off-Main

Explanation

The PR changes only nightly CI workflows, a Python runner picker, and related tests. The authoritative diff does not modify browser socket automation code, Sources/TerminalController.swift, or ControlCommandExecutionPolicy.swift, and no added or removed line contains the rule's browser/WebKit routing terms. Therefore it introduces no browser automation violation.

Full details: Cmux Expensive Synchronous Load

Explanation

The pull request changes only workflow YAML, Python CI logic, and shell/Python tests. The reviewed diff contains no Swift, Objective-C, or Objective-C++ files and no production Swift agent-history load. The custom failure condition is therefore not applicable.

Full details: Cmux Cache Substitution Correctness

Explanation

PASS: The pull request changes only CI YAML, Python CI logic/tests, and a shell test. It introduces no production Swift, TypeScript, or JavaScript changes, so the cache-substitution condition does not apply.

Full details: Cmux No Hacky Sleeps

Explanation

PASS. The production script change only adds the ONLY runner-selection path and updates output handling; it does not add or expand sleeps, timers, polling, retries, or wall-clock waits. The existing trusted_route sleep loop is unchanged. Added sleep=lambda seconds: None calls are deterministic test scaffolding. Workflow YAML changes are out of scope under the rule.

Full details: Cmux Algorithmic Complexity

Explanation

The PR does not introduce an algorithmic-complexity issue. The production picker change in scripts/ci/classic_nightly_build_runner.py:207-212 performs one dictionary lookup and a membership check against the fixed two-label CANDIDATES tuple, then avoids the existing snapshot scan when ONLY is set. The workflow edits only select the 6-vCPU label. The added collection loops are test-only. No scalable user-owned collection, nested scan, per-target rescan, sorting/filtering hot path, or unbenchmarked slower algorithm is introduced.

Full details: Cmux Swift Concurrency

Explanation

PASS: The pull request changes only workflow YAML, Python, and shell test files. The reviewed diff contains no Swift files or Swift concurrency code, so it does not introduce or expand any listed legacy Swift async pattern.

Full details: Cmux Swift Package Boundaries

Explanation

The pull request changes only workflow YAML, CI Python, and test shell/Python files. The authoritative diff contains no Swift files or Swift package changes, so the Swift package boundary rule is not triggered.

Full details: Cmux Swiftpm Lockfiles

Explanation

PASS: The PR changes only runner-selection workflows, the picker script, and tests. The diff contains no Package.swift, Package.resolved, Xcode project/workspace, or .gitignore changes. The workflow hunks change runner labels and ONLY values; they do not change SwiftPM dependencies or package references. No SwiftPM lockfile policy condition is introduced.

Full details: Cmux User-Facing Error Privacy

Explanation

PASS: The diff changes only CI workflow runner selection, an internal nightly picker, and tests/comments. Its new labels and picker diagnostics write to GitHub Actions outputs, summaries, and logs; no changed text reaches a cmux app UI, product CLI, or product API. The rule permits provider/configuration names in internal CI and operator diagnostics.

Full details: Cmux Full Internationalization

Explanation

PASS: The diff changes only CI workflows, a runner-selection script, and regression tests. Added text is operational comments, picker diagnostics, or test content. It does not add or change Swift UI text, app catalogs, web UI/API copy, metadata, rendered markdown, or changelog content. The internationalization rule explicitly allows operational comments, tests, and literal configuration tokens.

Full details: Cmux Architecture Rethink

Explanation

PASS: The reviewed range changes only GitHub Actions YAML, a Python runner picker, and tests. It contains no Swift files or SwiftUI/AppKit lifecycle code, so the Swift architectural rethink failure conditions do not apply.

Full details: Cmux Source Artifacts

Explanation

The PR changes only intentional workflow configuration, source code, and regression tests. The diff adds no local output, logs, screenshots, recordings, temp or cache directories, dependency checkouts, build output, DerivedData, downloads, or copied artifacts. All five paths fit the rule's allowed source, config, script, or test categories.

Full details: Cmux No Test Or Debug Seam In Production Source

Explanation

The reviewed diff changes only workflow YAML, Python CI logic, and shell/Python tests. It contains no Swift file under a production Sources/ path, so the specified production test/debug seam condition is not applicable.

Full details: Description check

Explanation

The description is mostly complete and relevant. It includes a detailed Summary, Testing section, observed results, known limitations, Changelog, and scope details. The Proof and Checklist sections are omitted, but these omissions do not prevent review because this is a CI-only change and the testing evidence is extensive.

Full details: Docstring Coverage

Explanation

Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 6 functions across 3 files. (2 skipped: 2 unsupported.)

Resolution

Write docstrings for the functions missing them to satisfy the coverage threshold.

Finishing Touches: 💡 1
📝 Generate docstrings: 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · 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.

This branch has not been deployed

No deployments
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