pub fn check_port_collisions(
workspace_root: &Path,
) -> Result<Vec<PortCollision>>Expand description
Walk every service mirror and flag host-port reuse across local-tier
provider slots (R602-B4). Only slots that bind a port on the operator’s
localhost are considered (miniflare-native, miniflare-container,
minio-container) — cloud/CF slots don’t contend for localhost.
Deterministic: services + mirror envs are walked in sorted order, slot
roles sorted, PORT_FIELDS in declared order — so the “first” binder of a
port is stable across runs. Missing .yah/services/ is not an error.