perf(box): speed cold docker builds and fix update --check estimates - #260
Open
juul-charles-w wants to merge 3 commits into
Open
perf(box): speed cold docker builds and fix update --check estimates#260juul-charles-w wants to merge 3 commits into
juul-charles-w wants to merge 3 commits into
Conversation
Replace apt nodejs meta-packages with the official Node binary, bump cryptography to a cp312 wheel, and hash the target-ref Dockerfile so forward version jumps no longer report a false ~90s cached estimate. Also surface live docker-build detail on the progress bar and use algorithms.AES for BluFi so the crypto bump stays compatible. Co-authored-by: Cursor <cursoragent@cursor.com>
The at-ref hasher used bash pattern substitution and `printf -v`, both of which are silently wrong under dash — the digest would never match the stored working-tree hash on a box whose login shell is /bin/sh, making every --check report a spurious rebuild. Rewrite with `git show | sha256sum | sed` and the same `out=$(...)` + `echo "$out" | sha256sum` composition as the working-tree hasher, so the two are byte-identical by construction. Add tests that execute both snippets under `sh` against a fake box layout rather than asserting on substrings. Co-authored-by: Cursor <cursoragent@cursor.com>
Main's build-hash now walks ~/box/lager; keep the equivalence tests and preview assertions aligned so a Dockerfile-only at-ref hasher cannot regress silently. Co-authored-by: Cursor <cursoragent@cursor.com>
juul-charles-w
requested review from
adhanali,
cmfisher606 and
danielrmerskine
as code owners
August 14, 2026 16:14
6 tasks
7 tasks
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.
Summary
nodejs npm, pincryptography==43.0.3for cp312 wheels, keepflex/bisononly in the uldaq layer.lager update --checkhash the target ref’s Dockerfile/requirements/source tree so forward jumps no longer falsely report~90s (cached build).algorithms.AES(stable across cryptography versions) while keeping main’s CFBdecrepitimport path; show live Docker build detail on the progress bar.Test plan
pytest test/unit/cli/ cli/tests/ test/unit/blufi/— pass locally after rebase onto currentmainorigin/mainclean (rebased again after 3 CI-only main commits)lager update --box <box> --checkagainst a forward jump that changes the Dockerfile → reports fresh build, not cacheddocker builder prune -afthen build this Dockerfile; expect Nodev20.18.1and cryptography43.0.3Made with Cursor