Update dependency mr-boxington to v1.11.0 - #104
Merged
Merged
Conversation
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.
This PR contains the following updates:
1.9.0→1.11.0v1.15.0(+4)Release Notes
jdx/mr-boxington (mr-boxington)
v1.11.0: : A Face for Your BuildsCompare Source
This release overhauls mbx's interactive build display with a live cargo-pretty UI and an animated Boxington mascot, adds append-only progress for piped and agent builds, and fixes a batch of macOS and C caching correctness and performance issues.
Highlights
bcm.c.Added
Live cargo-pretty display with cache statistics (#435, @jdx). Eligible
build,check,clippy,run, andtestinvocations on a real terminal now render an interactive UI adapted from cargo-pretty: live and completed crate rows, per-crate timers, a progress bar showing cache composition (green hits, amber misses, neutral bypasses), a warning/failure browser, native test results, and a final summary highlighting elapsed time and estimated compiler work saved. Cargo still runs the original command in a PTY; redirected output, explicit--message-format, and debug/trace logging keep plain Cargo output, andMBX_PRETTY_INSPECT=1opens the warning browser after a successful build. The vendored norimel renderer ships under MIT attribution recorded inNOTICE, now included in release archives.Animated Boxington mascot (#441, @jdx). At terminal widths of 96 columns or more, the Boxington mascot appears beside the interactive build panel. Its lid closes with Cargo's reported progress and a tape gun seals the box on success; failed or unknown-total builds leave it open. The animation adds no delay to command completion, and narrower terminals keep the existing compact layout. Agent and plain output print a static version once on stderr, with no colors or cursor controls.
Append-only progress for non-TTY and agent builds (#437, @jdx). Long builds captured through pipes no longer go silent between Cargo messages. mbx now prints an
mbx[progress]:line to stderr every 15 seconds for eligible long non-TTY commands, reporting elapsed time, cache hits/misses/bypasses, work not looked up, and estimated compiler work saved:A new
MBX_DISPLAY=plainoption disables the animated display even in a terminal, selecting ordinary Cargo output plus append-only progress. Short commands add no progress lines, and quiet mode, JSON output,MBX_SUMMARY=off, debug logging, andCARGO_TERM_PROGRESS_WHEN=neverkeep their existing output paths.Control storage of path-specific C objects (#432, @jdx). Disposable worktrees can accumulate C objects whose embedded absolute paths restrict cache reuse to the same checkout path. The new
cc_store_path_specific/MBX_CC_STORE_PATH_SPECIFICoption (enabled by default) lets you skip storing those path-specific entries while keeping portable C caching and reads of existing entries.mbx explain --lastnow describes the restriction and the storage option for cross-checkout misses.Fixed
mbx run/rkept the cache session alive for the application's whole lifetime, so builds it spawned inherited mbx's socket, adapters, and wrappers, and mbx diagnostics could leak onto the launcher's terminal. mbx now commits and closes the build session after Cargo returns, prints its cache summary, then starts the application through the caller's configured runner with only mbx's environment overrides restored. Cargo's dynamic-library paths remain intact and the application's exit status is returned. Launches using+toolchain,--config, or-Cfall back to ordinary Cargo with the caller's environment and do not receive an mbx session.deps/directory, but the injected-oso_prefixonly covered the executable's output directory, leaving checkout paths in the Mach-O debug map and causing cross-checkout verification failures. mbx now uses the shared target root for the prefix and gives managed targets the physical directory spelling ld64 uses for archive paths, so one prefix covers both object and rlib spellings.LC_ID_DYLIB, so a shadow build in another checkout produced different dylib bytes and shifted consumers'--externinput hashes, causing misses. mbx now injects a stable@rpath/<filename>install name when caching macOS proc macros, participating in the action key while keeping verification and dependent hashing byte-exact. Explicit install names are preserved and unsupported linker arguments still bypass caching.crypto/fipsmodule/aes/../..were each charged against the 16,384-entry manifest budget, so amalgamated sources such as aws-lc'sbcm.cexhausted the budget and were never cached. mbx now collapses equivalent roots when every removed..component traverses an existing ordinary directory, while paths with missing components or symlink traversals keep separate manifests. On an isolated aws-lc-sys 0.44.0 workload, warm builds improved about 29%.Full Changelog: jdx/mr-boxington@v1.10.1...v1.11.0
v1.10.1: : Sharper C/C++ caching and clearer diagnosticsCompare Source
This patch release restores and speeds up C/C++ caching in several environments that previously bypassed the cache or stalled, and makes verification and bypass diagnostics easier to act on.
Fixed
__FILE__strings stopped being cached after the earlier debug-path portability check landed, so they stored nothing even when rebuilt at the same path. mbx now caches these objects under an action key bound to the working directory, literal arguments, and mapping roots, carrying that requirement through local and remote restores. Portable objects keep their existing keys and runtime strings are unchanged./Applications/Xcode.approot, so C publication walked large SDK include trees as project directories, blew past the input budget, and rejectedSDKSettings.jsonas an unmapped absolute input. mbx now resolves the active developer directory once per process fromDEVELOPER_DIRorxcode-select --print-path, treating those SDK and toolchain files as machine-local. On the affected host this eliminated all 161 SDK-path refusals and the associated system-CPU spike./nix/storewhile normalizing input paths, because the resolver recursively listed every ancestor and the C adapter discarded its memo after each path. mbx now resolves each immediate parent without walking ancestors, caps remembered directory listings at 256 entries, and reuses a per-action path memo, while preserving symlink and case handling. In one Nix reproducer a cold build that previously timed out past 120s completed in about 10s.Cargo.lockidentity lost the clippy-only predictions and the next job could not look them up. mbx now merges predictions across all receipts for each task, with the newest completed receipt winning conflicts and a deterministic tie-breaker for equal timestamps.MBX_BYPASS_LOG, without contaminating compiler stderr or double-counting outcomes, and refuses publication when the pre-compile state cannot be established.mbx::sessiontarget, filterable viaMBX_LOG, without consuming the warning/error diagnostic budget or reaching compiler stderr. Unknown errors, failed input reads, and failed compiler identity probes still warn. This bumps the shim-agent protocol to v9.Note for library consumers
The
mbx-cache-ccchange in #423 adds a requiredpath_specificfield toCcInputPrediction. Rust code constructing it with a struct literal must set the field (falsepreserves the existing portable behavior). Existing serialized portable predictions remain compatible, and thembxCLI is unaffected.Full Changelog: jdx/mr-boxington@v1.10.0...v1.10.1
v1.10.0: : Interactive cache cleanup and safer target handlingCompare Source
This release adds an interactive picker for removing cached workspaces and fixes two correctness issues around target relocation and diagnostic replay that could otherwise leak stale mbx messages into Cargo builds or strand an in-progress build.
Added
Interactive cache removal (#403, @Kemperino).
mbx cache removenow accepts--interactive, so you can multi-select recorded workspaces to forget instead of copying paths out ofmbx cache projects. The picker shows each workspace's live/stale state and logical sizes, defaults to nothing selected with an explicit confirmation, continues past individual failures while reporting a non-zero exit, and requires a terminal. Removal still deletes only managed build targets and the selected workspaces' cache claims; source files and shared cache objects used by other workspaces are left untouched.You must pass exactly one of an explicit
<WORKSPACE>path or--interactive.Fixed
mbx[error], and a warning can no longer suppress an identical fatal reason. If delivery fails, the agent is too old, or the diagnostic budget is exhausted, the local fatal-error fallback is preserved.MBX_CACHE_DIRin a second invocation could relocate a managedtargetdirectory while Cargo was still building in it, deleting the tree and leaving Cargo unable to write fingerprint diagnostics or build-script output. mbx now acquires the existing view's Cargo build locks before swapping its symlink and holds them through relocation; if a build holds a lock, the target and its ownership record are left intact. This covers native profiles as well as target-triple/profile layouts.Full Changelog: jdx/mr-boxington@v1.9.0...v1.10.0
Configuration
📅 Schedule: (in timezone Asia/Tokyo)
* * * * 1)🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.