diff --git a/pyproject.toml b/pyproject.toml index 35d4949a531d2..3f1d005ad161a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -140,8 +140,18 @@ dependencies = [ # First-party lifecycle and shared-metrics runtime. Relay 0.6 is the minimum # lossless provider-codec contract. Managed calls pass request/response data # through this native module in-process; shared metrics installs no network - # exporter and consumes only its bounded projection. - "nemo-relay>=0.6.0,<0.7; (sys_platform == 'darwin' and platform_machine == 'arm64') or (sys_platform == 'linux' and platform_machine == 'x86_64') or (sys_platform == 'linux' and platform_machine == 'aarch64') or (sys_platform == 'win32' and platform_machine == 'AMD64') or (sys_platform == 'win32' and platform_machine == 'ARM64')", + # exporter and consumes only its bounded projection. Relay publishes wheels + # only (no sdist), so this marker must stay false anywhere no wheel tag can + # match — otherwise `pip install hermes-agent` fails resolution outright + # instead of falling back to the no-op Relay host (#76469, Termux). + # Termux Python reports plain linux/aarch64 but runs on Bionic + # libc, which satisfies neither manylinux nor musllinux, hence the + # `'android' not in platform_release` guard on the linux arms: Android GKI + # kernels embed "-androidNN-" in the kernel release string. (Official PEP + # 738 CPython reports sys_platform == 'android' and never matched.) Pre-GKI + # devices can still slip through; they get the same resolution failure as + # before, worked around by installing with `--no-deps` or an older release. + "nemo-relay>=0.6.0,<0.7; (sys_platform == 'darwin' and platform_machine == 'arm64') or (sys_platform == 'linux' and platform_machine == 'x86_64' and 'android' not in platform_release) or (sys_platform == 'linux' and platform_machine == 'aarch64' and 'android' not in platform_release) or (sys_platform == 'win32' and platform_machine == 'AMD64') or (sys_platform == 'win32' and platform_machine == 'ARM64')", ] [project.optional-dependencies]