omnilane 0.42.9 → 0.44.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -305,6 +305,37 @@ else
305
305
  fail changelog-release-link
306
306
  fi
307
307
 
308
+ # A runner script is pinned by this host's transport overlay. Shipping a changed
309
+ # one without re-signing refuses every lane of that vendor on the releasing host
310
+ # (0.42.8 did exactly that), and no offline test notices.
311
+ audit_overlay="${OMNILANE_AA_TRANSPORT_OVERLAY:-}"
312
+ if [[ -z "$audit_overlay" && -f "${OMNILANE_HOME:-$HOME/.omnilane}/local.sh" ]]; then
313
+ audit_overlay="$(
314
+ set +u
315
+ . "${OMNILANE_HOME:-$HOME/.omnilane}/local.sh" 2>/dev/null
316
+ printf '%s' "${OMNILANE_AA_TRANSPORT_OVERLAY:-}"
317
+ )"
318
+ fi
319
+ if [[ -z "$audit_overlay" || ! -r "$audit_overlay" ]] || ! command -v python3 >/dev/null 2>&1; then
320
+ warn runner-pins-unchecked
321
+ else
322
+ runner_drift="$(python3 - "$audit_overlay" "$ROOT" <<'PYTHON' 2>/dev/null || printf 'unreadable'
323
+ import hashlib, json, sys
324
+ from pathlib import Path
325
+ overlay, root = json.load(open(sys.argv[1])), Path(sys.argv[2])
326
+ pinned = {Path(e["path"]).name: e["sha256"] for e in overlay.get("evidence", []) if e.get("vendor")}
327
+ drift = [p.name for p in sorted((root / "scripts/runners").glob("run-*.sh"))
328
+ if p.name in pinned and hashlib.sha256(p.read_bytes()).hexdigest() != pinned[p.name]]
329
+ print(",".join(drift))
330
+ PYTHON
331
+ )"
332
+ if [[ -z "$runner_drift" ]]; then
333
+ pass runner-pins-current
334
+ else
335
+ fail "runner-pins-stale:$runner_drift (run: omnilane resign)"
336
+ fi
337
+ fi
338
+
308
339
  required=(
309
340
  VERSION LICENSE CHANGELOG.md README.md README.zh-TW.md README.zh-CN.md
310
341
  README.ja.md README.ko.md install.sh routing.yaml