Skip to content

Update dependency mr-boxington to v1.11.0 - #104

Merged
renovate[bot] merged 1 commit into
mainfrom
renovate/mr-boxington-1.x
Sep 21, 2026
Merged

renovate[bot] merged 1 commit into
mainfrom
renovate/mr-boxington-1.x

Conversation

@renovate

@renovate renovate Bot commented Sep 21, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Type Update Change Pending
mr-boxington tools minor 1.9.0 → 1.11.0 v1.15.0 (+4)

Release Notes

jdx/mr-boxington (mr-boxington)

v1.11.0: : A Face for Your Builds

Compare 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

  • A new interactive terminal UI replaces the single spinner: live per-crate rows, timers, a cache-composition progress bar, a warning/failure browser, and an animated Boxington mascot that seals on success. Non-TTY and agent builds get periodic plain-text progress lines instead of going silent.
  • Several macOS and C caching correctness fixes eliminate cross-checkout misses and verification divergences for proc macros, example links, and stderr-only conflicts, plus a large speedup for amalgamated C sources like aws-lc's bcm.c.

Added

  • Live cargo-pretty display with cache statistics (#​435, @​jdx). Eligible build, check, clippy, run, and test invocations 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, and MBX_PRETTY_INSPECT=1 opens the warning browser after a successful build. The vendored norimel renderer ships under MIT attribution recorded in NOTICE, 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:

    mbx[progress]: 15s elapsed; 12 hits, 3 misses, 0 bypassed, 0 not looked up; ~8.4s compiler work saved
    

    A new MBX_DISPLAY=plain option 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, and CARGO_TERM_PROGRESS_WHEN=never keep 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_SPECIFIC option (enabled by default) lets you skip storing those path-specific entries while keeping portable C caching and reads of existing entries. mbx explain --last now describes the restriction and the storage option for cross-checkout misses.

Fixed

  • End build sessions before launching run targets (#​436, @​jdx). mbx run/r kept 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 -C fall back to ordinary Cargo with the caller's environment and do not receive an mbx session.
  • Recover C predictions after stderr-only conflicts (#​431, @​jdx). When recompiling a C source produced identical object bytes but different stderr (such as GCC's random assembler tempfile name), immutable publication rejected the result without recording a prediction, so the compilation repeated and warned on every build. mbx now validates the existing cached entry and records its prediction when stdout, object bytes, and file mode match, replaying the original stderr. Genuine differences in objects or stdout still surface the publication failure.
  • Cover dependency debug paths in macOS links (#​430, @​jdx). macOS example executables link rlibs from the sibling deps/ directory, but the injected -oso_prefix only 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.
  • Stabilize macOS proc macro install names (#​427, @​jdx). macOS proc macros embed their absolute output path in LC_ID_DYLIB, so a shadow build in another checkout produced different dylib bytes and shifted consumers' --extern input 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.
  • Deduplicate equivalent C include manifest roots (#​429, @​jdx). Equivalent include-directory spellings like crypto/fipsmodule/aes/../.. were each charged against the 16,384-entry manifest budget, so amalgamated sources such as aws-lc's bcm.c exhausted 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 diagnostics

Compare 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

  • Cache C objects that embed literal paths again (#​423, @​jdx). C compilations containing absolute __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.
  • Recognize the active Xcode developer directory on macOS (#​425, @​jdx). With Xcode-beta or a relocated Xcode selected, its SDK sits outside the fixed /Applications/Xcode.app root, so C publication walked large SDK include trees as project directories, blew past the input budget, and rejected SDKSettings.json as an unmapped absolute input. mbx now resolves the active developer directory once per process from DEVELOPER_DIR or xcode-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.
  • Avoid repeated Nix store scans during C builds (#​414, @​jdx). C builds with a Nix toolchain could spend minutes enumerating /nix/store while 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.
  • Retain predictions from every exported command (#​424, @​jdx). A grouped object-cache export replaced a task's entire prediction manifest with its last command's receipt, so a job running clippy and then tests under the same Cargo.lock identity 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.
  • Report C cache publication failures and require valid snapshots (#​421, @​jdx). C compilations could succeed while cache publication was refused, with release builds hiding the failure and a discarded pre-compile snapshot allowing publication without an established directory state. mbx now surfaces publication failures with the affected unit and reason through session diagnostics and MBX_BYPASS_LOG, without contaminating compiler stderr or double-counting outcomes, and refuses publication when the pre-compile state cannot be established.
  • Distinguish divergent compilation outputs in verification (#​420, @​jdx). Shadow verification could collapse multiple divergent compilations into a single unnamed stderr warning because the session deduplicates identical messages. Each warning now identifies the adapter, crate/source, and action identity, and shows the first differing stdout/stderr byte, line number, and bounded escaped excerpts. Artifact comparison and divergence counts are unchanged.
  • Forward routine shim diagnostics as debug logs (#​417, @​jdx). Routine compiler queries and conservative cache bypasses previously produced warning-labeled messages in debug builds, while prediction inheritance logged at INFO. These routine outcomes are now emitted as true DEBUG records in all builds under the mbx::session target, filterable via MBX_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-cc change in #​423 adds a required path_specific field to CcInputPrediction. Rust code constructing it with a struct literal must set the field (false preserves the existing portable behavior). Existing serialized portable predictions remain compatible, and the mbx CLI is unaffected.

Full Changelog: jdx/mr-boxington@v1.10.0...v1.10.1

v1.10.0: : Interactive cache cleanup and safer target handling

Compare 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 remove now accepts --interactive, so you can multi-select recorded workspaces to forget instead of copying paths out of mbx 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.

    mbx cache remove --interactive

    You must pass exactly one of an explicit <WORKSPACE> path or --interactive.

Fixed

  • Keep rustc shim diagnostics out of Cargo fingerprints (#​405, @​jbellis). Cargo saves rustc-wrapper stderr in its fingerprint outputs, so an mbx rejection or cache warning could reappear on a later successful build even when rustc never ran. mbx now routes shim diagnostics through the live session agent, reserving compiler stderr for compiler output. Fatal diagnostics print as 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.
  • Preserve active Cargo targets during cache-dir changes (#​399, @​jdx). Changing MBX_CACHE_DIR in a second invocation could relocate a managed target directory 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)

  • Branch creation
    • Only on Monday (* * * * 1)
  • Automerge
    • At any time (no schedule defined)

🚦 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.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate
renovate Bot enabled auto-merge (squash) September 21, 2026 02:55
@renovate
renovate Bot merged commit f352864 into main Sep 21, 2026
3 checks passed
@renovate
renovate Bot deleted the renovate/mr-boxington-1.x branch September 21, 2026 02:57
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.

0 participants