fix(deps): make macOS installs work without a Rust toolchain - #3199
Merged
Conversation
litellm publishes no macOS wheels for any release >= 1.92.0, so every macOS install of the published hindsight-api compiles litellm's sdist Rust/PyO3 bridge. That silently required a Rust toolchain, and litellm 1.95.0 raised the bar further (vendored aws-smithy crates need rustc >= 1.94.1), breaking even machines with a recent-but-not-newest rustc. A stock 'uvx hindsight-api' / hindsight-all install on macOS failed during daemon startup. Pin litellm to the 1.91.x line on darwin only - the last releases that ship pure-python py3-none-any wheels - so installs need no compiler at all. Linux and Windows keep the existing >= 1.93.0 floor (litellm publishes manylinux/win_amd64 wheels there, including cp314). Verified on macOS arm64: fresh workspace resolve picks litellm 1.91.4 (pure wheel), the embedded daemon boots via @vectorize-io/hindsight-all, and retain/recall run real LLM extraction through litellm successfully. Revisit when litellm ships macOS wheels (BerriAI/litellm#31261).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
A stock macOS install of the published packages is currently broken:
@vectorize-io/hindsight-all(and anyuvx hindsight-api/hindsight-embedinstall) fails during daemon startup with:Two stacked causes, both in litellm's packaging:
py3-none-anywheels). Every fresh macOS install therefore compiles the sdist's Rust/PyO3 bridge — silently requiring a Rust toolchain most users don't have.litellm>=1.93.0resolves straight to it.Linux and Windows are unaffected (wheels exist for cp310–cp314).
Fix
Split the requirement with platform markers in
hindsight-api-slim/pyproject.toml:sys_platform != 'darwin'— keep the existing>=1.93.0floor (unchanged resolution; CI still locks 1.93.0).sys_platform == 'darwin'— pin to>=1.91.3,<1.92, the last line shipping pure-python wheels, so a plain install needs no compiler at all. The 1.93.0 floor's Python 3.14 rationale (cp314 platform wheels) doesn't apply to pure wheels.The 1.91.x line is only ~3 weeks older than 1.95.0 (1.91.4 published 2026-07-19), and every litellm API hindsight uses (
acompletion,Router,aembedding,arerank,drop_params,get_max_tokens,litellm.exceptions) is present and stable there.Revisit when litellm ships macOS wheels — tracked upstream in BerriAI/litellm#31261.
Verification (macOS arm64)
@vectorize-io/hindsight-all@0.8.6→ daemon start dies building litellm 1.95.0.hindsight-allnpm lifecycle manager (embedPackagePath→ this branch), health check passes, and a real synchronous retain + recall ran LLM fact extraction through litellm (Gemini) successfully.Once merged, the next core release makes this reach users automatically:
hindsight-embed@Xalways launcheshindsight-api@X, and the npm package defaults tohindsight-embed@latest.Interim workaround for users on current releases:
UV_CONSTRAINT=<file with "litellm<1.95.0">(uvx honors it), orrustup update.