Skip to content

Limits

mr boxington favors correct uncached work over risky cache reuse.

Run Cargo through mbx

Plain Cargo commands do not start the session agent, so they get no mbx cache. Use mbx build, mbx test, mbx clippy, and the same pattern for other Cargo subcommands.

Linking is not cached

Binaries and dynamic libraries always link. mbx caches supported rustc compilations, not the final link action.

OUT_DIR sharing is opt-in

A generated source path can contain an absolute checkout-specific OUT_DIR. MBX_SHARE_OUT_DIR=1 remaps the path and inspects outputs before choosing a shared key, but generated sources then appear in debug info under a placeholder path. It cannot detect a value derived from the path without embedding the path itself.

Incremental output reduces sharing

MBX_INCREMENTAL=1 can improve a local edit/rebuild loop, but an incremental artifact changes the content inputs of dependent crates. Those crates then miss even if another checkout built the same source. CI disables incremental builds.

Collection is approximate

Object eviction prefers abandoned checkout data and then older access times. Filesystems using relatime coarsen that order; noatime removes it. A poor choice costs a recompile, not correctness.

The configured size budget covers action objects and results. Prediction data, checkout records, temporary downloads, and managed target directories make the whole cache directory somewhat larger.

MIT LicenseCopyright © 2026jdx.dev