The release read the versions from the untyped fetch's packages argument; the group's ComposeJob carries them in buildstep.Fetch.Packages, so the group's form stands, and the release's check that the key differs for named versions joins the existing test. Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i