case class RunnerSharedState(frames: Map[Int, Frame] = ..., userFinalModuleWatched: Option[Seq[Watchable]] = ..., bootstrapWorkers: Map[String, (Int, Val, TaskApi[_])] = ...)
Daemon-wide bootstrap cache shared across concurrent launcher runs.
Each stored frame represents reusable metadata from one level of build.mill evaluation: watches, classloaders, code signatures, classpaths, and worker caches that are safe to share between launchers. A frame whose bootstrap succeeded carries a RunnerSharedState.Frame.Reusable payload (which now also owns the per-classloader worker cache, so worker lifetime tracks classloader lifetime); a failed frame still publishes its watches so callers can use them to invalidate.
Drop frames at depths greater than maxDepth. Used after a launcher recursion completes to evict frames left over from a previous run that went deeper (e.g. when mill-build/build.mill was deleted between runs); without this, classloaders/workers at those depths are never displaced and leak for the daemon's lifetime.
Drop frames at depths greater than maxDepth. Used after a launcher recursion completes to evict frames left over from a previous run that went deeper (e.g. when mill-build/build.mill was deleted between runs); without this, classloaders/workers at those depths are never displaced and leak for the daemon's lifetime.