Repository navigation
ci: route nightly preparation through fleet placement - #30113
Conversation
Bugbot needs on-demand usage enabledBugbot uses usage-based billing for this team and requires on-demand usage to be enabled. A team admin can enable on-demand usage in the Cursor dashboard. |
There was a problem hiding this comment.
1 issue found across 2 files
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="tests/test_ci_nightly_off_blacksmith.py">
<violation number="1" location="tests/test_ci_nightly_off_blacksmith.py:186">
P2: This assertion does not verify that `prepare-nightly-variant` is a distinct placement token: the primary job name satisfies the substring check by itself. Use token membership so the debt test catches the retry job being omitted from `JOBS`.</violation>
</file>
Reply with feedback, questions, or to request a fix.
View guided diff | Turn on auto-fix | Re-trigger cubic
| place = next(step for step in jobs["build-nightly-app"]["steps"] if step.get("id") == "place-light") | ||
| place_jobs = place["env"]["JOBS"] | ||
| self.assertIn("prepare-nightly-variant-primary", place_jobs) | ||
| self.assertIn("prepare-nightly-variant", place_jobs) |
There was a problem hiding this comment.
P2: This assertion does not verify that prepare-nightly-variant is a distinct placement token: the primary job name satisfies the substring check by itself. Use token membership so the debt test catches the retry job being omitted from JOBS.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At tests/test_ci_nightly_off_blacksmith.py, line 186:
<comment>This assertion does not verify that `prepare-nightly-variant` is a distinct placement token: the primary job name satisfies the substring check by itself. Use token membership so the debt test catches the retry job being omitted from `JOBS`.</comment>
<file context>
@@ -164,16 +163,28 @@ def test_prepare_runs_on_linux_and_executes_no_mach_o(self) -> None:
+ place = next(step for step in jobs["build-nightly-app"]["steps"] if step.get("id") == "place-light")
+ place_jobs = place["env"]["JOBS"]
+ self.assertIn("prepare-nightly-variant-primary", place_jobs)
+ self.assertIn("prepare-nightly-variant", place_jobs)
+ self.assertIn("attest-nightly-remote-daemon", place_jobs)
moved_out = ("install-cmux-tui-client.sh", "strip-release-bundle.sh", "write-cmux-tui-version.sh",
</file context>
| self.assertIn("prepare-nightly-variant", place_jobs) | |
| self.assertIn("prepare-nightly-variant", place_jobs.split()) |
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
red: cmux-next checks (god files, concurrency, crash safety, l10n); base red: the same failure on the base bcaf263; does not block Shipped in:
|
|
Found 9 test failures on Blacksmith runners: Failures
|
|
Review (codex gpt-6-astra high, router-review): BLOCK at 7e5f23f BLOCK at 7e5f23f Visual verdict: no images; Leo tries the build
Validation: Follow-ups:
|
|
Review (codex gpt-6-astra high, router-review): BLOCK at 7e5f23f BLOCK at 7e5f23f Visual verdict: no images; Leo tries the build
Follow-ups:
|
7e5f23f to
80e16f8
Compare
80e16f8 to
ad1a985
Compare
|
Review (codex gpt-6-astra high, router-review): BLOCK at ad1a985 BLOCK at ad1a985 Visual verdict: no images; Leo tries the build
The three focused suites passed: 73 tests. |
There was a problem hiding this comment.
1 issue found across 3 files (changes from recent commits).
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name=".github/workflows/nightly.yml">
<violation number="1" location=".github/workflows/nightly.yml:3023">
P2: `attest-nightly-remote-daemon` is no longer routed through placement: it is omitted from `JOBS` and its runner expression has no mini-placement fallback, so it always uses Blacksmith on the owned repository. Keep the attestation job in placement and retain a dependency/output path that lets it read the placement result.</violation>
</file>
Reply with feedback, questions, or to request a fix.
View guided diff | Turn on auto-fix | Re-trigger cubic
| timeout-minutes: 5 | ||
| env: | ||
| JOBS: build-nightly-remote-daemon await-nightly-tree-marker | ||
| JOBS: build-nightly-remote-daemon prepare-nightly-variant-primary prepare-nightly-variant await-nightly-tree-marker |
There was a problem hiding this comment.
P2: attest-nightly-remote-daemon is no longer routed through placement: it is omitted from JOBS and its runner expression has no mini-placement fallback, so it always uses Blacksmith on the owned repository. Keep the attestation job in placement and retain a dependency/output path that lets it read the placement result.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At .github/workflows/nightly.yml, line 3023:
<comment>`attest-nightly-remote-daemon` is no longer routed through placement: it is omitted from `JOBS` and its runner expression has no mini-placement fallback, so it always uses Blacksmith on the owned repository. Keep the attestation job in placement and retain a dependency/output path that lets it read the placement result.</comment>
<file context>
@@ -3018,10 +3018,11 @@ jobs:
+ timeout-minutes: 5
env:
- JOBS: build-nightly-remote-daemon prepare-nightly-variant-primary prepare-nightly-variant attest-nightly-remote-daemon await-nightly-tree-marker
+ JOBS: build-nightly-remote-daemon prepare-nightly-variant-primary prepare-nightly-variant await-nightly-tree-marker
NIGHTLY: "1"
+ NIGHTLY_WAIT_FOR_FLEET: "1"
</file context>
ad1a985 to
45793e9
Compare
There was a problem hiding this comment.
All reported issues were addressed across 3 files (changes from recent commits).
Reply with feedback, questions, or to request a fix.
View guided diff | Turn on auto-fix | Re-trigger cubic
|
Review (codex, router-review): SHIP at 45793e9 Reviewer: codex gpt-6-astra high, fast tier. Follow-ups: 1. Each lands as an issue in this repo that links this receipt; the lane that opened the PR fixes it forward. SHIP at 45793e9 Visual verdict: no images; Leo tries the build
Targeted placement, routing, and nightly tests pass. Follow-ups:
|
|
Review (codex gpt-6-astra high, router-review): BLOCK at 4b98238 BLOCK at 4b98238 Visual verdict: no images; Leo tries the build
|
0561328 to
856c1ed
Compare
Bugbot needs on-demand usage enabledBugbot uses usage-based billing for this team and requires on-demand usage to be enabled. A team admin can enable on-demand usage in the Cursor dashboard. |
|
Review (codex gpt-6.1-sol xhigh, router-review): BLOCK at 856c1ed BLOCK at 856c1ed Visual verdict: no images; Leo tries the build
|
856c1ed to
f70b3dd
Compare
|
Review (codex, router-review): SHIP at f70b3dd Reviewer: codex gpt-6-astra high, fast tier. Follow-ups: 1. Each lands as an issue in this repo that links this receipt; the lane that opened the PR fixes it forward. SHIP at f70b3dd Visual verdict: no images; Leo tries the build
All eight targeted test suites passed (172 tests). Follow-ups:
|
|
Owned by an agent session · took over from an earlier session · session |
teamleaderleo
left a comment
There was a problem hiding this comment.
Review (gpt-6-astra high): SHIP at e148c73
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
NEXT nightly preparation currently resolves to fixed Blacksmith Linux labels. That leaves portable, secret-free preparation work waiting on paid capacity even though the nightly placement step already selects free owned minis.
This routes
prepare-nightly-variant-primaryandprepare-nightly-variantthrough the existing bounded nightly placement. They use an idle owned mini when selected and retain the measured Blacksmith Linux expression as overflow. The placement waits up to five minutes only while runner inventory and the janitor snapshot are fresh; unknown or stale capacity falls through immediately to Blacksmith. Attestation remains on its trusted Blacksmith route because it needsid-tokenandattestations: write. The routing table and debt guard classify both preparation jobs as portable checks. The currentREQUIRE_LIVE_CAPACITYcontract from #30173 is preserved for preparation overflow and the existing admission fallback remains unchanged.Leo said: “PUBLISH THE F***ING NIGHTLY” and asked where the efficiency improvements were. This removes two avoidable Blacksmith-only waits without changing secrets, permissions, signing routes, or promotion behavior.
Validation:
tests/test_nightly_linux_admission.py(25),tests/test_runner_routing_table.py(27),tests/test_ci_portable_job_placement.py(30),tests/test_nightly_trusted_routing.py(33), andtests/test_gh_budget_wait.py(27) pass locally;git diff --checkis clean. Fleet fast-check is being rerun at the rebased head.Agent session: agent session
🤖 Generated with Claude Code