Repository navigation
CI (lane GO): run api-release in a full-checks-3 job, and bump ctutils for RUSTSEC-2026-0385 (DEC-2334, DEC-2338) - #2322
Merged
Conversation
…2334, DEC-2338) #2289 added `api-release` to `cargo xtask ci full` (DEC-2338 item 5) after #2195 had split `full`'s parts into `full-checks` and `full-checks-2` (DEC-2334). No CI job ran `api-release`, and `the_full_jobs_run_exactly_the_full_group` failed on main. Its release build of `mandate-api-server` takes about five minutes on its own. Neither existing job has room for that under ten minutes (DEC-464): `full-checks-2`'s `reference` alone is about 4.5 minutes, before its two release builds. So it runs in `full-checks-3`, on the same selection, and `full` needs all three. The verdict table now shows a failed, cancelled or skipped `full-checks-3` failing `full`. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UoxcMViCbnGUTPSaduuGYU
kunwarshivam
marked this pull request as ready for review
October 23, 2026 08:34
`cargo deny --locked check` fails on main. In ctutils 0.4.2, the constant-time `Choice` mask lacked an optimization barrier (RUSTSEC-2026-0385, RustCrypto/utils#1569); 0.4.4 and later fix it. ctutils is a transitive RustCrypto crate, reached through aes-gcm, crypto-bigint, digest, sec1 and universal-hash (webpush, p256, sqlx-postgres). `cargo update -p ctutils` makes a patch-level bump. Nothing else in Cargo.lock moves, and no manifest or dependency row changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UoxcMViCbnGUTPSaduuGYU
kunwarshivam
pushed a commit
that referenced
this pull request
Oct 23, 2026
Main runs no job for its api-release part, so the full-job split test fails there; this ports #2322's fix, which no-ops once it lands. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01B5V2t72QcDywyLPViJtmFF
kunwarshivam
pushed a commit
that referenced
this pull request
Oct 23, 2026
Main runs no job for its api-release part, so the full-job split test fails there; this ports #2322's fix, which no-ops once it lands. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01B5V2t72QcDywyLPViJtmFF
kunwarshivam
pushed a commit
that referenced
this pull request
Oct 23, 2026
Main runs no job for its api-release part, so the full-job split test fails there; this ports #2322's fix, which no-ops once it lands. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01B5V2t72QcDywyLPViJtmFF
kunwarshivam
pushed a commit
that referenced
this pull request
Oct 23, 2026
Main runs no job for its api-release part, so the full-job split test fails there; this ports #2322's fix, which no-ops once it lands. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01B5V2t72QcDywyLPViJtmFF
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Story
This fixes main, which is red at 9f4a259 for two separate reasons. Both fixes are in this PR so main goes green in one landing. Decisions: DEC-2334 and DEC-2338.
1.
api-releaseruns in no CI job. #2289 (DEC-2338 item 5) added it tocargo xtask ci fullafter #2195 had splitfull's parts intofull-checksandfull-checks-2(DEC-2334). Sothe_full_jobs_run_exactly_the_full_groupfails on main and in every PR that selects xtask's tests (for example #2319).full-checks-3job runscargo xtask ci api-releasealone. It has the sameselectgate andtimeout-minutes: 10as the other two, does checkout, toolchain and rust-cache only, and starts no services.fullaggregate needs it and judges its result like the other two: success wherefull_checksis selected, skipped where it is not.exchange-releasehad warmed the release cache,api-releasetook 4m53s on 4 cores. CI's step timings on E10-13 connect finish split: the finish runs in its own process as the connection manager (DEC-2348 item 3) #2319's run showfull-checks-2spends about 4m28s inreferencealone, before its two release builds. On a full selection, either existing job would have ended near or past ten minutes (DEC-464).2.
cargo deny --locked checkfails on an advisory. ctutils 0.4.2 is affected by RUSTSEC-2026-0385 (RustCrypto/utils#1569): its constant-timeChoicemask lacked an optimization barrier. 0.4.4 and later fix it.cargo update -p ctutilsmakes a patch-level bump to 0.4.5. It is a 2-lineCargo.lockchange: nothing else moves, and no manifest, dependency ordocs/dependencies.mdrow changes.Spec clause → test
cargo xtask ci full's parts, each once, each gated and capped, andfullneeds every onethe_full_jobs_run_exactly_the_full_groupfullfails on a failed, cancelled or skippedfull-checks-3when selected, and on one that ran when not selectedfull_accepts_a_skipped_matrix_only_beside_a_plan_of_zerofull-checks-3is skipped on drafts and gated byfull_checks; the checkout count and the env-var list include itSELECT_GATES, checkout and env testscargo xtask ci supply-chain(cargo-deny)Each fix was checked against its failure:
full-checks-3's line removed from thefullscript,full_accepts_…failed.cargo deny check advisoriesnamed RUSTSEC-2026-0385 on ctutils 0.4.2; after it, advisories, bans, licenses and sources all pass.Dependencies
No new dependency. ctutils, already a transitive dependency, moves from 0.4.2 to 0.4.5, a patch-level security fix.
Journal events added
None.
Not done
Nothing else changes.
Decisions needed
None. The third job extends DEC-2334's split under DEC-464, an engineering choice.
Safety checklist (safety-critical changes)
Not safety-critical. The new job holds no credentials (
contents: read).Checks
cargo nextest run -p xtask: 543 of 543 passed.ci.yml.cargo xtask ci supply-chain: green (cargo-deny, the dependency registry, gitleaks).cargo build --workspace --locked.cargo xtask ci api-releaselocally: 4m53s.🤖 Generated with Claude Code
https://claude.ai/code/session_01UoxcMViCbnGUTPSaduuGYU