Skip to content

chore: refresh stale sandbox dev container version pins#161

Merged
nozaq merged 2 commits into
mainfrom
claude/pr-sandbox-sync
Jul 13, 2026
Merged

chore: refresh stale sandbox dev container version pins#161
nozaq merged 2 commits into
mainfrom
claude/pr-sandbox-sync

Conversation

@nozaq

@nozaq nozaq commented Jul 12, 2026

Copy link
Copy Markdown
Member

#158 has merged, so this now targets main directly with just this PR's own changes.

Summary

  • sandbox-uv's UV_VERSION and sandbox-mise's MISE_VERSION had drifted from their images' build.yaml, and sandbox-uv's GH_VERSION annotation still referenced the old cli/cli GitHub-releases datasource from before chore(uv): install gh CLI from apt repository instead of downloading #164 switched gh to an apt package. Refresh all three.
  • Root cause fix: the devcontainer.json custom Renovate manager only matched values containing @ (tag@sha256:digest or name@version), so every plain-version build arg across every sandbox-*/devcontainer.jsonMISE_VERSION, UV_VERSION, GH_VERSION, RUSTUP_VERSION, GOLANG_VERSION, GOPLS_VERSION, NODE_VERSION, COREPACK_VERSION, BUN_VERSION, TERRAFORM_VERSION, TERRAFORM_LS_VERSION, ZIG_VERSION, ZLS_VERSION, SHELL_COMPLETIONS_COMMIT — was silently unmanaged by Renovate. This is what actually let MISE_VERSION/UV_VERSION go stale despite carrying a // renovate: comment. Added a third matchString pattern (mirroring build.yaml's existing "plain version, no digest" pattern) that explicitly skips the quoted JSON key before capturing the value.

Test plan

  • Validated JSONC syntax of all three sandbox files
  • Verified every // renovate: comment across all 10 .devcontainer/*/devcontainer.json files (25 total) resolves to exactly one pattern with the correct currentValue, including a check that the fix doesn't accidentally capture the JSON key name instead of the value
  • npx renovate-config-validator passes on the updated renovate.jsonc
  • CI: devcontainer-check.yml builds sandbox-rust, sandbox-uv, sandbox-mise successfully
  • Post-merge: confirm the Renovate Dependency Dashboard now tracks the previously-unmanaged build args (e.g. sandbox-golang's GOLANG_VERSION)

@nozaq nozaq force-pushed the claude/pr-zig-git-completions branch from 1a053d4 to 8c3bdca Compare July 13, 2026 00:11
@nozaq nozaq force-pushed the claude/pr-sandbox-sync branch from f5de29e to 7e47708 Compare July 13, 2026 00:11
@nozaq nozaq changed the base branch from claude/pr-zig-git-completions to claude/pr-mise-usage-pin July 13, 2026 00:13
@nozaq nozaq force-pushed the claude/pr-sandbox-sync branch from 7e47708 to 7e7d7d1 Compare July 13, 2026 01:41
@nozaq nozaq changed the base branch from claude/pr-mise-usage-pin to claude/pr-pin-checksums July 13, 2026 01:41
@nozaq nozaq force-pushed the claude/pr-pin-checksums branch from dd83f01 to 1ba668e Compare July 13, 2026 11:42
@nozaq nozaq force-pushed the claude/pr-sandbox-sync branch from 7e7d7d1 to 4128599 Compare July 13, 2026 11:42
@nozaq nozaq force-pushed the claude/pr-pin-checksums branch from 30830d1 to f9a4aa8 Compare July 13, 2026 20:59
@nozaq nozaq force-pushed the claude/pr-sandbox-sync branch from 4128599 to b6487ce Compare July 13, 2026 21:01
@nozaq nozaq force-pushed the claude/pr-pin-checksums branch from f9a4aa8 to 9131812 Compare July 13, 2026 21:13
@nozaq nozaq force-pushed the claude/pr-sandbox-sync branch from b6487ce to 109e921 Compare July 13, 2026 21:15
@nozaq nozaq changed the title chore: sync sandbox dev containers with new build args chore: refresh stale sandbox dev container version pins Jul 13, 2026
Base automatically changed from claude/pr-pin-checksums to main July 13, 2026 21:22
sandbox-uv's UV_VERSION and sandbox-mise's MISE_VERSION had drifted
from their images' build.yaml (these plain version args aren't
Renovate-managed — renovate.jsonc's devcontainer.json regex manager
only matches @-suffixed values, so they were silently going stale;
worth a separate follow-up). Refresh both, and update sandbox-uv's
GH_VERSION renovate annotation to match #164's new datasource=deb
tracking now that gh installs from GitHub's apt repository.

sandbox-rust needs no changes: rust/Dockerfile now verifies rustup-init
against a checksum file committed directly under rust/ (bind-mounted
from the build context) rather than a build arg, so sandbox-rust's
existing DEBIAN_TAG/RUSTUP_VERSION args are already sufficient — no
per-devcontainer duplication needed.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Rt6cdQY4Q3ie1xpMgyy33S
@nozaq nozaq force-pushed the claude/pr-sandbox-sync branch from 109e921 to 2a1f370 Compare July 13, 2026 21:24
The devcontainer.json custom manager only matched values containing an
`@` (`tag@sha256:digest` or `name@version` forms), so any build arg set
to a bare version string — MISE_VERSION, UV_VERSION, GH_VERSION,
RUSTUP_VERSION, GOLANG_VERSION, GOPLS_VERSION, NODE_VERSION,
COREPACK_VERSION, BUN_VERSION, TERRAFORM_VERSION, TERRAFORM_LS_VERSION,
ZIG_VERSION, ZLS_VERSION, SHELL_COMPLETIONS_COMMIT across every sandbox
devcontainer.json — was silently unmanaged by Renovate. This is the
actual root cause behind sandbox-mise/sandbox-uv's stale
MISE_VERSION/UV_VERSION fixed earlier in this PR.

Add a third matchString mirroring build.yaml's existing "plain version,
no digest" pattern, adapted for JSON: it explicitly skips the quoted
key before capturing the value, since a naive port of the YAML pattern
would otherwise match the key name itself as currentValue (verified by
testing both against real annotated values).

Verified against every renovate-annotated value in
.devcontainer/*/devcontainer.json (25 comments across 10 files): each
now resolves to exactly one pattern with the correct currentValue,
including all the previously-unmatched plain-version entries. Also
validated with `renovate-config-validator`.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Rt6cdQY4Q3ie1xpMgyy33S
@nozaq nozaq merged commit b1384ca into main Jul 13, 2026
14 checks passed
@nozaq nozaq deleted the claude/pr-sandbox-sync branch July 13, 2026 21:37
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.

2 participants