chore: pull over pre-release 0.17.0 improvements to main (#2762)
* refactor: wheel resolution - pure functions, no git introspection, PEP 440 support
Refactor pkg/wheels to be testable and simpler:
- ResolveCogWheel/ResolveCogletWheel are pure functions (params, not globals)
- GetCogWheelConfig/GetCogletWheelConfig are thin wrappers for compatibility
- Remove getRepoRoot() - no more git/REPO_ROOT introspection
- Remove "dist" magic keyword - paths resolve as files or directories
- Add SemverToPEP440() for pre-release version conversion
- Add bestWheelMatch() with platform filtering
- distFromExecutable() testable via function vars
- PyPIPackageURL() auto-converts semver to PEP 440
* chore: simplify mise venv path to relative .venv
* chore: version-from-Cargo.toml for goreleaser and SDK builds
- goreleaser: snapshot version_template and ldflags use envOrDefault COG_VERSION
- build:cog: extract COG_VERSION from crates/Cargo.toml, add to sources
- build:sdk: set SETUPTOOLS_SCM_PRETEND_VERSION from Cargo.toml, merge sdist
- ci:build:sdk: same SETUPTOOLS_SCM_PRETEND_VERSION pattern
- generate:stubs: update output paths to include crates/coglet-python/ prefix
* chore: CI uses Cargo.toml version and local wheels for integration tests
- build-cog job: extract COG_VERSION from Cargo.toml, pass to goreleaser
- integration tests: set COG_WHEEL/COGLET_WHEEL env vars to dist/ so
tests use locally-built wheels instead of PyPI
* fix: integration test failures for wheel resolution and healthcheck timeout
- wheel_resolution/wheel_coglet_missing: use $REPO_ROOT/dist instead of
bare 'dist' keyword (removed in 0f4babd6), fix error message assertions
- healthcheck_async_timeout: run user healthcheck even when busy, since
healthcheck health and slot availability are orthogonal concerns