Release 2.1.206 (2026-08-24)¶
Bug fixes¶
- stop validation descending into .worktrees/ and sibling build trees (#2907)
- fix(cpp): exclude .worktrees and nested build dirs from lint scope
The cpp LINT clang-format find driver pruned only the top-level ./build and ./build-sanitize via -path, and cppcheck excluded only build/build-sanitize with -i. A root-level validation therefore descended into sibling .worktrees/
The find driver now prunes directories named build, build-sanitize, or .worktrees at any depth (not just the top level), and cppcheck adds -i .worktrees. A validation of one worktree can no longer read another worktree's tree. Ref #2906.
- fix(gitignore): ignore the C++ ASan/UBSan build-sanitize/ dir
The baseline ignored build/ but not build-sanitize/, the separate out-of-tree dir the cpp TEST stage uses for its sanitizer build. A cpp dev build therefore left build-sanitize/ untracked, dirtying the worktree so finalize cleanup could not sweep it — the leftover worktree a root validation then descended into (#2906). Ignore it in both the baseline and this repo's flagship .gitignore so the worktree stays clean and sweeps automatically. Ref #2906.
- fix(container-cache): capture warmup output under the finalize progress display
The cache-build warmup ran via 'start -a' with inherited stdout, streaming the full Conan/CMake build (gtest compiled from source) raw over vrg-finalize-pr's live progress tree, where it read as output outside the script.
Thread a quiet_warmup flag through provision_dev_image -> ensure_cached_image -> _build_cached_image: when set, the warmup subprocess is captured and its output folded into the error on failure, instead of streamed. vrg-finalize-pr's provision stage sets it because it runs under the progress display; the interactive vrg-container-run cold-rebuild path leaves it unset so a multi-minute build still streams live and never looks hung. Ref #2906.
- test(container-cache): cover the quiet-warmup empty-output failure branch
Adds the case where a captured warmup failure has no output, so the error falls back to the bare 'Cache build failed' message. Restores 100% branch coverage for the quiet_warmup path. Ref #2906.
CI Evidence: All gates passed — full audit bundle available. Download →