78465e7aaf
ensureRunnerScript() memoized the staged runner path in a module-level RUNNER_SCRIPT_PATH and returned it on the warm path with no existence check, defeating the cold path's own self-heal. If the tmpdir cache (os.tmpdir()/omp-<lang>-runner) was cleared mid-session (e.g. a macOS periodic clean_tmps sweep), the process kept handing out a path to a deleted file and every later Python/Julia/Ruby kernel start failed to spawn until restart. Extract the three copy-pasted ensureRunnerScript implementations into a single stageRunnerScript helper that re-checks fs.existsSync before reusing the memoized path, so a swept runner is re-staged on the next call. Route the Python, Julia, and Ruby kernels through it. Fixes #8140