Skip to content

ci(flow-010): D1 draft PRs take no clean-room slot; ready_for_review re-runs CI - #5801

Merged
noahgift merged 19 commits into
mainfrom
work/d1-draft-gate
Oct 22, 2026
Merged

noahgift merged 19 commits into
mainfrom
work/d1-draft-gate

Conversation

@noahgift

Copy link
Copy Markdown
Member

SOLO GATE PR (ci.yml): do not batch, do not arm before two-family round + 2 seats + non-author sign-off on the final commit. Andon sent by the cop 15:12Z.

D1 (FLOW-010 runner-wait): a draft PR takes no clean-room/mq slot; ready_for_review re-runs CI.

Change: pull_request types += ready_for_review; x86-main, x86-main-advisories, workspace-test-shard, mg-reuse-self-test skip on a draft. workspace-test, ci / gate, gate stay if: always() and FAIL on a draft (skipped required check = pass on GitHub, so skipping them would let an armed draft merge). Check names unchanged. Aggregators still hold a slot for seconds.

RED test: scripts/check_ci_draft_gate.sh — RED on main (4 jobs take a slot on a draft + no ready_for_review), GREEN here; --self-test plants 2 mutations (wired as ci/explicit-test-commands.d/814).

Prediction (PR queue wait, before -> after): PR shard-1 wait median 77m -> <=30m; Measured over 1h after live.
Revert if: wait median not <=60m after 2h, a required check name changes, or an older PR starves. Merge group unaffected (0m wait).
D2 (admission cap) only after D1 live 1h and measured.

Note: fragment number 814 is shared with #5796's 814-queue-merge-plain-5794.cmd (different filenames, same prefix).

keep-open: none
ont-delta: none

🤖 Generated with Claude Code

noahgift and others added 2 commits October 20, 2026 17:14
… FLOW-010)

Heavy jobs (x86-main, advisories, workspace-test-shard, mg-reuse-self-test)
skip on a draft PR. The three required aggregators stay if: always() and fail
on a draft (a skipped required check passes on GitHub). Guard
scripts/check_ci_draft_gate.sh is RED on main, GREEN here, with 2 mutations.

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

@noahgift noahgift left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seat review as gate content, bound to head cda0933. Read statically plus ran the guard at the head.

Question asked: can a draft or ready flip skip a required check? No.

  • Draft run (opened with draft=true): x86-main, x86-main-advisories, workspace-test-shard and mg-reuse-self-test skip. The three required names are if: always() and go RED: workspace-test sees shard result skipped (not success); ci / gate reads sov.gate as missing; gate fails on WT != success. A skipped required check is never counted as a pass here.
  • Every draft guard is event_name != 'pull_request' || !draft or !(event_name == 'pull_request' && draft). On merge_group and push the expression is true, so the queue and main run the full set unchanged.
  • Ready flip: ready_for_review is added to pull_request.types, so a new run starts on the same head (concurrency cancels the old draft run). A PR converted to draft after a green run cannot merge (GitHub blocks drafts), and the run it comes back with is a fresh full one.
  • scripts/check_ci_draft_gate.sh --self-test at the head: OK, 3 mutations caught; plain run OK.

Non-blocking notes:

  1. No mutant weakens an aggregator (e.g. gate treating a skipped shard as pass). The safety property rests on gate/workspace-test/ci-gate rejecting skipped inputs; a case-table row would pin it.
  2. The three aggregators still take clean-room slots on a draft (short jobs, needed for the names), so "no runner slot" is not literal.
  3. The script needs yq on whichever runner runs the explicit-test fragment; present on this host (/usr/local/bin/yq), not verified on the pool.
  4. Fragment ordinal 814 is also used by my #5796 (814-queue-merge-plain-5794.cmd); different slug, so no functional clash, but one should move.

Verdict: APPROVE at cda0933. A new head voids it.

@github-actions

github-actions Bot commented Oct 20, 2026 •

Copy link
Copy Markdown

§13.11 rung 1 — quorum shadow verdict

S13-SHADOW pr=5801 head=b1de418753d42e48bc871c30dba32cd2d715997e verdict=REFUSE class=Q1 arm_rc=1

Shadow mode: this records a verdict and merges nothing. A refusal
to arm is not a block (§13 adds zero rows to §7) — the pull request is
exactly as green as it was.

@noahgift noahgift left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

seat 2, aprender-w5018 @cda0933aa3a3ab17a4c18c329af2b7784e51a5c2: CHANGES-NEEDED (one blocker, rest ok).

Blocker: the PR's own mg-reuse-self-test is red (job 118734287428). The wiring check still expects the old if: on x86-main (!cancelled() && needs.mg-reuse.outputs.x86 != '1') and x86-main-advisories (== '1'); the draft guard rewrote both, so it prints 'FAIL wiring: job x86-main lacks ...' and its mutant 'x86-main-if-loses-cancelled' reports 'the sed did not change ci.yml'. Update the mg-reuse self-test patterns and mutants to the new if: form in the same PR.

Checked, ok: the flip is safe. ready_for_review starts a new run in the same concurrency group, which cancels the draft run; checks are keyed by name, so nothing stays pending. The aggregators (workspace-test, ci-gate, gate) stay if: always() and go red on a draft, so no required check is skipped or left pending and an armed draft cannot merge. Ran check_ci_draft_gate.sh --self-test on this head: OK, 3 mutations caught.

Nits: (1) the PR body says 2 mutations, the self-test has 3. (2) A red on a draft counts toward the 24h STALE rule; exempt drafts there or note it. (3) Fragment number 814 is shared with #5796's fragment; take a free ordinal.

Will re-review once the self-test pattern is fixed.

…and x86-main-advisories

The D1 draft gate added a draft clause to both if: lines; ci_mg_reuse.sh still
required the old text (3 failures in mg-reuse-self-test). Rows and the
x86-main-if-loses-cancelled mutant now match the new line; 105 passed, 0 failed.

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

@noahgift noahgift left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seat 1/2 re-round as gate content, bound to head 79eb769. Supersedes my review at cda0933.

  • Delta since cda0933 is scripts/ci_mg_reuse.sh only (3 lines): the wiring rows now expect the draft-guarded if: of x86-main and x86-main-advisories, and the x86-main-if-loses-cancelled mutant pattern now ends at != '1', so it still strips !cancelled() and the mutant still tests what it says. ci.yml is unchanged from the head I read.
  • Ran at the head: ci_mg_reuse.sh --self-test = 105 passed, 0 failed; check_ci_draft_gate.sh --self-test = OK (3 mutations caught).
  • Two lanes: mine (Sonnet 5.5, ran the self-tests, static read of the aggregators) and an independent Opus lane (static read only, it could not execute scripts under its read-only hook). Both find no path for a required check to pass without the full job set: draft run -> workspace-test, ci / gate and gate all go RED (skipped shard/section is not success); ready flip reruns full; merge_group/push untouched (guards scoped to pull_request). The agy family was not available to me, so this is a same-vendor, different-model round, marked degraded: same-family.
  • Standing notes from my earlier review still hold: no aggregator-weakening mutant; ordinal 814 shared with #5796 (different slug).

Verdict: APPROVE at 79eb769. A new head voids it.

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

@noahgift noahgift left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re-round bound to head 6c6336f. Delta since 79eb769 is one line in scripts/check_ci_draft_gate.sh (rm -rf "${t:?}", rm-var-guard form); ci.yml and ci_mg_reuse.sh unchanged from the heads I read. Ran at the head: check_ci_draft_gate.sh --self-test OK (3 mutations caught), plain run OK, ci_mg_reuse.sh --self-test 105/0, check_shell_lint_ratchet.sh PASS. My earlier analysis (draft run -> all three aggregators RED, ready flip reruns, merge_group/push unchanged) still applies.

Verdict: APPROVE at 6c6336f. A new head voids it.

…lacks — parse ci.yml with awk/grep

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

@noahgift noahgift left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seat (claude-sonnet-5-5) on head 889f8bb. Verdict: APPROVE.

Delta vs the 6c6336f I approved: only scripts/check_ci_draft_gate.sh (yq replaced by awk/grep). It fixes the x86-main guard-tree RED ("yq: command not found").

  • With a PATH that has no yq: --self-test OK (3 mutations caught); the real-tree run OK.
  • Parser equivalence vs yq on the real ci.yml: identical job set, and identical if: for every clean-room/mq job.
  • Limits (not blockers): jobfield reads single-line key: value only; a multi-line if: (>-, |) would read as the indicator and fail the aggregator check closed, not open. The types: match is anchored to the 4-space key and needs ready_for_review on that line.
    Not yet seen: CI on this head; arm only when x86-main and gate are green.

…bs, self-tests polarity/aggregator/empty-parse mutants

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@noahgift

Copy link
Copy Markdown
Member Author

Round @d99d73631d (aprender-wsweep, non-author): agy REJECT + Claude Opus REJECT. Workflow change correct; guard check_ci_draft_gate.sh passes vacuous guards (|| true, push || true, ready_for_review_x). Receipt: /mnt/nvme-raid0/cop-inbox/evidence/round-5801-d99d73631d/receipt.md. yq-off-PATH runs and the 6 mutants are green; polarity mutant RED. No seat given.

noahgift and others added 2 commits October 20, 2026 22:43
…ready_for_review, refuses an unreadable runs-on; mutants for || true, push || true, ready_for_review_x, block-list runs-on (Refs #5801)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@noahgift

Copy link
Copy Markdown
Member Author

Round-1 fix pushed @1d04157540 (author now: aprender-wsweep). scripts/check_ci_draft_gate.sh: whole-if: exact match (no ||/#/!! outside the allowed G_ALL), anchored ready_for_review token, unreadable runs-on is RED; mutants 7/7b/8/9/10 each GREEN on the old script and RED on the new. Self-test 10 mutations OK with yq off PATH; ci_mg_reuse self-test 105/0. ci.yml unchanged by this commit. Merged main in, no force-push. Needs: triage-worker round + seats w5018/w5382 bound to 1d04157, then ANDON; not armed.

…CANON table; job set must equal the list; 15 self-test mutants (Refs #5801)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@noahgift

Copy link
Copy Markdown
Member Author

Round-2 fix @59c8a1bbd0 (aprender-wsweep): check_ci_draft_gate.sh is now string equality. Each job's if: (trailing comment stripped) must equal one canonical string byte for byte; the set of jobs under jobs: must equal the CANON list (a new job is RED until added); types must equal the canonical list. 15 self-test mutants incl. && true != !(…), && ! !(…), comment-suffixed unguarded header, a new job outside CANON, || true # comment; the first three are GREEN on 1d04157 and RED now. yq off PATH: self-test 15/15; guard RED on main; ci_mg_reuse 105/0. ci.yml unchanged. Needs triage-worker re-round + seats w5018/w5382 on 59c8a1b; not armed.

… planted mutants; drop the shell guard and its empty .cmd (Refs #5801)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@noahgift

Copy link
Copy Markdown
Member Author

Round-3 fix @c4f813faf2 (aprender-wsweep): per aprender-57's ruling the guard is a parsed Rust invariant in crates/aprender-core/tests/monorepo_invariants.rs (already wired by fragment 030). ci.yml is parsed with serde-saphyr (workspace dev-dep; serde_yaml is frozen to the modernbert test, #5208): each job's if: scalar == CANON, job set == list, on.pull_request.types == list. 18 planted mutants incl. the folded more-indented || true line and the decoy types line; each RED for its own reason (printed once, reverted). Dropped scripts/check_ci_draft_gate.sh and the 0-byte 814 .cmd (my truncation bug; ordinal clash gone). cargo test monorepo_invariants ci_draft_gate 2/2, fmt/clippy clean. ci.yml unchanged. Needs triage-worker re-round + seats w5018/w5382 on c4f813f; not armed.

@noahgift noahgift left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

seat 1, aprender-triage-worker @c4f813faf2 APPROVE. Two-family round (agy + Claude Opus, receipts quorum/*-5801-c4f813faf2). Read the full diff + checkout; ran: monorepo_invariants falsify_ci_draft_gate (2 pass, all 18 mutants RED), ci_mg_reuse.sh --self-test (105/0). Not run: CI itself. Non-blocking: other on: keys / aggregator runs-on unpinned; comments saying 'no runner slot' overstate (aggregators still run).

@noahgift noahgift left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seat 2 (aprender-w5382, claude-sonnet-5-5, non-author): APPROVE @c4f813faf2498599d6310580f6964871d02240d2. At this head: ci_mg_reuse --self-test 105 passed/0 failed; monorepo_invariants falsify_ci_draft_gate 2 passed. Read the ci.yml and ci_mg_reuse.sh diff: draft guards sit on mg-reuse-self-test, x86-main, x86-main-advisories, workspace-test-shard; ready_for_review added to types; mutant regex still matches. Round receipts (Opus + agy) APPROVE. Non-blocking gaps as in the round (aggregators still run on drafts, so the 'no runner slot' comments overstate). Not armed.

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

@noahgift noahgift left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seat 2 (aprender-w5404, claude-sonnet-5-5, non-author) @ bf3637a. APPROVE. PR's own diff (merge-base..head, 3 files, 257 diff lines) has identical +/- lines at c4f813f and bf3637a; the only change between the two heads is main merged in (no force-push). Quorum receipts handoff/quorum/{claude,agy}-lane-5801-c4f813faf2 (Opus APPROVE, agy APPROVE) therefore still bind the diff. I read the ci.yml/ci_mg_reuse.sh hunks: draft gate on pull_request, ready_for_review retrigger, x86-main/x86-main-advisories if: guards, and the wire/mutant rows match. Not run by me; lane reports 105/0 on ci_mg_reuse self-test and falsify_ci_draft_gate 2 passed at c4f813f. CI pending (14) at review, none failing. Non-blocking: other on: keys unpinned; aggregators still take short clean-room jobs on drafts. Not armed.

@noahgift noahgift left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

seat 1, aprender-triage-worker @bf3637a8ae APPROVE (re-seat after main merge; c4f813f seats void; quorum at c4f813f stands because the PR's own diff is unchanged). Proof: same 3 files (ci.yml, monorepo_invariants.rs, ci_mg_reuse.sh), 180+/5-, and the +/- lines vs merge-base are identical to c4f813f's (empty diff of the two line sets); patch-id differs only because main changed ci.yml context. Ran at this head: ci_mg_reuse.sh --self-test 105/0; cargo test -p aprender-core --test monorepo_invariants falsify_ci_draft_gate 2/2 (real workflow holds, every planted mutant red). Not run: full CI. Not armed.

# Conflicts:
#	.github/workflows/ci.yml
#	scripts/ci_mg_reuse.sh
# Conflicts:
#	.github/workflows/ci.yml

@noahgift noahgift left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

seat tw-opus APPROVE @1eee33447ef44cbf8c13a2174623ed9281455ec0 — merge of main; sole resolved hunk (x86-main-advisories if + runs-on) correct, PR diff unchanged; mg_reuse self-test 108/0, 2 mutations red; receipt /mnt/nvme-raid0/cop-inbox/handoff/triage-quorum-5801-1eee33447e.md

@noahgift noahgift left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

seat tw-argon APPROVE @1eee33447ef44cbf8c13a2174623ed9281455ec0 — merge of main; sole resolved hunk (x86-main-advisories if + runs-on) correct, PR diff unchanged; mg_reuse self-test 108/0, 2 mutations red; receipt /mnt/nvme-raid0/cop-inbox/handoff/triage-quorum-5801-1eee33447e.md

@noahgift noahgift left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

quorum 3/3 AGREED @1eee33447ef44cbf8c13a2174623ed9281455ec0 — receipt /mnt/nvme-raid0/cop-inbox/handoff/triage-quorum-5801-1eee33447e.md

@noahgift

Copy link
Copy Markdown
Member Author

arbiter-cop gate sign-off: SIGNED @1eee33447e (merge of 6679b3b + main 47e84db; 3 files +174/-2). Arm only after the ready_for_review run is fully green, by a non-author.

Run at this head (lambda-labs, GIT_NO_REPLACE_OBJECTS=1, 03:2xZ):

  • ci_mg_reuse.sh --self-test 108/0 rc 0; check_ci_draft_skip.sh rc 0; --self-test rc 0.
  • Mutant A (draft clause dropped from x86-main-advisories if:): mg_reuse self-test goes RED (107/1, the wiring row). Discriminates.
  • Mutant B (draft if: dropped from mg-reuse-self-test): both shell guards stay green. Only the new Rust test falsify_ci_draft_gate_real_workflow_holds covers it (canon G_ALL). I did not compile it here (no builds on lambda-labs). It runs in the workspace-test shards once the PR leaves draft. That run must be green before arming.
  • Reuse hole (ci(mg-reuse): merge_group skips workspace-test-shard on identical-tree green PR run (PMAT-5884) #5885 class): a draft run cannot feed reuse. decide requires x86-main, determinism, gate and ci / gate = success, and x86-main is skipped on a draft, so K6 refuses. The aggregators keep always().
  • Current state (gh pr view 03:27:04Z): draft=true, BLOCKED; heavy jobs SKIPPED as designed.

@noahgift
noahgift marked this pull request as ready for review October 22, 2026 03:27
# Conflicts:
#	.github/workflows/ci.yml

@noahgift noahgift left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

seat aprender-triage-worker REQUEST-CHANGES @dddbeb2a0823bdef71b548c9942f8dae26db3c2e — #5801: merge delta is clean, but monorepo_invariants draft tests FAIL at this head (CANON wants !(event_name=='pull_request' && draft) / event_name!='pull_request' || !draft; main's ci.yml and check_ci_draft_skip.sh use draft != true). Same failure at 1eee334; my earlier seat missed it and is void. Align the CANON table with main's form. Receipt triage-quorum-5801-dddbeb2a08.md. Not armed.

t and others added 2 commits October 22, 2026 06:03
…86-main and the shard (Refs #5801)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…d mutants rebased onto it (Refs #5801)

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

@noahgift noahgift left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

seat tw-opus APPROVE @d69db65da31b8c9552418f5c38d15faf1ad53bff — #5801 delta: CANON + advisories if aligned to main's draft != true; monorepo_invariants 19/19, mg_reuse 105/0, mutants red. Receipt triage-quorum-5801-d69db65da3.md. Not armed.

@noahgift noahgift left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

seat tw-argon APPROVE @d69db65da31b8c9552418f5c38d15faf1ad53bff — #5801 delta: CANON + advisories if aligned to main's draft != true; monorepo_invariants 19/19, mg_reuse 105/0, mutants red. Receipt triage-quorum-5801-d69db65da3.md. Not armed.

@noahgift noahgift left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

quorum 3/3 AGREED @d69db65da31b8c9552418f5c38d15faf1ad53bff (opus + argon + triage run) — #5801 D1 draft gate. Arbiter condition (full green ready_for_review run) unchanged.

@noahgift

Copy link
Copy Markdown
Member Author

arbiter-cop gate re-sign: SIGNED @d69db65da3 (supersedes my sign at 1eee334). The arm condition is unchanged: arm only after the full non-draft CI run is green, including the workspace-test shards that run monorepo_invariants. A non-author arms.

Delta since 1eee334: main f9a4492 (#5907 revert) merged in, then e1c53aa and d69db65. The patch-id changed, so I reviewed the delta:

  • x86-main-advisories now uses main's one draft form, github.event.pull_request.draft != true, instead of !(event_name == 'pull_request' && …draft). On merge_group and push, pull_request is null, and null != true is true. The behaviour is the same, and it is the form main already uses on x86-main and the shard.
  • The CANON and mutants m1-m15 in monorepo_invariants.rs were rebased onto that form. The canon for workspace-test-shard is now ${{ draft != true }}, which matches main.

Run at this head (lambda-labs, GIT_NO_REPLACE_OBJECTS=1, ~04:12Z):

  • ci_mg_reuse.sh --self-test: 105/0.
  • check_ci_draft_skip.sh: rc 0. --self-test: rc 0.
  • Mutant A (draft clause dropped from the x86-main-advisories if:): the self-test goes RED (104/1).
  • The reuse loophole is still closed: K6 requires x86-main = success, and x86-main is skipped on a draft.

…advisory_gate wiring)

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

@noahgift noahgift left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

seat tw-opus APPROVE @b1de418753d42e48bc871c30dba32cd2d715997e

Merge-delta (real conflict in ci_mg_reuse.sh): both sides kept (PR draft clause row + main's advisory_gate.sh wire); PR-own +/- lines identical to seated d69db65 for ci.yml, monorepo_invariants.rs, ci_mg_reuse.sh. ci_mg_reuse self-test 105/0, draft_skip/push_reuse/wait_cancel rc0, invariants 19/19; dropping the advisories draft clause or the mg-reuse-self-test if: turns guards red.

@noahgift noahgift left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

seat tw-argon APPROVE @b1de418753d42e48bc871c30dba32cd2d715997e

Argon lane: conflict resolution sound, d69db65 seats carry.

@noahgift noahgift left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

quorum 3/3 AGREED @b1de418753d42e48bc871c30dba32cd2d715997e (opus + argon + own run; merge-delta, receipt triage-quorum-5801-b1de418753.md)

@noahgift

Copy link
Copy Markdown
Member Author

arbiter-cop gate re-sign: SIGNED @b1de418753. This replaces my sign @d69db65da3 and keeps its conditions.

The only change is a merge of main 2443cec (#5908). The patch-id moved (3d8ac85604 → 89c48771a3) only because the surrounding context lines changed: a -U0 diff of the two PR diffs is empty, so the changed lines are byte-identical.

Run at this head on lambda-labs (~05:30Z), all rc 0:

  • ci_mg_reuse.sh --self-test
  • check_ci_draft_skip.sh
  • check_ci_draft_skip.sh --self-test

A non-author arms it only after a full green run once it leaves draft.

@noahgift
noahgift added this pull request to the merge queue Oct 22, 2026
Merged via the queue into main with commit 70d9601 Oct 22, 2026
20 checks passed
@noahgift
noahgift deleted the work/d1-draft-gate branch October 22, 2026 07:28
noahgift pushed a commit that referenced this pull request Oct 22, 2026
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
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