9a77de464a
Per Phase 0 audit findings (G1, G2), the build-system version sync had two omissions that allowed drift to accumulate across branch bumps: 1. G2: The root Cargo.toml's [package] version was outside the script's scope. During 0.3.0 -> 0.3.1 branch change, syncing Cat 1 + Cat 2 versions did not touch the cookbook crate itself, so 'repo --version' reported the wrong version. Fixed by adding Phase 0: Cookbook root Cargo.toml block that mirrors the Cat 1 version assignment. 2. G1: After a branch bump, Cargo.lock files were not regenerated. Each Cat 2 fork's lockfile kept its previous +rb suffix even after the fork's Cargo.toml was updated. Fixed by adding Phase 3: a 'cargo generate-lockfile' pass that runs in each fork and the root cookbook after version sync completes. The path-dep + [patch.crates-io] config in each fork ensures the right crates are pulled in; the script verifies each cargo generate-lockfile exit code. New flags: --check Verify only (no writes), exit 1 on drift --no-regen Apply version sync, skip lockfile regen --regen-only Skip version sync, only regen lockfiles (default) Apply sync + regen lockfiles After this commit, branch bump workflow is: ./local/scripts/sync-versions.sh ... and nothing else is needed for Cargo.lock freshness. The script exits non-zero only if any 'cargo generate-lockfile' fails in a fork, surfacing build breakage immediately.