Repository navigation
Fix main CI red on stale digest pending-list entries - #1016
Merged
Mikola Lysenko (mikolalysenko) merged 1 commit intoOct 7, 2026
Merged
Conversation
Main's test jobs are red: production_digests_go_through_the_helpers fails because PENDING_INLINE_DIGESTS still names gradle_cache.rs, jvm_jar.rs and sidecars/maven.rs. #955 added them while those files computed digests inline, and #690 (sbt/Mill/scala-cli) then moved them onto utils::digest helpers; the two merged independently, so the ratchet now fails on stale entries on every platform. Remove the three entries so the list matches the production tree. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Qq8uwZ9NTCZXZRygn7woy7
Collaborator
Author
|
bugbot run Generated by Claude Code |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit 6cb46c0. Configure here.
Mikola Lysenko (mikolalysenko)
pushed a commit
that referenced
this pull request
Oct 7, 2026
Merging main brought in #955's PENDING_INLINE_DIGESTS entries for gradle_cache.rs, jvm_jar.rs and sidecars/maven.rs, but #690 had already moved those files onto the utils::digest helpers. The guard fails on stale entries, so coverage, test and test-release are red on main and on this PR. This is the same change as #1016, ported so this PR's CI can go green; it no-ops once #1016 lands. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012H7zqyRTeMzzAxit6xfV6r
This was referenced Oct 7, 2026
Mikola Lysenko (mikolalysenko)
pushed a commit
that referenced
this pull request
Oct 7, 2026
The digest guard test is red on main: #955 added crawlers/gradle_cache.rs, patch/jvm_jar.rs and patch/sidecars/maven.rs to the pending list, and #690 had already moved them onto the utils::digest helpers. This ports the same three-line change as #1016, so it becomes a no-op once #1016 lands. Assisted-by: Claude Code:claude-opus-5-5
Mikola Lysenko (mikolalysenko)
enabled auto-merge (squash)
October 7, 2026 13:32
3 tasks done
Mikola Lysenko (mikolalysenko)
pushed a commit
that referenced
this pull request
Oct 7, 2026
Main went red when the Gradle and Maven digest moves landed: three files still listed as computing digests inline no longer do, so the ratchet test fails on every PR. Same change as #1016; it becomes a no-op once that lands. Assisted-by: Claude Code:claude-opus-5-5
This was referenced Oct 7, 2026
Mikola Lysenko (mikolalysenko)
pushed a commit
that referenced
this pull request
Oct 7, 2026
Port of #1016. main routes the Gradle cache crawler, jar comparator and Maven sidecar through utils::digest but still lists them as pending, so production_digests_go_through_the_helpers fails on main and every branch off it. No-op once #1016 lands. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Wk9XBZsw4FpBuPb4DpKRPv
Wenxin Jiang (Wenxin-Jiang)
approved these changes
Oct 7, 2026
Mikola Lysenko (mikolalysenko)
deleted the
ci-janitor/digest-pending-list
branch
October 7, 2026 14:00
Mikola Lysenko (mikolalysenko)
pushed a commit
that referenced
this pull request
Oct 7, 2026
The digest guard test is red on main: #955 added crawlers/gradle_cache.rs, patch/jvm_jar.rs and patch/sidecars/maven.rs to the pending list, and #690 had already moved them onto the utils::digest helpers. This ports the same three-line change as #1016, so it becomes a no-op once #1016 lands. (cherry picked from commit d65c5c4)
Mikola Lysenko (mikolalysenko)
pushed a commit
that referenced
this pull request
Oct 7, 2026
Picks up #1016's digest pending-list fix so test/coverage aren't red from main. Co-Authored-By: Claude <noreply@anthropic.com>
This was referenced Oct 7, 2026
Mikola Lysenko (mikolalysenko)
added a commit
that referenced
this pull request
Oct 7, 2026
* Start fix for #964 Assisted-by: Claude Code:claude-opus-5-5 * Stop uv projects scanning the system Python A fresh uv checkout (uv.lock with no .venv synced yet, or a UV_PROJECT_ENVIRONMENT that doesn't exist yet) and a directory holding only PEP 723 script locks fell back to the global site-packages. Every OS-Python package then joined the candidate set, so a vendored scan tried to vendor packages the project never depends on and exited 1 with pypi_uv_lock_package_missing. uv only ever installs such a project into its own env, and the lock already supplies the lock-only packages, so the crawl now returns no env for it. A uv.lock shared with Poetry, PDM or Pipenv files keeps the old fallback. Fixes #964 Assisted-by: Claude Code:claude-opus-5-5 * Route Gradle digests through utils::digest main's coverage job is red: the digest guard test from #865 requires production hashing to go through the utils::digest helpers, and the Gradle code from #646 still hashes inline. This is the same change as #878, ported so this PR's CI can go green; it no-ops once #878 lands. Assisted-by: Claude Code:claude-opus-5-5 * Revert rustfmt-only churn in files this fix doesn't touch 661c117 ran `cargo fmt --all`, which reformatted 118 files the uv fix never changes. main isn't rustfmt-clean and CI doesn't check formatting, so the sweep adds nothing. It also hides the real change and conflicts with every other open PR that touches those files. Each reverted file is byte-identical to rustfmt's output on the merge-base version, so this drops formatting only. The six files that carry the fix and the ported #878 change keep their formatting. Co-Authored-By: Claude <noreply@anthropic.com> * Drop stale digest pending-list entries Merging main brought in #955's PENDING_INLINE_DIGESTS entries for gradle_cache.rs, jvm_jar.rs and sidecars/maven.rs, but #690 had already moved those files onto the utils::digest helpers. The guard fails on stale entries, so coverage, test and test-release are red on main and on this PR. This is the same change as #1016, ported so this PR's CI can go green; it no-ops once #1016 lands. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012H7zqyRTeMzzAxit6xfV6r --------- Co-authored-by: socket-patch agent <noreply@anthropic.com>
This was referenced Oct 7, 2026
Mikola Lysenko (mikolalysenko)
added a commit
that referenced
this pull request
Oct 7, 2026
* Start fix for #628, #629 Assisted-by: Claude Code:claude-opus-5-5 * Test hosted berry refusal of mixed package.json A berry project whose root package.json mixes CRLF and LF is refused by vendored mode, but hosted mode rewrites it in the majority ending. These tests cover a fresh hosted scan and the vendored-to-hosted takeover (#628). They fail until the gate is shared. Assisted-by: Claude Code:claude-opus-5-5 * Share yarn berry project gates across modes Hosted and vendored modes each carried their own copy of the yarn berry project refusals (mixed line endings, cacheKey, .yarnrc.yml compressionLevel), and the copies drifted: hosted mode never checked the root package.json, so it silently rewrote a mixed-line-ending manifest that vendored mode refuses (#628). The gates now live once in formats/yarn/berry_gates.rs. The vendored backend and its takeover preflight, the hosted rewriter, the vendored-to-hosted takeover and the hosted restore all call it and keep their existing codes. Hosted mode now refuses a mixed package.json with redirect_yarn_berry_mixed_line_endings before writing or reverting anything (#629). Assisted-by: Claude Code:claude-opus-5-5 * Drop CHANGELOG entry from this PR Release notes are written when a release is cut, from the merged PR log and the code, so PRs no longer edit CHANGELOG.md. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * Port #851: fix vex alias tests broken on main Since #605 landed, main fails two vex_consumed alias tests because the name-keyed resolver now finds alias and bundled store copies itself. This is #851's test-only fix, ported so this PR's CI can go green; it becomes a no-op once #851 merges. Assisted-by: Claude Code:claude-opus-5-5 * Port #878: route Gradle digests through utils::digest main fails socket-patch-core's lib guard test production_digests_go_through_the_helpers because three Gradle files still hash inline, which turns coverage, test and test-release red on this PR. This is the same change as #878 and becomes a no-op once that lands on main. Co-Authored-By: Claude <noreply@anthropic.com> * Drop stale entries from digest pending list Main went red when the Gradle and Maven digest moves landed: three files still listed as computing digests inline no longer do, so the ratchet test fails on every PR. Same change as #1016; it becomes a no-op once that lands. Assisted-by: Claude Code:claude-opus-5-5 --------- Co-authored-by: Claude <noreply@anthropic.com>
This was referenced Oct 7, 2026
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.
Problem
Main's test suite fails on every platform.
utils::digest::tests::production_digests_go_through_the_helpers(socket-patch-core lib) fails onorigin/main(db83f01):Any PR that merges main inherits this red
test (ubuntu/macos/windows),test-releaseandcoverage. The same ratchet also failed in the other direction on the last two scheduled main CI runs at 9c43dfc: 37578193876 (2026-10-07) failedtest-release,coverage,test (windows-latest)andtest (macos-latest), and 37420351192 (2026-10-06) also failed. Those runs showed the three files computing digests inline while missing from the list.Root cause
This is a semantic merge race between two PRs that each passed on their own:
crawlers/gradle_cache.rs,patch/jvm_jar.rsandpatch/sidecars/maven.rstoPENDING_INLINE_DIGESTS, because those files still computed digests inline on its base.utils::digest::*_ofhelpers.After both merged, the list has three stale entries. The test is designed to fail on stale entries.
Fix
Remove the three stale entries. The change is 3 deleted lines in
crates/socket-patch-core/src/utils/digest.rs. No assertion is weakened, and the ratchet still catches new inline digests and stale entries.Proof
cargo test -p socket-patch-core --lib production_digests_go_through_the_helpersfails locally on origin/main with the diff shown above.cargo test -p socket-patch-core --librun gave 5558 passed and 4 failed. The 4 failures only happen because the sandbox runs as root, where chmod-0o555 read-only-dir tests cannot fail as they expect:copy_tree::relax_loop_must_not_traverse_symlinked_root,vlt_heal::an_unremovable_hidden_lock_keeps_every_store_entry,pypi_poetry::wire_write_failure_…andpypi_requirements::wire_failure_rolls_back_…. They are unrelated to this change, and the CI runner (non-root) passed them in run 37578193876.rustfmt --checkis clean on the touched file.Note for open PRs
#876 and #889 each add
crawlers/gradle_cache.rsback to this list. They reintroduce inline digests in that file, so that part of their change stays correct after this lands.Where tests run
No tests were removed or moved.
🤖 Generated with Claude Code
https://claude.ai/code/session_01Qq8uwZ9NTCZXZRygn7woy7
Generated by Claude Code
Note
Low Risk
Test-only list maintenance in
digest.rs; no production digest behavior changes.Overview
Fixes main CI by syncing
PENDING_INLINE_DIGESTSinutils/digest.rswith reality after two PRs merged in opposite directions:crawlers/gradle_cache.rs,patch/jvm_jar.rs, andpatch/sidecars/maven.rsnow useutils::digest::*_ofhelpers, so they are removed from the pending list.The ratchet test
production_digests_go_through_the_helpersis unchanged—it still fails on new inline digest copies and on stale list entries; only the three obsolete paths are dropped.Reviewed by Cursor Bugbot for commit 6cb46c0. Configure here.
Generated by Claude Code