`--no-group test --no-group dev --no-group lint` only controls which
groups get *installed*; uv still resolves the full dependency graph (all
groups) and tries to generate metadata for editable sources like
`../langchain_v1`. In a sparse checkout these paths don't exist.
`--frozen` skips re-resolution entirely and uses the existing lock, so
the missing editable paths are never accessed.