You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .github/workflows/stage-results-callback.yml
+10-2Lines changed: 10 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -66,9 +66,17 @@ jobs:
66
66
? [
67
67
`@${requestedBy} staged run ${runId}: ${chartUrl}`,
68
68
'',
69
-
`This shared staging slot remains available until the next \`/stage-results\` request. [Staging workflow](${appRunUrl})`,
69
+
`This run remains available across future \`/stage-results\` requests. Staging the same run ID again updates its staged data. [Staging workflow](${appRunUrl})`,
if (!artifactNames.includes('changelog-metadata')) {
181
193
return { valid: false, reason: 'it has no unexpired changelog-metadata artifact' };
@@ -195,7 +207,7 @@ jobs:
195
207
run_id: Number(requestedRunId),
196
208
});
197
209
run = response.data;
198
-
const validation = await validateRun(run);
210
+
const validation = await validateRun(run, true);
199
211
if (!validation.valid) {
200
212
core.setFailed(`Run ${requestedRunId} cannot be staged because ${validation.reason}`);
201
213
return;
@@ -222,7 +234,7 @@ jobs:
222
234
}
223
235
if (!run) {
224
236
core.setFailed(
225
-
`No successful completed run-sweep.yml run with unexpired staging artifacts was found for PR #${context.issue.number}`,
237
+
`No stageable completed run-sweep.yml run with unexpired staging artifacts was found for PR #${context.issue.number}`,
226
238
);
227
239
return;
228
240
}
@@ -244,7 +256,11 @@ jobs:
244
256
with:
245
257
github-token: ${{ github.token }}
246
258
script: |
247
-
const body = `@${process.env.REQUESTED_BY} staging [run ${process.env.RUN_ID}](${process.env.RUN_URL}). The shared staging slot is serialized; a completion link will be posted here.`;
259
+
const body = [
260
+
`@${process.env.REQUESTED_BY} staging [run ${process.env.RUN_ID}](${process.env.RUN_URL}). Existing staged runs will be preserved; a completion link will be posted here.`,
Copy file name to clipboardExpand all lines: AGENTS.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -95,7 +95,7 @@ PRs do not run the sweep automatically - `run-sweep.yml` is gated on a primary s
95
95
-`full-sweep-fail-fast` - runs the full intermediate concurrency sweep behind the same sequential single-node canary gate as `full-sweep-enabled` (so a globally broken change burns one job, not the whole fan-out), and with `strategy.fail-fast` enabled on every matrix: the first failure in a matrix cancels that matrix's remaining jobs. Fail-fast is matrix-scoped, so the other matrices (1k1k vs 8k1k vs agentic vs evals) keep running and self-terminate on their own first failure; their completed results remain valid. The failing job keeps its red *failure* conclusion and the run concludes failed. **This is the strongly recommended default for full sweeps** (image bumps, recipe changes, bring-up) - a failure means the rest of that matrix is wasted GPU time. Caveat: one flaky job kills its matrix's in-flight results; if that repeatedly bites a specific config, fall back to `full-sweep-enabled` for that PR.
96
96
-`full-sweep-fail-fast-no-canary` - same as `full-sweep-fail-fast` but without the canary gate: all matrices fan out immediately. Use when the canary is flaky or not representative of the affected configuration but you still want per-matrix fail-fast.
97
97
98
-
`all-evals` and `evals-only`are optional modifier labels. Combine either or both with one primary sweep label. `all-evals` expands eval selection to every generated fixed-sequence configuration without changing throughput. `evals-only` suppresses throughput while keeping the default eval subset; combining both runs every eval and no throughput. `all-evals` remains eligible for artifact reuse when paired with an eligible full-sweep label. Runs with `evals-only`, including runs with both modifiers, are not eligible.
98
+
`all-evals`, `evals-only`, and `agentx-fast`are optional modifier labels. Combine them with one primary sweep label. `all-evals` expands eval selection to every generated fixed-sequence configuration without changing throughput. `evals-only` suppresses throughput while keeping the default eval subset; combining both eval modifiers runs every eval and no throughput. `agentx-fast` applies the 5-minute warmup and 20-minute profiling preset to single- and multi-node AgentX throughput jobs only; fixed-sequence and eval jobs are unchanged. `all-evals` remains eligible for artifact reuse when paired with an eligible full-sweep label. Runs with `evals-only` or `agentx-fast`are not eligible for artifact reuse.
99
99
100
100
**The sweep does not trigger while the PR has merge conflicts.** Even with a sweep label applied, the `run-sweep.yml` workflow will not start until the PR cleanly merges into main — a stale claude/* or update-* branch with a `perf-changelog.yaml` conflict (the common case) will sit in NO_SWEEP / NO_SUCCESS until rebased. Resolution recipe is documented in `KLAUD_DEBUG.md §1.1`: `git merge origin/main`, then `git checkout origin/main -- perf-changelog.yaml`, then re-append the PR's own changelog entry at the tail. Don't 3-way merge `perf-changelog.yaml`; whitespace edits silently re-trigger the deletion check.
0 commit comments