Repository navigation
Latest tooling pins (2026-10-29) and crescent amendment E4 - #238
Merged
Merged
Conversation
88plug
force-pushed
the
claude/latest-tooling-1029
branch
from
October 29, 2026 20:18
df38fd7 to
c2a68d6
Compare
88plug
commented
Oct 29, 2026
88plug
left a comment
Owner
Author
There was a problem hiding this comment.
Independent review of c2a68d6: approve. No defects found; nothing pushed to the branch.
Versions, re-read 2026-10-29 (~20:40Z)
- Every action SHA equals
gh api repos/<repo>/commits/<tag>for its latest release. The kept actions (setup-chrome v2.2.0, setup-helm v5.0.1, action-shellcheck 2.0.0, create-pull-request v8.1.1, the pages actions) are also latest. - hadolint-action v3.5.0's Dockerfile is
hadolint:v2.15.1-debian. docker buildx imagetools inspectmatches every moved digest: brew 7.0.11, devcontainers/base 2.2.5-trixie, prometheus v3.15.1, python 3.15.2-slim, 3.13.18-slim-trixie and 3.14.10-slim. Each is the newest tag in its line. The kept debian:trixie-slim, fedora:44 and nfpm v2.48.0 digests are current.- The sha256 values match upstream: kubectl v1.37.2 (amd64 and arm64), promtool 3.15.1, helm v4.3.1 and uv 0.13.6.
- The nixos-26.05 head is
08d3a975, Chrome for Testing Stable is 156.0.8078.73, nix 2.35.4 is the newest tag, and k3s v1.37.1+k3s1 is still the newest k3s. - The PyPI pins are all latest. The deliberate exceptions are correct:
- litellm 1.83.14 is EAT release-1.1.0's gateway tag, and the index digest
73cbb215is unchanged. - transformers and huggingface-hub sit at optimum-intel 2.2.0's
<5.6and<1.22bounds. - crewai 1.15.33 and litellm 1.83.14 both require Python
<3.14.
- litellm 1.83.14 is EAT release-1.1.0's gateway tag, and the index digest
- torchvision 0.29.2 requires
torch>=2.14.0(py3-none wheels), so the torch 2.15.0 pair resolves.hack/bump-convert-pins --dry-runmoves nothing. With uv, the probe's PIP_PINS resolve for cp314 to 57 packages.
Amendment E4
- It adds lines only, and no prediction is edited.
- PR #238 was opened at 11:14Z with E4, before H52b's 18:32Z hold. H53 and H58 are still PENDING.
- All five anchors resolve. Q2's commit time (19:34:29Z, #243) matches the text.
- On current main, H60 still runs from
~/k3dgpu-xhost/binafter V1 (#244), so item 4 holds. - Item 3, reproduced with uv 0.13.6:
uv venvover an existing venv exits 2 without--clear.- A fresh build gets the 2025-10-07 build of 3.12.11, and its freeze equals
banking-venv.txt(71 packages). - A uv 0.8.0 build gets the 2025-07-11 build, and uv 0.13.6 over it reports "Checked 71 packages" with nothing installed.
- The render check, reproduced with helm v4.1.1 against v4.3.1 at
c86c42band0d3438d:- B2 has 5 objects, eat-vllm 6 and ovms 4.
- Each pair parses equal, and the text differs only in blank lines.
- After
stage.py, the staged B2 (xpu) and B1g (vllm) are byte-identical.
Suites (PR head, and a local merge with main d997ea89)
- The ledger checks pass on both trees:
claims_check(26 files clean),ledger_drift_check(41 files, 81 rows) andpe_premise_check. - The PR head merges cleanly with main
d997ea89. - Test suites, all passing:
- image_pins 43, ci_wiring 69, packaging 126, kserve 29, quickstart 174 and adversarial 8.
- bench 71, autoquant 27, console 61, audit 49, image 26, eat 64, xhost_tools 18, model_share 52, model_opt 37.
- host_setup 269, gate_merge 31, register_model 23, chat_ui 25, wildct_hold 38, hold_own 63.
- test_holds, test_crescent, test_pairs (63), test_h54 and test_h59 all report OK.
- Container checks:
telemetry_testwith sha-checked promtool 3.15.1: 27 passed.report_html_testwith Chrome for Testing 156.0.8078.73, headless required: 48 passed.- All five agent examples pass.
- In python:3.15.2-slim, the docs install with hashes,
docs_testpasses 63, andmkdocs build --strictsucceeds.lock.shfrom scratch reproducesrequirements.txtbyte for byte. check.sh brew(7.0.11, withbrew trust --tap) andcheck.sh nix(2.35.4) pass.
- Lint is clean: actionlint 1.7.12, hadolint 2.15.1 at the error threshold, and shellcheck 0.11.0 at warning severity on the changed scripts.
Non-blocking: in E4's "Why", the "(released 2026-10-27)" reads as if it covers helm v4.3.1 too. helm v4.3.1 was released on 2026-10-15; only uv 0.13.6 was released on 2026-10-27.
…leases Each action stays pinned to the commit of its release tag, read with `gh api repos/<repo>/commits/<tag>` on 2026-10-29. - actions/checkout v6.1.0 -> v7.0.1 in every workflow (docs.yml already ran v7.0.1). v7 blocks checking out a fork PR under pull_request_target and workflow_run; no workflow here uses either trigger. - docker/setup-buildx-action v3.12.0 -> v4.4.1, docker/login-action v3.7.0 -> v4.7.0, docker/build-push-action v6.19.2 -> v7.4.0. The majors move to Node 24 and drop deprecated inputs and the DOCKER_BUILD_* envs; build-and-push.yml uses none of them. - softprops/action-gh-release v2.6.2 -> v3.0.3 (Node 24 runtime, same inputs). - hadolint/hadolint-action v3.3.0 -> v3.5.0, which bundles hadolint 2.15.1, the version the devcontainer pins. - KSXGitHub/github-actions-deploy-aur v4.1.3 -> v4.2.0 (adds asset_dir; pkgbuild and the other inputs we pass are unchanged). - promtool 3.15.0 -> 3.15.1, with the sha256 from its sha256sums.txt. - Chrome for Testing 155.0.8059.84 -> 156.0.8078.73, the current Stable.
…4 and Homebrew 7.0.11 - install.sh installs kubectl v1.37.2 (dl.k8s.io stable.txt, 2026-10-28), with the amd64 and arm64 sha256 from dl.k8s.io. - flake.lock moves nixpkgs to the nixos-26.05 head 08d3a975 (2026-10-28), regenerated by packaging/nix-check.sh with K3D_GPU_NIX_LOCK=1. - The nix check image moves to nixos/nix 2.35.4 and the Homebrew image to ghcr.io/homebrew/brew 7.0.11, both by digest. - Homebrew 7.0.11 loads a non-official tap's formulae implicitly only for install, reinstall and upgrade (Homebrew/brew#24352). brew style, audit, test and linkage then refuse the staged tap, so homebrew-check.sh trusts it with `brew trust --tap` right after tapping it.
The docs interpreter moves from python:3.14.8-slim to python:3.15.2-slim, the newest Python release (2026-10-25), pinned by its index digest. mkdocs-material moves to 9.8.0. requirements.txt is regenerated from scratch with docs-build/lock.sh in that image, so every transitive pin is the newest the direct pins allow: certifi 2026.10.23, markdown 3.11.2, platformdirs 4.14.0, python-dateutil 3.0.0 and tzdata 2026.6 (new, from dateutil 3). mkdocs 1.6.1 and pymdown-extensions 12.3 are already their latest releases. In that image the hashed install, tests/docs_test.sh (63 passed) and `mkdocs build --strict` all pass.
…s refrozen - crewai 1.15.28 -> 1.15.33; langgraph 1.2.15 -> 1.2.18, langchain-openai 1.7.2 -> 1.7.3 and langchain-core 1.6.11 -> 1.7.1 (langchain-openai 1.7.3 needs core >= 1.7.0); openai 3.31.0 -> 3.41.0 for openai-agents 0.24.0. llama-index, mcp and openai-agents are already their latest releases. - litellm stays 1.83.14: it is the LiteLLM that EAT release-1.1.0's gateway ships (v1.83.14-stable.patch.2), and EAT has no newer release. - The test image moves to python:3.13.18-slim-trixie. It stays on 3.13 because crewai 1.15.33 and litellm 1.83.14 both require Python < 3.14. - Each constraints.txt is refrozen: requirements.txt installed alone in that image, `pip check`, then `pip freeze --all --exclude pip`. tests/agent_examples_test.sh passes all five examples.
mcr.microsoft.com/devcontainers/base moves from 2.2.3-trixie to 2.2.5-trixie, the newest release (the same index digest the floating :trixie tag serves). The image builds, and its pinned tools report the expected versions: shellcheck 0.11.0, hadolint 2.15.1, kubeconform 0.8.0, actionlint 1.7.12, helm 4.3.1 and python3-yaml 6.0.2.
…e on Python 3.14.10 - console/convert-pins.json: torch 2.14.1 -> 2.15.0 and torchvision 0.29.1 -> 0.29.2, exactly what `hack/bump-convert-pins` moves (its run here). The other pins are already the newest optimum-intel 2.2.0 allows (transformers < 5.6, huggingface-hub < 1.22). - bench/amx-autoquant/probe.sh: the NLL venv takes the same torch 2.15.0+cpu and torchvision 0.29.2+cpu from the PyTorch CPU index. Its image moves from python:3.12-slim (3.12.15, digest only) to python:3.14.10-slim, written with its tag so the nightly repin can move it. 3.14 is the newest Python openvino 2026.4.1 has wheels for (cp310-cp314). The venv builds there, `pip check` is clean, and the stack imports. H27 and H27x name their own commits, so their records are unaffected.
cert-manager v1.21.3 (2026-10-23) removes trust in the compromised eMudhra root, fixes an ACME ARI renewal loop and a next-private-key Secret ownership check, and moves to Go 1.26.10. Its OCI chart at quay.io/jetstack resolves (sha256:e482675a...). KServe v0.21.0 is still its latest release.
….13.6 Shared rule 5 pins kubectl v1.35.2, helm v4.1.1 and uv 0.8.0 in the crescent workspace. The rows' node image runs k3s v1.37.1, two minors past kubectl v1.35, outside kubectl's one-minor skew. Amendment E2 item 3 says moving these tools takes a further amendment; E4 is that amendment, recorded before any H52b, H53 or H58 hold. Mechanics only: no arm, prediction, statistic, gate or cap changes. - setup.sh installs kubectl v1.37.2, helm v4.3.1 and uv 0.13.6, each still checked against its upstream checksum. - uv 0.13 refuses to overwrite an existing venv, so setup.sh keeps an existing mafvenv. Run twice under a scratch HOME, setup.sh passes both times, and the venv equals banking-venv.txt. A uv 0.13.6 build of the venv freezes identical to a uv 0.8.0 build. - Render check: with helm v4.1.1 and v4.3.1, H53's B2 render, H54's eat-vllm render and the 0d3438d ovms render give the same objects (the text differs only in blank lines and trailing whitespace), and the staged B2 and B1g are byte-identical. - H54q keeps its own ~/k3dgpu-gemma/bin. Its runner amendment, not yet written, names its tools; E4 records the render check for its EAT renders. - EAT_REV stays 0d3438d. Its checkout serves only H50o's B3, a row that has run. The shared LiteLLM gateway runs EAT's image, not EAT's chart, and release-1.1.0 pins the same image tag, whose digest is unchanged.
The framework bump left examples/agents/README.md's table on the old pins: openai 3.31.0, langgraph 1.2.15, langchain-openai 1.7.2, langchain-core 1.6.11 and crewai 1.15.28. The table now names openai 3.41.0, langgraph 1.2.18, langchain-openai 1.7.3, langchain-core 1.7.1 and crewai 1.15.33. tests/agent_examples_test.sh now checks, before it starts an example's container, that the example's README row names exactly the pins in its requirements.txt. On the old table it fails crewai, langgraph and openai-agents; on this one all five examples pass.
Amendment Q1 is H54q's reference-arm, cap and order amendment, not its runner amendment: Q1 itself says H54q has no runner yet and that a runner amendment lands before its first hold. E4 item 5 named Q1 as that runner amendment. It now says the runner amendment Q1 requires names H54q's tools. No other text changes.
CI already runs promtool 3.15.1, but the opt-in Prometheus server in share/telemetry/prometheus.yml stayed on v3.15.0. v3.15.1 (2026-10-21) is the newest release and a security release: CA certificates that distrust the two roots behind the compromised eMudhra intermediates, Go 1.27.3 for net/http, net/textproto, crypto/tls and html/template, and golang.org/x/net v0.60.0 for the HTTP/2 advisories. Nothing else changes. The manifest, its header, images.lock and docs/telemetry.md move to quay.io/prometheus/prometheus:v3.15.1 at its index digest fa330227..., read with docker buildx imagetools inspect and scripts/images-lock digest on 2026-10-29. scripts/images-lock check and pins pass; telemetry_test (with promtool 3.15.1), audit_test, console_test, image_pins_test and share_kubeconform pass.
- tests/packaging_test.sh renders the formula wrapper as Homebrew's Pathname#write_env_script does. Its comment named brew 7.0.9; CI now runs 7.0.11, whose write_env_script (Library/Homebrew/extend/pathname.rb) is the same code, so the comment names 7.0.11. - bench/amx-autoquant/probe.sh moved to torch 2.15.0+cpu and torchvision 0.29.2+cpu on 2026-10-29, but still said its pins were checked on 2026-10-17. A pip --dry-run of PIP_PINS in python:3.14.10-slim resolves them (57 packages) on 2026-10-29.
langchain-core 1.7.2 was released on 2026-10-29 at 19:04Z, after this branch's first freeze. Every example's constraints.txt is refrozen the same way in python:3.13.18-slim-trixie: requirements.txt installed alone, pip check, then pip freeze --all --exclude pip. The refreeze also moves langsmith 0.14.16, pydantic 2.14.2 and pydantic_core 2.50.2, the opentelemetry 1.45.2 / 0.66b2 set and huggingface_hub 2.4.0 (crewai). litellm-gateway's set is unchanged. tests/agent_examples_test.sh passes all five examples.
… hold The amendment's facts are brought up to date; no pin, checksum, check or render changes, and every pin it names was read again on 2026-10-29 at 19:50Z (kubectl v1.37.2, helm v4.3.1 and uv 0.13.6 are still the newest, with the same sha256; k3d v5.9.0, EAT release-1.1.0, EAB v1.0.0 and the LiteLLM index digest 73cbb215 are unchanged). - Item 2: H52b came first. Its one hold (18:32-18:43Z, PR #232) ran before setup.sh, on shared rule 5's k3d v5.9.0, kubectl v1.35.2 and helm v4.1.1, as its records name them. - Item 4: H59 and H60 have merged. H60's Reproduce block runs it from the cross-host workspace ~/k3dgpu-xhost/bin, which amendment K1 covers and setup.sh does not touch, so E4 does not cover it. H59 has no runner yet; its runner amendment names its tools. - Item 5: H54q's runner amendment Q2 was pushed at 19:34Z (PR #243). It keeps H54a's tools in ~/k3dgpu-gemma (kubectl v1.35.2) and renders no arm with helm, so E4 does not touch H54q.
langchain-core 1.7.3 was released at 20:55Z on 2026-10-29, after the last pin read. The langgraph example moves to it. All five examples were refrozen in python:3.13.18-slim-trixie; only langgraph's set changed, by that one line.
88plug
force-pushed
the
claude/latest-tooling-1029
branch
from
October 29, 2026 21:40
c2a68d6 to
6ae8b24
Compare
This was referenced Oct 30, 2026
Closed
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.
Moves the repo's tooling pins to their latest releases, checked on 2026-10-29. It also adds crescent amendment E4, which moves the crescent workspace's kubectl, helm and uv before the pending rows run.
Rebased on main
e5748cd1(2026-10-29, after batch #241, #242, #232, #244, #245 and #246). The last rebase, fromf53eac15, applied cleanly: #244, #245 and #246 touch none of this PR's files except EXPERIMENTS.md and README.md, in other sections. E4 still reads true after them: H60's amendment V1 (#244) changes its llama.cpp image, not the workspace it runs from, and wildct amendment R3 (#245) is not a crescent row.The first rebase, onto
f53eac15: #220 is squash-merged, so the branch now carries only its own commits. The rebase dropped #220's commits;.github/workflows/ci.yml,docs-build/Dockerfileandtests/agent_examples_test.shthen applied cleanly. The only conflict was EXPERIMENTS.md, where E3 and the H50, H50o and H51 sections now follow E2; keep-both puts E4 after them, before the H53 pre-registration.Every pin was read again at the rebase (2026-10-29, about 19:45Z). One had moved: langchain-core 1.7.2 was released at 19:04Z, so the langgraph example moved to it and all five constraints files were refrozen. They were read again at the last rebase (about 21:20Z), with the use-latest-version checks, PyPI for every docs lock pin, Docker Hub, MCR, Chrome for Testing, dl.k8s.io and the nixos-26.05 head. One had moved again: langchain-core 1.7.3 was released at 20:55Z, so the langgraph example moves to it. All five examples were refrozen in python:3.13.18-slim-trixie, and only that line changed. Everything else, including each image digest, the nixos-26.05 head, Chrome Stable and the docs lock regenerated from scratch, is unchanged.
How versions were checked
gh apireleases, andcommits/<tag>for every action SHA.requires_python.scripts/images-lock digestanddocker buildx imagetools inspectfor every image digest.stable.txtand.sha256,get.helm.shsums, and Chrome for Testing's last-known-good Stable.mirror.gcr.io. A digest names the same content on either host.Changes (class "ours")
3d3c42e5f87e599181c6f93dc3c9e263efb3536906be81ba(hadolint 2.15.1, as the devcontainer)084b0d9b6a726885...share/telemetry/prometheus.yml, images.lock)fa330227packaging/install.shkubectl26f4107e08d3a975(branch head 2026-10-28)f159a58fe50d8c4671b6fe7cc415854376baad60console/convert-pins.jsontorch / torchvisionhack/bump-convert-pins)3cabfd7dNotes on what the bumps needed:
install,reinstallandupgrade(Limit implicit item trust to install commands Homebrew/brew#24352). The first run ofpackaging/check.sh brewfailed atbrew stylewith "Refusing to load formula ... from untrusted tap".homebrew-check.shnow runsbrew trust --tap 88plug/k3d-gpuafter tapping, and the full check passes.--stricton it.+cpupair.lock.shrun keeps the old transitive pins.pull_request_targetandworkflow_run. No workflow here uses either trigger.DOCKER_BUILD_*envs. None are used here.Crescent amendment E4 (EXPERIMENTS.md)
~/k3dgpu-bench/bin.~/k3dgpu-xhost/bin(its Reproduce block), which cross-host amendment K1 covers, so E4 does not cover it. H59 has no runner yet.~/k3dgpu-gemmaand renders no arm with helm.uv venvexits 2 without--clear), so setup.sh keeps an existingmafvenv.banking-venv.txt.eat-vllmand the0d3438dovms chart.stage.py, the staged B2 and B1g are byte-identical.~/k3dgpu-gemma/bin, as its runner amendment Q2 (ledger(H54q): INCONCLUSIVE on the Xeon 6741P; runner amendment Q2 and the run #243) says. E4 records the render check for its EAT renders.0d3438d, against the audit's suggestion.live.shruns EAT's image as a container with its own config.73cbb215...is unchanged. Moving EAT_REV would change no pending row's objects.Kept on purpose
0c726f57): the bastion's helm v3.14.0, the LiteLLM example's litellm 1.83.14, and the banking venv (EAB v1.0.0).ov-export-venv.txtandexport_qat_ov.sh, anddocs/security-audit.md's dated table.bench/h54/convert.shandov-export-venv.txt(H54q continues H54a's builds), andbench/h57d/convert.sh(H57dp, H57de and H57w* need H57d's drafter bytes).hack/tools.envstays on helm v3.22.1 (the newest v3), because helm v4 renders differently.bench/eatflow/agent.lockproxy_pythonandlive.shRAPL_IMAGE(python:3.14.8-slim), and the python:3.13-slim images of the wildct, zero-copy and model-share paths. Moving them needs those rows' own amendments.Not in this PR
bench/xhost/tools.shunder cross-host amendment K1, andbench/wildct/install.shunder wildct amendment P1 (both landed with batch batch: land #182, #236, #195, #224, #237, #226, #239, #230, #210, #233, #196, #235, #207, #213, #228, #227 #241).Tests
At the last rebase (main
e5748cd1, with langchain-core 1.7.3):tests/claims_check.sh26 files clean;claims_check_test.sh81 passed;tests/ledger_drift_check.py41 files agree with 81 rows;ledger_drift_check_test.pyOK;pe_premise_check16 passed and ok;model_cards_license_test.pyOK.scripts/images-lock checkandpinsok;image_pins_test43,ci_wiring_test69,gate_merge_test31,packaging_test126,kserve_test29,platforms_doc_test195,detect_test1185,console_test61,quickstart_test174,wildct_hold_test41,xhost_tools_test18,hold_own_test63,bench_test71,autoquant_test27 passed.crescent/test_holds.py,wildct/test_wildct.py,test_pairs.py,h54/test_h54.pyandh59/test_h59.pyOK.tests/agent_examples_test.sh: all five examples pass in python:3.13.18-slim-trixie.At the first rebase:
Run at the rebase. After #232 landed, the ledger, pin, packaging, kserve, bench, console, docs and crescent checks were run again at the final head (main
f53eac15):tests/claims_check.sh26 files clean;tests/claims_check_test.sh81 passed;tests/ledger_drift_check.py41 files agree with 81 rows;ledger_drift_check_test.pyOK;pe_premise_check16 passed and ok;model_cards_license_test.pyOK.scripts/images-lock checkandpinsboth ok.scripts/images-lock repinover every file whose image this PR moves changes nothing.tests/image_pins_test.sh43 passed;tests/ci_wiring_test.sh69 passed.tests/agent_examples_test.sh: all five examples pass in python:3.13.18-slim-trixie, with the refrozen constraints.tests/docs_test.sh(63 passed) andmkdocs build --strict.docs-build/lock.shfrom scratch reproduces the committed lock byte for byte.tests/telemetry_test.shwith promtool 3.15.1, sha256-checked as CI installs it: 27 passed.tests/report_html_test.shwith Chrome for Testing 156.0.8078.73, headless required: 48 passed.packaging/check.sh nixin nixos/nix 2.35.4:nix flake OK.packaging/check.sh brewon brew 7.0.11:homebrew formula OK.tests/packaging_test.sh126,kserve_test29,quickstart_test174,quickstart_adversarial8,bench_test71,console_test61,model_opt_test37,autoquant_test27,audit_test49,xhost_tools_test18,model_share_test52,image_test26,eat_test64,host_setup_test269,gate_merge_test31,auto_release_cas_test17,register_model_test23,chat_ui_test25,wildct_hold_test38,hold_own_test63.crescent/test_holds.py,crescent/test_crescent.py,test_pairs.py,h54/test_h54.pyandh59/test_h59.pyOK.