Repository navigation
crates.io: trusted publishing first, token secret as fallback - #217
Conversation
…available The crates.io auth step continues on error, and the publishing steps use the OIDC token first, then CARGO_REGISTRY_TOKEN, then CARGO_TOKEN. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
🤖 AI Work Session Started Started at 2026-10-13T20:14:58.888Z. Please wait for it to finish before giving feedback. Runtime: solve |
Docker sometimes publishes no oom event for the final PID 1 kill. CI runs 38277995076 (main) and 38429115626 (this PR) list only the child's event, so the probe had no exit-time evidence and failed with 'Unexpected attribution for main-oom'. Retry main-oom up to three times only when no recent Docker oom event exists; a wrong attribution with the event present still fails immediately.
Working session summaryPR #217 is now all green and marked ready for review. Merge status is What was failing: Both failing checks came from one CI step, Root cause: The script kills a container's main process by running it out of memory, and expects Docker to report an
Without that second event there is nothing recent to attribute the kill to, because the script's other evidence is 30 s old. So the script can't succeed in that case. Docker sometimes just doesn't deliver the event; it isn't a logic bug in the attribution code. Fix (commit Verification:
I updated the PR description with this evidence. There were no new review comments. This summary was automatically extracted from the AI working session output. |
🤖 Solution Draft LogThis log file contains the complete execution trace of the AI solution draft process. 💰 Cost: $1.043287📊 Context and tokens usage:
Total: (60 new + 57.8K cache writes + 1.4M cache reads) input tokens, 15.1K output tokens, $1.043287 cost 🤖 Models used:
📎 Log file uploaded as Gist (963KB)Now working session is ended, feel free to review and add any feedback on the solution draft. |
🎉 Auto-mergedThis pull request has been automatically merged by hive-mind.
|
Organization policy: every pipeline publishes through trusted publishing (OIDC) first and falls back to a token only when OIDC is unavailable.
Changes
rust-lang/crates-io-auth-actionstep:continue-on-error: true. A missing or mismatched trusted publisher, or an OIDC outage, no longer stops the release.${{ steps.<auth>.outputs.token || secrets.CARGO_REGISTRY_TOKEN || secrets.CARGO_TOKEN }}.rust.ymldeclaresCARGO_REGISTRY_TOKEN/CARGO_TOKENas optionalworkflow_callsecrets.js.ymlalready passes them throughsecrets: inherit.experiments/issue-209-docker.mjs): theReproduce stale-sample OOM attribution (Linux)step failed on this PR (run 38429115626) and onmain(run 38277995076), each time withUnexpected attribution for main-oomand 0 test failures. In both failing runs, Docker'soomevents list only the child's kill. Every passing run lists two events: the child, then the main process about 30 s later. Without that final event the probe has no evidence from exit time (its cgroup sample is 30 s old), so attribution can't succeed. The probe now retriesmain-oomup to 3 times only when no recent Dockeroomevent exists. If the event is present but attribution is still wrong, it fails on the first attempt. Each attempt is recorded in the evidence artifact (attemptfield).The trusted publisher on crates.io stays configured, so normal releases keep using OIDC.
Checks
actionlint: no new findings.check-javascript-firstpass.bun run check(eslint, prettier, file size),regression-209,javascript-first-ciandci-workflow-invariantstests pass locally. The retry condition was checked against the evidence artifacts: it returns "retry" for both failing runs and "no retry" for the passing ones. The Docker probe can't run end to end in the local sandbox (nested cgroup v2 rejects memory limits), so CI run 38462028057 is the end-to-end check, and it passes.🤖 Generated with Claude Code