Nix store paths embed a 32-char hash prefix, which pip rejects as
"Invalid wheel filename (invalid version)". Copy the wheel into TMPDIR
under its bare name first, then install from there.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Forgejo's PyPI simple index returns absolute file URLs hardcoded to its
public ROOT_URL (forge.eblu.me). The Fly edge blocks /api/packages/* per
PR #2d38418e, so pip-install through the index 403s the wheel download
even when reached from the tailnet. Mirror what we already do for the
sdist: pull the wheel via fetchurl from forge.ops.eblu.me and hand it to
pip as a local path. The forge --extra-index-url is no longer needed.
Also bumps service-versions.yaml current-version to v1.1.0 to satisfy
container-version-check (the kustomization newTag follows once the nix
build pins its FOD hash).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>